This commit extends netdev_dpdk_get_status API to include additional driver-related information: if_type and if_descr.
v2->v3: Code rebase. v3->v4: Minor comments applied. v5->v6: Adds DPDK port specific description in documentation. Co-authored-by: Michal Weglicki <michalx.wegli...@intel.com> Signed-off-by: Michal Weglicki <michalx.wegli...@intel.com> Signed-off-by: Przemyslaw Szczerbik <przemyslawx.szczer...@intel.com> --- lib/netdev-dpdk.c | 9 ++++++++ vswitchd/vswitch.xml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 76e79be..3560bdd 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -36,6 +36,7 @@ #include <rte_meter.h> #include <rte_pci.h> #include <rte_vhost.h> +#include <rte_version.h> #include "dirs.h" #include "dp-packet.h" @@ -2509,6 +2510,14 @@ netdev_dpdk_get_status(const struct netdev *netdev, struct smap *args) smap_add_format(args, "max_vfs", "%u", dev_info.max_vfs); smap_add_format(args, "max_vmdq_pools", "%u", dev_info.max_vmdq_pools); + /* Querying the DPDK library for iftype may be done in future, pending + * support; cf. RFC 3635 Section 3.2.4. */ + enum { IF_TYPE_ETHERNETCSMACD = 6 }; + + smap_add_format(args, "if_type", "%"PRIu32, IF_TYPE_ETHERNETCSMACD); + smap_add_format(args, "if_descr", "%s %s", rte_version(), + dev_info.driver_name); + if (dev_info.pci_dev) { smap_add_format(args, "pci-vendor_id", "0x%u", dev_info.pci_dev->id.vendor_id); diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index c145e1a..72cf353 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -2815,6 +2815,70 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \ Whether carrier is detected on <ref column="status" key="tunnel_egress_iface"/>. </column> + + <group title="dpdk"> + <p> + DPDK specific interface status options. + </p> + + <column name="status" key="port_no"> + DPDK port ID. + </column> + + <column name="status" key="numa_id"> + NUMA socket ID to which an Ethernet device is connected. + </column> + + <column name="status" key="min_rx_bufsize"> + Minimum size of RX buffer. + </column> + + <column name="status" key="max_rx_pktlen"> + Maximum configurable length of RX pkt. + </column> + + <column name="status" key="max_rx_queues"> + Maximum number of RX queues. + </column> + + <column name="status" key="max_tx_queues"> + Maximum number of TX queues. + </column> + + <column name="status" key="max_mac_addrs"> + Maximum number of MAC addresses. + </column> + + <column name="status" key="max_hash_mac_addrs"> + Maximum number of hash MAC addresses for MTA and UTA. + </column> + + <column name="status" key="max_vfs"> + Maximum number of hash MAC addresses for MTA and UTA. + Maximum number of VFs. + </column> + + <column name="status" key="max_vmdq_pools"> + Maximum number of VMDq pools. + </column> + + <column name="status" key="if_type"> + Interface type ID according to IANA ifTYPE MIB definitions. + </column> + + <column name="status" key="if_descr"> + Interface description string. + </column> + + <column name="status" key="pci-vendor_id"> + Vendor ID of PCI device. + </column> + + <column name="status" key="pci-device_id"> + Device ID of PCI device. + </column> + + </group> </group> <group title="Statistics"> -- 1.8.3.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev