Message ID | 20241008122134.4343-3-liuhangbin@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | netdevsim: better ipsec output format. | expand |
On Tue, Oct 08, 2024 at 12:21:34PM +0000, Hangbin Liu wrote: > 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") > Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Reviewed-by: Simon Horman <horms@kernel.org>
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));
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") Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- drivers/net/netdevsim/ipsec.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)