X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fcnxk%2Fcn10k_ethdev_sec.c;h=87bb691ab4aa711b06657e9ff33582a6c54b9795;hb=d49bdfcf0db9f03131fa377f959c807524959b35;hp=d7d6437f368bfddc90ecc54d37dab1b65f78c234;hpb=bea5d990a93b34b70ea27b5d942dd4422a86c061;p=dpdk.git diff --git a/drivers/net/cnxk/cn10k_ethdev_sec.c b/drivers/net/cnxk/cn10k_ethdev_sec.c index d7d6437f36..87bb691ab4 100644 --- a/drivers/net/cnxk/cn10k_ethdev_sec.c +++ b/drivers/net/cnxk/cn10k_ethdev_sec.c @@ -371,6 +371,13 @@ cn10k_eth_sec_session_create(void *device, if (rte_security_dynfield_register() < 0) return -ENOTSUP; + if (conf->ipsec.options.ip_reassembly_en && + dev->reass_dynfield_off < 0) { + if (rte_eth_ip_reassembly_dynfield_register(&dev->reass_dynfield_off, + &dev->reass_dynflag_bit) < 0) + return -rte_errno; + } + ipsec = &conf->ipsec; crypto = conf->crypto_xform; inbound = !!(ipsec->direction == RTE_SECURITY_IPSEC_SA_DIR_INGRESS); @@ -477,6 +484,12 @@ cn10k_eth_sec_session_create(void *device, sizeof(struct roc_ot_ipsec_inb_sa)); if (rc) goto mempool_put; + + if (conf->ipsec.options.ip_reassembly_en) { + inb_priv->reass_dynfield_off = dev->reass_dynfield_off; + inb_priv->reass_dynflag_bit = dev->reass_dynflag_bit; + } + } else { struct roc_ot_ipsec_outb_sa *outb_sa, *outb_sa_dptr; struct cn10k_outb_priv_data *outb_priv;