"vscode:/vscode.git/clone" did not exist on "49b959b5408b97274e2ee423059d9239445aea26"
Commit f1da1400 authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

libnicbm: support generating a MAC address

parent 895dd2ce
...@@ -63,6 +63,7 @@ class Runner { ...@@ -63,6 +63,7 @@ class Runner {
protected: protected:
Device &dev; Device &dev;
uint64_t mac_addr;
struct nicsim_params nsparams; struct nicsim_params nsparams;
volatile union cosim_pcie_proto_d2h *d2h_alloc(void); volatile union cosim_pcie_proto_d2h *d2h_alloc(void);
...@@ -89,6 +90,7 @@ class Runner { ...@@ -89,6 +90,7 @@ class Runner {
void eth_send(const void *data, size_t len); void eth_send(const void *data, size_t len);
uint64_t time_ps() const; uint64_t time_ps() const;
uint64_t get_mac_addr() const;
}; };
/** /**
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include <unistd.h> #include <unistd.h>
#include <signal.h> #include <signal.h>
#include <cassert> #include <cassert>
#include <ctime>
#include <iostream>
#include <nicbm.h> #include <nicbm.h>
...@@ -260,9 +262,22 @@ uint64_t Runner::time_ps() const ...@@ -260,9 +262,22 @@ uint64_t Runner::time_ps() const
return main_time; return main_time;
} }
uint64_t Runner::get_mac_addr() const
{
return mac_addr;
}
Runner::Runner(Device &dev_) Runner::Runner(Device &dev_)
: dev(dev_) : dev(dev_)
{ {
//mac_addr = lrand48() & ~(3ULL << 46);
srand48(time(NULL) ^ getpid());
mac_addr = lrand48();
mac_addr <<= 16;
mac_addr ^= lrand48();
mac_addr &= ~(3ULL << 40);
std::cerr << std::hex << mac_addr << std::endl;
} }
int Runner::runMain(int argc, char *argv[]) int Runner::runMain(int argc, char *argv[])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment