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);


Reply via email to