[dpdk-dev] [PATCH 07/11] examples/ipsec-secgw: Fixed phyiscal address of aad

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Mon Oct 16 11:39:39 CEST 2017


On 14/10/2017 14:27, aviadye at dev.mellanox.co.il wrote:
> From: Aviad Yehezkel <aviadye at mellanox.com>
>
> Signed-off-by: Aviad Yehezkel <aviadye at mellanox.com>
> ---
>   examples/ipsec-secgw/esp.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/examples/ipsec-secgw/esp.c b/examples/ipsec-secgw/esp.c
> index 689e917..aa2233d 100644
> --- a/examples/ipsec-secgw/esp.c
> +++ b/examples/ipsec-secgw/esp.c
> @@ -355,8 +355,7 @@ esp_outbound(struct rte_mbuf *m, struct ipsec_sa *sa,
>   		aad = get_aad(m);
>   		memcpy(aad, esp, 8);
>   		sym_cop->aead.aad.data = aad;
> -		sym_cop->aead.aad.phys_addr = rte_pktmbuf_mtophys_offset(m,
> -				aad - rte_pktmbuf_mtod(m, uint8_t *));
> +		sym_cop->aead.aad.phys_addr = rte_mem_virt2phy(aad);
>   

That function is very expensive and should not be used in data path.
You should use the phys_addr in the crypto_op to calculate proper value.

Thanks,
Sergio

>   		sym_cop->aead.digest.data = rte_pktmbuf_mtod_offset(m, uint8_t *,
>   			rte_pktmbuf_pkt_len(m) - sa->digest_len);




More information about the dev mailing list