From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com,
andrew+netdev@lunn.ch, horms@kernel.org,
willemdebruijn.kernel@gmail.com, petrm@nvidia.com,
stfomichev@gmail.com, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 1/3] selftests: drv-net: resolve remote interface name
Date: Fri, 14 Feb 2025 15:46:29 -0800 [thread overview]
Message-ID: <20250214234631.2308900-2-kuba@kernel.org> (raw)
In-Reply-To: <20250214234631.2308900-1-kuba@kernel.org>
Find out and record in env the name of the interface which remote host
will use for the IP address provided via config.
Interface name is useful for mausezahn and for setting up tunnels.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
v2:
- check for IP being on multiple ifcs
v1: https://lore.kernel.org/20250213003454.1333711-2-kuba@kernel.org
---
tools/testing/selftests/drivers/net/lib/py/env.py | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/tools/testing/selftests/drivers/net/lib/py/env.py b/tools/testing/selftests/drivers/net/lib/py/env.py
index 886b4904613c..55d6b3d992b6 100644
--- a/tools/testing/selftests/drivers/net/lib/py/env.py
+++ b/tools/testing/selftests/drivers/net/lib/py/env.py
@@ -154,6 +154,9 @@ from .remote import Remote
self.ifname = self.dev['ifname']
self.ifindex = self.dev['ifindex']
+ # resolve remote interface name
+ self.remote_ifname = self.resolve_remote_ifc()
+
self._required_cmd = {}
def create_local(self):
@@ -200,6 +203,18 @@ from .remote import Remote
raise Exception("Invalid environment, missing configuration:", missing,
"Please see tools/testing/selftests/drivers/net/README.rst")
+ def resolve_remote_ifc(self):
+ v4 = v6 = None
+ if self.remote_v4:
+ v4 = ip("addr show to " + self.remote_v4, json=True, host=self.remote)
+ if self.remote_v6:
+ v6 = ip("addr show to " + self.remote_v6, json=True, host=self.remote)
+ if v4 and v6 and v4[0]["ifname"] != v6[0]["ifname"]:
+ raise Exception("Can't resolve remote interface name, v4 and v6 don't match")
+ if (v4 and len(v4) > 1) or (v6 and len(v6) > 1):
+ raise Exception("Can't resolve remote interface name, multiple interfaces match")
+ return v6[0]["ifname"] if v6 else v4[0]["ifname"]
+
def __enter__(self):
return self
--
2.48.1
next prev parent reply other threads:[~2025-02-14 23:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-14 23:46 [PATCH net-next v2 0/3] selftests: drv-net: add a simple TSO test Jakub Kicinski
2025-02-14 23:46 ` Jakub Kicinski [this message]
2025-02-15 14:50 ` [PATCH net-next v2 1/3] selftests: drv-net: resolve remote interface name Willem de Bruijn
2025-02-17 11:42 ` Petr Machata
2025-02-14 23:46 ` [PATCH net-next v2 2/3] selftests: drv-net: get detailed interface info Jakub Kicinski
2025-02-15 14:50 ` Willem de Bruijn
2025-02-14 23:46 ` [PATCH net-next v2 3/3] selftests: drv-net: add a simple TSO test Jakub Kicinski
2025-02-15 14:49 ` Willem de Bruijn
2025-02-15 16:31 ` Jakub Kicinski
2025-02-15 14:50 ` Willem de Bruijn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250214234631.2308900-2-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=petrm@nvidia.com \
--cc=stfomichev@gmail.com \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).