From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <declan.doherty@intel.com>
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id D9B5A4CBB
 for <dev@dpdk.org>; Wed, 28 Mar 2018 16:02:51 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga007.jf.intel.com ([10.7.209.58])
 by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 28 Mar 2018 07:02:50 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.48,371,1517904000"; d="scan'208";a="28771527"
Received: from dwdohert-ws.ir.intel.com ([163.33.210.60])
 by orsmga007.jf.intel.com with ESMTP; 28 Mar 2018 07:02:45 -0700
From: Declan Doherty <declan.doherty@intel.com>
To: dev@dpdk.org
Cc: Alex Rosenbaum <alexr@mellanox.com>, Ferruh Yigit <ferruh.yigit@intel.com>,
 Thomas Monjalon <thomas@monjalon.net>,
 Shahaf Shuler <shahafs@mellanox.com>, Qi Zhang <qi.z.zhang@intel.com>,
 Alejandro Lucero <alejandro.lucero@netronome.com>,
 Andrew Rybchenko <arybchenko@solarflare.com>,
 Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>,
 Remy Horton <remy.horton@intel.com>,
 John McNamara <john.mcnamara@intel.com>, Rony Efraim <ronye@mellanox.com>,
 Wu, Jingjing <jingjing.wu@intel.com>, Lu, Wenzhuo <wenzhuo.lu@intel.com>,
 Vincent JArdin <vincent.jardin@6wind.com>,
 Yuanhan Liu <yliu@fridaylinux.org>, Richardson,
 Bruce <bruce.richardson@intel.com>, Ananyev,
 Konstantin <konstantin.ananyev@intel.com>, Wang,
 Zhihong <zhihong.wang@intel.com>, Declan Doherty <declan.doherty@intel.com>
Date: Wed, 28 Mar 2018 14:54:27 +0100
Message-Id: <20180328135433.20203-3-declan.doherty@intel.com>
X-Mailer: git-send-email 2.14.3
In-Reply-To: <20180328135433.20203-1-declan.doherty@intel.com>
References: <20180328135433.20203-1-declan.doherty@intel.com>
Subject: [dpdk-dev] [PATCH v6 2/8] ethdev: add switch identifier parameter
	to port
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Mar 2018 14:02:53 -0000

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 <declan.doherty@intel.com>
---
 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