OK, I looked at the code further and it seems like what you are doing is you are using the iavf PCI device ID instead of the PF device ID when the user says cap=dcf. This doesn't seem like the right thing to do. Why not modify the iavf code to support being the DCF? Or create a new PMD? You are calling iavf functions from within the ice PMD which seems wrong to me.
Paul > -----Original Message----- > From: Wang, Haiyue <haiyue.w...@intel.com> > Sent: Friday, March 13, 2020 10:05 AM > To: Stillwell Jr, Paul M <paul.m.stillwell...@intel.com>; dev@dpdk.org; Ye, > Xiaolong <xiaolong...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; > Yang, Qiming <qiming.y...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > Cc: Zhao1, Wei <wei.zh...@intel.com> > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > Hi Paul, > > > -----Original Message----- > > From: Stillwell Jr, Paul M <paul.m.stillwell...@intel.com> > > Sent: Saturday, March 14, 2020 00:50 > > To: Wang, Haiyue <haiyue.w...@intel.com>; dev@dpdk.org; Ye, Xiaolong > > <xiaolong...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; Yang, > > Qiming <qiming.y...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > > Cc: Zhao1, Wei <wei.zh...@intel.com> > > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > Hi Haiyue, > > > > This statement is confusing to me "But the flow setting is the ice PF > > AdminQ message, so the DCF shares most of ice PMD flow control." What > do you mean by "flow setting"? > It is DPDP rte_flow API calling. > > > The way I understand DCF > > working is that there is a trusted VF (the DCF) that is setting switch > > rules for other VFs on the same PF. The mechanism for doing that is > > the DCF sends a virtchnl message to the Linux kernel driver PF to > > DCF needs: 1). virtchnl message is handles by 'dpdk/drivers/common/iavf/', > which is the original iavf base code. > > > add/delete a switch rule. None of this requires the ice PMD as far as > > I can tell. This seems like a > > DCF needs: 2). add/delete a switch rule. > rte_flow API --> > 'dpdk/drivers/net/ice/ice_switch_filter.c/ice_generic_flow.c' (ice flow > framework) > | > `--> 'dpdk/drivers/net/ice/base' ... > > So, put it under the ice PMD is the best way. > > > driver just like the iavf driver; the iavf driver is separate from the > > ice PMD and it seems like DCF should also be separate. > > > > Paul > > > > > -----Original Message----- > > > From: Wang, Haiyue <haiyue.w...@intel.com> > > > Sent: Friday, March 13, 2020 9:25 AM > > > To: Stillwell Jr, Paul M <paul.m.stillwell...@intel.com>; > > > dev@dpdk.org; Ye, Xiaolong <xiaolong...@intel.com>; Zhang, Qi Z > > > <qi.z.zh...@intel.com>; Yang, Qiming <qiming.y...@intel.com>; Xing, > > > Beilei <beilei.x...@intel.com> > > > Cc: Zhao1, Wei <wei.zh...@intel.com> > > > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > > > Hi Paul, > > > > > > Yes, it's VF (VF hardware initialization like virtchnl). But the > > > flow setting is the ice PF AdminQ message, so the DCF shares most of ice > PMD flow control. > > > > > > BR, > > > Haiyue > > > > > > > -----Original Message----- > > > > From: Stillwell Jr, Paul M <paul.m.stillwell...@intel.com> > > > > Sent: Saturday, March 14, 2020 00:19 > > > > To: Wang, Haiyue <haiyue.w...@intel.com>; dev@dpdk.org; Ye, > > > > Xiaolong <xiaolong...@intel.com>; Zhang, Qi Z > > > > <qi.z.zh...@intel.com>; Yang, Qiming <qiming.y...@intel.com>; > > > > Xing, Beilei <beilei.x...@intel.com> > > > > Cc: Zhao1, Wei <wei.zh...@intel.com>; Wang, Haiyue > > > > <haiyue.w...@intel.com> > > > > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > > > > > I'm confused. Shouldn't the DCF be a separate driver since it is a > > > > VF, not part of a PF? You are starting to combine PF/VF code and > > > > I'm not sure if > > > that is the correct way to go. > > > > > > > > Paul > > > > > > > > > -----Original Message----- > > > > > From: dev <dev-boun...@dpdk.org> On Behalf Of Haiyue Wang > > > > > Sent: Monday, March 9, 2020 11:50 PM > > > > > To: dev@dpdk.org; Ye, Xiaolong <xiaolong...@intel.com>; Zhang, > > > > > Qi Z <qi.z.zh...@intel.com>; Yang, Qiming > > > > > <qiming.y...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > > > > > Cc: Zhao1, Wei <wei.zh...@intel.com>; Wang, Haiyue > > > > > <haiyue.w...@intel.com> > > > > > Subject: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > > > > > > > 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. > > > > > > > > > > This patchset is based on: > > > > > [1] https://patchwork.dpdk.org/cover/66417/ : update ice base > > > > > code [2] https://patchwork.dpdk.org/cover/66472/ : iavf share > > > > > code update > > > > > > > > > > Depends-on: series-8843 > > > > > Depends-on: series-8855 > > > > > > > > > > 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: initiate to acquire 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 | 6 + > > > > > drivers/net/ice/ice_dcf.c | 651 > +++++++++++++++++++++++++ > > > > > drivers/net/ice/ice_dcf.h | 61 +++ > > > > > drivers/net/ice/ice_dcf_ethdev.c | 321 ++++++++++++ > > > > > drivers/net/ice/ice_dcf_ethdev.h | 33 ++ > > > > > drivers/net/ice/ice_dcf_parent.c | 344 +++++++++++++ > > > > > 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, 1528 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.25.1 > > > > > > > > > >