From mboxrd@z Thu Jan 1 00:00:00 1970 From: Declan Doherty Subject: [PATCH v6 2/8] ethdev: add switch identifier parameter to port Date: Wed, 28 Mar 2018 14:54:27 +0100 Message-ID: <20180328135433.20203-3-declan.doherty@intel.com> References: <20180328135433.20203-1-declan.doherty@intel.com> Cc: Alex Rosenbaum , Ferruh Yigit , Thomas Monjalon , Shahaf Shuler , Qi Zhang , Alejandro Lucero , Andrew Rybchenko , Mohammad Abdul Awal , Remy Horton , John McNamara , Rony Efraim , Wu@dpdk.org, Jingjing , Lu@dpdk.org, Wenzhuo , Vincent JArdin , Yuanhan Liu , Richardson@dpdk.org, Bruce , Ananyev@dpdk.org, Konstantin , Wang@dpdk.org, Zhihong , Declan Doherty To: dev@dpdk.org Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id D9B5A4CBB for ; Wed, 28 Mar 2018 16:02:51 +0200 (CEST) In-Reply-To: <20180328135433.20203-1-declan.doherty@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 the their port_id. Ports which share a common switch domain are configured with the same switch id. Signed-off-by: Declan Doherty --- app/test-pmd/config.c | 1 + lib/librte_ether/rte_ethdev.c | 3 +++ lib/librte_ether/rte_ethdev.h | 1 + lib/librte_ether/rte_ethdev_core.h | 1 + 4 files changed, 6 insertions(+) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 4bb255c62..e12f8c515 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -517,6 +517,7 @@ 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); + printf("Switch Id: %u\n", dev_info.switch_id); } void diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 23857c91f..f32d18cad 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -290,6 +290,8 @@ rte_eth_dev_allocate(const char *name) eth_dev = eth_dev_get(port_id); snprintf(eth_dev->data->name, sizeof(eth_dev->data->name), "%s", name); eth_dev->data->port_id = port_id; + eth_dev->data->switch_id = port_id; + /**< Default switch_id is the port_id of the device */ eth_dev->data->mtu = ETHER_MTU; unlock: @@ -2395,6 +2397,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info) dev_info->driver_name = dev->device->driver->name; dev_info->nb_rx_queues = dev->data->nb_rx_queues; dev_info->nb_tx_queues = dev->data->nb_tx_queues; + dev_info->switch_id = dev->data->switch_id; } int diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 036153306..dced4fc41 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1029,6 +1029,7 @@ struct rte_eth_dev_info { /** Configured number of rx/tx queues */ uint16_t nb_rx_queues; /**< Number of RX queues. */ uint16_t nb_tx_queues; /**< Number of TX queues. */ + uint16_t switch_id; /**< Switch Domain Id */ }; /** diff --git a/lib/librte_ether/rte_ethdev_core.h b/lib/librte_ether/rte_ethdev_core.h index e5681e466..caed7a4e6 100644 --- a/lib/librte_ether/rte_ethdev_core.h +++ b/lib/librte_ether/rte_ethdev_core.h @@ -585,6 +585,7 @@ struct rte_eth_dev_data { struct ether_addr* hash_mac_addrs; /** Device Ethernet MAC addresses of hash filtering. */ uint16_t port_id; /**< Device [external] port identifier. */ + uint16_t switch_id; /**< Switch which port is associated with */ __extension__ uint8_t promiscuous : 1, /**< RX promiscuous mode ON(1) / OFF(0). */ scattered_rx : 1, /**< RX of scattered packets is ON(1) / OFF(0) */ -- 2.14.3