[dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernet devices

Thomas Monjalon thomas at monjalon.net
Wed Apr 1 11:53:32 CEST 2020


01/04/2020 11:33, Morten Brørup:
> Thomas, Ferruh, Andrew (Ethernet API Maintainers),
> 
> A command line option was recently added to set which speed a vNIC reports when the link is up. This makes sense for Spanning Tree and other protocols which depend on link speed.

Please could you reference the patch?

> However, I suspect that this workaround rarely reflects the physical truth, and suggest that the application should handle it instead.

I don't understand why we need to define some speed for virtual devices.

> In other words... Instead of faking it in the virtual Ethernet drivers, I suggest that rte_ethdev.h defines a special speed value for vNICs which really don't have a physical link speed:
> 
> #define ETH_SPEED_NUM_NONE         0 /**< Not defined */

The only issue with this constant is the lack of RTE_ prefix :-)
Otherwise I think "0 - NONE - not defined" fits well with virtual device case.

> +#define ETH_SPEED_NUM_UNKNOWN      1 /**< Unknown (virtual device) */

1 means 1 Mbps

> #define ETH_SPEED_NUM_10M         10 /**<  10 Mbps */
> 
> Alternatively, we could expand the meaning of ETH_SPEED_NUM_NONE:
> 
> -#define ETH_SPEED_NUM_NONE         0 /**< Not defined */
> +#define ETH_SPEED_NUM_NONE         0 /**< Not defined or unknown (virtual device) */

Yes I agree with extending the comment for NONE.

> The special value could also be used in cases like this:
> http://inbox.dpdk.org/dev/AM0PR0502MB401907ADE7CEA27DC642DF35D2CB0@AM0PR0502MB4019.eurprd05.prod.outlook.com/T/#t

Yes, if speed is unknown, it should be reported as 0.





More information about the dev mailing list