[dpdk-dev] drivers/net: document missing speed capabilities feature
Checks
Commit Message
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Please check other features of PMD and document missing ones in features
file.
Thanks.
---
doc/guides/nics/features/ark.ini | 1 +
doc/guides/nics/features/bnx2x.ini | 1 +
doc/guides/nics/features/bnx2x_vf.ini | 1 +
doc/guides/nics/features/cxgbe.ini | 1 +
doc/guides/nics/features/dpaa2.ini | 1 +
doc/guides/nics/features/e1000.ini | 1 +
doc/guides/nics/features/ena.ini | 1 +
doc/guides/nics/features/fm10k.ini | 1 +
doc/guides/nics/features/fm10k_vec.ini | 1 +
doc/guides/nics/features/fm10k_vf.ini | 1 +
doc/guides/nics/features/fm10k_vf_vec.ini | 1 +
doc/guides/nics/features/i40e.ini | 1 +
doc/guides/nics/features/i40e_vec.ini | 1 +
doc/guides/nics/features/igb.ini | 1 +
doc/guides/nics/features/ixgbe.ini | 1 +
doc/guides/nics/features/ixgbe_vec.ini | 1 +
doc/guides/nics/features/mlx4.ini | 1 +
doc/guides/nics/features/szedata2.ini | 1 +
doc/guides/nics/features/tap.ini | 2 +-
doc/guides/nics/features/virtio.ini | 1 +
doc/guides/nics/features/virtio_vec.ini | 1 +
doc/guides/nics/features/vmxnet3.ini | 1 +
22 files changed, 22 insertions(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Wednesday, May 10, 2017 2:11 PM
> To: Shepard Siegel <shepard.siegel@atomicrules.com>; Ed Czeck
> <ed.czeck@atomicrules.com>; John Miller <john.miller@atomicrules.com>;
> Mcnamara, John <john.mcnamara@intel.com>; Harish Patil
> <harish.patil@cavium.com>; Rasesh Mody <rasesh.mody@cavium.com>; Rahul
> Lakkireddy <rahul.lakkireddy@chelsio.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Shreyansh Jain <shreyansh.jain@nxp.com>; Lu,
> Wenzhuo <wenzhuo.lu@intel.com>; Marcin Wojtas <mw@semihalf.com>; Michal
> Krawczyk <mk@semihalf.com>; Guy Tzalik <gtzalik@amazon.com>; Evgeny
> Schemeilin <evgenys@amazon.com>; Chen, Jing D <jing.d.chen@intel.com>;
> Zhang, Helin <helin.zhang@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Adrien Mazarguil
> <adrien.mazarguil@6wind.com>; Nelio Laranjeiro
> <nelio.laranjeiro@6wind.com>; Matej Vido <vido@cesnet.cz>; Pascal Mazon
> <pascal.mazon@6wind.com>; Yuanhan Liu <yuanhan.liu@linux.intel.com>;
> Maxime Coquelin <maxime.coquelin@redhat.com>; Shrikrishna Khare
> <skhare@vmware.com>
> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>
> Subject: [PATCH] drivers/net: document missing speed capabilities feature
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Please check other features of PMD and document missing ones in features
> file.
+1 to this suggestion. PMD maintainers should check the Nic Overview table
and update any supported features:
http://dpdk.org/doc/guides/nics/overview.html
Acked-by: John McNamara <john.mcnamara@intel.com>
10/05/2017 15:10, Ferruh Yigit:
> --- a/doc/guides/nics/features/bnx2x.ini
> +++ b/doc/guides/nics/features/bnx2x.ini
> @@ -4,6 +4,7 @@
> ; Refer to default.ini for the full list of available PMD features.
> ;
> [Features]
> +Speed capabilities = Y
We should validate this feature only if the driver advertise the
right speeds for the device.
Most of drivers advertise every possible speeds for the driver
without considering device limitations.
On 5/10/2017 2:51 PM, Thomas Monjalon wrote:
> 10/05/2017 15:10, Ferruh Yigit:
>> --- a/doc/guides/nics/features/bnx2x.ini
>> +++ b/doc/guides/nics/features/bnx2x.ini
>> @@ -4,6 +4,7 @@
>> ; Refer to default.ini for the full list of available PMD features.
>> ;
>> [Features]
>> +Speed capabilities = Y
>
> We should validate this feature only if the driver advertise the
> right speeds for the device.
Hi Thomas,
Can you please clarify more, what is expected implementation in PMD?
And perhaps a good and a bad sample can be helpful.
Thanks,
ferruh
> Most of drivers advertise every possible speeds for the driver
> without considering device limitations.
>
12/05/2017 12:49, Ferruh Yigit:
> On 5/10/2017 2:51 PM, Thomas Monjalon wrote:
> > 10/05/2017 15:10, Ferruh Yigit:
> >> --- a/doc/guides/nics/features/bnx2x.ini
> >> +++ b/doc/guides/nics/features/bnx2x.ini
> >> @@ -4,6 +4,7 @@
> >> ; Refer to default.ini for the full list of available PMD features.
> >> ;
> >> [Features]
> >> +Speed capabilities = Y
> >
> > We should validate this feature only if the driver advertise the
> > right speeds for the device.
>
> Hi Thomas,
>
> Can you please clarify more, what is expected implementation in PMD?
It is expected to advertise only the speeds that the device is
capable to offer.
> And perhaps a good and a bad sample can be helpful.
Good example:
drivers/net/i40e/i40e_ethdev.c
if (I40E_PHY_TYPE_SUPPORT_40G(hw->phy.phy_types))
/* For XL710 */
dev_info->speed_capa = ETH_LINK_SPEED_40G;
else if (I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
/* For XXV710 */
dev_info->speed_capa = ETH_LINK_SPEED_25G;
else
/* For X710 */
dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;
Bad example:
drivers/net/bnx2x/bnx2x_ethdev.c
dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
Looking at qlogic.com, only some 57840 adapters are capable of 20G.
On 5/12/2017 4:48 PM, Thomas Monjalon wrote:
> 12/05/2017 12:49, Ferruh Yigit:
>> On 5/10/2017 2:51 PM, Thomas Monjalon wrote:
>>> 10/05/2017 15:10, Ferruh Yigit:
>>>> --- a/doc/guides/nics/features/bnx2x.ini
>>>> +++ b/doc/guides/nics/features/bnx2x.ini
>>>> @@ -4,6 +4,7 @@
>>>> ; Refer to default.ini for the full list of available PMD features.
>>>> ;
>>>> [Features]
>>>> +Speed capabilities = Y
>>>
>>> We should validate this feature only if the driver advertise the
>>> right speeds for the device.
>>
>> Hi Thomas,
>>
>> Can you please clarify more, what is expected implementation in PMD?
>
> It is expected to advertise only the speeds that the device is
> capable to offer.
>
>> And perhaps a good and a bad sample can be helpful.
>
> Good example:
> drivers/net/i40e/i40e_ethdev.c
> if (I40E_PHY_TYPE_SUPPORT_40G(hw->phy.phy_types))
> /* For XL710 */
> dev_info->speed_capa = ETH_LINK_SPEED_40G;
> else if (I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
> /* For XXV710 */
> dev_info->speed_capa = ETH_LINK_SPEED_25G;
> else
> /* For X710 */
> dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;
>
> Bad example:
> drivers/net/bnx2x/bnx2x_ethdev.c
> dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
> Looking at qlogic.com, only some 57840 adapters are capable of 20G.
OK, I will update the patch according.
Does it make sense to mark PMDs that report speed_capabilities, but
without checking actual hw, as partial "P", to differentiate them from
the ones that doesn't report at all, also this may help to PMD
maintainers about what to fix.
Thanks,
ferruh
15/05/2017 10:40, Ferruh Yigit:
> On 5/12/2017 4:48 PM, Thomas Monjalon wrote:
> > 12/05/2017 12:49, Ferruh Yigit:
> >> On 5/10/2017 2:51 PM, Thomas Monjalon wrote:
> >>> 10/05/2017 15:10, Ferruh Yigit:
> >>>> --- a/doc/guides/nics/features/bnx2x.ini
> >>>> +++ b/doc/guides/nics/features/bnx2x.ini
> >>>> @@ -4,6 +4,7 @@
> >>>> ; Refer to default.ini for the full list of available PMD features.
> >>>> ;
> >>>> [Features]
> >>>> +Speed capabilities = Y
> >>>
> >>> We should validate this feature only if the driver advertise the
> >>> right speeds for the device.
> >>
> >> Hi Thomas,
> >>
> >> Can you please clarify more, what is expected implementation in PMD?
> >
> > It is expected to advertise only the speeds that the device is
> > capable to offer.
> >
> >> And perhaps a good and a bad sample can be helpful.
> >
> > Good example:
> > drivers/net/i40e/i40e_ethdev.c
> > if (I40E_PHY_TYPE_SUPPORT_40G(hw->phy.phy_types))
> > /* For XL710 */
> > dev_info->speed_capa = ETH_LINK_SPEED_40G;
> > else if (I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
> > /* For XXV710 */
> > dev_info->speed_capa = ETH_LINK_SPEED_25G;
> > else
> > /* For X710 */
> > dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;
> >
> > Bad example:
> > drivers/net/bnx2x/bnx2x_ethdev.c
> > dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
> > Looking at qlogic.com, only some 57840 adapters are capable of 20G.
>
> OK, I will update the patch according.
>
> Does it make sense to mark PMDs that report speed_capabilities, but
> without checking actual hw, as partial "P", to differentiate them from
> the ones that doesn't report at all, also this may help to PMD
> maintainers about what to fix.
Yes, we can use partial "P" here.
Maybe we need another feature for detected link speed report capability.
There is already support for ETH_SPEED_NUM_NONE if the speed is not defined
or it can not be specified by the device. Netronome has some firmwares
without that link speed report capability, although maybe we are not the
only ones with that problem.
What do you think about this?
On Fri, May 12, 2017 at 4:48 PM, Thomas Monjalon <thomas@monjalon.net>
wrote:
> 12/05/2017 12:49, Ferruh Yigit:
> > On 5/10/2017 2:51 PM, Thomas Monjalon wrote:
> > > 10/05/2017 15:10, Ferruh Yigit:
> > >> --- a/doc/guides/nics/features/bnx2x.ini
> > >> +++ b/doc/guides/nics/features/bnx2x.ini
> > >> @@ -4,6 +4,7 @@
> > >> ; Refer to default.ini for the full list of available PMD features.
> > >> ;
> > >> [Features]
> > >> +Speed capabilities = Y
> > >
> > > We should validate this feature only if the driver advertise the
> > > right speeds for the device.
> >
> > Hi Thomas,
> >
> > Can you please clarify more, what is expected implementation in PMD?
>
> It is expected to advertise only the speeds that the device is
> capable to offer.
>
> > And perhaps a good and a bad sample can be helpful.
>
> Good example:
> drivers/net/i40e/i40e_ethdev.c
> if (I40E_PHY_TYPE_SUPPORT_40G(hw->phy.phy_types))
> /* For XL710 */
> dev_info->speed_capa = ETH_LINK_SPEED_40G;
> else if (I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
> /* For XXV710 */
> dev_info->speed_capa = ETH_LINK_SPEED_25G;
> else
> /* For X710 */
> dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;
>
> Bad example:
> drivers/net/bnx2x/bnx2x_ethdev.c
> dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
> Looking at qlogic.com, only some 57840 adapters are capable of 20G.
>
>
16/05/2017 11:39, Alejandro Lucero:
> Maybe we need another feature for detected link speed report capability.
>
> There is already support for ETH_SPEED_NUM_NONE if the speed is not defined
> or it can not be specified by the device. Netronome has some firmwares
> without that link speed report capability, although maybe we are not the
> only ones with that problem.
>
>
> What do you think about this?
Yes, you mean you can advertise a speed capability,
but cannot report the real negotiated speed, right?
So we could add this feature.
There are also virtual drivers which cannot report some real speed.
On Tue, May 16, 2017 at 11:02 AM, Thomas Monjalon <thomas@monjalon.net>
wrote:
> 16/05/2017 11:39, Alejandro Lucero:
> > Maybe we need another feature for detected link speed report capability.
> >
> > There is already support for ETH_SPEED_NUM_NONE if the speed is not
> defined
> > or it can not be specified by the device. Netronome has some firmwares
> > without that link speed report capability, although maybe we are not the
> > only ones with that problem.
> >
> >
> > What do you think about this?
>
> Yes, you mean you can advertise a speed capability,
> but cannot report the real negotiated speed, right?
> So we could add this feature.
>
Perfect.
> There are also virtual drivers which cannot report some real speed.
>
>
Yes, that is right. Virtual drivers can not report speed.
We have a problem with a client using pktgen which assumes a device will
report the link speed always. By the way, I will send a patch for avoiding
this issue with pktgen.
Thanks
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Queue start/stop = Y
Jumbo frame = Y
Scattered Rx = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Promiscuous mode = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Promiscuous mode = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Queue start/stop = Y
MTU update = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Queue start/stop = Y
MTU update = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Queue start/stop = Y
MTU update = Y
Jumbo frame = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Rx interrupt = Y
Queue start/stop = Y
Jumbo frame = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Rx interrupt = Y
Queue start/stop = Y
Jumbo frame = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Rx interrupt = Y
Queue start/stop = Y
Jumbo frame = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Rx interrupt = Y
Queue start/stop = Y
Jumbo frame = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Rx interrupt = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Removal event = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Queue start/stop = Y
Scattered Rx = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Jumbo frame = Y
@@ -13,7 +14,6 @@ Basic stats = Y
Flow API = Y
MTU update = Y
Multicast MAC filter = Y
-Speed capabilities = Y
Unicast MAC filter = Y
Packet type parsing = Y
Flow control = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Rx interrupt = Y
Queue start/stop = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Rx interrupt = Y
Queue start/stop = Y
@@ -4,6 +4,7 @@
; Refer to default.ini for the full list of available PMD features.
;
[Features]
+Speed capabilities = Y
Link status = Y
Link status event = Y
Queue start/stop = Y