mbox series

[net-next,00/13] Add ethtool ntuple filters support

Message ID 20201102061122.8915-1-naveenm@marvell.com
Headers show
Series Add ethtool ntuple filters support | expand

Message

Naveen Mamindlapalli Nov. 2, 2020, 6:11 a.m. UTC
This patch series adds support for ethtool ntuple filters, unicast
address filtering, VLAN offload and SR-IOV ndo handlers. All of the
above features are based on the Admin Function(AF) driver support to
install and delete the low level MCAM entries. Each MCAM entry is
programmed with the packet fields to match and what actions to take
if the match succeeds. The PF driver requests AF driver to allocate
set of MCAM entries to be used to install the flows by that PF. The
entries will be freed when the PF driver is unloaded.

* The patches 1 to 4 adds AF driver infrastructure to install and
  delete the low level MCAM flow entries.
* Patch 5 adds ethtool ntuple filter support.
* Patch 6 adds unicast MAC address filtering.
* Patch 7 adds support for dumping the MCAM entries via debugfs.
* Patches 8 to 10 adds support for VLAN offload.
* Patch 10 to 11 adds support for SR-IOV ndo handlers.
* Patch 12 adds support to read the MCAM entries.

Misc:
* Removed redundant mailbox NIX_RXVLAN_ALLOC.

Hariprasad Kelam (3):
  octeontx2-pf: Add support for unicast MAC address filtering
  octeontx2-pf: Implement ingress/egress VLAN offload
  octeontx2-af: Handle PF-VF mac address changes

Naveen Mamindlapalli (2):
  octeontx2-pf: Add support for SR-IOV management functions
  octeontx2-af: Add new mbox messages to retrieve MCAM entries

Stanislaw Kardach (1):
  octeontx2-af: Modify default KEX profile to extract TX packet fields

Subbaraya Sundeep (6):
  octeontx2-af: Verify MCAM entry channel and PF_FUNC
  octeontx2-af: Generate key field bit mask from KEX profile
  octeontx2-af: Add mbox messages to install and delete MCAM rules
  octeontx2-pf: Add support for ethtool ntuple filters
  octeontx2-af: Add debugfs entry to dump the MCAM rules
  octeontx2-af: Delete NIX_RXVLAN_ALLOC mailbox message

Vamsi Attunuru (1):
  octeontx2-af: Modify nix_vtag_cfg mailbox to support TX VTAG entries

 drivers/net/ethernet/marvell/octeontx2/af/Makefile |    2 +-
 drivers/net/ethernet/marvell/octeontx2/af/common.h |    2 +
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h   |  189 ++-
 drivers/net/ethernet/marvell/octeontx2/af/npc.h    |   58 +-
 .../ethernet/marvell/octeontx2/af/npc_profile.h    |   71 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    |   16 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h    |  102 +-
 .../ethernet/marvell/octeontx2/af/rvu_debugfs.c    |  197 +++
 .../net/ethernet/marvell/octeontx2/af/rvu_nix.c    |  305 ++++-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc.c    |  462 ++++++-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 1334 ++++++++++++++++++++
 .../net/ethernet/marvell/octeontx2/af/rvu_struct.h |   11 +
 .../net/ethernet/marvell/octeontx2/nic/Makefile    |    2 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.c   |    8 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.h   |   53 +
 .../ethernet/marvell/octeontx2/nic/otx2_ethtool.c  |   58 +-
 .../ethernet/marvell/octeontx2/nic/otx2_flows.c    |  854 +++++++++++++
 .../net/ethernet/marvell/octeontx2/nic/otx2_pf.c   |  313 ++++-
 .../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c |   16 +
 .../net/ethernet/marvell/octeontx2/nic/otx2_vf.c   |   13 +
 20 files changed, 3906 insertions(+), 160 deletions(-)
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c

Comments

Jakub Kicinski Nov. 2, 2020, 5:52 p.m. UTC | #1
On Mon, 2 Nov 2020 11:41:11 +0530 Naveen Mamindlapalli wrote:
> From: Subbaraya Sundeep <sbhatta@marvell.com>

> 

> This patch adds support to verify the channel number sent by

> mailbox requester before writing MCAM entry for Ingress packets.

> Similarly for Egress packets, verifying the PF_FUNC sent by the

> mailbox user.

> 

> Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>

> Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>

> Signed-off-by: Sunil Goutham <sgoutham@marvell.com>

> Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>


drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c:81:17: warning: incorrect type in assignment (different base types)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c:81:17:    expected unsigned short [assigned] [usertype] pf_func
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c:81:17:    got restricted __be16 [usertype]
Jakub Kicinski Nov. 2, 2020, 5:54 p.m. UTC | #2
On Mon, 2 Nov 2020 11:41:19 +0530 Naveen Mamindlapalli wrote:
> This patch adds support for ndo_set_vf_mac, ndo_set_vf_vlan

> and ndo_get_vf_config handlers. The traffic redirection

> based on the VF mac address or vlan id is done by installing

> MCAM rules. Reserved RX_VTAG_TYPE7 in each NIXLF for VF VLAN

> which strips the VLAN tag from ingress VLAN traffic. The NIX PF

> allocates two MCAM entries for VF VLAN feature, one used for

> ingress VTAG strip and another entry for egress VTAG insertion.

> 

> This patch also updates the MAC address in PF installed VF VLAN

> rule upon receiving nix_lf_start_rx mbox request for VF since

> Administrative Function driver will assign a valid MAC addr

> in nix_lf_start_rx function.

> 

> Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>

> Co-developed-by: Tomasz Duszynski <tduszynski@marvell.com>

> Signed-off-by: Tomasz Duszynski <tduszynski@marvell.com>

> Signed-off-by: Sunil Goutham <sgoutham@marvell.com>

> Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>


drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2097:31: warning: cast to restricted __be16
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2097:31: warning: cast to restricted __be16
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2097:31: warning: cast to restricted __be16
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2097:31: warning: cast to restricted __be16
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2158:55: warning: incorrect type in argument 5 (different base types)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2158:55:    expected unsigned short [usertype] proto
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c:2158:55:    got restricted __be16 [usertype] proto
203a211,214
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c: In function ‘npc_update_dmac_value’:
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c:1236:24: warning: implicit conversion from ‘enum header_fields’ to ‘enum key_fields’ [-Wenum-conversion]
 1236 |  npc_update_entry(rvu, NPC_DMAC, entry,
      |                        ^~~~~~~~