dpdk: Add constants for failsafe PMD 47/12547/2
authorRui Cai <rucai@microsoft.com>
Fri, 11 May 2018 22:13:58 +0000 (22:13 +0000)
committerDamjan Marion <dmarion.lists@gmail.com>
Sat, 12 May 2018 07:14:09 +0000 (07:14 +0000)
Adding name, enum constants and formatting code
for failsafe PMD.

This is part of initial effort to enable vpp running over
dpdk on failsafe PMD in Microsoft Azure(2/4).

Change-Id: I4eb0093db9f666e2635f7ddff451e3c9064bd0c4
Signed-off-by: Rui Cai <rucai@microsoft.com>
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/device/format.c

index e1966e4..eed1126 100644 (file)
@@ -80,7 +80,8 @@ extern vlib_node_registration_t dpdk_input_node;
   _ ("net_dpaa2", DPAA2)          \
   _ ("net_virtio_user", VIRTIO_USER) \
   _ ("net_vhost", VHOST_ETHER)    \
-  _ ("net_ena", ENA)
+  _ ("net_ena", ENA)              \
+  _ ("net_failsafe", FAILSAFE)
 
 typedef enum
 {
@@ -109,6 +110,7 @@ typedef enum
   VNET_DPDK_PORT_TYPE_ETH_VF,
   VNET_DPDK_PORT_TYPE_VIRTIO_USER,
   VNET_DPDK_PORT_TYPE_VHOST_ETHER,
+  VNET_DPDK_PORT_TYPE_FAILSAFE,
   VNET_DPDK_PORT_TYPE_UNKNOWN,
 } dpdk_port_type_t;
 
index 3809024..6dd80e0 100644 (file)
@@ -235,6 +235,10 @@ format_dpdk_device_name (u8 * s, va_list * args)
       device_name = "VhostEthernet";
       break;
 
+    case VNET_DPDK_PORT_TYPE_FAILSAFE:
+      device_name = "FailsafeEthernet";
+      break;
+
     default:
     case VNET_DPDK_PORT_TYPE_UNKNOWN:
       device_name = "UnknownEthernet";
@@ -243,7 +247,8 @@ format_dpdk_device_name (u8 * s, va_list * args)
 
   rte_eth_dev_info_get (i, &dev_info);
 
-  if (dev_info.pci_dev)
+  if (dev_info.pci_dev &&
+      dm->devices[i].port_type != VNET_DPDK_PORT_TYPE_FAILSAFE)
     ret = format (s, devname_format, device_name, dev_info.pci_dev->addr.bus,
                  dev_info.pci_dev->addr.devid,
                  dev_info.pci_dev->addr.function);
@@ -363,6 +368,10 @@ format_dpdk_device_type (u8 * s, va_list * args)
       dev_type = "AWS ENA VF";
       break;
 
+    case VNET_DPDK_PMD_FAILSAFE:
+      dev_type = "Failsafe Ethernet";
+      break;
+
     default:
     case VNET_DPDK_PMD_UNKNOWN:
       dev_type = "### UNKNOWN ###";