selftests: drv-net: allow switching env IP version

NetDrvEpEnv picks a single IP version at init time, preferring IPv6 when
both are configured.

Add NetDrvEpEnv.set_ipver() to reselect the IP version and recompute the
derived address fields.

Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Nimrod Oren <noren@nvidia.com>
Link: https://patch.msgid.link/20260702062348.2123960-2-noren@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Nimrod Oren
2026-07-02 09:23:47 +03:00
committed by Paolo Abeni
parent bcd2e8b40e
commit 432f4bab1a

View File

@@ -159,13 +159,7 @@ class NetDrvEpEnv(NetDrvEnvBase):
self.remote = Remote(kind, args, src_path)
self.addr_ipver = "6" if self.addr_v["6"] else "4"
self.addr = self.addr_v[self.addr_ipver]
self.remote_addr = self.remote_addr_v[self.addr_ipver]
# Bracketed addresses, some commands need IPv6 to be inside []
self.baddr = f"[{self.addr_v['6']}]" if self.addr_v["6"] else self.addr_v["4"]
self.remote_baddr = f"[{self.remote_addr_v['6']}]" if self.remote_addr_v["6"] else self.remote_addr_v["4"]
self.set_ipver("6" if self.addr_v["6"] else "4")
self.ifname = self.dev['ifname']
self.ifindex = self.dev['ifindex']
@@ -252,6 +246,25 @@ class NetDrvEpEnv(NetDrvEnvBase):
if not self.addr_v[ipver] or not self.remote_addr_v[ipver]:
raise KsftSkipEx(f"Test requires IPv{ipver} connectivity")
def set_ipver(self, ipver):
"""
Modify the IP version used by the generic address fields.
"""
if ipver == getattr(self, "addr_ipver", None):
return
self.require_ipver(ipver)
self.addr_ipver = ipver
self.addr = self.addr_v[ipver]
self.remote_addr = self.remote_addr_v[ipver]
# Bracketed addresses, some commands need IPv6 to be inside []
self.baddr = (f"[{self.addr_v['6']}]" if ipver == "6"
else self.addr_v["4"])
self.remote_baddr = (f"[{self.remote_addr_v['6']}]" if ipver == "6"
else self.remote_addr_v["4"])
def require_nsim(self, nsim_test=True):
"""Require or exclude netdevsim for this test"""
if nsim_test and self._ns is None: