From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by dpdk.org (Postfix) with ESMTP id 29A9B47CD for ; Fri, 22 Jul 2016 17:34:24 +0200 (CEST) Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 6899C60F78; Fri, 22 Jul 2016 15:34:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from drakthul.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: okaya@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 990A46029F; Fri, 22 Jul 2016 15:34:21 +0000 (UTC) From: Sinan Kaya To: dev@dpdk.org Cc: Sinan Kaya Date: Fri, 22 Jul 2016 11:34:10 -0400 Message-Id: <1469201650-32447-1-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 Subject: [dpdk-dev] [PATCH] ethdev: support PCI domains X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 15:34:24 -0000 The current code is enumerating devices based on bus, device and function pairs. This does not work well for architectures with multiple PCI segments/domains. Multiple PCI devices will have the same BDF value but different segment numbers (01:01:01.0 and 02:01:01.0) for instance. Adding segment numbers to device naming so that we can uniquely identify devices. Signed-off-by: Sinan Kaya --- lib/librte_ether/rte_ethdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 0a6e3f1..929240f 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -226,7 +226,8 @@ rte_eth_dev_create_unique_device_name(char *name, size_t size, { int ret; - ret = snprintf(name, size, "%d:%d.%d", + ret = snprintf(name, size, "%d:%d:%d.%d", + pci_dev->addr.domain, pci_dev->addr.bus, pci_dev->addr.devid, pci_dev->addr.function); if (ret < 0) -- 1.8.2.1