2015-08-29 2:16 GMT+02:00 Marc Sune <marcdevel at gmail.com>: > The current rte_eth_dev_info abstraction does not provide any mechanism to > get the supported speed(s) of an ethdev. > > For some drivers (e.g. ixgbe), an educated guess can be done based on the > driver's name (driver_name in rte_eth_dev_info), see: > > http://dpdk.org/ml/archives/dev/2013-August/000412.html > > However, i) doing string comparisons is annoying, and can silently > break existing applications if PMDs change their names ii) it does not > provide all the supported capabilities of the ethdev iii) for some drivers > it > is impossible determine correctly the (max) speed by the application > (e.g. in i40, distinguish between XL710 and X710). > > This small patch adds speed_capa bitmap in rte_eth_dev_info, which is > filled > by the PMDs according to the physical device capabilities. > > v2: rebase, converted speed_capa into 32 bits bitmap, fixed alignment > (checkpatch). > > v3: rebase to v2.1. unified ETH_LINK_SPEED and ETH_SPEED_CAP into > ETH_SPEED. > Converted field speed in struct rte_eth_conf to speeds, to allow a > bitmap > for defining the announced speeds, as suggested by M. Brorup. Fixed > spelling issues. > > v4: fixed errata in the documentation of field speeds of rte_eth_conf, and > commit 1/2 message. rebased to v2.1.0. v3 was incorrectly based on > ~2.1.0-rc1. >
Thomas, Since mostly you were commenting for v1 and v2; any opinion on this one? Regards marc > > Marc Sune (2): > Added ETH_SPEED_ bitmap in rte_eth_dev_info > Filling speed capability bitmaps in the PMDs > > app/test-pmd/cmdline.c | 32 +++++++++++------------ > app/test/virtual_pmd.c | 2 +- > drivers/net/bonding/rte_eth_bond_8023ad.c | 14 +++++----- > drivers/net/cxgbe/base/t4_hw.c | 8 +++--- > drivers/net/e1000/em_ethdev.c | 20 +++++++++----- > drivers/net/e1000/igb_ethdev.c | 20 +++++++++----- > drivers/net/fm10k/fm10k_ethdev.c | 3 +++ > drivers/net/i40e/i40e_ethdev.c | 43 > +++++++++++++++++++------------ > drivers/net/i40e/i40e_ethdev_vf.c | 2 +- > drivers/net/ixgbe/ixgbe_ethdev.c | 32 +++++++++++++++-------- > drivers/net/mlx4/mlx4.c | 6 +++++ > drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 +- > lib/librte_ether/rte_ethdev.h | 42 > +++++++++++++++++++++--------- > 13 files changed, 142 insertions(+), 84 deletions(-) > > -- > 2.1.4 > >