> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c > b/drivers/net/ixgbe/ixgbe_ethdev.c > index 14b9c53..fcabd5e 100644 > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > @@ -61,6 +61,7 @@ > #include <rte_random.h> > #include <rte_dev.h> > #include <rte_hash_crc.h> > +#include <rte_security_driver.h> > > #include "ixgbe_logs.h" > #include "base/ixgbe_api.h" > @@ -1132,6 +1133,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev) > IXGBE_DEV_PRIVATE_TO_FILTER_INFO(eth_dev->data->dev_private); > struct ixgbe_bw_conf *bw_conf = > IXGBE_DEV_PRIVATE_TO_BW_CONF(eth_dev->data->dev_private); > + struct rte_security_ctx *security_instance; > uint32_t ctrl_ext; > uint16_t csum; > int diag, i; > @@ -1139,6 +1141,17 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev) > PMD_INIT_FUNC_TRACE(); > > eth_dev->dev_ops = &ixgbe_eth_dev_ops; > + security_instance = rte_malloc("rte_security_instances_ops", > + sizeof(struct rte_security_ctx), 0); > + if (security_instance == NULL) > + return -ENOMEM; > + security_instance->state = RTE_SECURITY_INSTANCE_VALID; > + security_instance->device = (void *)eth_dev; > + security_instance->ops = &ixgbe_security_ops; > + security_instance->sess_cnt = 0; > +
As another nit - can we move the code above into a separate function into ixgbe_ipsec.c? Something like ixgbe_ipsec_ctx_create() or so? Konstantin > + eth_dev->data->security_ctx = security_instance; > + > eth_dev->rx_pkt_burst = &ixgbe_recv_pkts; > eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; > eth_dev->tx_pkt_prepare = &ixgbe_prep_pkts; > @@ -1169,6 +1182,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev) > > rte_eth_copy_pci_info(eth_dev, pci_dev); > eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE; > + eth_dev->data->dev_flags |= RTE_ETH_DEV_SECURITY; > > /* Vendor and Device ID need to be set before init of shared code */ > hw->device_id = pci_dev->id.device_id; > @@ -1401,6 +1415,8 @@ eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev) > /* Remove all Traffic Manager configuration */ > ixgbe_tm_conf_uninit(eth_dev); > > + rte_free(eth_dev->data->security_ctx); > + > return 0; > } >