Hi Dave, Jakub, Similar to PCI VF, PCI SF represents portion of the device. PCI SF is represented using a new devlink port flavour.
This short series implements small part of the RFC described in detail at [1] and [2]. It extends (a) devlink core to expose new devlink port flavour 'pcisf'. (b) Expose new user interface to add/delete devlink port. (c) Extends netdevsim driver to simulate PCI PF and SF ports (d) Add port function state attribute Patch summary: Patch-1 Extends devlink to expose new PCI SF port flavour Patch-2 Extends devlink to let user add, delete devlink Port Patch-3 Prepare code to handle multiple port attributes Patch-4 Extends devlink to let user get, set function state Patch-5 Extends netdevsim driver to simulate PCI PF ports Patch-6 Extends netdevsim driver to simulate hw_addr get/set Patch-7 Extends netdevsim driver to simulate function state get/set Patch-8 Extends netdevsim driver to simulate PCI SF ports [1] https://lore.kernel.org/netdev/20200519092258.GF4655@nanopsycho/ [2] https://marc.info/?l=linux-netdev&m=158555928517777&w=2 Parav Pandit (8): devlink: Introduce PCI SF port flavour and port attribute devlink: Support add and delete devlink port devlink: Prepare code to fill multiple port function attributes devlink: Support get and set state of port function netdevsim: Add support for add and delete of a PCI PF port netdevsim: Simulate get/set hardware address of a PCI port netdevsim: Simulate port function state for a PCI port netdevsim: Add support for add and delete PCI SF port drivers/net/netdevsim/Makefile | 3 +- drivers/net/netdevsim/dev.c | 14 + drivers/net/netdevsim/netdevsim.h | 32 ++ drivers/net/netdevsim/port_function.c | 498 ++++++++++++++++++++++++++ include/net/devlink.h | 75 ++++ include/uapi/linux/devlink.h | 13 + net/core/devlink.c | 230 ++++++++++-- 7 files changed, 840 insertions(+), 25 deletions(-) create mode 100644 drivers/net/netdevsim/port_function.c -- 2.26.2