From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: jiri@resnulli.us, davem@davemloft.net
Cc: netdev@vger.kernel.org, oss-drivers@netronome.com,
Jakub Kicinski <jakub.kicinski@netronome.com>
Subject: [PATCH net-next v2 0/7] devlink: expose PF and VF representors as ports
Date: Fri, 1 Mar 2019 10:04:46 -0800 [thread overview]
Message-ID: <20190301180453.17778-1-jakub.kicinski@netronome.com> (raw)
Hi!
This series is a long overdue follow up to Jiri's work on providing
a common .ndo_phys_port_name implementation based on devlink ports.
First devlink port flavours for PF and VF ports are added, and
registered by the NFP. Port numbers and split info are reserved
for physical and DSA ports. For PCIe ports we add pf/vf identifiers.
Note that devices may have more than one PF, including multi host
scenarios where not all pfs are connected to the same host.
The port_index is slightly tricky to figure out, we use a bit of
math to create unique IDs for ports.
Next subports for PCIe ports are introduced. This is in case device
has more than one netdev on a physical function (e.g. multi port
SmartNIC).
With the above features in place we can remove the ndo_phys_port_name
implementation from the NFP and use the standard devlink one for
port netdevs.
Last but not least a concept of peer netdevs is added. In multi-host
scenarios its currently not possible to figure out which PF is
associated with the local host. Peer device is "the other side
of the wire" for PCIe ports. In case of NFP we only link the PF
netdevs, but it should be possible to also link VF peers after
VF driver probes, if users request it.
This is the conceptual image of devlink instances:
HOST A || HOST B
||
PF A | V | V | V | V || PF B | V | V | V
|*F |*F |*F |*F ... || |*F |*F |*F
*port A0 |*port A1 | 0 | 1 | 2 | 3 ||*port B0 |*port B1 | 0 | 1 | 2
||
PCI Express link || PCI Express link
\ \ \ | | | | | / / /
\ \ \ | | | | | / / /
/\ \______\______\'___|___|__________|_______'____/___/___/__ /\
|| |+PF0s0|+PF0s1 |+VF0|+VF1| ...| |+PF1s0|+PF1s1|+VF0|+VF1| ||
i || |------ ------ ----- ---- ----|--- ------ ------ ---- ----| || i
d n H || | <<========== | || d n H
e s O || | ==========>> | || e s O
v t S || | SR-IOV e-switch | || v t S
l a T || | <<========== | || l a T
i n || | ==========>> | || i n
n c A || | ________ _________ ________ | || n c B
k e || | |+Phys 0 |+Phys 1 |+Phys 2 | | || k e
|| \---------------------------------------------------------/ ||
\/ | | | \/
| | |
|| ||
MAC 0 || MAC 1 || MAC 2
|| ||
'+' marks the devlink ports and port (-representor-) netdevs
'*' marks host netdevs (actual VF/PF netdev)
v2 (Jiri):
- update devlink user space output in a commit message;
- split the pci attribute setting helper into pf and vf versions;
- add peer IBDEV_NAME;
- add nest for peer attributes.
Jakub Kicinski (7):
nfp: split devlink port init from registration
devlink: add PF and VF port flavours
nfp: register devlink ports of all reprs
devlink: allow subports on devlink PCI ports
nfp: switch to devlink_port_get_phys_port_name()
devlink: introduce port's peer netdevs
nfp: expose PF peer netdevs
drivers/net/ethernet/netronome/nfp/abm/main.c | 1 +
.../net/ethernet/netronome/nfp/flower/main.c | 1 +
.../net/ethernet/netronome/nfp/nfp_devlink.c | 54 +++++-
.../net/ethernet/netronome/nfp/nfp_net_main.c | 17 +-
.../net/ethernet/netronome/nfp/nfp_net_repr.c | 16 +-
drivers/net/ethernet/netronome/nfp/nfp_port.c | 33 +---
drivers/net/ethernet/netronome/nfp/nfp_port.h | 4 +
include/net/devlink.h | 48 ++++-
include/uapi/linux/devlink.h | 12 ++
net/core/devlink.c | 178 ++++++++++++++++--
10 files changed, 310 insertions(+), 54 deletions(-)
--
2.19.2
next reply other threads:[~2019-03-01 18:05 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-01 18:04 Jakub Kicinski [this message]
2019-03-01 18:04 ` [PATCH net-next v2 1/7] nfp: split devlink port init from registration Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 2/7] devlink: add PF and VF port flavours Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 3/7] nfp: register devlink ports of all reprs Jakub Kicinski
2019-03-02 8:43 ` Jiri Pirko
2019-03-02 19:07 ` Jakub Kicinski
2019-03-04 7:36 ` Jiri Pirko
2019-03-04 23:32 ` Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 4/7] devlink: allow subports on devlink PCI ports Jakub Kicinski
2019-03-02 9:41 ` Jiri Pirko
2019-03-02 19:48 ` Jakub Kicinski
2019-03-04 7:56 ` Jiri Pirko
2019-03-05 0:33 ` Jakub Kicinski
2019-03-05 11:06 ` Jiri Pirko
2019-03-05 17:15 ` Jakub Kicinski
2019-03-05 19:59 ` Parav Pandit
2019-03-06 12:20 ` Jiri Pirko
2019-03-06 17:56 ` Jakub Kicinski
2019-03-07 3:56 ` Parav Pandit
2019-03-07 9:48 ` Jiri Pirko
2019-03-08 2:52 ` Jakub Kicinski
2019-03-08 14:54 ` Jiri Pirko
2019-03-08 19:09 ` Jakub Kicinski
2019-03-11 8:52 ` Jiri Pirko
2019-03-12 2:10 ` Jakub Kicinski
2019-03-12 14:02 ` Jiri Pirko
2019-03-12 20:56 ` Jakub Kicinski
2019-03-13 6:07 ` Jiri Pirko
2019-03-13 16:17 ` Jakub Kicinski
2019-03-13 16:22 ` Jiri Pirko
2019-03-13 16:55 ` Jakub Kicinski
2019-03-14 7:38 ` Jiri Pirko
2019-03-14 22:09 ` Jakub Kicinski
2019-03-14 22:35 ` Parav Pandit
2019-03-14 23:39 ` Jakub Kicinski
2019-03-15 1:28 ` Parav Pandit
2019-03-15 1:31 ` Parav Pandit
2019-03-15 2:15 ` Samudrala, Sridhar
2019-03-15 2:40 ` Parav Pandit
[not found] ` <ae938b4f-5fa9-3c33-8ae6-eab2d3d9f1ec@intel.com>
2019-03-15 15:32 ` Parav Pandit
2019-03-15 20:08 ` Jiri Pirko
2019-03-15 20:44 ` Jakub Kicinski
2019-03-15 22:12 ` Parav Pandit
2019-03-16 1:16 ` Jakub Kicinski
2019-03-18 15:43 ` Parav Pandit
2019-03-18 19:29 ` Jakub Kicinski
2019-03-18 12:11 ` Jiri Pirko
2019-03-18 19:16 ` Jakub Kicinski
2019-03-21 8:45 ` Jiri Pirko
2019-03-21 15:14 ` Parav Pandit
2019-03-21 16:14 ` Jiri Pirko
2019-03-21 16:52 ` Parav Pandit
2019-03-21 17:20 ` Jiri Pirko
2019-03-21 17:34 ` Parav Pandit
2019-03-22 16:27 ` Jiri Pirko
2019-03-23 0:37 ` Parav Pandit
2019-03-15 21:59 ` Parav Pandit
2019-03-18 12:21 ` Jiri Pirko
2019-03-18 15:56 ` Parav Pandit
2019-03-18 16:22 ` Parav Pandit
2019-03-18 19:36 ` Jakub Kicinski
2019-03-18 19:44 ` Parav Pandit
2019-03-18 19:59 ` Jakub Kicinski
2019-03-18 20:35 ` Parav Pandit
2019-03-18 21:29 ` Jakub Kicinski
2019-03-18 22:11 ` Parav Pandit
2019-03-20 18:24 ` Parav Pandit
2019-03-20 20:22 ` Jakub Kicinski
2019-03-20 23:39 ` Parav Pandit
2019-03-21 9:08 ` Jiri Pirko
2019-03-21 15:03 ` Parav Pandit
2019-03-21 16:16 ` Jiri Pirko
2019-03-21 16:50 ` Parav Pandit
2019-03-21 17:23 ` Jiri Pirko
2019-03-21 17:42 ` Parav Pandit
2019-03-22 13:32 ` Jiri Pirko
2019-03-23 0:40 ` Parav Pandit
2019-03-25 20:34 ` Parav Pandit
2019-03-18 19:19 ` Jakub Kicinski
2019-03-18 19:38 ` Parav Pandit
2019-03-21 9:09 ` Jiri Pirko
2019-03-15 7:00 ` Jiri Pirko
[not found] ` <7227d58e-ac58-d549-b921-ca0a0dd3f4b0@intel.com>
2019-03-13 7:37 ` Jiri Pirko
2019-03-13 16:03 ` Samudrala, Sridhar
2019-03-13 16:24 ` Jiri Pirko
2019-03-04 11:19 ` Jiri Pirko
2019-03-05 0:40 ` Jakub Kicinski
2019-03-05 11:07 ` Jiri Pirko
2019-03-04 11:08 ` Jiri Pirko
2019-03-05 0:51 ` Jakub Kicinski
2019-03-05 11:09 ` Jiri Pirko
2019-03-01 18:04 ` [PATCH net-next v2 5/7] nfp: switch to devlink_port_get_phys_port_name() Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 6/7] devlink: introduce port's peer netdevs Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 7/7] nfp: expose PF " Jakub Kicinski
2019-03-02 10:13 ` [PATCH net-next v2 0/7] devlink: expose PF and VF representors as ports Jiri Pirko
2019-03-02 19:49 ` [oss-drivers] " Jakub Kicinski
2019-03-04 5:12 ` Parav Pandit
2019-03-04 18:22 ` David Miller
2019-03-20 20:25 ` Jakub Kicinski
2019-03-21 9:11 ` Jiri Pirko
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=20190301180453.17778-1-jakub.kicinski@netronome.com \
--to=jakub.kicinski@netronome.com \
--cc=davem@davemloft.net \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=oss-drivers@netronome.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.