All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ioana Ciornei <ciorneiioana@gmail.com>
To: davem@davemloft.net, kuba@kernel.org, gregkh@linuxfoundation.org
Cc: andrew@lunn.ch, f.fainelli@gmail.com, olteanv@gmail.com,
	jiri@resnulli.us, ruxandra.radulescu@nxp.com,
	netdev@vger.kernel.org, Ioana Ciornei <ioana.ciornei@nxp.com>
Subject: [PATCH net-next 00/15] dpaa2-switch: CPU terminated traffic and move out of staging
Date: Wed, 10 Mar 2021 14:14:37 +0200	[thread overview]
Message-ID: <20210310121452.552070-1-ciorneiioana@gmail.com> (raw)

From: Ioana Ciornei <ioana.ciornei@nxp.com>

This patch set adds support for Rx/Tx capabilities on DPAA2 switch port
interfaces as well as fixing up some major blunders in how we take care
of the switching domains. The last patch actually moves the driver out
of staging now that the minimum requirements are met.

I am sending this directly towards the net-next tree so that I can use
the rest of the development cycle adding new features on top of the
current driver without worrying about merge conflicts between the
staging and net-next tree.

The control interface is comprised of 3 queues in total: Rx, Rx error
and Tx confirmation. In this patch set we only enable Rx and Tx conf.
All switch ports share the same queues when frames are redirected to the
CPU.  Information regarding the ingress switch port is passed through
frame metadata - the flow context field of the descriptor.

NAPI instances are also shared between switch net_devices and are
enabled when at least on one of the switch ports .dev_open() was called
and disabled when no switch port is still up.

Since the last version of this feature was submitted to the list, I
reworked how the switching and flooding domains are taken care of by the
driver, thus the switch is now able to also add the control port (the
queues that the CPU can dequeue from) into the flooding domains of a
port (broadcast, unknown unicast etc). With this, we are able to receive
and sent traffic from the switch interfaces.

Also, the capability to properly partition the DPSW object into multiple
switching domains was added so that when not under a bridge, the ports
are not actually capable to switch between them. This is possible by
adding a private FDB table per switch interface.  When multiple switch
interfaces are under the same bridge, they will all use the same FDB
table.

Another thing that is fixed in this patch set is how the driver handles
VLAN awareness. The DPAA2 switch is not capable to run as VLAN unaware
but this was not reflected in how the driver responded to requests to
change the VLAN awareness. In the last patch, this is fixed by
describing the switch interfaces as Rx VLAN filtering on [fixed] and
declining any request to join a VLAN unaware bridge.


Ioana Ciornei (15):
  staging: dpaa2-switch: remove broken learning and flooding support
  staging: dpaa2-switch: fix up initial forwarding configuration done by
    firmware
  staging: dpaa2-switch: remove obsolete .ndo_fdb_{add|del} callbacks
  staging: dpaa2-switch: get control interface attributes
  staging: dpaa2-switch: setup buffer pool and RX path rings
  staging: dpaa2-switch: setup dpio
  staging: dpaa2-switch: handle Rx path on control interface
  staging: dpaa2-switch: add .ndo_start_xmit() callback
  staging: dpaa2-switch: enable the control interface
  staging: dpaa2-switch: properly setup switching domains
  staging: dpaa2-switch: move the notifier register to module_init()
  staging: dpaa2-switch: accept only vlan-aware upper devices
  staging: dpaa2-switch: add fast-ageing on bridge leave
  staging: dpaa2-switch: prevent joining a bridge while VLAN uppers are
    present
  staging: dpaa2-switch: move the driver out of staging

 MAINTAINERS                                   |    6 +-
 drivers/net/ethernet/freescale/dpaa2/Kconfig  |    8 +
 drivers/net/ethernet/freescale/dpaa2/Makefile |    2 +
 .../freescale/dpaa2/dpaa2-switch-ethtool.c}   |    2 +-
 .../ethernet/freescale/dpaa2/dpaa2-switch.c}  | 1704 +++++++++++++----
 .../ethernet/freescale/dpaa2/dpaa2-switch.h   |  178 ++
 .../ethernet/freescale/dpaa2}/dpsw-cmd.h      |  128 +-
 .../ethernet/freescale/dpaa2}/dpsw.c          |  328 +++-
 .../ethernet/freescale/dpaa2}/dpsw.h          |  199 +-
 drivers/staging/Kconfig                       |    2 -
 drivers/staging/Makefile                      |    1 -
 drivers/staging/fsl-dpaa2/Kconfig             |   19 -
 drivers/staging/fsl-dpaa2/Makefile            |    6 -
 drivers/staging/fsl-dpaa2/ethsw/Makefile      |   10 -
 drivers/staging/fsl-dpaa2/ethsw/README        |  106 -
 drivers/staging/fsl-dpaa2/ethsw/TODO          |   13 -
 drivers/staging/fsl-dpaa2/ethsw/ethsw.h       |   80 -
 17 files changed, 2097 insertions(+), 695 deletions(-)
 rename drivers/{staging/fsl-dpaa2/ethsw/ethsw-ethtool.c => net/ethernet/freescale/dpaa2/dpaa2-switch-ethtool.c} (99%)
 rename drivers/{staging/fsl-dpaa2/ethsw/ethsw.c => net/ethernet/freescale/dpaa2/dpaa2-switch.c} (51%)
 create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.h
 rename drivers/{staging/fsl-dpaa2/ethsw => net/ethernet/freescale/dpaa2}/dpsw-cmd.h (76%)
 rename drivers/{staging/fsl-dpaa2/ethsw => net/ethernet/freescale/dpaa2}/dpsw.c (83%)
 rename drivers/{staging/fsl-dpaa2/ethsw => net/ethernet/freescale/dpaa2}/dpsw.h (73%)
 delete mode 100644 drivers/staging/fsl-dpaa2/Kconfig
 delete mode 100644 drivers/staging/fsl-dpaa2/Makefile
 delete mode 100644 drivers/staging/fsl-dpaa2/ethsw/Makefile
 delete mode 100644 drivers/staging/fsl-dpaa2/ethsw/README
 delete mode 100644 drivers/staging/fsl-dpaa2/ethsw/TODO
 delete mode 100644 drivers/staging/fsl-dpaa2/ethsw/ethsw.h

-- 
2.30.0


             reply	other threads:[~2021-03-10 12:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-10 12:14 Ioana Ciornei [this message]
2021-03-10 12:14 ` [PATCH net-next 01/15] staging: dpaa2-switch: remove broken learning and flooding support Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 02/15] staging: dpaa2-switch: fix up initial forwarding configuration done by firmware Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 03/15] staging: dpaa2-switch: remove obsolete .ndo_fdb_{add|del} callbacks Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 04/15] staging: dpaa2-switch: get control interface attributes Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 05/15] staging: dpaa2-switch: setup buffer pool and RX path rings Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 06/15] staging: dpaa2-switch: setup dpio Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 07/15] staging: dpaa2-switch: handle Rx path on control interface Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 08/15] staging: dpaa2-switch: add .ndo_start_xmit() callback Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 09/15] staging: dpaa2-switch: enable the control interface Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 10/15] staging: dpaa2-switch: properly setup switching domains Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 11/15] staging: dpaa2-switch: move the notifier register to module_init() Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 12/15] staging: dpaa2-switch: accept only vlan-aware upper devices Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 13/15] staging: dpaa2-switch: add fast-ageing on bridge leave Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 14/15] staging: dpaa2-switch: prevent joining a bridge while VLAN uppers are present Ioana Ciornei
2021-03-10 12:14 ` [PATCH net-next 15/15] staging: dpaa2-switch: move the driver out of staging Ioana Ciornei
2021-03-10 12:44 ` [PATCH net-next 00/15] dpaa2-switch: CPU terminated traffic and move " Greg KH
2021-03-10 13:47   ` Ioana Ciornei
2021-03-10 14:12     ` Greg KH
2021-03-10 14:18       ` Vladimir Oltean
2021-03-10 22:12       ` Ioana Ciornei
2021-03-10 23:13       ` David Miller
2021-03-11  6:54         ` Ioana Ciornei
2021-03-11  7:04           ` Greg KH
2021-03-11  7:05             ` Greg KH
2021-03-10 23:20 ` patchwork-bot+netdevbpf

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=20210310121452.552070-1-ciorneiioana@gmail.com \
    --to=ciorneiioana@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ioana.ciornei@nxp.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=ruxandra.radulescu@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.