From patchwork Mon Mar 26 11:02:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh X-Patchwork-Id: 36513 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 367FF5F38; Mon, 26 Mar 2018 13:02:58 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0059.outbound.protection.outlook.com [104.47.38.59]) by dpdk.org (Postfix) with ESMTP id 562315F36 for ; Mon, 26 Mar 2018 13:02:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Z+z/XGEpevqugtxawIKERQUiHDtVb5y/fx4JG2RBO08=; b=Fj/Bhw29EZ11mmFt0SDt4IPFvcqVpZszxGJ343J4o1f+MpAa1T/wBLGASq42jNJvbWFENYmvqn4e44j351crGDQ5DCYncPlY8zmtgyT8rlrG40nm3fYZWkNuDEyyPTO+I6Edsse7fNruOlPKf1pg/j9k6HlfUXO85xR6FPTa7UE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from localhost.localdomain (111.93.218.67) by DM5PR07MB3466.namprd07.prod.outlook.com (2603:10b6:4:67::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Mon, 26 Mar 2018 11:02:52 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, ferruh.yigit@intel.com, shahafs@mellanox.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Mon, 26 Mar 2018 16:32:01 +0530 Message-Id: <20180326110201.8445-1-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180308190716.31061-1-pbhagavatula@caviumnetworks.com> References: <20180308190716.31061-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MAXPR0101CA0049.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::11) To DM5PR07MB3466.namprd07.prod.outlook.com (2603:10b6:4:67::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8eb9a366-c43f-4c4a-d814-08d59309203c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603328)(7153060)(7193020); SRVR:DM5PR07MB3466; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3466; 3:3l7PT97p/zKe7aEo1K0RiONMdDUX5BuMFzGO4XxVGUI5mI3Iqxf84i/yMxhp/k9PwUN3MXxsUV8wBs4cowsH33t+/GtmMeDuDFSPJEhTtzx/yiwrXSyHiTQW2EJmLG3YjAhXTzMiIgVE/3khueQ9fGyoYbGoeciWpLX4NSzGNDUr7MGjl17wkTvedBTOEwvC1QivEozr6kgB4hieuADTxyzMgnu1oTEp7MxW8gbs5ywL8hFlKI1e9HUr5P0X/VrN; 25:kmVuRCUllU4MG0vDqfVWr4m4M0FanM46N08SjK/mdMduISxt6XNP+ve13cWxFYqTutMge8seunovfA9M7Tu52HU4eYf7/7SDWBnfWWaaKn3Fsj7dS8ktKuPc5zWwNIsXFpXnQ4Uw7LZxMuPiMumCChfKmGkraFK4o8ZLmuTuw54ZzdMEDwUziqaMo9qwSG97w6MW6wGbQUDyZAT2q3H5DCyY1uIk1nQd8OBKbkvTl6eREPdkfoLjSBMfDcznQy90wS73of4fIo94hSZQ4L6LEbdieR30Vl7zf9ImiXlK54dJVSBaP9uV2s+/OJl/5d74p731cptKA/ADHucolOOtkQ==; 31:aT2EAUkGVyFFHydgzUgrs6SX47XBqx1SXerHyAQ4YmlHD82ufbYXo40QH5h52JvVE5FtRx7fi64Kg6moSLeo2LJ7JPSXO66Su1fBdP+0YaReMEdbyb8bl7bSXVxtFrbbbzS4aPwW/GslaGowM6h1IVT9GEGLFUfvv4SuR7z3TXskzVIH1UkA5rOGtrlTKiL5CDjQlTqtO3l3nCCZssA4W9jcFmIJena3e0TFDq6TIgg= X-MS-TrafficTypeDiagnostic: DM5PR07MB3466: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3466; 20:Fx+Mm6E1tKph97fxx9uz+UWOgt199n0SboxmPnjLi5Ai4SGlLf4gkIWQ4/Rbocnkrbvk5qGBwO5GcyMc/VyJa/MUQN4ByZjWU7Zq9vkbZEP4CNFHEjl5TTtSA+uoNXFrC4qCJCO4gC2sjFBvi4Xy/T+uQfwWvdOT31eACfqhXRHp4cnnCqf9af7evw2sD40AbZjOLXHYAM9+gzCb33UpHAAHbmahzY9c6bn0TRQWvlStxt/zdiKTcvUwqqogCAy4lJd+jVO3vTqH5eclfyfd9pUnAOQh1qCAtpzTrwc9Ul0OA064wDjiqSkogGHLhD3Qt4VqzKzx+t7AyoHur0h+q1YR7SrJo25g3VQo6Rmrnn41epyb16PwUXlrrB5MNEbVgFnHwkCL5ApXiLDHBxLzEAFerakmm3YxdogAX40jGqUI8kABeNug8itX0y8Oi0up9+jC7UZ2AsGhJwgbx5nGR+q0skao3WeR5INht64A23veFeTM9benp5iSr+hbSM/f/kqHdkRbZYL+jq734xs6SKPsIa2dBlPBCtdS1l94zuxeh3a14gFzZZlrMFB9Uda9F70/kI5hv2eNU26I5W4S5opbGtqDj2qZtpvqsfAbJhk=; 4:W5zKZWrlMElC/09TJtpYR+BxeHWldvfYdv3j6//pmE/bHo1UfYWT+MCBrSaQ55VnsaW2f4W0ZKVJ3Cz9Oe0e8a/oSfVqo9YCK44VOODEXiY77nBwXDTj7JzGiPBdRjUXEf4t7YqaOcUSfxq8moVhDoZXB3DJDigZG8wJXyqwFvdgVOc7t0j0d4VPqYzbLIjIUq+TLYAnDf8jK4Zmqywlml5zDBO4zJ0YKk+GU6j5AAAU32x+cWmN5RpqA/TvHbVQVg3daudgrRUXMPtD5YfN3Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(93006095)(3002001)(10201501046)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:DM5PR07MB3466; BCL:0; PCL:0; RULEID:; SRVR:DM5PR07MB3466; X-Forefront-PRVS: 06237E4555 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(6069001)(366004)(376002)(396003)(346002)(39850400004)(39380400002)(189003)(199004)(8676002)(316002)(16586007)(81156014)(575784001)(81166006)(51416003)(76176011)(48376002)(6666003)(52116002)(5009440100003)(36756003)(16526019)(59450400001)(26005)(8936002)(66066001)(47776003)(50226002)(42882007)(50466002)(105586002)(11346002)(2616005)(956004)(2906002)(1857600001)(446003)(72206003)(6512007)(4326008)(386003)(6506007)(6486002)(107886003)(6116002)(1076002)(53936002)(3846002)(305945005)(25786009)(5660300001)(478600001)(7736002)(68736007)(97736004)(106356001)(42262002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3466; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3466; 23:RKFg3eaz3BrREp9Ts26tsu/e7tUSLT/qAuTaVNi6B?= 2jXYxq/LVK0cPTTAeA1D5HEGwuzaL0XovgYj68pbL44hvYO3Z2pa3S1AWVdUrOm/VOEjLWpMcuyILA4BbP4s7GdIOdf9MsDpSvJ9YhkR92wyPJxBqNRm4J8KODHdT3cVXkD59PY0u+tpA4yw3Cxo8vAsZOs2wTxIi5a7qh4Qy1vomSHsm+3m392eLhkBOMwQvOedckltxBeqGSmFDHyLco1hzQfIk4sV4LBDdxCcLcxrhz81C+NtN+iQksZtjeXyVHWGOm4+PReXM0gIxX+1pbYF6/aSD213Bcp7e0LTpwIFzfG/QtKRgdRunkvugY6stygKtQ5Pkc0rszfGxtNeg1Zlt3Kmig9EdShd/gNPuPypLWMnQPlcjWoWUZleB/q0W6LLWRLHD8J/gGQ12dy92RmVhi2XtvNmrV+aHzplicdvBqLZNdN38rske6EvIi1VsKnKH7aC0i890MTk2MyAW4hk9fYQjIDMk26/Okn0nTrgNL5wxYmEkkLW3i2S8XZxA6EU9IDLnGAluViVJiDKReQADFxoBQQGn36faV2fgnUhWTUBc55wbbHrmlNZ2Tcpn55oxf82AJLsbmKEzk2jnh1sheqHULP4YhPwxy4bll8A78LLPZXrrQpTWyqYODs1rZhQvbHRIyBMi8pKI5zbIxF/7QmkE/CNOqXcgGIKfVTh9hWj39UUm0Z7NamOKIRLgZrRNp3M2JjP6n6W3yB76QeG1gAz+ajNi6vA4SD9SklNjiFWx7kQxAs2Mfiia21Lp4VjYvqRzsrVEseChV3DxW38vvPgnUzfI2zYiGCYhWeuMdpIA0SGIfi0IE1ieupQObvJJ/jVCjoi3KZwBUoh3ehqp/xI4fmoWN16oIcl0TW9EnKYxlfMeHv7T5RiKX2Y9+ctAs6E3CX/V1k+UbtgmNoqFbg1rNDqffkmYPZKjnNiEkHrgiNzmyq70ZRF8SJyk3CTdsfWtmhY443Yt9WiPUNVHdMoh3aOZY/uxkrComcTPYNQ0sYhScgt/8GltBOO6mZpRzuSlxWY/ZCISk/fyUlBu2JTlgeu+7ZDK4OKN53AOmT13m2WUoLMG0sq3/QBQemi4BWCAnuvrI1bgD1ICkA0a0HryejoRJjkF4PNQ29VvpCu8QECIFhYfD/Mlv99QRHyV4rYxG+b7E4uSjNQsWMbR9ohTRjY4uhI2ECiSNmTksV4Whfn8drmAB8pzWrkyCvKaplKS+nf/aBAQYeXJKtCrEvs/I8BX77C8PrOfK88xgsGpCZWtF0aMtRRPkE7K324l3ln9z40viEiZYL3iURzsMG5syJbNolZiqou04IcDwoI3p983o1p4sqIoofLQqCnb9RCyOxVnquPcFRopuMzxyA6sxVedQIuRSLaaTy2w== X-Microsoft-Antispam-Message-Info: lHbzL+gjzBpDtp8yYQpDYg239BY6YBG0fu9ozVEL4gQrak+a3AMb+1KAzOYIIayQOwObpAAlaw2imGX3ZaeNh7MW9NQRoHWfAwUyoS5uEFhipWMDi5W2+liZTKb+l/CY9K1U0btsmDP752GuX7uwZGdgIBiaKiLGexUDIgI9c6qOaFxdQXNdqpm1Ktv2wdY0 X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3466; 6:zT4vj3SKyW2KqsPPPDJ0XYNohd8FU8ZSETBzrLyv0IPxX11JA0ufljEpT3WLZchgjZj9yTVYZZZDir6F2dF0TT4GeuoTxaHCWIYqDZuu7ff31kr72jqEVm7xNY+g6lyCKpGlnggWWLMlYoGTtJCvYokFh6+L69WwKbmePF2YiLkvYuJwac8TU5Q5QVomSgdsW7IDL55rTbPCvR2JHGqGyWa/zrC9rd2NIGEuJfzMt3k5+p0sgEc+vzJyTAaLpA7IghdgNeDjg92/FjzW5aI9AhxL2E1autNM0sVCbKH+KWUZ29iujQKxcft4OfBGPD5vnLmIlfboTVNsbPdxWf9T2Kc23OHxbznZB2oDMJ6u7a7Kp8jryRrW6jyCF34cVY+b27Dk3GwrK8jxVRgf0idWEWm6ekCSy8EWkJ69mU7AC1qjfbRyL4rHpPA8FQTZ2Qn9q2kZqb1Znlt+65yEkgBmbQ==; 5:FaYfQ13AxSi4aO7TheF8LLIs4ZoCjzJA3F/zF7uQ9wjvOaltqIUnQ/6i5dpFZE2UlKU8o5RC4QrlvDCEgmojYZ9SaZ7SWV+inSn/pfKTuhbD8ATgdppWGvrvsRNvtgJ2UPm/c7I6yyMdFdzjZVrUIUvgaSjbV65GwO2g/lX/wHI=; 24:YoZGR0q+JBnSSHkiSsM0+wKvFprks34e6HyZFbC8fKvdw/bO7ARbYmzDY3EvbLxRWUvy7No4cJAEXJ8+w+FMTXSN6AupnYpUmAWG5pTsa98= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3466; 7:rV2LMsVBWEpHLeTDnGaChO7Mq8EhNIYTaFnfV0YceJCbLiI8eh3j42Te48BpsWN6mKd9D3Rgnto6DDRSlsAL3qFXgFz6MZk0OvvdSkIzMspA9anGpq8oHYTO7v2gQT/AF3P1F+dziTG0Lswig2THkroIBM2kumHQaWAjYABbGwT5EPdoerJFJ+akbQHUQvP+kbYrCWDIi5WI4a+XTJ6OymNCWcUNQ1Kv27ZgvpkUi5LaulBNfemXPR4Um/5lC2BW X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2018 11:02:52.2796 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb9a366-c43f-4c4a-d814-08d59309203c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3466 Subject: [dpdk-dev] [PATCH v2] net/octeontx: use the new offload APIs 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" Use the new Rx/Tx offload APIs and remove the old style offloads. Signed-off-by: Pavan Nikhilesh Acked-by: Santosh Shukla --- drivers/net/octeontx/octeontx_ethdev.c | 82 +++++++++++++++++++++++++--------- drivers/net/octeontx/octeontx_ethdev.h | 3 ++ 2 files changed, 65 insertions(+), 20 deletions(-) diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index b739c0b39..3eb765eb1 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -262,6 +262,8 @@ octeontx_dev_configure(struct rte_eth_dev *dev) struct rte_eth_rxmode *rxmode = &conf->rxmode; struct rte_eth_txmode *txmode = &conf->txmode; struct octeontx_nic *nic = octeontx_pmd_priv(dev); + uint64_t configured_offloads; + uint64_t unsupported_offloads; int ret; PMD_INIT_FUNC_TRACE(); @@ -283,34 +285,38 @@ octeontx_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - if (!rxmode->hw_strip_crc) { + configured_offloads = rxmode->offloads; + + if (!(configured_offloads & DEV_RX_OFFLOAD_CRC_STRIP)) { PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); - rxmode->hw_strip_crc = 1; + configured_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; } - if (rxmode->hw_ip_checksum) { - PMD_INIT_LOG(NOTICE, "rxcksum not supported"); - rxmode->hw_ip_checksum = 0; - } + unsupported_offloads = configured_offloads & ~OCTEONTX_RX_OFFLOADS; - if (rxmode->split_hdr_size) { - octeontx_log_err("rxmode does not support split header"); - return -EINVAL; + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Rx offloads 0x%" PRIx64 " are not supported. " + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 "\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_RX_OFFLOADS); + return -ENOTSUP; } - if (rxmode->hw_vlan_filter) { - octeontx_log_err("VLAN filter not supported"); - return -EINVAL; - } + configured_offloads = txmode->offloads; - if (rxmode->hw_vlan_extend) { - octeontx_log_err("VLAN extended not supported"); - return -EINVAL; + if (!(configured_offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { + PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); + configured_offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; } - if (rxmode->enable_lro) { - octeontx_log_err("LRO not supported"); - return -EINVAL; + unsupported_offloads = configured_offloads & ~OCTEONTX_TX_OFFLOADS; + + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Tx offloads 0x%" PRIx64 " are not supported." + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 ".\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_TX_OFFLOADS); + return -ENOTSUP; } if (conf->link_speeds & ETH_LINK_SPEED_FIXED) { @@ -630,6 +636,7 @@ octeontx_dev_info(struct rte_eth_dev *dev, dev_info->default_rxconf = (struct rte_eth_rxconf) { .rx_free_thresh = 0, .rx_drop_en = 0, + .offloads = OCTEONTX_RX_OFFLOADS, }; dev_info->default_txconf = (struct rte_eth_txconf) { @@ -750,10 +757,11 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, struct octeontx_txq *txq = NULL; uint16_t dq_num; int res = 0; + uint64_t configured_offloads; + uint64_t unsupported_offloads; RTE_SET_USED(nb_desc); RTE_SET_USED(socket_id); - RTE_SET_USED(tx_conf); dq_num = (nic->port_id * PKO_VF_NUM_DQ) + qidx; @@ -771,6 +779,22 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, dev->data->tx_queues[qidx] = NULL; } + configured_offloads = tx_conf->offloads; + + if (!(configured_offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { + PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); + configured_offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; + } + + unsupported_offloads = configured_offloads & ~OCTEONTX_TX_OFFLOADS; + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Tx offloads 0x%" PRIx64 " are not supported." + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 ".\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_TX_OFFLOADS); + return -ENOTSUP; + } + /* Allocating tx queue data structure */ txq = rte_zmalloc_socket("ethdev TX queue", sizeof(struct octeontx_txq), RTE_CACHE_LINE_SIZE, nic->node); @@ -826,6 +850,8 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, uint8_t gaura; unsigned int ev_queues = (nic->ev_queues * nic->port_id) + qidx; unsigned int ev_ports = (nic->ev_ports * nic->port_id) + qidx; + uint64_t configured_offloads; + uint64_t unsupported_offloads; RTE_SET_USED(nb_desc); @@ -848,6 +874,22 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, port = nic->port_id; + configured_offloads = rx_conf->offloads; + + if (!(configured_offloads & DEV_RX_OFFLOAD_CRC_STRIP)) { + PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); + configured_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + } + + unsupported_offloads = configured_offloads & ~OCTEONTX_RX_OFFLOADS; + + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Rx offloads 0x%" PRIx64 " are not supported. " + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 "\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_RX_OFFLOADS); + return -ENOTSUP; + } /* Rx deferred start is not supported */ if (rx_conf->rx_deferred_start) { octeontx_log_err("rx deferred start not supported"); diff --git a/drivers/net/octeontx/octeontx_ethdev.h b/drivers/net/octeontx/octeontx_ethdev.h index 10e42e142..9d6c22b0d 100644 --- a/drivers/net/octeontx/octeontx_ethdev.h +++ b/drivers/net/octeontx/octeontx_ethdev.h @@ -28,6 +28,9 @@ #define OCTEONTX_MAX_BGX_PORTS 4 #define OCTEONTX_MAX_LMAC_PER_BGX 4 +#define OCTEONTX_RX_OFFLOADS DEV_RX_OFFLOAD_CRC_STRIP +#define OCTEONTX_TX_OFFLOADS DEV_TX_OFFLOAD_MT_LOCKFREE + static inline struct octeontx_nic * octeontx_pmd_priv(struct rte_eth_dev *dev) {