vlib: add format pci link port 09/34309/2
authorRay Kinsella <mdr@ashroe.eu>
Tue, 2 Nov 2021 13:26:49 +0000 (13:26 +0000)
committerDamjan Marion <dmarion@me.com>
Tue, 2 Nov 2021 22:25:40 +0000 (22:25 +0000)
Added a function to nicely format pci link ports. Similar to the existing
link_speed etc format functions.

Type: improvement

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: Ic1f104e0cb34dad274f6c959e776a32c0bab697d

src/vlib/pci/pci.c
src/vlib/pci/pci.h

index 1c1f4b6..18d93ac 100644 (file)
@@ -142,6 +142,19 @@ format_vlib_pci_addr (u8 * s, va_list * va)
                 addr->slot, addr->function);
 }
 
+u8 *
+format_vlib_pci_link_port (u8 *s, va_list *va)
+{
+  vlib_pci_device_info_t *d = va_arg (*va, vlib_pci_device_info_t *);
+  pcie_config_regs_t *r =
+    pci_config_find_capability (&d->config0, PCI_CAP_ID_PCIE);
+
+  if (!r)
+    return format (s, "unknown");
+
+  return format (s, "P%d", r->link_status >> 24);
+}
+
 u8 *
 format_vlib_pci_link_speed (u8 * s, va_list * va)
 {
index 5aae597..01f7d5b 100644 (file)
@@ -325,6 +325,7 @@ int vlib_pci_supports_virtual_addr_dma (vlib_main_t * vm,
 unformat_function_t unformat_vlib_pci_addr;
 format_function_t format_vlib_pci_addr;
 format_function_t format_vlib_pci_link_speed;
+format_function_t format_vlib_pci_link_port;
 format_function_t format_vlib_pci_vpd;
 
 #endif /* included_vlib_pci_h */