Lines Matching full:self

41     def __init__(self, src_path, **kwargs):  argument
42 self._ns = None
44 self.env = _load_env_file(src_path)
46 if 'NETIF' in self.env:
47 self.dev = ip("link show dev " + self.env['NETIF'], json=True)[0]
49 self._ns = NetdevSimDev(**kwargs)
50 self.dev = self._ns.nsims[0].dev
51 self.ifindex = self.dev['ifindex']
53 def __enter__(self): argument
54 ip(f"link set dev {self.dev['ifname']} up")
56 return self
58 def __exit__(self, ex_type, ex_value, ex_tb): argument
62 self.__del__()
64 def __del__(self): argument
65 if self._ns:
66 self._ns.remove()
67 self._ns = None
83 def __init__(self, src_path, nsim_test=None): argument
85 self.env = _load_env_file(src_path)
87 self._stats_settle_time = None
90 self.remote = None
92 self._netns = None
93 self._ns = None
94 self._ns_peer = None
96 if "NETIF" in self.env:
99 self._check_env()
101 self.dev = ip("link show dev " + self.env['NETIF'], json=True)[0]
103 self.v4 = self.env.get("LOCAL_V4")
104 self.v6 = self.env.get("LOCAL_V6")
105 self.remote_v4 = self.env.get("REMOTE_V4")
106 self.remote_v6 = self.env.get("REMOTE_V6")
107 kind = self.env["REMOTE_TYPE"]
108 args = self.env["REMOTE_ARGS"]
113 self.create_local()
115 self.dev = self._ns.nsims[0].dev
117 self.v4 = self.nsim_v4_pfx + "1"
118 self.v6 = self.nsim_v6_pfx + "1"
119 self.remote_v4 = self.nsim_v4_pfx + "2"
120 self.remote_v6 = self.nsim_v6_pfx + "2"
122 args = self._netns.name
124 self.remote = Remote(kind, args, src_path)
126 self.addr = self.v6 if self.v6 else self.v4
127 self.remote_addr = self.remote_v6 if self.remote_v6 else self.remote_v4
129 self.addr_ipver = "6" if self.v6 else "4"
131 self.baddr = f"[{self.v6}]" if self.v6 else self.v4
132 self.remote_baddr = f"[{self.remote_v6}]" if self.remote_v6 else self.remote_v4
134 self.ifname = self.dev['ifname']
135 self.ifindex = self.dev['ifindex']
137 self._required_cmd = {}
139 def create_local(self): argument
140 self._netns = NetNS()
141 self._ns = NetdevSimDev()
142 self._ns_peer = NetdevSimDev(ns=self._netns)
144 with open("/proc/self/ns/net") as nsfd0, \
145 open("/var/run/netns/" + self._netns.name) as nsfd1:
146 ifi0 = self._ns.nsims[0].ifindex
147 ifi1 = self._ns_peer.nsims[0].ifindex
151 ip(f" addr add dev {self._ns.nsims[0].ifname} {self.nsim_v4_pfx}1/24")
152 ip(f"-6 addr add dev {self._ns.nsims[0].ifname} {self.nsim_v6_pfx}1/64 nodad")
153 ip(f" link set dev {self._ns.nsims[0].ifname} up")
155 … ip(f" addr add dev {self._ns_peer.nsims[0].ifname} {self.nsim_v4_pfx}2/24", ns=self._netns)
156 …ip(f"-6 addr add dev {self._ns_peer.nsims[0].ifname} {self.nsim_v6_pfx}2/64 nodad", ns=self._netns)
157 ip(f" link set dev {self._ns_peer.nsims[0].ifname} up", ns=self._netns)
159 def _check_env(self): argument
170 if entry in self.env:
175 if ("LOCAL_V6" in self.env) != ("REMOTE_V6" in self.env):
177 if ("LOCAL_V4" in self.env) != ("REMOTE_V4" in self.env):
183 def __enter__(self): argument
184 return self
186 def __exit__(self, ex_type, ex_value, ex_tb): argument
190 self.__del__()
192 def __del__(self): argument
193 if self._ns:
194 self._ns.remove()
195 self._ns = None
196 if self._ns_peer:
197 self._ns_peer.remove()
198 self._ns_peer = None
199 if self._netns:
200 del self._netns
201 self._netns = None
202 if self.remote:
203 del self.remote
204 self.remote = None
206 def require_v4(self): argument
207 if not self.v4 or not self.remote_v4:
210 def require_v6(self): argument
211 if not self.v6 or not self.remote_v6:
214 def _require_cmd(self, comm, key, host=None): argument
215 cached = self._required_cmd.get(comm, {})
219 self._required_cmd[comm] = cached
222 def require_cmd(self, comm, local=True, remote=False): argument
224 if not self._require_cmd(comm, "local"):
227 if not self._require_cmd(comm, "remote"):
230 def wait_hw_stats_settle(self): argument
236 if self._stats_settle_time is None:
237 data = ethtool("-c " + self.ifname, json=True)[0]
239 self._stats_settle_time = 0.025 + \
242 time.sleep(self._stats_settle_time)