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.ifname = self.dev['ifname']
52 self.ifindex = self.dev['ifindex']
54 def __enter__(self): argument
55 ip(f"link set dev {self.dev['ifname']} up")
57 return self
59 def __exit__(self, ex_type, ex_value, ex_tb): argument
63 self.__del__()
65 def __del__(self): argument
66 if self._ns:
67 self._ns.remove()
68 self._ns = None
84 def __init__(self, src_path, nsim_test=None): argument
86 self.env = _load_env_file(src_path)
88 self._stats_settle_time = None
91 self.remote = None
93 self._netns = None
94 self._ns = None
95 self._ns_peer = None
97 if "NETIF" in self.env:
100 self._check_env()
102 self.dev = ip("link show dev " + self.env['NETIF'], json=True)[0]
104 self.v4 = self.env.get("LOCAL_V4")
105 self.v6 = self.env.get("LOCAL_V6")
106 self.remote_v4 = self.env.get("REMOTE_V4")
107 self.remote_v6 = self.env.get("REMOTE_V6")
108 kind = self.env["REMOTE_TYPE"]
109 args = self.env["REMOTE_ARGS"]
114 self.create_local()
116 self.dev = self._ns.nsims[0].dev
118 self.v4 = self.nsim_v4_pfx + "1"
119 self.v6 = self.nsim_v6_pfx + "1"
120 self.remote_v4 = self.nsim_v4_pfx + "2"
121 self.remote_v6 = self.nsim_v6_pfx + "2"
123 args = self._netns.name
125 self.remote = Remote(kind, args, src_path)
127 self.addr = self.v6 if self.v6 else self.v4
128 self.remote_addr = self.remote_v6 if self.remote_v6 else self.remote_v4
130 self.addr_ipver = "6" if self.v6 else "4"
132 self.baddr = f"[{self.v6}]" if self.v6 else self.v4
133 self.remote_baddr = f"[{self.remote_v6}]" if self.remote_v6 else self.remote_v4
135 self.ifname = self.dev['ifname']
136 self.ifindex = self.dev['ifindex']
138 self._required_cmd = {}
140 def create_local(self): argument
141 self._netns = NetNS()
142 self._ns = NetdevSimDev()
143 self._ns_peer = NetdevSimDev(ns=self._netns)
145 with open("/proc/self/ns/net") as nsfd0, \
146 open("/var/run/netns/" + self._netns.name) as nsfd1:
147 ifi0 = self._ns.nsims[0].ifindex
148 ifi1 = self._ns_peer.nsims[0].ifindex
152 ip(f" addr add dev {self._ns.nsims[0].ifname} {self.nsim_v4_pfx}1/24")
153 ip(f"-6 addr add dev {self._ns.nsims[0].ifname} {self.nsim_v6_pfx}1/64 nodad")
154 ip(f" link set dev {self._ns.nsims[0].ifname} up")
156 … ip(f" addr add dev {self._ns_peer.nsims[0].ifname} {self.nsim_v4_pfx}2/24", ns=self._netns)
157 …ip(f"-6 addr add dev {self._ns_peer.nsims[0].ifname} {self.nsim_v6_pfx}2/64 nodad", ns=self._netns)
158 ip(f" link set dev {self._ns_peer.nsims[0].ifname} up", ns=self._netns)
160 def _check_env(self): argument
171 if entry in self.env:
176 if ("LOCAL_V6" in self.env) != ("REMOTE_V6" in self.env):
178 if ("LOCAL_V4" in self.env) != ("REMOTE_V4" in self.env):
184 def __enter__(self): argument
185 return self
187 def __exit__(self, ex_type, ex_value, ex_tb): argument
191 self.__del__()
193 def __del__(self): argument
194 if self._ns:
195 self._ns.remove()
196 self._ns = None
197 if self._ns_peer:
198 self._ns_peer.remove()
199 self._ns_peer = None
200 if self._netns:
201 del self._netns
202 self._netns = None
203 if self.remote:
204 del self.remote
205 self.remote = None
207 def require_v4(self): argument
208 if not self.v4 or not self.remote_v4:
211 def require_v6(self): argument
212 if not self.v6 or not self.remote_v6:
215 def _require_cmd(self, comm, key, host=None): argument
216 cached = self._required_cmd.get(comm, {})
220 self._required_cmd[comm] = cached
223 def require_cmd(self, comm, local=True, remote=False): argument
225 if not self._require_cmd(comm, "local"):
228 if not self._require_cmd(comm, "remote"):
231 def wait_hw_stats_settle(self): argument
237 if self._stats_settle_time is None:
240 data = ethtool("-c " + self.ifname, json=True)[0]
245 self._stats_settle_time = 0.025 + \
248 time.sleep(self._stats_settle_time)