Add new macsec generic callbacks to ixgbe driver. Reuse existing rte_pmd_ driver API, keeping it to preserve backward API compatibility
Signed-off-by: Igor Russkikh <igor.russk...@aquantia.com> --- drivers/net/ixgbe/ixgbe_ethdev.c | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 975fa474ce83..e2123062c185 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -46,6 +46,7 @@ #include "base/ixgbe_type.h" #include "base/ixgbe_phy.h" #include "ixgbe_regs.h" +#include "rte_pmd_ixgbe.h" /* * High threshold controlling when to start sending XOFF frames. Must be at @@ -370,6 +371,17 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev, static int ixgbe_filter_restore(struct rte_eth_dev *dev); static void ixgbe_l2_tunnel_conf(struct rte_eth_dev *dev); +static int ixgbe_macsec_enable(struct rte_eth_dev *dev, + uint8_t encr, uint8_t repl_prot); +static int ixgbe_macsec_disable(struct rte_eth_dev *dev); +static int ixgbe_macsec_config_txsc(struct rte_eth_dev *dev, uint8_t *mac); +static int ixgbe_macsec_config_rxsc(struct rte_eth_dev *dev, + uint8_t *mac, uint16_t pi); +static int ixgbe_macsec_select_txsa(struct rte_eth_dev *dev, uint8_t idx, + uint8_t an, uint32_t pn, uint8_t *key); +static int ixgbe_macsec_select_rxsa(struct rte_eth_dev *dev, uint8_t idx, + uint8_t an, uint32_t pn, uint8_t *key); + /* * Define VF Stats MACRO for Non "cleared on read" register */ @@ -581,6 +593,12 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = { .udp_tunnel_port_add = ixgbe_dev_udp_tunnel_port_add, .udp_tunnel_port_del = ixgbe_dev_udp_tunnel_port_del, .tm_ops_get = ixgbe_tm_ops_get, + .macsec_enable = ixgbe_macsec_enable, + .macsec_disable = ixgbe_macsec_disable, + .macsec_config_rxsc = ixgbe_macsec_config_rxsc, + .macsec_config_txsc = ixgbe_macsec_config_txsc, + .macsec_select_rxsa = ixgbe_macsec_select_rxsa, + .macsec_select_txsa = ixgbe_macsec_select_txsa, }; /* @@ -8652,6 +8670,43 @@ ixgbe_clear_all_l2_tn_filter(struct rte_eth_dev *dev) return 0; } +static int ixgbe_macsec_enable(struct rte_eth_dev *dev, + uint8_t encr, uint8_t repl_prot) +{ + return rte_pmd_ixgbe_macsec_enable(dev->data->port_id, + encr, repl_prot); +} + +static int ixgbe_macsec_disable(struct rte_eth_dev *dev) +{ + return rte_pmd_ixgbe_macsec_disable(dev->data->port_id); +} + +static int ixgbe_macsec_config_txsc(struct rte_eth_dev *dev, uint8_t *mac) +{ + return rte_pmd_ixgbe_macsec_config_txsc(dev->data->port_id, mac); +} + +static int ixgbe_macsec_config_rxsc(struct rte_eth_dev *dev, + uint8_t *mac, uint16_t pi) +{ + return rte_pmd_ixgbe_macsec_config_rxsc(dev->data->port_id, mac, pi); +} + +static int ixgbe_macsec_select_txsa(struct rte_eth_dev *dev, uint8_t idx, + uint8_t an, uint32_t pn, uint8_t *key) +{ + return rte_pmd_ixgbe_macsec_select_txsa(dev->data->port_id, idx, an, + pn, key); +} + +static int ixgbe_macsec_select_rxsa(struct rte_eth_dev *dev, uint8_t idx, + uint8_t an, uint32_t pn, uint8_t *key) +{ + return rte_pmd_ixgbe_macsec_select_txsa(dev->data->port_id, idx, an, + pn, key); +} + RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd); RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map); RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe, "* igb_uio | uio_pci_generic | vfio-pci"); -- 2.17.1