From patchwork Fri Dec 14 01:26:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 48795 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3D0091B5F4; Fri, 14 Dec 2018 02:26:28 +0100 (CET) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by dpdk.org (Postfix) with ESMTP id C42C41B5EF for ; Fri, 14 Dec 2018 02:26:26 +0100 (CET) Received: by mail-pg1-f194.google.com with SMTP id z10so1889952pgp.7 for ; Thu, 13 Dec 2018 17:26:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dbuCE0Kt+GIqtvQH+YGxpAhxNVD8MDmPhvpZIQ6xXcc=; b=wAp1Tn/1pOFVC1vhpigWuVphtNGndOdDKr6lMav6JprjkZPYS+C8nW/X7tcbZY2O/v kwa2an2AurFOmEbURoRSodWBp0xCiPl3UcSJGKq1dCJPCNLh6vNT3m4/OSG8EWh35oL3 WjxJLJt3uvRjHDiQPbHbzNz/W5XPD7nhGeqa3zHgbkaxgNFMG22bbhVCL3ccchmX+Gx9 JwA3glu+CuFDLMRtOU4+Ex2wuYB4xQxIBdEAFYQqTgTGFImzKiGt7LiSoIr9Sh4a2ed/ qMM4AcVqR+IRnwUk9TSdGzpEnZimV1o8WAE694nOfwwGpKmmO0tJ+ImtMhI8Eg3IDoal fwdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dbuCE0Kt+GIqtvQH+YGxpAhxNVD8MDmPhvpZIQ6xXcc=; b=MPdixC5X9cF4hPV37SaraRDAJJ1p9jOrLdjipTt6mc2HJvH769hCSTH3S6LcCWnIz1 WuMgQUiXvbxEEuXVpaA0HQUiSlN15+UQZ53cMZhuoh2skgSnP4e1bSEZRtzt1Ol3dTRk j5dbH/wSXnuyeqGAZ6MASFByJYrqlsoR5G6xvfeLv/72POYzd0JyecVzuTfFZRiXvg1f 1S619D6/zvpazhg5m9FMlpOvixKXeJhIg1lWFUmnOfUsmQh5NS4ENypBHF4tK28dTXTK 2uFofwhDrM0cfnN/hPrEvgCaoL+uyRdCoAoXBJRlyw7HbFqDWMjm3Pa7MMPct3HGGOD7 W72g== X-Gm-Message-State: AA+aEWb/sNs4jvTBQQR4zcG9CL56K+pwUeuMskkBwK+17lc3nfERgS7K AxPKaFSH6N3KDgNFOry9zubiNHSJjaM= X-Google-Smtp-Source: AFSGD/VpTL4PtBsR66QiirYYlVZFmah1bRarZTpVdYalXyBP30f46EO6lAx6Npx3gsbpKCTrlKix8Q== X-Received: by 2002:a63:e348:: with SMTP id o8mr965004pgj.158.1544750785565; Thu, 13 Dec 2018 17:26:25 -0800 (PST) Received: from xeon-e3.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id i21sm3379085pgm.17.2018.12.13.17.26.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 17:26:24 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Stephen Hemminger Date: Thu, 13 Dec 2018 17:26:19 -0800 Message-Id: <20181214012621.15213-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214012621.15213-1-stephen@networkplumber.org> References: <20181214012621.15213-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 1/3] net/netvsc: support receive without vlan strip X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In some cases, VLAN stripping is not desireable. If necessary re-insert stripped vlan tag. Signed-off-by: Stephen Hemminger --- drivers/net/netvsc/hn_ethdev.c | 2 ++ drivers/net/netvsc/hn_rxtx.c | 8 ++++++++ drivers/net/netvsc/hn_var.h | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index b330bf3d7255..d7ac0c7320b0 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -378,6 +378,8 @@ static int hn_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } + hv->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP); + err = hn_rndis_conf_offload(hv, txmode->offloads, rxmode->offloads); if (err) { diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index f4a36641b6c3..622a83983e10 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -501,6 +501,14 @@ static void hn_rxpkt(struct hn_rx_queue *rxq, struct hn_rx_bufinfo *rxb, if (info->vlan_info != HN_NDIS_VLAN_INFO_INVALID) { m->vlan_tci = info->vlan_info; m->ol_flags |= PKT_RX_VLAN_STRIPPED | PKT_RX_VLAN; + + /* NDIS always strips tag, put it back if necessary */ + if (!hv->vlan_strip && rte_vlan_insert(&m)) { + PMD_DRV_LOG(DEBUG, "vlan insert failed"); + ++rxq->stats.errors; + rte_pktmbuf_free(m); + return; + } } if (info->csum_info != HN_NDIS_RXCSUM_INFO_INVALID) { diff --git a/drivers/net/netvsc/hn_var.h b/drivers/net/netvsc/hn_var.h index e1072c7cfa55..cd173f6af942 100644 --- a/drivers/net/netvsc/hn_var.h +++ b/drivers/net/netvsc/hn_var.h @@ -97,8 +97,9 @@ struct hn_data { struct rte_eth_dev *vf_dev; /* Subordinate device */ rte_spinlock_t vf_lock; uint16_t port_id; - bool closed; - bool vf_present; + uint8_t closed; + uint8_t vf_present; + uint8_t vlan_strip; uint32_t link_status; uint32_t link_speed; From patchwork Fri Dec 14 01:26:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 48796 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8836F1B5FB; Fri, 14 Dec 2018 02:26:29 +0100 (CET) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by dpdk.org (Postfix) with ESMTP id 0870B1B5F3 for ; Fri, 14 Dec 2018 02:26:27 +0100 (CET) Received: by mail-pl1-f195.google.com with SMTP id a14so1901322plm.12 for ; Thu, 13 Dec 2018 17:26:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nvJQagoLn/iJwkBl6QU937UalmyVw8ooczRh5C56e58=; b=B9CNJsgwxCPjAgA3vkImPoANXpzs6cr+tfnbDU/pRaqOwvs6qnl/lcj8FRW8xtUdH4 Ku2ga44KutL+4IwmrR0oJ70/njnV89GweAjaz88Ld/TYD3hQS1GcpfHNYlb7mXi88g6U 2heV2q26l5QU/ZEy1XbYFDSTnCykh9r71DdyCcMJDaQy2hdEVPQiYqSL+jQI676cQMfj CF4a34oS8kMORdZokNF23hMXrnxEqM4zBIYnKZ5zzDzKwaQwkQhYWPKPmEjttmpiH0jb uSB0Mcx42eQdfUBpSuPCHZfIiCOOMV7lZhlveZFmCVeHalrCDCb65ixelhEk/V7+gKDz aoLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nvJQagoLn/iJwkBl6QU937UalmyVw8ooczRh5C56e58=; b=sXF4TCvO+X6UxKBICz0ZEiRyJUSZS4b5YIQFm+F+XOjhBNHdsO6QpCC+/99OjuoJpI 9VXPutMM/mom1uUhpOFnZduSWxnNPbM9oqs8/pksFfvPzeoCbVc5EdrX1CAH9ZSgiqar xDHZqXDR/iE8oEdNyv7mDqTUbdXxfYQCKQtrxmOGBuvFjGvw/McxgG86EGOEqualyvya ihP/Oa5U3awqwiWB691Kh5z4xHgsJZiOj0pr96bggkj0G8kTrAlQlelIsByOC1RoJrZt u2jrkzymUrzL2LsUn5ehwkd3FpFsPTkc/N0WcxZikVXuWWcjplYFt6CJDz7laVKsEB2t mjAQ== X-Gm-Message-State: AA+aEWZ/Zo4fi7taZxPHM3nDPqS0xZDAV5+55csK0EPnGpITccIjjLLj 1KIzzeGElzcRF4J7dqZkuklkp0gJ9+0= X-Google-Smtp-Source: AFSGD/UkvJv40Xe7HYT5T4tKusfiSN1yfJqz1ID2Fu7RmxtYXQS0CzAWuQUlPAf61pl7wOKuoAPlcw== X-Received: by 2002:a17:902:28e9:: with SMTP id f96mr1018815plb.169.1544750786767; Thu, 13 Dec 2018 17:26:26 -0800 (PST) Received: from xeon-e3.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id i21sm3379085pgm.17.2018.12.13.17.26.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 17:26:25 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Stephen Hemminger Date: Thu, 13 Dec 2018 17:26:20 -0800 Message-Id: <20181214012621.15213-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214012621.15213-1-stephen@networkplumber.org> References: <20181214012621.15213-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 2/3] net/netvsc: cleanup transmit descriptor pool X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On device close or startup errors, the transmit descriptor pool was being left behind. Signed-off-by: Stephen Hemminger --- drivers/net/netvsc/hn_ethdev.c | 2 ++ drivers/net/netvsc/hn_rxtx.c | 11 +++++++++++ drivers/net/netvsc/hn_var.h | 1 + 3 files changed, 14 insertions(+) diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index d7ac0c7320b0..de872212d3f3 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -796,6 +796,7 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) failed: PMD_INIT_LOG(NOTICE, "device init failed"); + hn_tx_pool_uninit(eth_dev); hn_detach(hv); return err; } @@ -818,6 +819,7 @@ eth_hn_dev_uninit(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = NULL; hn_detach(hv); + hn_tx_pool_uninit(eth_dev); rte_vmbus_chan_close(hv->primary->chan); rte_free(hv->primary); rte_eth_dev_owner_delete(hv->owner.id); diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c index 622a83983e10..6197118b01ee 100644 --- a/drivers/net/netvsc/hn_rxtx.c +++ b/drivers/net/netvsc/hn_rxtx.c @@ -199,6 +199,17 @@ hn_tx_pool_init(struct rte_eth_dev *dev) return 0; } +void +hn_tx_pool_uninit(struct rte_eth_dev *dev) +{ + struct hn_data *hv = dev->data->dev_private; + + if (hv->tx_pool) { + rte_mempool_free(hv->tx_pool); + hv->tx_pool = NULL; + } +} + static void hn_reset_txagg(struct hn_tx_queue *txq) { txq->agg_szleft = txq->agg_szmax; diff --git a/drivers/net/netvsc/hn_var.h b/drivers/net/netvsc/hn_var.h index cd173f6af942..7f3266c451fb 100644 --- a/drivers/net/netvsc/hn_var.h +++ b/drivers/net/netvsc/hn_var.h @@ -150,6 +150,7 @@ uint16_t hn_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts); int hn_tx_pool_init(struct rte_eth_dev *dev); +void hn_tx_pool_uninit(struct rte_eth_dev *dev); int hn_dev_link_update(struct rte_eth_dev *dev, int wait); int hn_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, From patchwork Fri Dec 14 01:26:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 48797 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCEB91B5FF; Fri, 14 Dec 2018 02:26:31 +0100 (CET) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by dpdk.org (Postfix) with ESMTP id 6DFB21B5F9 for ; Fri, 14 Dec 2018 02:26:29 +0100 (CET) Received: by mail-pl1-f196.google.com with SMTP id t13so1891896ply.13 for ; Thu, 13 Dec 2018 17:26:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h6lwdm6jtJWxQI/s606EiY1GP4dgf+/8LLhmtk3omW0=; b=XX/gwfIJ5SDUryEm+lenKL6sxPv9oFxH1DGUTx08TKnL1ZtTctwaA1CIWlzmDKvF3V sVTQZ0H//q0Bk90BT2yWpnBhwxfJOg/FKP3rAnd/17tE+IthEDTRKlG6aRSU1MUVkyN/ EMgteej7OtYs+t4Zz4Clql5Uc3HUhMM9nHJEJbPfpSdiUx1lFS7rrjFNB+rDWcGpdOJG Fh2onzlXQodfl+xVxkpKEVkrZde0DKeSrgFu2JUShzYuP0/w2MgKUgWdVKspdX2JK1HJ E6G/D7UHhBP10JfnWWWS0yDV9zIP22MwjwitfEbXvdIl90rdHUgZpl4PHP2s8ks6o8rS lsuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h6lwdm6jtJWxQI/s606EiY1GP4dgf+/8LLhmtk3omW0=; b=c2E1E433tCXF2sIMNfgyJm6iP1vPwjO/NwGhsA5N7Wk+RMLKTOVaLiRRYCe80gt6f5 4J2aYjbsqxeSErfaQnvgpcNzU05xqEmN56xfWHS7BZHJ5ZfyKsAr7Z/ASKh5DM7bXBJj 6neG4pXATci2lJX4ROUUpbDs6o7oPBVNRZA8Xl+FIMn/GSAj49adcF0MrE7abq4uW+ed HsDEvadM/38LgS2kRBCI9bIlsSZ9VTd1Jx0/rCMoAGmnuxslILtQZyNNuVgDsyueI8nj vR1b02Jpfu65V+IE2kFiP8JKaIGc2LWTgkKmOT7d3/ATGL2pWU6c2njtSX2clCM9oY1Z 9guw== X-Gm-Message-State: AA+aEWYpDGYqN+6uoJaB2o7qAfcd2Bc3yAlHiZCd6wmB5JK3TauDCYhf d2Z85313//9xg1IvrapRJBoLnubb+dE= X-Google-Smtp-Source: AFSGD/WSV8dhDL1x1xI5KB5VQ2TdoktWv1kic6NaWGF6DRIhbAcaMXIFJ8Pgc9C4Xk473STRLv66XQ== X-Received: by 2002:a17:902:59c8:: with SMTP id d8mr1051712plj.116.1544750788195; Thu, 13 Dec 2018 17:26:28 -0800 (PST) Received: from xeon-e3.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id i21sm3379085pgm.17.2018.12.13.17.26.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 17:26:26 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Stephen Hemminger Date: Thu, 13 Dec 2018 17:26:21 -0800 Message-Id: <20181214012621.15213-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214012621.15213-1-stephen@networkplumber.org> References: <20181214012621.15213-1-stephen@networkplumber.org> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 3/3] net/netvsc: not finding VF should not cause failure X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" It is possible that the VF device exists but DPDK doesn't know about it. This could happen if device was blacklisted or more likely the necessary device (Mellanox) was not part of the DPDK configuration. In either case, the right thing to do is just keep working but only with the slower para-virtual device. Signed-off-by: Stephen Hemminger --- drivers/net/netvsc/hn_ethdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index de872212d3f3..1f7a7e66a51b 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -788,7 +788,7 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) err = hn_vf_add(eth_dev, hv); if (err) - goto failed; + hv->vf_present = 0; } return 0;