[1/5] common/cnxk: fix IPsec IPv6 tunnel address byte swap

Message ID 20230425104010.339177-1-rbhansali@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Jerin Jacob
Headers
Series [1/5] common/cnxk: fix IPsec IPv6 tunnel address byte swap |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Rahul Bhansali April 25, 2023, 10:40 a.m. UTC
  Fix the IPsec IPv6 tunnel address bytes swap during SA
configurations in session create/update.

Fixes: 78d03027f2c ("common/cnxk: add IPsec common code")

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
---
 drivers/common/cnxk/cnxk_security.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
  

Comments

Jerin Jacob May 18, 2023, 6:31 a.m. UTC | #1
On Tue, Apr 25, 2023 at 4:11 PM Rahul Bhansali <rbhansali@marvell.com> wrote:
>
> Fix the IPsec IPv6 tunnel address bytes swap during SA
> configurations in session create/update.
>
> Fixes: 78d03027f2c ("common/cnxk: add IPsec common code")

Fix the following in the series


Is it candidate for Cc: stable@dpdk.org backport?
        common/cnxk: fix IPsec IPv6 tunnel address byte swap
        event/cnxk: fix Tx adapter data pointer
        event/cnxk: fix mempool cookies check

Invalid patch(es) found - checked 5 patches
check-git-log failed

### [PATCH] common/cnxk: fix IPsec IPv6 tunnel address byte swap

WARNING:BAD_FIXES_TAG: Please use correct Fixes: style 'Fixes: <12
chars of sha1> ("<title line>")' - ie: 'Fixes: 78d03027f2cc
("common/cnxk: add IPsec common code")'
#9:
Fixes: 78d03027f2c ("common/cnxk: add IPsec common code")

total: 0 errors, 1 warnings, 34 lines checked

### [PATCH] event/cnxk: fix Tx adapter data pointer

WARNING:BAD_FIXES_TAG: Please use correct Fixes: style 'Fixes: <12
chars of sha1> ("<title line>")' - ie: 'Fixes: 6a24c7c4bcd1
("event/cnxk: add Tx adapter freeing")'
#12:
Fixes: 6a24c7c4bcd ("event/cnxk: add Tx adapter freeing")

total: 0 errors, 1 warnings, 7 lines checked

### [PATCH] event/cnxk: fix mempool cookies check

WARNING:BAD_FIXES_TAG: Please use correct Fixes: style 'Fixes: <12
chars of sha1> ("<title line>")' - ie: 'Fixes: 7a709964d9bb
("net/cnxk: use NPA batch burst free for meta buffers")'
#9:
Fixes: 7a709964d9b ("net/cnxk: use NPA batch burst free for meta buffers")

total: 0 errors, 1 warnings, 19 lines checked

2/5 valid patches
checkpatch failed
>
> Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
> ---
>  drivers/common/cnxk/cnxk_security.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/drivers/common/cnxk/cnxk_security.c b/drivers/common/cnxk/cnxk_security.c
> index 79427d48fe..13ca2c7791 100644
> --- a/drivers/common/cnxk/cnxk_security.c
> +++ b/drivers/common/cnxk/cnxk_security.c
> @@ -274,6 +274,14 @@ ot_ipsec_inb_ctx_size(struct roc_ot_ipsec_inb_sa *sa)
>         return size;
>  }
>
> +static void
> +ot_ipsec_update_ipv6_addr_endianness(uint64_t *addr)
> +{
> +       *addr = rte_be_to_cpu_64(*addr);
> +       addr++;
> +       *addr = rte_be_to_cpu_64(*addr);
> +}
> +
>  static int
>  ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa,
>                              struct rte_security_ipsec_xform *ipsec_xfrm)
> @@ -310,6 +318,10 @@ ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa,
>                 memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr,
>                        sizeof(struct in6_addr));
>
> +               /* IP Source and Dest are in LE/CPU endian */
> +               ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr);
> +               ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr);
> +
>                 break;
>         default:
>                 return -EINVAL;
> @@ -499,6 +511,10 @@ cnxk_ot_ipsec_outb_sa_fill(struct roc_ot_ipsec_outb_sa *sa,
>                 memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr,
>                        sizeof(struct in6_addr));
>
> +               /* IP Source and Dest are in LE/CPU endian */
> +               ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr);
> +               ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr);
> +
>                 /* Outer header flow label source */
>                 if (!ipsec_xfrm->options.copy_flabel) {
>                         sa->w2.s.ipv4_df_src_or_ipv6_flw_lbl_src =
> --
> 2.25.1
>
  

Patch

diff --git a/drivers/common/cnxk/cnxk_security.c b/drivers/common/cnxk/cnxk_security.c
index 79427d48fe..13ca2c7791 100644
--- a/drivers/common/cnxk/cnxk_security.c
+++ b/drivers/common/cnxk/cnxk_security.c
@@ -274,6 +274,14 @@  ot_ipsec_inb_ctx_size(struct roc_ot_ipsec_inb_sa *sa)
 	return size;
 }
 
+static void
+ot_ipsec_update_ipv6_addr_endianness(uint64_t *addr)
+{
+	*addr = rte_be_to_cpu_64(*addr);
+	addr++;
+	*addr = rte_be_to_cpu_64(*addr);
+}
+
 static int
 ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa,
 			     struct rte_security_ipsec_xform *ipsec_xfrm)
@@ -310,6 +318,10 @@  ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa,
 		memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr,
 		       sizeof(struct in6_addr));
 
+		/* IP Source and Dest are in LE/CPU endian */
+		ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr);
+		ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr);
+
 		break;
 	default:
 		return -EINVAL;
@@ -499,6 +511,10 @@  cnxk_ot_ipsec_outb_sa_fill(struct roc_ot_ipsec_outb_sa *sa,
 		memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr,
 		       sizeof(struct in6_addr));
 
+		/* IP Source and Dest are in LE/CPU endian */
+		ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr);
+		ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr);
+
 		/* Outer header flow label source */
 		if (!ipsec_xfrm->options.copy_flabel) {
 			sa->w2.s.ipv4_df_src_or_ipv6_flw_lbl_src =