Skip to content

Commit

Permalink
common/cnxk: fix IPsec IPv6 tunnel address byte swap
Browse files Browse the repository at this point in the history
[ upstream commit 733e9db805c3317e2d158906afa4385744855844 ]

Fix the IPsec IPv6 tunnel address bytes swap during SA
configurations in session create/update.

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

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
  • Loading branch information
Rahul Bhansali authored and kevintraynor committed Jul 11, 2023
1 parent baff317 commit 6f685b4
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/common/cnxk/cnxk_security.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,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)
Expand Down Expand Up @@ -237,6 +245,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;
Expand Down Expand Up @@ -421,6 +433,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 =
Expand Down

0 comments on commit 6f685b4

Please sign in to comment.