[dpdk-dev] [PATCH] net/liquidio: add support for 10GBase-T cards

Srisivasubramanian Srinivasan ssrinivasan at caviumnetworks.com
Thu Oct 26 04:23:18 CEST 2017


On Wed, 2017-10-25 at 11:23 -0700, Ferruh Yigit wrote:
> On 10/25/2017 11:06 AM, Srisivasubramanian Srinivasan wrote:
> > On Tue, 2017-10-24 at 10:49 -0700, Ferruh Yigit wrote:
> >> On 10/23/2017 9:42 PM, Srisivasubramanian S wrote:
> >>> Signed-off-by: Srisivasubramanian S <ssrinivasan at caviumnetworks.com>
> >>> Signed-off-by: Shijith Thotton <shijith.thotton at caviumnetworks.com>
> >>> ---
> >>>  doc/guides/nics/liquidio.rst            |  2 ++
> >>>  drivers/net/liquidio/base/lio_hw_defs.h | 12 ++++++++----
> >>>  drivers/net/liquidio/lio_ethdev.c       |  7 ++++++-
> >>>  3 files changed, 16 insertions(+), 5 deletions(-)
> >>>
> >>> diff --git a/doc/guides/nics/liquidio.rst b/doc/guides/nics/liquidio.rst
> >>> index 4ccde0c..7bc1604 100644
> >>> --- a/doc/guides/nics/liquidio.rst
> >>> +++ b/doc/guides/nics/liquidio.rst
> >>> @@ -42,7 +42,9 @@ Supported LiquidIO Adapters
> >>>  -----------------------------
> >>>  
> >>>  - LiquidIO II CN2350 210SV/225SV
> >>> +- LiquidIO II CN2350 210SVPT
> >>>  - LiquidIO II CN2360 210SV/225SV
> >>> +- LiquidIO II CN2360 210SVPT
> >>
> >> Do you want to update release notes to announce new device support?
> > 
> > Sure, will do.
> > 
> >>
> >>>  
> >>>  
> >>>  Pre-Installation Configuration
> >>> diff --git a/drivers/net/liquidio/base/lio_hw_defs.h b/drivers/net/liquidio/base/lio_hw_defs.h
> >>> index c7f97f2..d4cd23c 100644
> >>> --- a/drivers/net/liquidio/base/lio_hw_defs.h
> >>> +++ b/drivers/net/liquidio/base/lio_hw_defs.h
> >>> @@ -43,10 +43,14 @@
> >>>  #define LIO_CN23XX_VF_VID	0x9712
> >>>  
> >>>  /* CN23xx subsystem device ids */
> >>> -#define PCI_SUBSYS_DEV_ID_CN2350_210	0x0004
> >>> -#define PCI_SUBSYS_DEV_ID_CN2360_210	0x0005
> >>> -#define PCI_SUBSYS_DEV_ID_CN2360_225	0x0006
> >>> -#define PCI_SUBSYS_DEV_ID_CN2350_225	0x0007
> >>> +#define PCI_SUBSYS_DEV_ID_CN2350_210		0x0004
> >>> +#define PCI_SUBSYS_DEV_ID_CN2360_210		0x0005
> >>> +#define PCI_SUBSYS_DEV_ID_CN2360_225		0x0006
> >>> +#define PCI_SUBSYS_DEV_ID_CN2350_225		0x0007
> >>> +#define PCI_SUBSYS_DEV_ID_CN2350_210SVPN3	0x0008
> >>> +#define PCI_SUBSYS_DEV_ID_CN2360_210SVPN3	0x0009
> >>> +#define PCI_SUBSYS_DEV_ID_CN2350_210SVPT	0x000a
> >>> +#define PCI_SUBSYS_DEV_ID_CN2360_210SVPT	0x000b
> >>>  
> >>>  /* --------------------------CONFIG VALUES------------------------ */
> >>>  
> >>> diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
> >>> index 239f6af..2ffbfd2 100644
> >>> --- a/drivers/net/liquidio/lio_ethdev.c
> >>> +++ b/drivers/net/liquidio/lio_ethdev.c
> >>> @@ -405,6 +405,10 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev,
> >>>  	/* CN23xx 10G cards */
> >>>  	case PCI_SUBSYS_DEV_ID_CN2350_210:
> >>>  	case PCI_SUBSYS_DEV_ID_CN2360_210:
> >>> +	case PCI_SUBSYS_DEV_ID_CN2350_210SVPN3:
> >>> +	case PCI_SUBSYS_DEV_ID_CN2360_210SVPN3:
> >>> +	case PCI_SUBSYS_DEV_ID_CN2350_210SVPT:
> >>> +	case PCI_SUBSYS_DEV_ID_CN2360_210SVPT:
> >>>  		devinfo->speed_capa = ETH_LINK_SPEED_10G;
> >>>  		break;
> >>>  	/* CN23xx 25G cards */
> >>> @@ -413,8 +417,9 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev,
> >>>  		devinfo->speed_capa = ETH_LINK_SPEED_25G;
> >>>  		break;
> >>>  	default:
> >>> +		devinfo->speed_capa = ETH_LINK_SPEED_10G;
> >>>  		lio_dev_err(lio_dev,
> >>> -			    "Unknown CN23XX subsystem device id. Not setting speed capability.\n");
> >>> +			    "Unknown CN23XX subsystem device id. Setting 10G as default link speed.\n");
> >>
> >> Instead of setting speed and default and print an error log, why not added cases
> >> for new devices and set to 10G there?
> > 
> > Our thinking was to avoid error log that come out as not setting link speed when an old
> > DPDK driver is used on a LiquidIO VF compliant device that isn?t yet in the driver.
> 
> With old driver, pci device_id also won't be there for new device, and driver
> won't probe it at all, so there won't be an issue of not setting link speed, am
> I missing something?

LiquidIO VF compliant devices all have the same pci device id. Just the
subsystem id changes, so probe will be successful. Just that for new
devices we will see a log denoting unknown subsystem during
dev_info_get() call. Even without this patch, 10GBase-T cards work with
the log getting displayed, but we want to avoid that log and explicitly
say support starts from this release. 
 
> 
> > This is for forward compliance. We will of course add cases for new devices as they 
> > come along. Is this reasonable?
> > 
> >>
> >>>  	}
> >>>  
> >>>  	devinfo->max_rx_queues = lio_dev->max_rx_queues;
> >>>
> >>
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 




More information about the dev mailing list