From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bcmv-tmail01.ecl.ntt.co.jp (bcmv-tmail01.ecl.ntt.co.jp [124.146.185.148]) by dpdk.org (Postfix) with ESMTP id 3DFA11B466 for ; Tue, 9 Oct 2018 12:52:20 +0200 (CEST) Received: from bcmv-ns01.ecl.ntt.co.jp (bcmv-ns01.ecl.ntt.co.jp [129.60.83.123]) by bcmv-tmail01.ecl.ntt.co.jp (8.14.4/8.14.4) with ESMTP id w99AqJ5C017826; Tue, 9 Oct 2018 19:52:19 +0900 Received: from bcmv-ns01.ecl.ntt.co.jp (localhost [127.0.0.1]) by bcmv-ns01.ecl.ntt.co.jp (Postfix) with ESMTP id 16E60125; Tue, 9 Oct 2018 19:52:19 +0900 (JST) Received: from localhost.localdomain (unknown [129.60.13.51]) by bcmv-ns01.ecl.ntt.co.jp (Postfix) with ESMTP id 00B95119; Tue, 9 Oct 2018 19:52:19 +0900 (JST) From: ogawa.yasufumi@lab.ntt.co.jp To: spp@dpdk.org, ferruh.yigit@intel.com, ogawa.yasufumi@lab.ntt.co.jp Date: Tue, 9 Oct 2018 19:52:06 +0900 Message-Id: <20181009105207.42636-5-ogawa.yasufumi@lab.ntt.co.jp> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20181009105207.42636-1-ogawa.yasufumi@lab.ntt.co.jp> References: <20181009105207.42636-1-ogawa.yasufumi@lab.ntt.co.jp> X-TM-AS-MML: disable Subject: [spp] [PATCH 4/5] spp_nfv: refactor add_ring_pmd X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Oct 2018 10:52:20 -0000 From: Yasufumi Ogawa * Correct assigning of uint16_to for port ID which is assigned as int incorrectly. * Correct log messages. Signed-off-by: Yasufumi Ogawa --- src/nfv/nfv.c | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/nfv/nfv.c b/src/nfv/nfv.c index e245a26..c261e8d 100644 --- a/src/nfv/nfv.c +++ b/src/nfv/nfv.c @@ -373,25 +373,39 @@ add_patch(int in_port, int out_port) return 0; } +/* + * Create ring PMD with given ring_id. + */ static int add_ring_pmd(int ring_id) { struct rte_ring *ring; - int ring_port_id; + int res; + char rx_queue_name[32]; /* Prefix and number like as 'eth_ring_0' */ - /* look up ring, based on user's provided id*/ - ring = rte_ring_lookup(get_rx_queue_name(ring_id)); + memset(rx_queue_name, '\0', sizeof(rx_queue_name)); + sprintf(rx_queue_name, "%s", get_rx_queue_name(ring_id)); + + /* Look up ring with provided ring_id */ + ring = rte_ring_lookup(rx_queue_name); if (ring == NULL) { RTE_LOG(ERR, APP, - "Cannot get RX ring - is server process running?\n"); + "Failed to get RX ring %s - is primary running?\n", + rx_queue_name); return -1; } + RTE_LOG(INFO, APP, "Looked up ring '%s'\n", rx_queue_name); /* create ring pmd*/ - ring_port_id = rte_eth_from_ring(ring); - RTE_LOG(DEBUG, APP, "ring port id %d\n", ring_port_id); + res = rte_eth_from_ring(ring); + if (res < 0) { + RTE_LOG(ERR, APP, + "Cannot create eth dev with rte_eth_from_ring()\n"); + return -1; + } + RTE_LOG(INFO, APP, "Created ring PMD: %d\n", res); - return ring_port_id; + return res; } static int @@ -649,7 +663,7 @@ static int do_add(char *res_uid) { enum port_type type = UNDEF; - int port_id = PORT_RESET; + uint16_t port_id = PORT_RESET; char *p_type; int p_id; int res; @@ -660,25 +674,27 @@ do_add(char *res_uid) if (!strcmp(p_type, "vhost")) { type = VHOST; - port_id = add_vhost_pmd(p_id); + res = add_vhost_pmd(p_id); } else if (!strcmp(p_type, "ring")) { type = RING; - port_id = add_ring_pmd(p_id); + res = add_ring_pmd(p_id); } else if (!strcmp(p_type, "pcap")) { type = PCAP; - port_id = add_pcap_pmd(p_id); + res = add_pcap_pmd(p_id); } else if (!strcmp(p_type, "nullpmd")) { type = NULLPMD; - port_id = add_null_pmd(p_id); + res = add_null_pmd(p_id); } - if (port_id < 0) + if (res < 0) return -1; + else + port_id = (uint16_t) res; - port_map[port_id].id = p_id; + port_map[port_id].id = (uint16_t) p_id; port_map[port_id].port_type = type; port_map[port_id].stats = &ports->client_stats[p_id]; -- 2.7.4