From: Satha Koteswara Rao <satha.rao@caviumnetworks.com> To: <linux-kernel@vger.kernel.org> Cc: <sgoutham@cavium.com>, <rric@kernel.org>, <davem@davemloft.net>, <david.daney@cavium.com>, <rvatsavayi@caviumnetworks.com>, <derek.chickles@caviumnetworks.com>, <satha.rao@caviumnetworks.com>, <philip.romanov@cavium.com>, <netdev@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> Subject: [RFC PATCH 0/7] ThunderX Embedded switch support Date: Wed, 21 Dec 2016 14:16:44 +0530 [thread overview] Message-ID: <1482310011-1862-1-git-send-email-satha.rao@caviumnetworks.com> (raw) Background ========== Proposed patch configures programmable ThunderX embedded network switch to emulate functions of e-switch found in most industry standard NICs. Embedded switch is pre-configured by loading firmware image which exposes several firmware defined tables allowing configuration of VLAN and MAC filters. Embedded switch configuration profile and the driver introduce the following features: * Support of configurable number of VFs per physical port (see num_vfs below) * VLAN filters per VF * Unicast MAC-DA filters per VF * Multicast MAC-DA filters per VF * Support of dedicated VF allowing packet mirroring of all traffic traversing physical port (such VF is attached to the interface representing physical port) * Administrative VLAN enforcement per VF (i.e. inserting/overwriting VLAN tag on all traffic originated by particular VF) Each VF operates in two modes: a) full filter mode, where it receives only registered MAC-DA/VLAN packets and b) multicast promiscuous mode. The latter is enabled when VF reaches it's maximum MAC-DA filter limit: in this mode VF receives all multicast and registered unicast MAC frames. Special effort is made to track association of interface switching groups to underlying physical ports: entry of /sys/class/net/<intf>/phys_port_name contains string describing underlying physical port the interface is attached to in a form <node-id>-<port-group-id>-<port>. Set of patches include following changes: 1) Patch to original NIC drivers to enable internal switch, and load firmware image. 2) Modification of VF driver to subscribe to interface MAC/VLAN ADD/DELETE notifications and send them to the PF driver. 3) Modification of PF driver to receive MBOX interrupts from VF for ADD/DELETE MAC/VLAN registrations. 4) E-switch initialization code 5) API to access firmware-defined tables embedded switch tables. The following new parameter is introduced by the driver: num_vfs: Number of VFs attached to each physical port, default value of this parameter is 0, in which case driver operates in backward-compatible switch bypass mode. Set of patches uses below git branch git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git patchset generated against below commit commit 69973b830859bc6529a7a0468ba0d80ee5117826 Author: Linus Torvalds <torvalds@linux-foundation.org> Date: Sun Dec 11 11:17:54 2016 -0800 Linux 4.9 Thank You! ------------------------------------------------------------------------------- Satha Koteswara Rao (7): * Patch 1: * PF driver modified to enable HW filter support, changes works in backward compatibility mode. Enable required things in Makefile. Enable LZ4 dependecy inside config file * Patch 2: * VF driver changes to enable hooks to get kernel notifications * Patch 3: * Enable pause frame support * Patch 4: * HW Filter Initialization code and register access APIs * Patch 5: * Multiple VF's grouped together under single physical port called PF group. PF Group maintainance API's. * Patch 6: * HW Filter Table access API's * Patch 7: * Get notifications from PF driver and configure filter block based on requested data. drivers/net/ethernet/cavium/Kconfig | 1 + drivers/net/ethernet/cavium/thunder/Makefile | 2 +- drivers/net/ethernet/cavium/thunder/nic.h | 203 ++- drivers/net/ethernet/cavium/thunder/nic_main.c | 735 ++++++++- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 579 ++++++- drivers/net/ethernet/cavium/thunder/pf_filter.c | 1678 +++++++++++++++++++++ drivers/net/ethernet/cavium/thunder/pf_globals.h | 78 + drivers/net/ethernet/cavium/thunder/pf_locals.h | 365 +++++ drivers/net/ethernet/cavium/thunder/pf_reg.c | 660 ++++++++ drivers/net/ethernet/cavium/thunder/pf_vf.c | 207 +++ drivers/net/ethernet/cavium/thunder/tbl_access.c | 262 ++++ drivers/net/ethernet/cavium/thunder/tbl_access.h | 61 + drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 25 + drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 7 + 14 files changed, 4712 insertions(+), 151 deletions(-) create mode 100644 drivers/net/ethernet/cavium/thunder/pf_filter.c create mode 100644 drivers/net/ethernet/cavium/thunder/pf_globals.h create mode 100644 drivers/net/ethernet/cavium/thunder/pf_locals.h create mode 100644 drivers/net/ethernet/cavium/thunder/pf_reg.c create mode 100644 drivers/net/ethernet/cavium/thunder/pf_vf.c create mode 100644 drivers/net/ethernet/cavium/thunder/tbl_access.c create mode 100644 drivers/net/ethernet/cavium/thunder/tbl_access.h -- 1.8.3.1
next reply other threads:[~2016-12-21 9:04 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-12-21 8:46 Satha Koteswara Rao [this message] 2016-12-21 8:46 ` [RFC PATCH 1/7] PF driver modified to enable HW filter support, changes works in backward compatibility mode Enable required things in Makefile Enable LZ4 dependecy inside config file Satha Koteswara Rao 2016-12-21 13:05 ` Sunil Kovvuri 2016-12-26 14:20 ` Koteshwar Rao, Satha 2016-12-27 4:19 ` Sunil Kovvuri 2016-12-21 8:46 ` [RFC PATCH 2/7] VF driver changes to enable hooks to get kernel notifications Satha Koteswara Rao 2016-12-21 8:46 ` [RFC PATCH 3/7] Enable pause frame support Satha Koteswara Rao [not found] ` <DM5PR07MB2889471E0668C95BD2A266709E930@DM5PR07MB2889.namprd07.prod.outlook.com> 2016-12-26 14:21 ` Koteshwar Rao, Satha 2016-12-21 8:46 ` [RFC PATCH 4/7] HW Filter Initialization code and register access APIs Satha Koteswara Rao 2016-12-21 12:36 ` Sunil Kovvuri 2016-12-26 14:13 ` Koteshwar Rao, Satha 2016-12-21 8:46 ` [RFC PATCH 5/7] Multiple VF's grouped together under single physical port called PF group PF Group maintainance API's Satha Koteswara Rao 2016-12-21 12:43 ` Sunil Kovvuri 2016-12-26 14:16 ` Koteshwar Rao, Satha 2016-12-21 8:46 ` [RFC PATCH 6/7] HW Filter Table access API's Satha Koteswara Rao 2016-12-21 8:46 ` [RFC PATCH 7/7] Get notifications from PF driver and configure filter block based on request data Satha Koteswara Rao 2016-12-21 12:03 ` [RFC PATCH 0/7] ThunderX Embedded switch support Sunil Kovvuri 2016-12-26 14:04 ` Koteshwar Rao, Satha 2016-12-26 14:55 ` Andrew Lunn
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=1482310011-1862-1-git-send-email-satha.rao@caviumnetworks.com \ --to=satha.rao@caviumnetworks.com \ --cc=davem@davemloft.net \ --cc=david.daney@cavium.com \ --cc=derek.chickles@caviumnetworks.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=philip.romanov@cavium.com \ --cc=rric@kernel.org \ --cc=rvatsavayi@caviumnetworks.com \ --cc=sgoutham@cavium.com \ --subject='Re: [RFC PATCH 0/7] ThunderX Embedded switch support' \ /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
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).