Hi Bruce > -----Original Message----- > From: Richardson, Bruce <bruce.richard...@intel.com> > Sent: Friday, April 8, 2022 7:01 PM > To: Zhang, RobinX <robinx.zh...@intel.com> > Cc: dev@dpdk.org; Yang, Qiming <qiming.y...@intel.com>; Zhang, Qi Z > <qi.z.zh...@intel.com>; Yang, SteveX <stevex.y...@intel.com> > Subject: Re: [PATCH v2] common/sff_module: add telemetry command to > dump module EEPROM > > On Fri, Apr 08, 2022 at 11:55:07AM +0100, Zhang, RobinX wrote: > > Hi Bruce, > > > > > -----Original Message----- > > > From: Richardson, Bruce <bruce.richard...@intel.com> > > > Sent: Friday, April 8, 2022 6:33 PM > > > To: Zhang, RobinX <robinx.zh...@intel.com> > > > Cc: dev@dpdk.org; Yang, Qiming <qiming.y...@intel.com>; Zhang, Qi Z > > > <qi.z.zh...@intel.com>; Yang, SteveX <stevex.y...@intel.com> > > > Subject: Re: [PATCH v2] common/sff_module: add telemetry command > to > > > dump module EEPROM > > > > > > On Fri, Apr 08, 2022 at 10:23:30AM +0000, Robin Zhang wrote: > > > > This patch introduce a new telemetry command '/sff_module/info' > > > > to dump format module EEPROM information. > > > > > > > > The format support for SFP(Small Formfactor Pluggable)/SFP+ > > > > /QSFP+(Quad Small Formfactor Pluggable)/QSFP28 modules based on > > > > SFF(Small Form Factor) Committee specifications > > > > SFF-8079/SFF-8472/SFF-8024/SFF-8636. > > > > > > > > Signed-off-by: Robin Zhang <robinx.zh...@intel.com> > > > > --- > > > > > > > > v2: > > > > - Redesign the dump function as a telemetry command, so that the > > > EEPROM > > > > information can be used by other app. > > > > > > > > - The usage like this: > > > > > > > > Launch the primary application with telemetry: > > > > Take testpmd as example: ./app/dpdk-testpmd > > > > > > > > Then launch the telemetry client script: > > > > ./usertools/dpdk-telemetry.py > > > > > > > > In telemetry client run command: > > > > --> /sff_module/info,<port number> > > > > > > > > Both primary application and telemetry client will show the formated > > > > module EEPROM information. > > > > > > > > drivers/common/meson.build | 1 + > > > > drivers/common/sff_module/meson.build | 16 + > > > > drivers/common/sff_module/sff_8079.c | 672 ++++++++++++++ > > > > drivers/common/sff_module/sff_8472.c | 301 ++++++ > > > > drivers/common/sff_module/sff_8636.c | 1004 > > > +++++++++++++++++++++ > > > > drivers/common/sff_module/sff_8636.h | 592 ++++++++++++ > > > > drivers/common/sff_module/sff_common.c | 415 +++++++++ > > > > drivers/common/sff_module/sff_common.h | 192 ++++ > > > > drivers/common/sff_module/sff_telemetry.c | 142 +++ > > > > drivers/common/sff_module/sff_telemetry.h | 41 + > > > > drivers/common/sff_module/version.map | 9 + > > > > 11 files changed, 3385 insertions(+) create mode 100644 > > > > drivers/common/sff_module/meson.build > > > > create mode 100644 drivers/common/sff_module/sff_8079.c > > > > create mode 100644 drivers/common/sff_module/sff_8472.c > > > > create mode 100644 drivers/common/sff_module/sff_8636.c > > > > create mode 100644 drivers/common/sff_module/sff_8636.h > > > > create mode 100644 drivers/common/sff_module/sff_common.c > > > > create mode 100644 drivers/common/sff_module/sff_common.h > > > > create mode 100644 drivers/common/sff_module/sff_telemetry.c > > > > create mode 100644 drivers/common/sff_module/sff_telemetry.h > > > > create mode 100644 drivers/common/sff_module/version.map > > > > > > > Is this is whole new driver just to provide telemetry dumps of SFP > > > information? I can understand the problem somewhat - though I am in > > > some doubt that telemetry is the best way to expose this information > > > - but creating a new driver seems the wrong approach here. SFPs are > > > for NIC devices, so why isn't this available in a common API such as > ethdev? > > > > > > > I have considered add this function as a new telemetry command of > ethdev (like '/ethdev/sff_module_info') to dump these SFP information. > > But I'm not sure if it's acceptable to add all these production code > (sff_8xxx.c) into lib/ethdev? > > If it's OK, I can make V3 patches to change it as a telemetry command of > ethdev. > > > > Hi, > > I think some discussion is needed before you go preparing a new version of > this patchset. > > Some initial questions: > > 1. Does SFF code apply only to Intel products/NICs or is it multi-vendor? The SFF code apply to multi-vendor. In fact, it's applied to all the NIC driver which implemented dev_ops->get_module_eeprom.
> 2. For the driver approach you previously took, how was the presence of > hardware detected to load the driver? The purpose of put these production code into drivers/common is want to treat it as a common function for NIC drivers. It will not related to any presence of hardware. > 3. Does this work on SFPs need to interact with the NIC drivers in any way? > Yes, just like my answer in question 1, the module EEPROM raw data is get from dev_ops->get_module_eeprom. So need the NIC drivers to implement dev_ops->get_module_eeprom. > Thanks, > /Bruce