Skip to content

Commit

Permalink
examples/l2fwd-crypto: fix packet length while decryption
Browse files Browse the repository at this point in the history
[ upstream commit 62c0b44 ]

There were some padding left when a packet gets decrypted. This
patch removes those padding.
This patch also removes the padding left after verifying auth of
the packet.

Fixes: e2cdfbd ("examples/l2fwd-crypto: fix port id type")

Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
  • Loading branch information
rohit15079 authored and cpaelzer committed May 17, 2021
1 parent a76754e commit 984c68b
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions examples/l2fwd-crypto/main.c
Expand Up @@ -616,12 +616,26 @@ l2fwd_simple_forward(struct rte_mbuf *m, uint16_t portid,
struct l2fwd_crypto_options *options)
{
uint16_t dst_port;
uint32_t pad_len;
struct rte_ipv4_hdr *ip_hdr;
uint32_t ipdata_offset = sizeof(struct rte_ether_hdr);

ip_hdr = (struct rte_ipv4_hdr *)(rte_pktmbuf_mtod(m, char *) +
ipdata_offset);
dst_port = l2fwd_dst_ports[portid];

if (options->mac_updating)
l2fwd_mac_updating(m, dst_port);

if (options->auth_xform.auth.op == RTE_CRYPTO_AUTH_OP_VERIFY)
rte_pktmbuf_trim(m, options->auth_xform.auth.digest_length);

if (options->cipher_xform.cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT) {
pad_len = m->pkt_len - rte_be_to_cpu_16(ip_hdr->total_length) -
ipdata_offset;
rte_pktmbuf_trim(m, pad_len);
}

l2fwd_send_packet(m, dst_port);
}

Expand Down

0 comments on commit 984c68b

Please sign in to comment.