DPDK patches and discussions
 help / color / mirror / Atom feed
From: Igor Russkikh <Igor.Russkikh@aquantia.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Cc: Pavel Belous <Pavel.Belous@aquantia.com>,
	Wenzhuo Lu <wenzhuo.lu@intel.com>,
	Jingjing Wu <jingjing.wu@intel.com>,
	Bernard Iremonger <bernard.iremonger@intel.com>,
	John McNamara <john.mcnamara@intel.com>,
	Marko Kovacevic <marko.kovacevic@intel.com>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Ferruh Yigit <ferruh.yigit@intel.com>,
	Andrew Rybchenko <arybchenko@solarflare.com>,
	Igor Russkikh <Igor.Russkikh@aquantia.com>
Subject: [dpdk-dev] [PATCH 03/10] net/ixgbe: macsec callbacks implementation
Date: Wed, 10 Apr 2019 11:18:49 +0000	[thread overview]
Message-ID: <c6d31e4d4f71bb92bdbed53df1aaf7e0dc6825fe.1554894242.git.igor.russkikh@aquantia.com> (raw)
Message-ID: <20190410111849.N00Rc1Ks7yYoKrknzzcAFJXQDgbxT5zKj-htbpzrLLU@z> (raw)
In-Reply-To: <cover.1554894242.git.igor.russkikh@aquantia.com>

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.russkikh@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


  parent reply	other threads:[~2019-04-10 11:19 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-10 11:18 [dpdk-dev] [PATCH 00/10] add MACSEC hw offload to atlantic PMD Igor Russkikh
2019-04-10 11:18 ` Igor Russkikh
2019-04-10 11:18 ` [dpdk-dev] [PATCH 01/10] ethdev: introduce MACSEC device ops Igor Russkikh
2019-04-10 11:18   ` Igor Russkikh
2019-04-10 11:46   ` Thomas Monjalon
2019-04-10 11:46     ` Thomas Monjalon
2019-04-11 12:37     ` Igor Russkikh
2019-04-11 12:37       ` Igor Russkikh
2019-04-11 21:15       ` Thomas Monjalon
2019-04-11 21:15         ` Thomas Monjalon
2019-04-12  8:50         ` Igor Russkikh
2019-04-12  8:50           ` Igor Russkikh
2019-04-12 11:22           ` Thomas Monjalon
2019-04-12 11:22             ` Thomas Monjalon
2019-04-12 18:26   ` Ferruh Yigit
2019-04-12 18:26     ` Ferruh Yigit
2019-04-13  7:24     ` Igor Russkikh
2019-04-13  7:24       ` Igor Russkikh
2019-04-16  9:43       ` Ferruh Yigit
2019-04-16  9:43         ` Ferruh Yigit
2019-04-16  9:58         ` Andrew Rybchenko
2019-04-16  9:58           ` Andrew Rybchenko
2019-04-16 10:11           ` Thomas Monjalon
2019-04-16 10:11             ` Thomas Monjalon
2019-04-16 10:19             ` Igor Russkikh
2019-04-16 10:19               ` Igor Russkikh
2019-04-10 11:18 ` [dpdk-dev] [PATCH 02/10] app/testpmd: use generic MACSEC API calls Igor Russkikh
2019-04-10 11:18   ` Igor Russkikh
2019-04-10 11:50   ` Thomas Monjalon
2019-04-10 11:50     ` Thomas Monjalon
2019-04-10 11:18 ` Igor Russkikh [this message]
2019-04-10 11:18   ` [dpdk-dev] [PATCH 03/10] net/ixgbe: macsec callbacks implementation Igor Russkikh
2019-04-10 11:18 ` [dpdk-dev] [PATCH 04/10] net/atlantic: macsec hardware structures declaration Igor Russkikh
2019-04-10 11:18   ` Igor Russkikh
2019-04-10 11:18 ` [dpdk-dev] [PATCH 05/10] net/atlantic: macsec configuration code Igor Russkikh
2019-04-10 11:18   ` Igor Russkikh
2019-04-10 11:19 ` [dpdk-dev] [PATCH 06/10] net/atlantic: macsec firmware interface Igor Russkikh
2019-04-10 11:19   ` Igor Russkikh
2019-04-10 11:19 ` [dpdk-dev] [PATCH 07/10] net/atlantic: interrupt handling of macsec events Igor Russkikh
2019-04-10 11:19   ` Igor Russkikh
2019-04-10 11:19 ` [dpdk-dev] [PATCH 08/10] net/atlantic: implement macsec statistics Igor Russkikh
2019-04-10 11:19   ` Igor Russkikh
2019-04-10 11:19 ` [dpdk-dev] [PATCH 09/10] net/atlantic: bump internal driver version Igor Russkikh
2019-04-10 11:19   ` Igor Russkikh
2019-04-10 11:19 ` [dpdk-dev] [PATCH 10/10] net/atlantic: indicate macsec in NIC docs Igor Russkikh
2019-04-10 11:19   ` Igor Russkikh
2019-04-10 11:47   ` Thomas Monjalon
2019-04-10 11:47     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c6d31e4d4f71bb92bdbed53df1aaf7e0dc6825fe.1554894242.git.igor.russkikh@aquantia.com \
    --to=igor.russkikh@aquantia.com \
    --cc=Pavel.Belous@aquantia.com \
    --cc=arybchenko@solarflare.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=marko.kovacevic@intel.com \
    --cc=thomas@monjalon.net \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).