> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Thomas Monjalon > Sent: Wednesday, April 1, 2020 11:54 AM > > 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?
It is a patch for the virtio driver: http://inbox.dpdk.org/dev/20191212085012.9170-1-i.dyu...@samsung.com/T/#m052f90ea8c559406aeaefaea1fc24ed9bb573788 > > > 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@AM0P > R0502MB4019.eurprd05.prod.outlook.com/T/#t > > Yes, if speed is unknown, it should be reported as 0. So the next related question is: Should a vNIC be allowed to report a fake speed if it does not know that the underlying hardware actually provides this speed?