A DCF (Device Config Function) based approach is proposed where a device bound to the device's VF0 can act as a sole controlling entity to exercise advance functionality (such as switch, ACL) for rest of the VFs.
The DCF works as a standalone PMD to support this function, which shares the ice PMD flow control core function and the iavf virtchnl mailbox core module. v6: No change, but to resend the same patchset again to trigger ci/Performance-Testing by using the new code base: https://lab.dpdk.org/results/dashboard/patchsets/10120/ v5: Fixed the shared module compile errror. v4: Change the alarm handler to thread service, since it will need to do more work. v3: 1. Fixed the error log message format. 2. Fixed some memory allocation check. 3. Fixed some code style issue and commmit message description. v2: 1. update the iavf patchset link. 2. split more patches for making this work be more understandable 3. fix the log function usage, devargs checking from v1. Haiyue Wang (7): net/iavf: stop the PCI probe in DCF mode net/ice: add the DCF hardware initialization net/ice: acquire and disable the DCF capability net/ice: handle the AdminQ command by DCF net/ice: export the DDP definition symbols net/ice: handle the PF initialization by DCF net/ice: get the VF hardware index in DCF doc/guides/nics/ice.rst | 47 ++ doc/guides/nics/img/ice_dcf.png | Bin 0 -> 39168 bytes doc/guides/rel_notes/release_20_05.rst | 5 + drivers/common/Makefile | 1 + drivers/net/iavf/iavf_ethdev.c | 43 ++ drivers/net/ice/Makefile | 7 + drivers/net/ice/ice_dcf.c | 658 +++++++++++++++++++++++++ drivers/net/ice/ice_dcf.h | 63 +++ drivers/net/ice/ice_dcf_ethdev.c | 321 ++++++++++++ drivers/net/ice/ice_dcf_ethdev.h | 33 ++ drivers/net/ice/ice_dcf_parent.c | 351 +++++++++++++ drivers/net/ice/ice_ethdev.c | 9 +- drivers/net/ice/ice_ethdev.h | 8 + drivers/net/ice/meson.build | 8 +- mk/rte.app.mk | 1 + 15 files changed, 1545 insertions(+), 10 deletions(-) create mode 100644 doc/guides/nics/img/ice_dcf.png create mode 100644 drivers/net/ice/ice_dcf.c create mode 100644 drivers/net/ice/ice_dcf.h create mode 100644 drivers/net/ice/ice_dcf_ethdev.c create mode 100644 drivers/net/ice/ice_dcf_ethdev.h create mode 100644 drivers/net/ice/ice_dcf_parent.c -- 2.26.0