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

experiments: classes for sockets proxy

parent e50a3c2d
...@@ -52,7 +52,9 @@ class NetProxy(SimProxy): ...@@ -52,7 +52,9 @@ class NetProxy(SimProxy):
return 10 return 10
class NetProxyListener(NetProxy): class NetProxyListener(NetProxy):
port = 12345
connecter = None connecter = None
listen = True
def __init__(self): def __init__(self):
super().__init__() super().__init__()
...@@ -104,6 +106,20 @@ class NetProxyListener(NetProxy): ...@@ -104,6 +106,20 @@ class NetProxyListener(NetProxy):
socks.append(env.n2n_eth_path(net_l, net_c)) socks.append(env.n2n_eth_path(net_l, net_c))
return socks return socks
def run_cmd_base(self, env):
cmd = (f'-s {env.proxy_shm_path(self)} '
f'-S {self.shm_size} ')
for (nic, local) in self.nics:
cmd += '-d ' if local else '-n '
cmd += env.nic_eth_path(nic) + ' '
for ((net_c, net_l), local) in self.n2ns:
cmd += '-d ' if local else '-n '
cmd += env.n2n_eth_path(net_l, net_c) + ' '
cmd += f' 0.0.0.0 {self.port}'
return cmd
class NetProxyConnecter(NetProxy): class NetProxyConnecter(NetProxy):
listener = None listener = None
...@@ -157,27 +173,28 @@ class NetProxyConnecter(NetProxy): ...@@ -157,27 +173,28 @@ class NetProxyConnecter(NetProxy):
socks.append(env.n2n_eth_path(net_l, net_c)) socks.append(env.n2n_eth_path(net_l, net_c))
return socks return socks
def run_cmd_base(self, env):
class RDMANetProxyListener(NetProxyListener): cmd = (f'-s {env.proxy_shm_path(self)} '
port = 12345
def __init__(self):
super().__init__()
self.listen = True
def run_cmd(self, env):
cmd = (f'{env.repodir}/dist/rdma/net_rdma -l '
f'-s {env.proxy_shm_path(self)} '
f'-S {self.shm_size} ') f'-S {self.shm_size} ')
for (nic, local) in self.nics: for (nic, local) in self.nics:
cmd += '-d ' if local else '-n ' cmd += '-n ' if local else '-d '
cmd += env.nic_eth_path(nic) + ' ' cmd += env.nic_eth_path(nic) + ' '
for ((net_c, net_l), local) in self.n2ns: for ((net_c, net_l), local) in self.n2ns:
cmd += '-d ' if local else '-n ' cmd += '-n ' if local else '-d '
cmd += env.n2n_eth_path(net_l, net_c) + ' ' cmd += env.n2n_eth_path(net_l, net_c) + ' '
cmd += f' 0.0.0.0 {self.port}' cmd += f' {self.listener.ip} {self.listener.port}'
return cmd
class RDMANetProxyListener(NetProxyListener):
def __init__(self):
super().__init__()
def run_cmd(self, env):
cmd = f'{env.repodir}/dist/rdma/net_rdma -l '
cmd += super().run_cmd_base(env)
return cmd return cmd
class RDMANetProxyConnecter(NetProxyConnecter): class RDMANetProxyConnecter(NetProxyConnecter):
...@@ -185,16 +202,25 @@ class RDMANetProxyConnecter(NetProxyConnecter): ...@@ -185,16 +202,25 @@ class RDMANetProxyConnecter(NetProxyConnecter):
super().__init__(listener) super().__init__(listener)
def run_cmd(self, env): def run_cmd(self, env):
cmd = (f'{env.repodir}/dist/rdma/net_rdma ' cmd = f'{env.repodir}/dist/rdma/net_rdma '
f'-s {env.proxy_shm_path(self)} ' cmd += super().run_cmd_base(env)
f'-S {self.shm_size} ') return cmd
for (nic, local) in self.nics:
cmd += '-n ' if local else '-d '
cmd += env.nic_eth_path(nic) + ' '
for ((net_c, net_l), local) in self.n2ns:
cmd += '-n ' if local else '-d '
cmd += env.n2n_eth_path(net_l, net_c) + ' '
cmd += f' {self.listener.ip} {self.listener.port}' class SocketsNetProxyListener(NetProxyListener):
def __init__(self):
super().__init__()
def run_cmd(self, env):
cmd = f'{env.repodir}/dist/sockets/net_sockets -l '
cmd += super().run_cmd_base(env)
return cmd
class SocketsNetProxyConnecter(NetProxyConnecter):
def __init__(self, listener):
super().__init__(listener)
def run_cmd(self, env):
cmd = f'{env.repodir}/dist/sockets/net_sockets '
cmd += super().run_cmd_base(env)
return cmd return cmd
\ No newline at end of file
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