userns=False, **kwargs):
self.netns = None
self._userns = userns
- self._nk_host_ifname = None
+ self.nk_host_ifname = None
self.nk_guest_ifname = None
self._tc_clsact_added = False
self._tc_attached = False
raise KsftSkipEx("Failed to create netkit pair")
netkit_links.sort(key=lambda x: x['ifindex'])
- self._nk_host_ifname = netkit_links[1]['ifname']
+ self.nk_host_ifname = netkit_links[1]['ifname']
self.nk_guest_ifname = netkit_links[0]['ifname']
self.nk_host_ifindex = netkit_links[1]['ifindex']
self.nk_guest_ifindex = netkit_links[0]['ifindex']
def __del__(self):
if self._primary_rx_redirect_attached:
- cmd(f"tc filter del dev {self._nk_host_ifname} ingress", fail=False)
+ cmd(f"tc filter del dev {self.nk_host_ifname} ingress", fail=False)
self._primary_rx_redirect_attached = False
if self._primary_rx_redirect_clsact_added:
- cmd(f"tc qdisc del dev {self._nk_host_ifname} clsact", fail=False)
+ cmd(f"tc qdisc del dev {self.nk_host_ifname} clsact", fail=False)
self._primary_rx_redirect_clsact_added = False
if self._tc_attached:
host=self.remote, fail=False)
self._remote_route_added = False
- if self._nk_host_ifname:
- cmd(f"ip link del dev {self._nk_host_ifname}")
- self._nk_host_ifname = None
+ if self.nk_host_ifname:
+ cmd(f"ip link del dev {self.nk_host_ifname}")
+ self.nk_host_ifname = None
self.nk_guest_ifname = None
if self._init_ns_attached:
self._init_ns_attached = True
ip("netns set init 0", ns=self.netns)
ip(f"link set dev {self.nk_guest_ifname} netns {self.netns.name}")
- ip(f"link set dev {self._nk_host_ifname} up")
- ip(f"-6 addr add fe80::1/64 dev {self._nk_host_ifname} nodad")
- ip(f"-6 route add {self.nk_guest_ipv6}/128 via fe80::2 dev {self._nk_host_ifname}")
+ ip(f"link set dev {self.nk_host_ifname} up")
+ ip(f"-6 addr add fe80::1/64 dev {self.nk_host_ifname} nodad")
+ ip(f"-6 route add {self.nk_guest_ipv6}/128 via fe80::2 dev {self.nk_host_ifname}")
ip("link set lo up", ns=self.netns)
ip(f"link set dev {self.nk_guest_ifname} up", ns=self.netns)
if not bpf_obj:
raise KsftSkipEx("nk_primary_rx_redirect.bpf.o not found")
- if self._tc_ensure_clsact(self._nk_host_ifname):
+ if self._tc_ensure_clsact(self.nk_host_ifname):
self._primary_rx_redirect_clsact_added = True
- cmd(f"tc filter add dev {self._nk_host_ifname} ingress"
+ cmd(f"tc filter add dev {self.nk_host_ifname} ingress"
f" bpf obj {bpf_obj} sec tc/ingress direct-action")
self._primary_rx_redirect_attached = True
self._remote_route_added = True
filters = json.loads(
- cmd(f"tc -j filter show dev {self._nk_host_ifname} ingress").stdout)
+ cmd(f"tc -j filter show dev {self.nk_host_ifname} ingress").stdout)
redirect_prog_id = None
for bpf in filters:
if 'options' not in bpf: