From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0DDE6A034C; Mon, 2 May 2022 21:47:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D766C42827; Mon, 2 May 2022 21:47:36 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2040.outbound.protection.outlook.com [40.107.93.40]) by mails.dpdk.org (Postfix) with ESMTP id 07EBA40C35 for ; Mon, 2 May 2022 21:47:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z4k0G5jHqTnvoiSWzcExhxIBzuAN4zFN5t4hCVTg7TeZrS+Tan0EXvLO/7aGtjf0/H9i2NKhO2cLSPh/fLbsp8rAMe6gilFvQdZHHEeoQ1BfQ21VRu2Tt835p0fyCYB2S3fqlsGHHLlkQpZ8BqqBIAD3fcZ6YaIXqY8HGfYbbz3DoLmvlvPXttGxVm++yQET5BTQYq2M3+vATVagZJ9y2JMX6TV9d9ygg4+yb7dmWT13i9W/q7pwF5KarVYUkYlswWh//iU1B8L7M89wa2pi9ndAwPK25ywgI0r1k3NJ7EmILXIZU59iJmUWfPWVNNSwK+bh2EmWSzmlS28tv57/bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VLKdXX7LVo/ME6ffKsMZcNJhgBvNt+qk8I73YQZHNsY=; b=EMDIjJsZIvdujLVJro1aji4VPR6Rf1h4rt4Mki/+LMZop/14r06f6ln8z1Vxaig73nY9upGgerwtcrftdvmFeSyhgY0MDb64SU/0AxYGGG8CYj/vS+EjndcWmSiLLcSGhxMhoGEJk1njckH4CePUNNj/Vs1p176pkK09qxyb9oNGdetQ1mmzJwcDqnS1CmDC2sp139hptSML9DVA/67TTfzTQ/B1lP1Mv/NHRdmW86vT8GVC41ufJjgGsjxLnZqlYIyYvCiYRyfKLh1kdMq1E1jmPXTdSGvR6W6EDJ2SIsNBrENsqsYZgpd8FlGzPNa8M2CO1WWGwToI/pUzdC8b1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VLKdXX7LVo/ME6ffKsMZcNJhgBvNt+qk8I73YQZHNsY=; b=YTz1M5Ywiklq39VI1ZSCcgXqGRmAzPxuUjQvCStL53MXG370GbiCnQKK6A5EtOf5XOWxfLhdCYg2lcer+wDdZ2Qj4h8DV+//GQ/SF20sIbYa7IY9wUfkkvfExH+VKqcOCsvuUFOZqKQ1Hhhfiqgc6gApRF6nyawHKVFqzQbIEJY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; Received: from BYAPR05MB5624.namprd05.prod.outlook.com (2603:10b6:a03:1d::13) by MWHPR05MB3294.namprd05.prod.outlook.com (2603:10b6:301:41::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.12; Mon, 2 May 2022 19:47:32 +0000 Received: from BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::5161:a7c5:8c7d:f3b2]) by BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::5161:a7c5:8c7d:f3b2%7]) with mapi id 15.20.5206.024; Mon, 2 May 2022 19:47:32 +0000 From: Pankaj Gupta To: jbehrens@vmware.com, yongwang@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH 2/8] vmxnet3: implement reta query and reta update Date: Mon, 2 May 2022 15:45:51 -0400 Message-Id: <20220502194557.16016-3-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220502194557.16016-1-pagupta@vmware.com> References: <20220502194557.16016-1-pagupta@vmware.com> Content-Type: text/plain X-ClientProxiedBy: BYAPR01CA0049.prod.exchangelabs.com (2603:10b6:a03:94::26) To BYAPR05MB5624.namprd05.prod.outlook.com (2603:10b6:a03:1d::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 31d45f17-56d0-4029-af58-08da2c74991b X-MS-TrafficTypeDiagnostic: MWHPR05MB3294:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gHt3GDSIpGv0qP5O9EleUi1LcOvTdz1let3Q49lSubbtX7iVt5lHt36Z0A41YAjVqIZmAFvB2bDihBEdquyjEmyqnRMd05T7QUyC4iTXwjMmN5N9FLbRncLLi9TZreyfHSBb25GVh7yumVz1CgGVZ0sPSIo5qT7jvpcXxyfW3H1Bz/gdfpVN9213489288MmxBHAXyGBBAVGJaIm600QEtgCQhWSucituESl0CaFD53hqED/a4V2R5SeGLF4/pg2HoHnM7RiNC4uJC8V3J1khcJpx7oHNRRtt6WMBx9Q79VhuPQiIJXy5RTC3Li05YEcudwyfzgz9BAAZD1IDR1RHzMkUdLDa+uJ0pVvrtPVaL9itCIHv2Ek/R6YzG5N2BIOt1YBO9Uq+abfGx8Em1YwFAoSCgF3KeC7d1G1OnkzWasz5Pbq0AOPvPHEaGpIlwpUKAGxbxtdTqibsibqAjML8yGGV0dqBpzKU45WvQmeDW/u57ljS0MKj4U5ArmRH+lkxM6m6YWqj8O1EED3MgHjGj4cWju40+fd8dWJp8FeAGlkUW4mtru2rGUKG6j2AsiMUCfCydRbAr2kmA0PKs1JuTUrIEsmkYHhHW4EFbG9Bv2fxtiQgKHgxRN6V0/9/WqjIGfdX9RethzVCTiIwPuhleIduZWFDIbLEv/HYVJ8m8RkrDr2AKQSbGfOBc7UaiLUcWR1R+pL8WQKsQiErrgdzw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR05MB5624.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6666004)(1076003)(4326008)(6486002)(508600001)(86362001)(186003)(83380400001)(38350700002)(8676002)(52116002)(6636002)(2616005)(316002)(36756003)(107886003)(66476007)(38100700002)(66556008)(66946007)(8936002)(6506007)(5660300002)(2906002)(15650500001)(26005)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2Dxa4CpOkB01QFAXDC1FhrWpLZAoCRTwv4P53o/s76fGc6eh9aGhMExGGSnS?= =?us-ascii?Q?L8xLYm3ONFCL2CzQMnVWGDFXD8Z3a3BFD1tB0YtDoYN1DrwNP4pMk01kowNn?= =?us-ascii?Q?dJNGMZxFHvODv6bKSSEfzKACZHzM7dVu+XZuhRWzKklm9SIaELA3NDYvtWCT?= =?us-ascii?Q?TAgexlOdIxixzcEZS8jzpDwQHePuWThMoSiEC+ilMueuHTQGENf77tVKBRQh?= =?us-ascii?Q?ceHds6+WvyV71mvJTkYg3XnK6Yu6u507k3k6QzTWfMrbKw3Ey8R+bo0RdrcX?= =?us-ascii?Q?KTwrs+U9AujVIlYt0KrY/JK5xcvE8n7TwWfrxTa6/565n/Bjqi55BxVwc/B0?= =?us-ascii?Q?hZPyruWzFjoHRpX9Fy8uWxr6M52/ojj5ApOf1NOHKsdajdZVjM5waL4qOu8y?= =?us-ascii?Q?4K0g3g+5p/a77fTJjQUGaQYkLz2zuVR3N2MhMRKq6WTQuvKj0wkzaGF92BXi?= =?us-ascii?Q?Lcoksite5p9/fgeKHAwK4rdBjEK5RZBWQ7Zmsu09u6H1Jxcm5RpQp9CJmWyS?= =?us-ascii?Q?wnOOA0EwVmQ9Qu0EoHT1GhCUK6DFUjfcgps5qOQ8298+nikzAtCEe20YhzOn?= =?us-ascii?Q?Vbv0ekMQdT4zYp+SHzXQl2iZWyKj72jmsjtj97KwjWMic07kpWKAIlL336oF?= =?us-ascii?Q?V3pSbHRE0B14HDcENM+Cqywg1hE1iUpZOOhQkdWmWUbZNUpYqV1eKriM5A/E?= =?us-ascii?Q?dzSCrILqKh5Mxhmcw0y9pjCa26U3w8rbtxSA8e8ikTQIJsur10zvtE/CeCqD?= =?us-ascii?Q?xbIETyzEFOU7k0yi3aQonm2YWnOmA9zo4g4xYoTiv6Klp78IWHd2bEmgH/8c?= =?us-ascii?Q?1ZaFqIv2HZ8W98MpOSta9hx1I0XvQCfwE1PbdatWpG/7BwWZYOENntv8fVKK?= =?us-ascii?Q?AwLFg9DYo4UnMlpXDN68FraRDAcUWlqZdhs73wRgr2V2Bhei3FXbnxtE5oFu?= =?us-ascii?Q?cDiYl5hGbVstNSU0+zC5zqU7i+P1iKeym5dprZn9thvd8lgFIrXBSFSkRS89?= =?us-ascii?Q?1hH3lgThELVghqG/MSgWwIWqJedaEbcrCRWvr4heNEZIWSzFlRlPor0ETw9I?= =?us-ascii?Q?AAHCVt8j1mwDVFvVp7SDTz84kcrYg5d5lzb9hWn/fjvF9yxkDircIHLsucRA?= =?us-ascii?Q?YrgdidngZaw4CA98BK5ocPFywF7t9ft5uBEUiux/lcYXRbELQf6sxbmp5xvd?= =?us-ascii?Q?Vd5pCGPW0PbkwQ7NzaXpii8vM3RtMXev1WYVJk9F4feoMmqWjax6aNz8/gW3?= =?us-ascii?Q?uvfZYt5K5WNCrmZ9Yo/MejZcidwHljGD/fjpwrqPXNrFr8HFM7z1YkMQD2pu?= =?us-ascii?Q?LBNQFfq1127tUNTrkd1KCnI4WX4+tA7hr463TTecbePu2zBqhqItmWhtlCVg?= =?us-ascii?Q?i5JOV4PhPmsvLCQo9AfbtI4d4dJhNqC9MpRiMZc2lhzvSHUKwwt9MBSrB3U8?= =?us-ascii?Q?AOgcYxxlVrDeDX7CaMaxZyUHiay1MitMKGuAyToCsubKezI+wF1KuiKrhi9+?= =?us-ascii?Q?/7Zip4/u7xdWRXGRCuRDIl4yfP0nqBRovjkaMTO91jqQH8Df7lwub+EBh1CJ?= =?us-ascii?Q?CIrKgyvjH3zi2DuVYs3LIIwKTZ72uGiddd4D3jBktvoeLsjS8uzBZE7gVwtm?= =?us-ascii?Q?BB+aDZAnfB49q3sjTbkR5mp980Z87OOsE+/XlnXGmHm5egfBunoY3WK5gKiE?= =?us-ascii?Q?Nr6oHHtiP0jTM4iHh+XV1x/zEgNZiXLU2M1dA9fbwold0RcE83hi4TxpubaR?= =?us-ascii?Q?vHBgMvzwwg=3D=3D?= X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31d45f17-56d0-4029-af58-08da2c74991b X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2022 19:47:32.4153 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5dfR1B1qw9bWupWwSEKhNB20l8NHQRinUMcyFSW/cR365ILb4TGzx5lP4TNn7ssQJnijUtqkshe0EgjNt1+0ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3294 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Added reta query and reta update support for VMXNET3 Tested, using testpmd, for different hardware version on ESXi 7.0 Update 2. Signed-off-by: Pankaj Gupta --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index a7e1e5fef5..eb65499cf2 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -95,6 +95,14 @@ static int vmxnet3_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); static void vmxnet3_process_events(struct rte_eth_dev *dev); static void vmxnet3_interrupt_handler(void *param); +static int +vmxnet3_rss_reta_update(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size); +static int +vmxnet3_rss_reta_query(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size); static int vmxnet3_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id); static int vmxnet3_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, @@ -137,6 +145,8 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = { .tx_queue_release = vmxnet3_dev_tx_queue_release, .rx_queue_intr_enable = vmxnet3_dev_rx_queue_intr_enable, .rx_queue_intr_disable = vmxnet3_dev_rx_queue_intr_disable, + .reta_update = vmxnet3_rss_reta_update, + .reta_query = vmxnet3_rss_reta_query, }; struct vmxnet3_xstats_name_off { @@ -1696,3 +1706,60 @@ RTE_PMD_REGISTER_PCI_TABLE(net_vmxnet3, pci_id_vmxnet3_map); RTE_PMD_REGISTER_KMOD_DEP(net_vmxnet3, "* igb_uio | uio_pci_generic | vfio-pci"); RTE_LOG_REGISTER_SUFFIX(vmxnet3_logtype_init, init, NOTICE); RTE_LOG_REGISTER_SUFFIX(vmxnet3_logtype_driver, driver, NOTICE); + +static int +vmxnet3_rss_reta_update(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size) +{ + int i, idx, shift; + struct vmxnet3_hw *hw = dev->data->dev_private; + struct VMXNET3_RSSConf *dev_rss_conf = hw->rss_conf; + + if (reta_size != dev_rss_conf->indTableSize) { + PMD_DRV_LOG(ERR, + "The size of hash lookup table configured (%d) doesn't match " + "the supported number (%d)", + reta_size, dev_rss_conf->indTableSize); + return -EINVAL; + } + + for (i = 0; i < reta_size; i++) { + idx = i / RTE_ETH_RETA_GROUP_SIZE; + shift = i % RTE_ETH_RETA_GROUP_SIZE; + if (reta_conf[idx].mask & (1ULL << shift)) + dev_rss_conf->indTable[i] = (uint8_t)reta_conf[idx].reta[shift]; + } + + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, + VMXNET3_CMD_UPDATE_RSSIDT); + + return 0; +} + +static int +vmxnet3_rss_reta_query(struct rte_eth_dev *dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size) +{ + int i, idx, shift; + struct vmxnet3_hw *hw = dev->data->dev_private; + struct VMXNET3_RSSConf *dev_rss_conf = hw->rss_conf; + + if (reta_size != dev_rss_conf->indTableSize) { + PMD_DRV_LOG(ERR, + "Size of requested hash lookup table (%d) doesn't " + "match the configured size (%d)", + reta_size, dev_rss_conf->indTableSize); + return -EINVAL; + } + + for (i = 0; i < reta_size; i++) { + idx = i / RTE_ETH_RETA_GROUP_SIZE; + shift = i % RTE_ETH_RETA_GROUP_SIZE; + if (reta_conf[idx].mask & (1ULL << shift)) + reta_conf[idx].reta[shift] = dev_rss_conf->indTable[i]; + } + + return 0; +} -- 2.17.1