On 14/10/2017 14:27, avia...@dev.mellanox.co.il wrote:
From: Aviad Yehezkel <avia...@mellanox.com>
Signed-off-by: Aviad Yehezkel <avia...@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);