mbox series

[net-next,v3,0/9] Introduce RVU representors

Message ID 20240428105312.9731-1-gakula@marvell.com (mailing list archive)
Headers show
Series Introduce RVU representors | expand

Message

Geethasowjanya Akula April 28, 2024, 10:53 a.m. UTC
This series adds representor support for each rvu devices.
When switchdev mode is enabled, representor netdev is registered
for each rvu device. In implementation of representor model, 
one NIX HW LF with multiple SQ and RQ is reserved, where each
RQ and SQ of the LF are mapped to a representor. A loopback channel
is reserved to support packet path between representors and VFs.
CN10K silicon supports 2 types of MACs, RPM and SDP. This
patch set adds representor support for both RPM and SDP MAC
interfaces.

- Patch 1: Refactors and exports the shared service functions.
- patch 2: Implements basic representor driver.
- patch 3: Add devlink support to create representor netdevs that
  can be used to manage VFs.
- patch 4: Implements basec netdev_ndo_ops.
- Patch 5: Installs tcam rules to route packets between representor and
	   VFs.
- patch 6: Enables fetching VF stats via representor interface
- Patch 7: Adds support to sync link state between representors and VFs .
- patch 8: Enables configuring VF MTU via representor netdevs.
- patch 9: Add representors for sdp MAC

Command to create VF representor
#devlink dev eswitch set pci/0002:1c:00.0 mode switchdev
VF representors are created for each VF when switch mode is set switchdev on representor PCI device
# devlink dev eswitch set pci/0002:1c:00.0  mode switchdev 
# ip link show
25: r0p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 32:0f:0f:f0:60:f1 brd ff:ff:ff:ff:ff:ff
26: r1p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 3e:5d:9a:4d:e7:7b brd ff:ff:ff:ff:ff:ff

-----------
v1-v2:
 -Fixed build warnings.
 -Address review comments provided by "Kalesh Anakkur Purayil".

v2-v3:
 - Used extack for error messages.
 - As suggested reworked commit messages.
 - Fixed sparse warning. 

Geetha sowjanya (9):
  octeontx2-pf: Refactoring RVU driver
  octeontx2-pf: RVU representor driver
  octeontx2-pf: Create representor netdev
  octeontx2-pf: Add basic net_device_ops
  octeontx2-af: Add packet path between representor and VF
  octeontx2-pf: Get VF stats via representor
  octeontx2-pf: Add support to sync link state between representor and
    VFs
  octeontx2-pf: Configure VF mtu via representor
  octeontx2-pf: Add representors for sdp MAC

 .../net/ethernet/marvell/octeontx2/Kconfig    |   8 +
 .../ethernet/marvell/octeontx2/af/Makefile    |   3 +-
 .../ethernet/marvell/octeontx2/af/common.h    |   2 +
 .../net/ethernet/marvell/octeontx2/af/mbox.h  |  73 +++
 .../net/ethernet/marvell/octeontx2/af/npc.h   |   1 +
 .../net/ethernet/marvell/octeontx2/af/rvu.h   |  30 +-
 .../marvell/octeontx2/af/rvu_debugfs.c        |  27 -
 .../marvell/octeontx2/af/rvu_devlink.c        |   6 +
 .../ethernet/marvell/octeontx2/af/rvu_nix.c   |  75 ++-
 .../marvell/octeontx2/af/rvu_npc_fs.c         |   4 +
 .../ethernet/marvell/octeontx2/af/rvu_rep.c   | 457 ++++++++++++++
 .../marvell/octeontx2/af/rvu_struct.h         |  26 +
 .../marvell/octeontx2/af/rvu_switch.c         |  20 +-
 .../ethernet/marvell/octeontx2/nic/Makefile   |   2 +
 .../ethernet/marvell/octeontx2/nic/cn10k.c    |   4 +-
 .../ethernet/marvell/octeontx2/nic/cn10k.h    |   2 +-
 .../marvell/octeontx2/nic/otx2_common.c       |  53 +-
 .../marvell/octeontx2/nic/otx2_common.h       |  83 ++-
 .../marvell/octeontx2/nic/otx2_devlink.c      |  47 ++
 .../ethernet/marvell/octeontx2/nic/otx2_pf.c  | 305 ++++++---
 .../ethernet/marvell/octeontx2/nic/otx2_reg.h |   1 +
 .../marvell/octeontx2/nic/otx2_txrx.c         |  35 +-
 .../marvell/octeontx2/nic/otx2_txrx.h         |   3 +-
 .../ethernet/marvell/octeontx2/nic/otx2_vf.c  |  18 +-
 .../net/ethernet/marvell/octeontx2/nic/rep.c  | 596 ++++++++++++++++++
 .../net/ethernet/marvell/octeontx2/nic/rep.h  |  51 ++
 26 files changed, 1707 insertions(+), 225 deletions(-)
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.h

Comments

Jiri Pirko April 29, 2024, 11:31 a.m. UTC | #1
Sun, Apr 28, 2024 at 12:53:03PM CEST, gakula@marvell.com wrote:
>This series adds representor support for each rvu devices.
>When switchdev mode is enabled, representor netdev is registered
>for each rvu device. In implementation of representor model, 
>one NIX HW LF with multiple SQ and RQ is reserved, where each
>RQ and SQ of the LF are mapped to a representor. A loopback channel
>is reserved to support packet path between representors and VFs.
>CN10K silicon supports 2 types of MACs, RPM and SDP. This
>patch set adds representor support for both RPM and SDP MAC
>interfaces.
>
>- Patch 1: Refactors and exports the shared service functions.
>- patch 2: Implements basic representor driver.
>- patch 3: Add devlink support to create representor netdevs that
>  can be used to manage VFs.
>- patch 4: Implements basec netdev_ndo_ops.
>- Patch 5: Installs tcam rules to route packets between representor and
>	   VFs.
>- patch 6: Enables fetching VF stats via representor interface
>- Patch 7: Adds support to sync link state between representors and VFs .
>- patch 8: Enables configuring VF MTU via representor netdevs.
>- patch 9: Add representors for sdp MAC
>
>Command to create VF representor
>#devlink dev eswitch set pci/0002:1c:00.0 mode switchdev
>VF representors are created for each VF when switch mode is set switchdev on representor PCI device
># devlink dev eswitch set pci/0002:1c:00.0  mode switchdev 

I specifically asked for output of:
devlink dev
devlink port

Why you ignored my requests?


># ip link show
>25: r0p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>    link/ether 32:0f:0f:f0:60:f1 brd ff:ff:ff:ff:ff:ff
>26: r1p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>    link/ether 3e:5d:9a:4d:e7:7b brd ff:ff:ff:ff:ff:ff
>
>-----------
>v1-v2:
> -Fixed build warnings.
> -Address review comments provided by "Kalesh Anakkur Purayil".
>
>v2-v3:
> - Used extack for error messages.
> - As suggested reworked commit messages.
> - Fixed sparse warning. 
>
>Geetha sowjanya (9):
>  octeontx2-pf: Refactoring RVU driver
>  octeontx2-pf: RVU representor driver
>  octeontx2-pf: Create representor netdev
>  octeontx2-pf: Add basic net_device_ops
>  octeontx2-af: Add packet path between representor and VF
>  octeontx2-pf: Get VF stats via representor
>  octeontx2-pf: Add support to sync link state between representor and
>    VFs
>  octeontx2-pf: Configure VF mtu via representor
>  octeontx2-pf: Add representors for sdp MAC
>
> .../net/ethernet/marvell/octeontx2/Kconfig    |   8 +
> .../ethernet/marvell/octeontx2/af/Makefile    |   3 +-
> .../ethernet/marvell/octeontx2/af/common.h    |   2 +
> .../net/ethernet/marvell/octeontx2/af/mbox.h  |  73 +++
> .../net/ethernet/marvell/octeontx2/af/npc.h   |   1 +
> .../net/ethernet/marvell/octeontx2/af/rvu.h   |  30 +-
> .../marvell/octeontx2/af/rvu_debugfs.c        |  27 -
> .../marvell/octeontx2/af/rvu_devlink.c        |   6 +
> .../ethernet/marvell/octeontx2/af/rvu_nix.c   |  75 ++-
> .../marvell/octeontx2/af/rvu_npc_fs.c         |   4 +
> .../ethernet/marvell/octeontx2/af/rvu_rep.c   | 457 ++++++++++++++
> .../marvell/octeontx2/af/rvu_struct.h         |  26 +
> .../marvell/octeontx2/af/rvu_switch.c         |  20 +-
> .../ethernet/marvell/octeontx2/nic/Makefile   |   2 +
> .../ethernet/marvell/octeontx2/nic/cn10k.c    |   4 +-
> .../ethernet/marvell/octeontx2/nic/cn10k.h    |   2 +-
> .../marvell/octeontx2/nic/otx2_common.c       |  53 +-
> .../marvell/octeontx2/nic/otx2_common.h       |  83 ++-
> .../marvell/octeontx2/nic/otx2_devlink.c      |  47 ++
> .../ethernet/marvell/octeontx2/nic/otx2_pf.c  | 305 ++++++---
> .../ethernet/marvell/octeontx2/nic/otx2_reg.h |   1 +
> .../marvell/octeontx2/nic/otx2_txrx.c         |  35 +-
> .../marvell/octeontx2/nic/otx2_txrx.h         |   3 +-
> .../ethernet/marvell/octeontx2/nic/otx2_vf.c  |  18 +-
> .../net/ethernet/marvell/octeontx2/nic/rep.c  | 596 ++++++++++++++++++
> .../net/ethernet/marvell/octeontx2/nic/rep.h  |  51 ++
> 26 files changed, 1707 insertions(+), 225 deletions(-)
> create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
> create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.c
> create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.h
>
>-- 
>2.25.1
>
>
Geethasowjanya Akula April 29, 2024, 1:51 p.m. UTC | #2
> -----Original Message-----
> From: Jiri Pirko <jiri@resnulli.us>
> Sent: Monday, April 29, 2024 5:01 PM
> To: Geethasowjanya Akula <gakula@marvell.com>
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; kuba@kernel.org;
> davem@davemloft.net; pabeni@redhat.com; edumazet@google.com; Sunil
> Kovvuri Goutham <sgoutham@marvell.com>; Subbaraya Sundeep Bhatta
> <sbhatta@marvell.com>; Hariprasad Kelam <hkelam@marvell.com>
> Subject: [EXTERNAL] Re: [net-next PATCH v3 0/9] Introduce RVU representors
> 
> ----------------------------------------------------------------------
> Sun, Apr 28, 2024 at 12:53:03PM CEST, gakula@marvell.com wrote:
> >This series adds representor support for each rvu devices.
> >When switchdev mode is enabled, representor netdev is registered for
> >each rvu device. In implementation of representor model, one NIX HW LF
> >with multiple SQ and RQ is reserved, where each RQ and SQ of the LF are
> >mapped to a representor. A loopback channel is reserved to support
> >packet path between representors and VFs.
> >CN10K silicon supports 2 types of MACs, RPM and SDP. This patch set
> >adds representor support for both RPM and SDP MAC interfaces.
> >
> >- Patch 1: Refactors and exports the shared service functions.
> >- patch 2: Implements basic representor driver.
> >- patch 3: Add devlink support to create representor netdevs that
> >  can be used to manage VFs.
> >- patch 4: Implements basec netdev_ndo_ops.
> >- Patch 5: Installs tcam rules to route packets between representor and
> >	   VFs.
> >- patch 6: Enables fetching VF stats via representor interface
> >- Patch 7: Adds support to sync link state between representors and VFs .
> >- patch 8: Enables configuring VF MTU via representor netdevs.
> >- patch 9: Add representors for sdp MAC
> >
> >Command to create VF representor
> >#devlink dev eswitch set pci/0002:1c:00.0 mode switchdev VF
> >representors are created for each VF when switch mode is set switchdev
> >on representor PCI device # devlink dev eswitch set pci/0002:1c:00.0
> >mode switchdev
> 
> I specifically asked for output of:
> devlink dev
> devlink port
> 
> Why you ignored my requests?
> 
Sorry, I have interrupted wrongly and sent the output as response to the previous email. 
Will add output to the commit message in next version. 
> 
> ># ip link show
> >25: r0p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode
> DEFAULT group default qlen 1000
> >    link/ether 32:0f:0f:f0:60:f1 brd ff:ff:ff:ff:ff:ff
> >26: r1p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode
> DEFAULT group default qlen 1000
> >    link/ether 3e:5d:9a:4d:e7:7b brd ff:ff:ff:ff:ff:ff
> >
> >-----------
> >v1-v2:
> > -Fixed build warnings.
> > -Address review comments provided by "Kalesh Anakkur Purayil".
> >
> >v2-v3:
> > - Used extack for error messages.
> > - As suggested reworked commit messages.
> > - Fixed sparse warning.
> >
> >Geetha sowjanya (9):
> >  octeontx2-pf: Refactoring RVU driver
> >  octeontx2-pf: RVU representor driver
> >  octeontx2-pf: Create representor netdev
> >  octeontx2-pf: Add basic net_device_ops
> >  octeontx2-af: Add packet path between representor and VF
> >  octeontx2-pf: Get VF stats via representor
> >  octeontx2-pf: Add support to sync link state between representor and
> >    VFs
> >  octeontx2-pf: Configure VF mtu via representor
> >  octeontx2-pf: Add representors for sdp MAC
> >
> > .../net/ethernet/marvell/octeontx2/Kconfig    |   8 +
> > .../ethernet/marvell/octeontx2/af/Makefile    |   3 +-
> > .../ethernet/marvell/octeontx2/af/common.h    |   2 +
> > .../net/ethernet/marvell/octeontx2/af/mbox.h  |  73 +++
> > .../net/ethernet/marvell/octeontx2/af/npc.h   |   1 +
> > .../net/ethernet/marvell/octeontx2/af/rvu.h   |  30 +-
> > .../marvell/octeontx2/af/rvu_debugfs.c        |  27 -
> > .../marvell/octeontx2/af/rvu_devlink.c        |   6 +
> > .../ethernet/marvell/octeontx2/af/rvu_nix.c   |  75 ++-
> > .../marvell/octeontx2/af/rvu_npc_fs.c         |   4 +
> > .../ethernet/marvell/octeontx2/af/rvu_rep.c   | 457 ++++++++++++++
> > .../marvell/octeontx2/af/rvu_struct.h         |  26 +
> > .../marvell/octeontx2/af/rvu_switch.c         |  20 +-
> > .../ethernet/marvell/octeontx2/nic/Makefile   |   2 +
> > .../ethernet/marvell/octeontx2/nic/cn10k.c    |   4 +-
> > .../ethernet/marvell/octeontx2/nic/cn10k.h    |   2 +-
> > .../marvell/octeontx2/nic/otx2_common.c       |  53 +-
> > .../marvell/octeontx2/nic/otx2_common.h       |  83 ++-
> > .../marvell/octeontx2/nic/otx2_devlink.c      |  47 ++
> > .../ethernet/marvell/octeontx2/nic/otx2_pf.c  | 305 ++++++---
> > .../ethernet/marvell/octeontx2/nic/otx2_reg.h |   1 +
> > .../marvell/octeontx2/nic/otx2_txrx.c         |  35 +-
> > .../marvell/octeontx2/nic/otx2_txrx.h         |   3 +-
> > .../ethernet/marvell/octeontx2/nic/otx2_vf.c  |  18 +-
> > .../net/ethernet/marvell/octeontx2/nic/rep.c  | 596 ++++++++++++++++++
> > .../net/ethernet/marvell/octeontx2/nic/rep.h  |  51 ++
> > 26 files changed, 1707 insertions(+), 225 deletions(-) create mode
> > 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
> > create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.c
> > create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/rep.h
> >
> >--
> >2.25.1
> >
> >