From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id 77CF82C1A for ; Wed, 15 Mar 2017 15:51:11 +0100 (CET) Received: from 6wind.com (unknown [10.16.0.184]) by proxy.6wind.com (Postfix) with SMTP id 9CE8627FC8; Wed, 15 Mar 2017 15:51:05 +0100 (CET) Received: by 6wind.com (sSMTP sendmail emulation); Wed, 15 Mar 2017 15:49:57 +0100 From: Pascal Mazon To: keith.wiles@intel.com, ferruh.yigit@intel.com Cc: dev@dpdk.org, Pascal Mazon Date: Wed, 15 Mar 2017 15:48:16 +0100 Message-Id: <47810fcba82b77331862e282ce473b29eb7656c1.1489589167.git.pascal.mazon@6wind.com> X-Mailer: git-send-email 2.8.0.rc0 In-Reply-To: References: <1488904298-31395-1-git-send-email-pascal.mazon@6wind.com> Subject: [dpdk-dev] [PATCH v5 5/8] net/tap: add speed capabilities 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: , X-List-Received-Date: Wed, 15 Mar 2017 14:51:11 -0000 Tap PMD is flexible, it supports any speed. Signed-off-by: Pascal Mazon Reviewed-by: Ferruh Yigit --- doc/guides/nics/features/tap.ini | 1 + drivers/net/tap/rte_eth_tap.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini index b80577753240..6c07352088bf 100644 --- a/doc/guides/nics/features/tap.ini +++ b/doc/guides/nics/features/tap.ini @@ -10,6 +10,7 @@ Promiscuous mode = Y Allmulticast mode = Y Basic stats = Y MTU update = Y +Speed capabilities = Y Unicast MAC filter = Y Other kdrv = Y ARMv7 = Y diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index b14bbabb84cb..c531febfc6ce 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -407,6 +407,40 @@ tap_dev_configure(struct rte_eth_dev *dev __rte_unused) return 0; } +static uint32_t +tap_dev_speed_capa(void) +{ + uint32_t speed = pmd_link.link_speed; + uint32_t capa = 0; + + if (speed >= ETH_SPEED_NUM_10M) + capa |= ETH_LINK_SPEED_10M; + if (speed >= ETH_SPEED_NUM_100M) + capa |= ETH_LINK_SPEED_100M; + if (speed >= ETH_SPEED_NUM_1G) + capa |= ETH_LINK_SPEED_1G; + if (speed >= ETH_SPEED_NUM_5G) + capa |= ETH_LINK_SPEED_2_5G; + if (speed >= ETH_SPEED_NUM_5G) + capa |= ETH_LINK_SPEED_5G; + if (speed >= ETH_SPEED_NUM_10G) + capa |= ETH_LINK_SPEED_10G; + if (speed >= ETH_SPEED_NUM_20G) + capa |= ETH_LINK_SPEED_20G; + if (speed >= ETH_SPEED_NUM_25G) + capa |= ETH_LINK_SPEED_25G; + if (speed >= ETH_SPEED_NUM_40G) + capa |= ETH_LINK_SPEED_40G; + if (speed >= ETH_SPEED_NUM_50G) + capa |= ETH_LINK_SPEED_50G; + if (speed >= ETH_SPEED_NUM_56G) + capa |= ETH_LINK_SPEED_56G; + if (speed >= ETH_SPEED_NUM_100G) + capa |= ETH_LINK_SPEED_100G; + + return capa; +} + static void tap_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { @@ -419,6 +453,7 @@ tap_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_tx_queues = internals->nb_queues; dev_info->min_rx_bufsize = 0; dev_info->pci_dev = NULL; + dev_info->speed_capa = tap_dev_speed_capa(); } static void -- 2.8.0.rc0