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 27B76A00BE; Thu, 5 May 2022 03:09:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7D2E942821; Thu, 5 May 2022 03:09:05 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2041.outbound.protection.outlook.com [40.107.94.41]) by mails.dpdk.org (Postfix) with ESMTP id 2C07C40689 for ; Thu, 5 May 2022 03:09:02 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YvTNy4+uv6pMXSVqiyQJNkkq1rTIZMIt35n3c4/UgLlfXZZkRodQcGxJThH0jZdGwvWC8ybse7ITyzgq9KvmOSxWmUNyytGxJzLeFQISvKdqooyQO6ksdQaHpdHQPeMyvZYg/MSalY55+0fMMbIdlna+/IUtBnYbTpDrk+tgcOAV4lS4G2ODsdIsrrNWV7WqCx2esDTiHcJCOdAgQsqWwjUVXM1FYYUEp4txPJn7zHOxzaDQBVCqE1SMvIMsZ+alN5jSi9H1udrTN3cuE6TI280Cs/wIoSUFlLck91tDg+25rKU0PfNHt5NrzxrGT6ZYLKjO9MIVMT5lCoF+y4tX2A== 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=bRuxC7SikfrhLDfoN7CoOeFSapH8mjw4pHF/dZtLwkc=; b=l7zZPa+YPRz+uf0Tp7x4JDPl4XgwKAt1u3jrXPmxIn1No0QVks5yBm13NpwRxi/+I/Mrp27jx+179zI3VMTSW0by69s06OPvhvcLP87hwr/uhwfheGFxv/d/2uf2SoBpgq+Hk4SyFHS+t6AZhoRL6w11I1Ev4zZ4+RdTdCXzTmIbiZeapmDF1B3dZ4RPWGtIpmTfoq/JqA745xOp5gsXhph96oytn+Jo9+TuTDt8DVElrs//fsbheybjDz0E78YgkLgdigWiIj358vNSvQNCbUwS/J7zw0UvQQj0aXRrqJ0/65K91LeEPCK3JlJ2QqkfGfORR/TQ3rcoOYqScx8SLQ== 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=bRuxC7SikfrhLDfoN7CoOeFSapH8mjw4pHF/dZtLwkc=; b=Lznu9cS9kZQhRjhhWV2NsDB3bayITob9LdYG1cxn16NNneRBAeVw2wl+FkO39K3jQEyrNwZT6FNA3x8YZhDGgaQdMyQiRqdtoin1I1QY6hBB6lUsRzQHBD/cTo5eU2WXixUmfbNZqykbWnZ3/WONSGuZW47rvQsgZz57ciLTH7E= 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 BN6PR05MB3489.namprd05.prod.outlook.com (2603:10b6:405:40::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.14; Thu, 5 May 2022 01:09:00 +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; Thu, 5 May 2022 01:09:00 +0000 From: Pankaj Gupta To: jbehrens@vmware.com, yongwang@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH v3 2/8] net/vmxnet3: implement reta query and reta update Date: Wed, 4 May 2022 21:08:40 -0400 Message-Id: <20220505010846.25788-3-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220505010846.25788-1-pagupta@vmware.com> References: <20220505010846.25788-1-pagupta@vmware.com> Content-Type: text/plain X-ClientProxiedBy: SJ0P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::31) 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: 84e993cc-2e72-4559-a1a4-08da2e33d526 X-MS-TrafficTypeDiagnostic: BN6PR05MB3489: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: 6nphkTZ9KrUbZ2FfI95Ce05Rn/JetTjadzAq4vSggSWpCrVhhhQKIkrk1d/5au4n7YWjNIQ8pyrp7R52pjeGww24Fj2HSdIAD6l7R7Z6o5+ZOZnHuNBvUMN5XiI4kyV/toaXNID3AxRw0PZoH6nguKPD6+hLFaEN38vJMh2aeHJzQpNd2atqvqTNzdKLjV9z0Zu49WFU780FkeB0bLqNkDHwlyZURCbE+5alK6nGnYmgY5v7XbR8ModiPtMNHmAkqDrpGZ/LpgjQ0SA4QTlNKhsQ45VSI/uVCvtsfDvSKqo29FWe5V86+33nv6/W+/ifzRrNhQwVWLo3YPU8lO6xRDRTJjB9ETGcmnjhqbBTjBZAQU+37lP5VX7SHtxORfI1zRih3axipG9PuwLm5DRBlBnKPk1PmYXcJfkSS87upuqjJemqMf/aAn6XmtQIteSW8ZPN3LQfbZw3bhKgf1TeJXkRL9o2eS0m7uuhrWdXimSbkkGnu9ymr+r3YhAZsYKhNN/apTMZzMr7N2XFg1q8Z1bSUIBXrz1OK5gukmeARL9B9/qQtqTTp8w/WfTUZjYXWqnOkCxAJCeCQOx+O2GFhZ89KAFJyTQPiPznAPuMRSdJpS6wavc1tzbogdTKNHyQU67Hvuz1NrfqSOco0ceavRNOX5pVnm4s2xWyG1nUA4Sk2JJg0gc1ALo/wjiRON1j1CKx2Hn4ZHL/U2UTyde0FUSz85zJ97viCMIImL+Hc7ZZO54tWTcgTtrSaly+oPwv 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)(26005)(6512007)(316002)(38100700002)(38350700002)(86362001)(6486002)(508600001)(6506007)(66946007)(66556008)(4326008)(8676002)(66476007)(6666004)(52116002)(186003)(6636002)(5660300002)(83380400001)(2906002)(1076003)(107886003)(15650500001)(8936002)(2616005)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tcWILDDBrO/T/wbtgGLHkfx/pZPbR5y7YjpYgfqmBRl2WHbpJMWpZxHnQFpW?= =?us-ascii?Q?vPmwvCtCAdbkAcIM8M7ruqfVz0kU9IB8rXohbvqw1uO3mlZY6uXD26wctWV3?= =?us-ascii?Q?+jZ96LTz2Pw5cDdcAUkMHxmmQ949JZcoTyGanMaFDpEzLSUPNZ4g4FAH5Crv?= =?us-ascii?Q?cdIEkLs0KX3t0QghImPUC4bpXurEs9iY43b4mOX1lrTrDRkVFi9QTevH4bKT?= =?us-ascii?Q?h5oLpl7V9k+MHSVjTmyfVRrxPibBvteaQyzetqYVN3TwKFUekfvHnSsWE91m?= =?us-ascii?Q?RA6gLYGvdXSYEbaDjaHMLD1uiUpS1OdoD3/sTVk8cLtOhPWFpYAQXdP9Xzax?= =?us-ascii?Q?HcJ6VLca0DZax3juDAqCDrgJPwtoF+srKU7RHI9gVOeBtALcdc27apn88hvb?= =?us-ascii?Q?FSy8rFEw84UMRlnVTUqIu2Zxr7KdBuCRLgnTmndbGRYcTR4V7UgwpElki/JT?= =?us-ascii?Q?sLLMjpc8u9JdcV98MU+iiDCgRzokUfodLg6rxumsZ2hoxNIVv2Yol95dnW71?= =?us-ascii?Q?TNDL/SH4SBUUohRk0xTHgM2MkCqGstXvMrG1YHfP3cwdxKNuZevwOeytj9rf?= =?us-ascii?Q?tofonsMEzxFwl5MIbbnDQYSrTezNcbIZr5LUbD9BvND78fwQYjPFbTaUT5jr?= =?us-ascii?Q?ksNPDAa1m0km24i8ZuL3o5B0q4jaKvpZSlaMD4oZaC3GyGoYu2sy9Yy2iS2F?= =?us-ascii?Q?iZh0M1cRGtKVsSu4WUUhmEr9XAPm2vJ2+NHr8O1jKwwfvST6+iU85yIg6U2O?= =?us-ascii?Q?EKTukFAmxQNeXeBfK6tt9/bXMUX3TYpCGWDLEjMxzrTFVM4NuUSkGi9DF0In?= =?us-ascii?Q?lz/f6+f1Hzd1boSK2dPQYIuIwtxzcdCvK39N0rwpqpzRXs4OCMwsXfOnLME1?= =?us-ascii?Q?C7zkxDPYoyXF8yB5P6iIHZ1y8DpRIt2lQDK1GJE4MQOqqVeJ+nbme4SJtWWr?= =?us-ascii?Q?cXF/ciHQnuvKpOVe2vx4nB2NCo/e2+dmw2QkuqPuzz3WOq34GS04yW2rVhxR?= =?us-ascii?Q?SQ8+djeLxLEhmYth1S9rsR4BLKuSTxynMUjaS+pK7pArhvvt70OvvULK5pqr?= =?us-ascii?Q?ZjiurrzsGTuwXxsnXeTnvZQ+FKcnFSkgBj130aCw6ulejYaWBSu0bnwtJXDB?= =?us-ascii?Q?j+He6JjZ6Xdh9J8jRPCxRkiNDVhGhpcxM6i4hJX6nlDheyuomCh/dph4cC43?= =?us-ascii?Q?ZlLgQBVOyL0G7GpWXLKQQgO7c9qbWerV+9ITXzjEVxqr+UW9bpsYzOEtLOao?= =?us-ascii?Q?fyY+anGMKLdWAqfA4UEvBGUpyVUBEIO33oOcIkmB7FAnfSGknZwowq1d2eae?= =?us-ascii?Q?bPJNXr6tpc3pyOjIG3PHC1KixkRoaee2nXiD6AZ3V5H/pKxWV7KuObRM/LXa?= =?us-ascii?Q?mkgAgN7hhQskWz6zCLr8NCv7lRETtYsKEdw4YQPqRDGLsX81pWSeoSx7XrHx?= =?us-ascii?Q?nfaFWNy0q/50FB2I05ZdHWvqIPf9xl36+FCjVKq8iA2j5NYaoc8uwo/mjXsj?= =?us-ascii?Q?aRAjk3Pxt3R2Br5gvJjZilt+BRf77MSB1jCywN4N26G4noJdvfo2fQ5usujD?= =?us-ascii?Q?Wvolg/0sHPE5xd7HMkzlo6lwkKXmE5YYDbo1L++2+bh//X8MDED0OohThMEq?= =?us-ascii?Q?zg4Qs1LJKgsW5pCtS+Z8jp2oz21rhXVAjSj+ZoVp8tz4XOiCWU6+NNCl3TrB?= =?us-ascii?Q?tjL4YNWTpw7Pr9g2fD3E/lptq0atsGD4VNzYGTU25LzbhMX09q3gq+H2shtP?= =?us-ascii?Q?hdrIzKXppw=3D=3D?= X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84e993cc-2e72-4559-a1a4-08da2e33d526 X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2022 01:08:58.2041 (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: ERINFv/bz5a8b3sf1PqFNuXMoPkwcVMW8iZ0I8cffaBGuSNNH+JLHttf7irPrmn6CtqD5O+Xv0rwzqIFIqYivA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB3489 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 Add 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 Reviewed-by: Jochen Behrens --- 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..d5f9903946 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 & RTE_BIT64(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 & RTE_BIT64(shift)) + reta_conf[idx].reta[shift] = dev_rss_conf->indTable[i]; + } + + return 0; +} -- 2.17.1