]> git.droids-corp.org - dpdk.git/commitdiff
ethdev: add switch identifier parameter to port
authorDeclan Doherty <declan.doherty@intel.com>
Thu, 26 Apr 2018 10:40:58 +0000 (11:40 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 27 Apr 2018 17:00:56 +0000 (18:00 +0100)
Introduces a new port attribute to ethdev port's which denotes the
switch domain a port belongs to. By default all port's switch
identifiers are set to RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID. Ports
which supported the concept of switch domains can be configured with
the same switch domain id.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
app/test-pmd/config.c
doc/guides/rel_notes/deprecation.rst
lib/librte_ether/rte_ethdev.h

index 0f2425229a2104fd1089bbe5c5292059759df2da..3eb84c89c0e02aef40e5c9df655651852f037605 100644 (file)
@@ -517,6 +517,18 @@ port_infos_display(portid_t port_id)
        printf("Min possible number of TXDs per queue: %hu\n",
                dev_info.tx_desc_lim.nb_min);
        printf("TXDs number alignment: %hu\n", dev_info.tx_desc_lim.nb_align);
+
+       /* Show switch info only if valid switch domain and port id is set */
+       if (dev_info.switch_info.domain_id !=
+               RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID) {
+               if (dev_info.switch_info.name)
+                       printf("Switch name: %s\n", dev_info.switch_info.name);
+
+               printf("Switch domain Id: %u\n",
+                       dev_info.switch_info.domain_id);
+               printf("Switch Port Id: %u\n",
+                       dev_info.switch_info.port_id);
+       }
 }
 
 void
index fd85a141bae78f9f6a0914647c3d992a4593fc2e..c3b79a22f18343b5ace0f2e111b07eb88893cda0 100644 (file)
@@ -59,12 +59,6 @@ Deprecation Notices
   Target release for removal of the legacy API will be defined once most
   PMDs have switched to rte_flow.
 
-* ethdev: A work is being planned for 18.05 to expose VF port representors
-  as a mean to perform control and data path operation on the different VFs.
-  As VF representor is an ethdev port, new fields are needed in order to map
-  between the VF representor and the VF or the parent PF. Those new fields
-  are to be included in ``rte_eth_dev_info`` struct.
-
 * i40e: The default flexible payload configuration which extracts the first 16
   bytes of the payload for RSS will be deprecated starting from 18.02. If
   required the previous behavior can be configured using existing flow
index 0474451c8a624e85e02749c492efe11add67db39..01e96dc800021c62c323db20df6b748ec39b1960 100644 (file)
@@ -1026,6 +1026,28 @@ struct rte_eth_dev_portconf {
        uint16_t nb_queues; /**< Device-preferred number of queues */
 };
 
+/**
+ * Default values for switch domain id when ethdev does not support switch
+ * domain definitions.
+ */
+#define RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID   (0)
+
+/**
+ * Ethernet device associated switch information
+ */
+struct rte_eth_switch_info {
+       const char *name;       /**< switch name */
+       uint16_t domain_id;     /**< switch domain id */
+       uint16_t port_id;
+       /**<
+        * mapping to the devices physical switch port as enumerated from the
+        * perspective of the embedded interconnect/switch. For SR-IOV enabled
+        * device this may correspond to the VF_ID of each virtual function,
+        * but each driver should explicitly define the mapping of switch
+        * port identifier to that physical interconnect/switch
+        */
+};
+
 /**
  * Ethernet device information
  */
@@ -1073,6 +1095,11 @@ struct rte_eth_dev_info {
        struct rte_eth_dev_portconf default_txportconf;
        /** Generic device capabilities (RTE_ETH_DEV_CAPA_). */
        uint64_t dev_capa;
+       /**
+        * Switching information for ports on a device with a
+        * embedded managed interconnect/switch.
+        */
+       struct rte_eth_switch_info switch_info;
 };
 
 /**