Commit f1b6c9de authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

experiments: support for network-to-network connections

parent ceb1af0f
...@@ -341,6 +341,9 @@ class ExpEnv(object): ...@@ -341,6 +341,9 @@ class ExpEnv(object):
def nic_shm_path(self, sim): def nic_shm_path(self, sim):
return '%s/nic.shm.%s' % (self.workdir, sim.name) return '%s/nic.shm.%s' % (self.workdir, sim.name)
def n2n_eth_path(self, sim_l, sim_c):
return '%s/n2n.eth.%s.%s' % (self.workdir, sim_l.name, sim_c.name)
def proxy_shm_path(self, sim): def proxy_shm_path(self, sim):
return '%s/proxy.shm.%s' % (self.workdir, sim.name) return '%s/proxy.shm.%s' % (self.workdir, sim.name)
......
...@@ -138,18 +138,40 @@ class NetSim(Simulator): ...@@ -138,18 +138,40 @@ class NetSim(Simulator):
def __init__(self): def __init__(self):
self.nics = [] self.nics = []
self.net_listen = []
self.net_connect = []
super().__init__()
def full_name(self): def full_name(self):
return 'net.' + self.name return 'net.' + self.name
# Connect this netwrok to the listening peer `net`
def connect_network(self, net):
net.net_listen.append(self)
self.net_connect.append(net)
def connect_sockets(self, env): def connect_sockets(self, env):
sockets = [] sockets = []
for n in self.nics: for n in self.nics:
sockets.append((n, env.nic_eth_path(n))) sockets.append((n, env.nic_eth_path(n)))
for n in self.net_connect:
sockets.append((n, env.n2n_eth_path(n, self)))
return sockets return sockets
def listen_sockets(self, env):
listens = []
for net in self.net_listen:
listens.append((net, env.n2n_eth_path(self, net)))
return listens
def dependencies(self): def dependencies(self):
return self.nics return self.nics + self.net_connect
def sockets_cleanup(self, env):
return [s for (_,s) in self.listen_sockets(env)]
def sockets_wait(self, env):
return [s for (_,s) in self.listen_sockets(env)]
class QemuHost(HostSim): class QemuHost(HostSim):
......
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