> > > > Implementations for the netdev functions 'get_features' and > > 'get_status' are now available for vhost-user thanks to the addition of > > the vHost PMD. > > > > Signed-off-by: Ciara Loftus <ciara.lof...@intel.com> > > --- > > lib/netdev-dpdk.c | 23 +++++++++++++---------- > > 1 file changed, 13 insertions(+), 10 deletions(-) > > > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > > index 814ef83..fce1655 100644 > > --- a/lib/netdev-dpdk.c > > +++ b/lib/netdev-dpdk.c > > @@ -2301,15 +2301,18 @@ netdev_dpdk_get_status(const struct netdev > > *netdev, struct smap *args) > > smap_add_format(args, "max_rx_queues", "%u", > > dev_info.max_rx_queues); > > smap_add_format(args, "max_tx_queues", "%u", > > dev_info.max_tx_queues); > > smap_add_format(args, "max_mac_addrs", "%u", > > dev_info.max_mac_addrs); > > - smap_add_format(args, "max_hash_mac_addrs", "%u", > > dev_info.max_hash_mac_addrs); > > - smap_add_format(args, "max_vfs", "%u", dev_info.max_vfs); > > - smap_add_format(args, "max_vmdq_pools", "%u", > > dev_info.max_vmdq_pools); > > > > - if (dev_info.pci_dev) { > > - smap_add_format(args, "pci-vendor_id", "0x%u", > > - dev_info.pci_dev->id.vendor_id); > > - smap_add_format(args, "pci-device_id", "0x%x", > > - dev_info.pci_dev->id.device_id); > > + if (dev->type == DPDK_DEV_ETH) { > > + smap_add_format(args, "max_hash_mac_addrs", "%u", > > + dev_info.max_hash_mac_addrs); > > + smap_add_format(args, "max_vfs", "%u", dev_info.max_vfs); > > + smap_add_format(args, "max_vmdq_pools", "%u", > > dev_info.max_vmdq_pools); > > + if (dev_info.pci_dev) { > > + smap_add_format(args, "pci-vendor_id", "0x%u", > > + dev_info.pci_dev->id.vendor_id); > > + smap_add_format(args, "pci-device_id", "0x%x", > > + dev_info.pci_dev->id.device_id); > > + } > > } > > > > return 0; > > @@ -3431,8 +3434,8 @@ static const struct netdev_class OVS_UNUSED > > dpdk_vhost_user_class = > > netdev_dpdk_vhost_user_send, > > netdev_dpdk_get_carrier, > > netdev_dpdk_get_stats, > > - NULL, > > - NULL, > > + netdev_dpdk_get_features, > > + netdev_dpdk_get_status, > > Maybe a comment for 1/3 but just thought of it while reviewing this: > do you need to call check_link_status() in netdev_dpdk_get_status() now > that it's not on a timer anymore? or is it guaranteed to be called for > all interfaces prior to netdev_dpdk_get_status().
Do you mean in netdev_dpdk_get_carrier() ? Perhaps the call isn't needed anymore... but there's maybe one corner case. Not sure if it's possible but if both the link status changed interrupt and netdev_dpdk_get_carrier are both called, it is whoever takes the dpdk_mutex first that will continue first. If netdev_dpdk_get_carrier() gets the mutex, it will only get up-to-date link info if the check_link_status() is called. If the call is not there, get_carrier() will return the old link status, free the mutex, and the interrupt will continue on and update the status to the new one immediately after. So I think it should be kept, but I don't have strong feelings about it either way. Thanks, Ciara > > > > netdev_dpdk_vhost_user_rxq_recv); > > > > void > > -- > > 2.4.3 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev