* [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