netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 net-next 0/3] netdevsim: better ipsec output format
@ 2024-10-10  4:00 Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 1/3] netdevsim: print human readable IP address Hangbin Liu
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Hangbin Liu @ 2024-10-10  4:00 UTC (permalink / raw)
  To: netdev
  Cc: Jakub Kicinski, David S. Miller, Eric Dumazet, Paolo Abeni,
	Shannon Nelson, Jiri Pirko, Stanislav Fomichev, Simon Horman,
	linux-kernel, Hangbin Liu

The first 2 patches improve the netdevsim ipsec debug output with better
format. The 3rd patch update the selftests.

v2: update rtnetlink selftest with new output format (Stanislav Fomichev, Jakub Kicinski)

Hangbin Liu (3):
  netdevsim: print human readable IP address
  netdevsim: copy addresses for both in and out paths
  selftests: rtnetlink: update netdevsim ipsec output format

 drivers/net/netdevsim/ipsec.c            | 23 +++++++++++++----------
 tools/testing/selftests/net/rtnetlink.sh |  4 ++--
 2 files changed, 15 insertions(+), 12 deletions(-)

-- 
2.39.5 (Apple Git-154)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCHv2 net-next 1/3] netdevsim: print human readable IP address
  2024-10-10  4:00 [PATCHv2 net-next 0/3] netdevsim: better ipsec output format Hangbin Liu
@ 2024-10-10  4:00 ` Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 2/3] netdevsim: copy addresses for both in and out paths Hangbin Liu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Hangbin Liu @ 2024-10-10  4:00 UTC (permalink / raw)
  To: netdev
  Cc: Jakub Kicinski, David S. Miller, Eric Dumazet, Paolo Abeni,
	Shannon Nelson, Jiri Pirko, Stanislav Fomichev, Simon Horman,
	linux-kernel, Hangbin Liu

Currently, IPSec addresses are printed in hexadecimal format, which is
not user-friendly. e.g.

  # cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
  SA count=2 tx=20
  sa[0] rx ipaddr=0x00000000 00000000 00000000 0100a8c0
  sa[0]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
  sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
  sa[1] tx ipaddr=0x00000000 00000000 00000000 00000000
  sa[1]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
  sa[1]    key=0x3167608a ca4f1397 43565909 941fa627

This patch updates the code to print the IPSec address in a human-readable
format for easier debug. e.g.

 # cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
 SA count=4 tx=40
 sa[0] tx ipaddr=0.0.0.0
 sa[0]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
 sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
 sa[1] rx ipaddr=192.168.0.1
 sa[1]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
 sa[1]    key=0x3167608a ca4f1397 43565909 941fa627
 sa[2] tx ipaddr=::
 sa[2]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
 sa[2]    key=0x3167608a ca4f1397 43565909 941fa627
 sa[3] rx ipaddr=2000::1
 sa[3]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
 sa[3]    key=0x3167608a ca4f1397 43565909 941fa627

Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 drivers/net/netdevsim/ipsec.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/netdevsim/ipsec.c b/drivers/net/netdevsim/ipsec.c
index f0d58092e7e9..102b0955eb04 100644
--- a/drivers/net/netdevsim/ipsec.c
+++ b/drivers/net/netdevsim/ipsec.c
@@ -39,10 +39,14 @@ static ssize_t nsim_dbg_netdev_ops_read(struct file *filp,
 		if (!sap->used)
 			continue;
 
-		p += scnprintf(p, bufsize - (p - buf),
-			       "sa[%i] %cx ipaddr=0x%08x %08x %08x %08x\n",
-			       i, (sap->rx ? 'r' : 't'), sap->ipaddr[0],
-			       sap->ipaddr[1], sap->ipaddr[2], sap->ipaddr[3]);
+		if (sap->xs->props.family == AF_INET6)
+			p += scnprintf(p, bufsize - (p - buf),
+				       "sa[%i] %cx ipaddr=%pI6c\n",
+				       i, (sap->rx ? 'r' : 't'), &sap->ipaddr);
+		else
+			p += scnprintf(p, bufsize - (p - buf),
+				       "sa[%i] %cx ipaddr=%pI4\n",
+				       i, (sap->rx ? 'r' : 't'), &sap->ipaddr[3]);
 		p += scnprintf(p, bufsize - (p - buf),
 			       "sa[%i]    spi=0x%08x proto=0x%x salt=0x%08x crypt=%d\n",
 			       i, be32_to_cpu(sap->xs->id.spi),
-- 
2.39.5 (Apple Git-154)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCHv2 net-next 2/3] netdevsim: copy addresses for both in and out paths
  2024-10-10  4:00 [PATCHv2 net-next 0/3] netdevsim: better ipsec output format Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 1/3] netdevsim: print human readable IP address Hangbin Liu
@ 2024-10-10  4:00 ` Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format Hangbin Liu
  2024-10-11 22:50 ` [PATCHv2 net-next 0/3] netdevsim: better " patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: Hangbin Liu @ 2024-10-10  4:00 UTC (permalink / raw)
  To: netdev
  Cc: Jakub Kicinski, David S. Miller, Eric Dumazet, Paolo Abeni,
	Shannon Nelson, Jiri Pirko, Stanislav Fomichev, Simon Horman,
	linux-kernel, Hangbin Liu

The current code only copies the address for the in path, leaving the out
path address set to 0. This patch corrects the issue by copying the addresses
for both the in and out paths. Before this patch:

  # cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
  SA count=2 tx=20
  sa[0] tx ipaddr=0.0.0.0
  sa[0]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
  sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
  sa[1] rx ipaddr=192.168.0.1
  sa[1]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
  sa[1]    key=0x3167608a ca4f1397 43565909 941fa627

After this patch:

  = cat /sys/kernel/debug/netdevsim/netdevsim0/ports/0/ipsec
  SA count=2 tx=20
  sa[0] tx ipaddr=192.168.0.2
  sa[0]    spi=0x00000100 proto=0x32 salt=0x0adecc3a crypt=1
  sa[0]    key=0x3167608a ca4f1397 43565909 941fa627
  sa[1] rx ipaddr=192.168.0.1
  sa[1]    spi=0x00000101 proto=0x32 salt=0x0adecc3a crypt=1
  sa[1]    key=0x3167608a ca4f1397 43565909 941fa627

Fixes: 7699353da875 ("netdevsim: add ipsec offload testing")
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 drivers/net/netdevsim/ipsec.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/net/netdevsim/ipsec.c b/drivers/net/netdevsim/ipsec.c
index 102b0955eb04..88187dd4eb2d 100644
--- a/drivers/net/netdevsim/ipsec.c
+++ b/drivers/net/netdevsim/ipsec.c
@@ -180,14 +180,13 @@ static int nsim_ipsec_add_sa(struct xfrm_state *xs,
 		return ret;
 	}
 
-	if (xs->xso.dir == XFRM_DEV_OFFLOAD_IN) {
+	if (xs->xso.dir == XFRM_DEV_OFFLOAD_IN)
 		sa.rx = true;
 
-		if (xs->props.family == AF_INET6)
-			memcpy(sa.ipaddr, &xs->id.daddr.a6, 16);
-		else
-			memcpy(&sa.ipaddr[3], &xs->id.daddr.a4, 4);
-	}
+	if (xs->props.family == AF_INET6)
+		memcpy(sa.ipaddr, &xs->id.daddr.a6, 16);
+	else
+		memcpy(&sa.ipaddr[3], &xs->id.daddr.a4, 4);
 
 	/* the preparations worked, so save the info */
 	memcpy(&ipsec->sa[sa_idx], &sa, sizeof(sa));
-- 
2.39.5 (Apple Git-154)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format
  2024-10-10  4:00 [PATCHv2 net-next 0/3] netdevsim: better ipsec output format Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 1/3] netdevsim: print human readable IP address Hangbin Liu
  2024-10-10  4:00 ` [PATCHv2 net-next 2/3] netdevsim: copy addresses for both in and out paths Hangbin Liu
@ 2024-10-10  4:00 ` Hangbin Liu
  2024-10-11 14:50   ` Stanislav Fomichev
  2024-10-11 22:50 ` [PATCHv2 net-next 0/3] netdevsim: better " patchwork-bot+netdevbpf
  3 siblings, 1 reply; 6+ messages in thread
From: Hangbin Liu @ 2024-10-10  4:00 UTC (permalink / raw)
  To: netdev
  Cc: Jakub Kicinski, David S. Miller, Eric Dumazet, Paolo Abeni,
	Shannon Nelson, Jiri Pirko, Stanislav Fomichev, Simon Horman,
	linux-kernel, Hangbin Liu

After the netdevsim update to use human-readable IP address formats for
IPsec, we can now use the source and destination IPs directly in testing.
Here is the result:
  # ./rtnetlink.sh -t kci_test_ipsec_offload
  PASS: ipsec_offload

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 tools/testing/selftests/net/rtnetlink.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh
index bdf6f10d0558..87dce3efe31e 100755
--- a/tools/testing/selftests/net/rtnetlink.sh
+++ b/tools/testing/selftests/net/rtnetlink.sh
@@ -809,10 +809,10 @@ kci_test_ipsec_offload()
 	# does driver have correct offload info
 	run_cmd diff $sysfsf - << EOF
 SA count=2 tx=3
-sa[0] tx ipaddr=0x00000000 00000000 00000000 00000000
+sa[0] tx ipaddr=$dstip
 sa[0]    spi=0x00000009 proto=0x32 salt=0x61626364 crypt=1
 sa[0]    key=0x34333231 38373635 32313039 36353433
-sa[1] rx ipaddr=0x00000000 00000000 00000000 037ba8c0
+sa[1] rx ipaddr=$srcip
 sa[1]    spi=0x00000009 proto=0x32 salt=0x61626364 crypt=1
 sa[1]    key=0x34333231 38373635 32313039 36353433
 EOF
-- 
2.39.5 (Apple Git-154)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format
  2024-10-10  4:00 ` [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format Hangbin Liu
@ 2024-10-11 14:50   ` Stanislav Fomichev
  0 siblings, 0 replies; 6+ messages in thread
From: Stanislav Fomichev @ 2024-10-11 14:50 UTC (permalink / raw)
  To: Hangbin Liu
  Cc: netdev, Jakub Kicinski, David S. Miller, Eric Dumazet,
	Paolo Abeni, Shannon Nelson, Jiri Pirko, Simon Horman,
	linux-kernel

On 10/10, Hangbin Liu wrote:
> After the netdevsim update to use human-readable IP address formats for
> IPsec, we can now use the source and destination IPs directly in testing.
> Here is the result:
>   # ./rtnetlink.sh -t kci_test_ipsec_offload
>   PASS: ipsec_offload
> 
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>

Acked-by: Stanislav Fomichev <sdf@fomichev.me>

Thank you!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCHv2 net-next 0/3] netdevsim: better ipsec output format
  2024-10-10  4:00 [PATCHv2 net-next 0/3] netdevsim: better ipsec output format Hangbin Liu
                   ` (2 preceding siblings ...)
  2024-10-10  4:00 ` [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format Hangbin Liu
@ 2024-10-11 22:50 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-10-11 22:50 UTC (permalink / raw)
  To: Hangbin Liu
  Cc: netdev, kuba, davem, edumazet, pabeni, shannon.nelson, jiri,
	stfomichev, horms, linux-kernel

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 10 Oct 2024 04:00:24 +0000 you wrote:
> The first 2 patches improve the netdevsim ipsec debug output with better
> format. The 3rd patch update the selftests.
> 
> v2: update rtnetlink selftest with new output format (Stanislav Fomichev, Jakub Kicinski)
> 
> Hangbin Liu (3):
>   netdevsim: print human readable IP address
>   netdevsim: copy addresses for both in and out paths
>   selftests: rtnetlink: update netdevsim ipsec output format
> 
> [...]

Here is the summary with links:
  - [PATCHv2,net-next,1/3] netdevsim: print human readable IP address
    https://git.kernel.org/netdev/net-next/c/c71bc6da6198
  - [PATCHv2,net-next,2/3] netdevsim: copy addresses for both in and out paths
    https://git.kernel.org/netdev/net-next/c/2cf567f421db
  - [PATCHv2,net-next,3/3] selftests: rtnetlink: update netdevsim ipsec output format
    https://git.kernel.org/netdev/net-next/c/3ec920bb978c

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-10-11 22:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-10  4:00 [PATCHv2 net-next 0/3] netdevsim: better ipsec output format Hangbin Liu
2024-10-10  4:00 ` [PATCHv2 net-next 1/3] netdevsim: print human readable IP address Hangbin Liu
2024-10-10  4:00 ` [PATCHv2 net-next 2/3] netdevsim: copy addresses for both in and out paths Hangbin Liu
2024-10-10  4:00 ` [PATCHv2 net-next 3/3] selftests: rtnetlink: update netdevsim ipsec output format Hangbin Liu
2024-10-11 14:50   ` Stanislav Fomichev
2024-10-11 22:50 ` [PATCHv2 net-next 0/3] netdevsim: better " patchwork-bot+netdevbpf

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).