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):
def nic_shm_path(self, sim):
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):
return '%s/proxy.shm.%s' % (self.workdir, sim.name)
......
......@@ -138,18 +138,40 @@ class NetSim(Simulator):
def __init__(self):
self.nics = []
self.net_listen = []
self.net_connect = []
super().__init__()
def full_name(self):
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):
sockets = []
for n in self.nics:
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
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):
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):
......
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