From patchwork Wed May 4 21:22:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Gupta X-Patchwork-Id: 110618 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8D8E0A00BE; Wed, 4 May 2022 23:23:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 557AE427F4; Wed, 4 May 2022 23:23:11 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2069.outbound.protection.outlook.com [40.107.101.69]) by mails.dpdk.org (Postfix) with ESMTP id 8B39F40E5A for ; Wed, 4 May 2022 23:23:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DkStT0ReCPq/JeEe8tMEh1HnMwFTCC9wS4qG0JqONwtK58ZL6qjHgPuBJRyOslPGvqp+rmiIGAGUL5GXunhY6//tuqqfHzedcjkGPT5vSSCsBrJ/7uzxiIRvjiTFNz+cL+DDeMhNQFHmYD+TVDPGC9AXdNeGG8AFqNINrOl3SM6Kww99TkxZb/OkhCasmqTl9M6xo+9DM75SWo+oL/YvDLifUM9sBP42KWBUzIxtI/uYgznH/fxDOOI8QhkT7HKnTfRx5Sg358Xb1VFIygZ2HfO2/6lxyKwVWULkHglfhCSIbCesiPbpihQSdVhVqgp5bMVeyTmMGTXoGIWZjPvbWQ== 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=5Gfc0NxvjEbp8vBd4CYdY2PAtUvp6H/+DA/MILj6OVA=; b=TwhBj7Krun1cwEagu1WD9eSse0tB+grKLAB8dPgwUCz0YESTOUGvVzUGVzheT0fk01dviNHaw3SYQRLp9uLhdDWqQ0Aave8dgQtVbu92pr7OMwfZGGZvyPQB/H4F+gsUKZ0Yz3HTCr4VafHSEfzbDZyghq6tj80tKK2muZI5PNMY7j23WyVrxeBmhi8tcMF0HoYxFtazdNWKIfZDeFxFhuArmKtCdgppZXsZbfHV/j8QGMBiFP0FE0hwBp4oNWmCbJ3HgkU9BI5iyeLZc/Qdmes0EpfvfeF40ZxYStWP8Vdcus4RH6phqyvNeGEdxcgzBjoHj8mqKUFjW6zYjLBGzg== 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=5Gfc0NxvjEbp8vBd4CYdY2PAtUvp6H/+DA/MILj6OVA=; b=WXL/Kuh8Hb7MbBprssE8rq7FNALrp1LfTwP/CUKWUzK9iIjpXzyX2VnlBqKYwJ9VvKOrczqrEIDA61UB8knpGK+3qu8eTwkRV2Y8cE/XeKFeMN9K84vfJ8U5992jdMSYuWBLjuBgLGy8nd8vNwykLIrKOEQU+rkp40cOeZsVFZM= 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 BN6PR05MB3313.namprd05.prod.outlook.com (2603:10b6:405:42::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 21:23:08 +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; Wed, 4 May 2022 21:23:08 +0000 From: Pankaj Gupta To: jbehrens@vmware.com, yongwang@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH v2 2/8] net/vmxnet3: implement reta query and reta update Date: Wed, 4 May 2022 17:22:46 -0400 Message-Id: <20220504212252.25117-3-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220504212252.25117-1-pagupta@vmware.com> References: <20220504212252.25117-1-pagupta@vmware.com> X-ClientProxiedBy: SJ0P220CA0006.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::29) 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: a6721fac-d63f-4c0d-36ba-08da2e144888 X-MS-TrafficTypeDiagnostic: BN6PR05MB3313: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: 4M9YlPhPPmgUxuRoijcCcM5m1FF8zAmwugc35l8D9NBz0lb8XOErljh6jkquu0opbITn8afeyaETtC75/mhhejbLmP+8Te5KrEa5eIHKvF3ZIl/GDHHHi2V7Yyb8t7LlIR9XQ8L7JhE48+0JntmPZY3WACJ/zk0vFT6G3jTS1fd8pWcGYXCM6dmF1S0fdZ4XssJ4bHi6Tn2N3o07iRe2e8H9WZsLP7eBTcYbMnHZaVugUkizFQwtGvExtX7ujk0hcw0WGj2SqnZTY5L7kEIVzM/13ll9GYKUcCzAXsM38oxE9yry0XaAkMRSbSrAhnzn/aG1UY4soLh/0TwteU466puQXc7KfFfrRUwCoGA+ZtP5D+KmOJpTCwhqnDkdgIDEPmGFYmQTWN56dZnt4EJijSxFMidpRi1yNn3dtgoVVZPDBNQeHKIauzB4SrT+tOaK6YwXm9RNBvyWLWc82OF3gxNZuBqTlq7D1E7U02BytwzxRFM+ScsSEmq+G8TrcXMEpl2rRLNlG3ZbDqJ/iSmJijLJxmm4nEqTiE+i/7wCHLpKRfkFBpmAYvtjzijVpgkVG2z+jmYfFAdcvEivjuqqY4qRzX2P16p/P690ncFeE8QkdOzvl9O3ExnwDqiBSEiJ99wQgtkzmCUqpnx1Sw9mnOYezfSeFIqCVnQgFbb1c2A5ekFWX1f9Prdl834wHIHQDM53iXJCX7O24lDVAn95MKapl8xSpKKr5tqBz6lIUhPi8bjmPF+AmXt97wKjTmXH 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)(1076003)(86362001)(36756003)(26005)(83380400001)(6636002)(52116002)(508600001)(5660300002)(2616005)(38100700002)(186003)(38350700002)(8936002)(107886003)(6486002)(66556008)(66946007)(8676002)(66476007)(4326008)(15650500001)(2906002)(316002)(6506007)(6666004)(6512007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AO2ZL8ypyUsLYYAfXVKfakNgJLz1TUxFEh3vub1CMpzfGE6iMvqFKHXDpiWbSR+GARwefCRR2gfp9VzZQvGEkCVnFWyhIMfX3IaIc7AzK3q54AdCeWtrTBP3HLwo2ctu0DDSj/gv17lZAlCIu0Gyka5lurhqInGv3vuZh3kk1odJUcXxCs9MgCsxV63cbig/YWXxe4NbDPeHVuZh60ngFdEN6zjwW9+Yn3xho8I6KCSGGqqGcTFP5eqXGpFkiijK2U5/mQdp77XKfBLk9gPBfmDLDtiy0kheKkP+b2hQtD1KjrRTPMkakYGgvTVd+5DT+tCyGk2ieaIVYoaY9powJCmwBaklZuysNufxMVyizsfY5DzilfMPNcO3MBALbspyBVVXiRg7PmqYCJA0hTbpxnMfByMlp3GVaboPbhRaC9efq/TtUkAEmn11jQjGbcuEfUEI8LhM6iYA5EQnybetGNSw4Dp07rh29z6GGvoM9+k9qo/dNO8wFyhpf4nzUCTrjnnYvv6mbrVYKZjvgUYUBIAF+k50Z/P7lDMoFJCoI2atqJC3VD7Sv1HOrh5K4k6AbBHXwUu9/rl7m+MDS9qrojfARXqog3H1P8D26jCfjXrd+rFA0B9q4aevCmCTUqcFxbEJApH0i5reGtcp36nvLjl8Nvoa/hC5DbquMlyuvHNv0m2Eah3X3j4UALPOIx7lp0PbHrzeOofCrFU0blNIlhKL5mKFqqxSVO1p9Xru07l3XKxVkL+YgMp5yLqizMwDRzzYDeS6e4xOCa7dI5nYr42zGdfAJXuXIjiyc0EWAtvPg5QNqpF5HuqbrkjxEzup1iKjTWTiiRWY5SRtl3DXYGxoprITnX9ohUPKPBsiIExYXF6X52TiSkb1udScXDvrTH6dG0Aka5dZs9S7T4acdiu5n7CybhdmYk1b1yrHA6EcGIB2D5DRa8C/40YMNNrDlAZgawZRHOeS9qNbEozyj863BWipqoT1gBvszrfLuaNP/FbCXCC2/xquI7lyESSoJsz90Fvjo8Yjq1w5Ww5pmY1AUyc+pDa9y2ntdssSnuJKPr8AmsCVcXcqchnPT/LJdiLiAcVWSnAO7qSVOITDUnNPl8K0vQ2/gNojwlc/9CA6XPuw2MDFoDgwjNTcVH66t3Pj94g/CkhG257heQABxjXqOXp8/svcCxA8LbXJvds83hIrCtHGxa4lkXpdX5ktyhEY40xxYFINRKUuXODGN5WSGWL/Z69p6ozouDWb21ooukhzKLUKRTlbUkJECJIN3hArUW5Y56BmxGNNoUUoCYb8334sMs6z+BPG2ee8/SWpGi1fM0HFx1wPKLxD6n8Nr3U5Czyx5hMnMaRqfeXEVnAh+5OCmkjhBmqnXbL4LxelWcz2Nuvyue01zh2mxkk5jNqLJ2yAr6Ld1eUGNwXPbaQnIxs4dEwf5QMBjYtjJ5vT8YYKipopGV23JUIsoTTAIbxtgqc1Y59yJG+OSFm1isX0RxHvzj6H5hTGefPeyQk79J04PqzcgKqMahsyudVxKybbXmIVqfuXw2E+6+nCyG4KnMKqSsG40S5OBkhD9LpIP/Mu6DKGCUQJpBkof7hilobK+PebUBto3en1aquI3mxYlma+4tWEP3L9hHghsA6LMCO7mx+fNIM76C96SwO0/Vy/bBWXjGVHIlfMW3vgvv/Kt9o4PT5wGyVS8Ro0OrVGKOpSw6/k1ypTDDCYTM0omZbpFIoxJPTBXzlSDs0QBg== X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6721fac-d63f-4c0d-36ba-08da2e144888 X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2022 21:23:07.8706 (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: wDKCLrTE9T66i9QVz0ioG3s/awdu6FDJB5qfpM+oeCR9/GuNGPLVwMUUXPeBjz40QdrX+Q9c7EJWZu9JX3mkpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB3313 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 --- 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; +}