From patchwork Tue Apr 24 17:16:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 38837 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 5F4E64CA6; Tue, 24 Apr 2018 19:18:30 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0057.outbound.protection.outlook.com [104.47.0.57]) by dpdk.org (Postfix) with ESMTP id 49F4849CF for ; Tue, 24 Apr 2018 19:18:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=w2xN6fjcZoY43TbeZ58uWDSGZrHt9gqOeK55BQtwOXg=; b=W9Am3SCHmeCZDI5+8W4toRw+WhzvNToW20JPD0tT2CX4aphkcjQEjPmjSk0ytsAdg4BLCrXXF65hrRZ1z130HJn134uGQivP2pWkNoTAnynmZ3WDUz1GZgpSiMLrM2rh0lK7NzgI00ApyXe1M1jJTw4VMWI/roaBHKV0mbhfAAQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=hemant.agrawal@nxp.com; Received: from bf-netperf1.ap.freescale.net (14.142.187.166) by AM3PR04MB0758.eurprd04.prod.outlook.com (2a01:111:e400:883c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Tue, 24 Apr 2018 17:18:19 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: ferruh.yigit@intel.com, shreyansh.jain@nxp.com, Sunil Kumar Kori Date: Tue, 24 Apr 2018 22:46:14 +0530 Message-Id: <1524590174-5951-2-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524590174-5951-1-git-send-email-hemant.agrawal@nxp.com> References: <1524582401-14696-1-git-send-email-hemant.agrawal@nxp.com> <1524590174-5951-1-git-send-email-hemant.agrawal@nxp.com> MIME-Version: 1.0 X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: PN1PR0101CA0021.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:e::31) To AM3PR04MB0758.eurprd04.prod.outlook.com (2a01:111:e400:883c::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM3PR04MB0758; X-Microsoft-Exchange-Diagnostics: 1; AM3PR04MB0758; 3:QtlMoYuIJuHyBYE1pBmYqyrZxEa2IOD8lBM3u0UlqlAU2ecP5qpZLwdjorVYaiHwYnXdgbCfYfxbumuH2j4kA7C8Myxzvvy2nQeet0MjWAzkNUiOn6EJhEpkCE3/47Dcg7MzFAQf20A+qX2CFkql8EbKdayombgaFChtJOtpDdPSbIsVKpA5lPfaW6GuB0w9sp35gO8lZOzziWAsnjX63Xy39AhmIdBaxJ+x0ejOzwHhLPXsk/3Gqthz0TjgDUyl; 25:aKsCl+a5l69P6KGjiHStsQ2fotS1Yjz4Zbs2kFXz7vBTo/w+a9ohOH5JEcAYXJqnDk7Kz5aphbcep2wTZT+VIWGtDQvwltP+LPuncsFH4eZeS3v3UPtVEzwmCQdUbzQLQEdYvCB7AxRIR3fPjDY1UHKdNqywal+xcKdzJZn3AWpQnnQSVBfGe3omVxzW01GhVw1dJwTXLkMx0E1Mnjwdrd5EXG8Y1uXjNmjXwW+9LhREx8EQHQIV03JrOBPqOuo6PIyUI4OolEN8YA+b4xA7YQQ2SPuJ67x3JwKRQTjZrwwjBJU6waxOJJKljU14YKSLzc+xiKy/c7J/9vzJSW/VHQ==; 31:i1xPi/OtpW8CTiNjPXhek91siA9/R8ooxb5KrtMd6w8L4XeKqOTJiOQlnGMpWAmA80NcE91oWsm1PvwIeGQvVZ4OMMCjlBQzBgP12y54rBlwN1dAPHn8KgQ3/+E4tD528K/7r/+SWSuJSJVZCuwqu4XXn3mECCItHr5IfreMZyVJ1CaP05IejwDluPIVgHlt0+6wOsmVcZd/DxcWufRhwEe2pM/+u9JcJs1Ju04gmEI= X-MS-TrafficTypeDiagnostic: AM3PR04MB0758: X-Microsoft-Exchange-Diagnostics: 1; AM3PR04MB0758; 20:nuOHbR32iv6ZkUaQKIfcuvfsnbz71G6G80DpTJtYWibf0qWk7r5Q5DlEtMhrgWroDRZAlCZJjqWyq4+RZLowMsMXHzYNxbaVwBaHvUqyolE+QT7yzY0P1S1QWq/Z/g+9BAIUTxhHTKpB8rG022YjHvzY/UGxF1H0MZvlQELIWaumOAfPlSiImfmOpdMLRp0IJR2ZFLNSlG2wK4e3Fo8rsH5kSuF0l9rBxHglfd05TIiY2gBuWUutCffncCH4sfdLMcpTrru704Uv9MFfezXmmPReShzVflUGC+ooh7Xl7Zcfif/Q4buLLcZLtoDMTh1q/ZKjigCDG6i/ouiWBQTNxeG5CxM3zIjp5guB5NwQbDkXrI82WpqEOXNGPJZ3oMkgmv6mtJoMLDh9IZVIsXBN/d970JarmtQ9tI3JIfVeGrrcuzEjPTuqdiBSh/xR13ZblDmpfXT6ei25JOYD/dCNIIExKSdKqea1WubShxd/MT9o/ab6TmA+EvwQRk2A3NL2; 4:eGMia67z2NxR/BSlBUGZZNxnAQeNS+zREO+SPRFKwiJo1JW2IJ+NdDLoyZZTc92Jpz2uj9MBcVsFVz8FzMgt3fOHQfzE+sg8RJE+JhbFK0BcfmnXDf2AWFdaNHR6fU5r5AIeQkBI0DsxGI5Dv5tV9Lp6iHLBXFOOfj7ZC3hXdgYC/gflb5DWfcOH8Cd96ZkAwjY4Y9+2b7bSIlTEuhpYU1aXkhhA+9DMeBd1hpGwlk9kvvAAh64mDvewDqFPRpeCtKPrxUthhhhQ1nIwJgfY/d/2ZuXLZCnepDm99fTmvj3y2qpVtZXHBlmhaJITAY5C X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231232)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:AM3PR04MB0758; BCL:0; PCL:0; RULEID:; SRVR:AM3PR04MB0758; X-Forefront-PRVS: 0652EA5565 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(376002)(39380400002)(346002)(366004)(199004)(189003)(476003)(86362001)(446003)(956004)(11346002)(26005)(2616005)(386003)(16526019)(5009440100003)(6506007)(47776003)(76176011)(105586002)(6512007)(2906002)(8936002)(6666003)(36756003)(59450400001)(486006)(55236004)(44832011)(6916009)(25786009)(2361001)(66066001)(81156014)(6486002)(478600001)(50466002)(48376002)(8676002)(68736007)(5660300001)(7736002)(6116002)(2351001)(16586007)(51416003)(4326008)(3846002)(106356001)(316002)(305945005)(81166006)(50226002)(186003)(52116002)(97736004)(53936002)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR04MB0758; H:bf-netperf1.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM3PR04MB0758; 23:FhMb61hdKeG2/VDi7zqhn6wGrXb0X99+U/NqumRua?= PNspiA1aOx5KPSYHuauBlw/uedohnT2tXEFkgz2TyiL7YM+7SwLt08ET2TyTgLxfv/NSY6zZnFgYDvYAbWa+7PxHKketSdWoEpe7NDECoFlOndqCuNb4xaMKXMt73y49hLYSyJ5PPO1xy31MbSX/injO3s8A9maUN8z03eSvc91wfHHwoF4XXObd6l8NFbcOKyCiUlGiDUdwiMrJY2PsVrzVMgfkMOUFUXo+3N79pdNc88BmPMqT7zhlRf8MG5puIbwaKfG+dhozcJtAdBUQZrnIF03fdBsUXRCs9a32XXXRwllUnBQKJYcFqAF5askd0hG0INFP7HzIs2UrYTKIRyoWJ6THs1gKSlsJzqO9TMxHvqsd17KgKxb33QZVANA9rbvQRcG3fhpOYXT1Bfv8Ns/Gvh6hsrJs4hYiqt00hbu6i0LFzn8J2yBR65pdqdTIBNrgn8YkX+yMtf54PKzqbQlxbLdtbcAip6LOJgQUJxIR8q03v6K39lYWPJr/yaWQxEkG1iDgSo7vzJe/T5sCmGnyw6Wy/00CIgrFPLCuOIBohuLQVv3qC12hvin9uLMVIVkYDYSEVu7n0KLfKNUr8TD7yjwcWa2igVmcXjVbDBBptLw43j/Qw5QA6btMbKX83lafYP3p+YjS2Aw+Sga5rWFKCjJFezDgE1PZ0BGqGrYSkqSoLuy978xjv1+GxiFXewbtu5w9UbnbcvgbSLa5gAqZ3dM37Xl7UweJ8MqcYD0wwcKYyXISeQB7FptBVO4GNn/aARPcZefib//BViH0spOcTeafHoDefSPpeiEMUKome/GVu0/2w6oVn43LsNvB4jwTQ0FtpC1EPMGsAVGrred1Bzj2pGPkIoQ81tFb5/VA6vyttDj+zv6/yH/ojPw/qHbMWcau3Y+f6N5fhz8GoF/fGa3NhnrfNN9khUwyI6FhovWVzlZuiE4SMSI9AfwfwDawr26PhtNhvGATI2MwksQGANhhUKNDHOv2/3z2wSIp5jW1+pctAHHNzNR+lOBsh7DiqnhxbPLxFYWj+s9D1SJ4pIUqtKI27coKefAOU7K775c1Qxdcbth+RLt/2SCGWpsD5zdc4eGJBK2QqEu33mDF+uZ+AaOwEScmLyMU8kRMbed2WFBIOyWImz8JGoJ+G6DO3mlsQrxIEmlA7lgJqY9TCOIo78JxcykB84EYRCSyLqAsoeS3DzmD3s/+LdpAN7UeySiB+/oEcK+6WF+9OUwnegTjRyPFevjgbdHeersPqz+fh/pV58iprbYJROskMMa8qxa1VjfO0BMr8fUk9e2 X-Microsoft-Antispam-Message-Info: bxzNyz3Jyr0Tu9WU6nq6stT/hoJUJCYsU2I0xsaL+sS6Ja9udQwXWV0x1Idaizhrw8J7wiDWQ1pKYXTJWRRuGlFZG1hqF07G1fzqQK5BMtR9QUu+ETjmBa1gH5GLw3QTYSfUA7OirkdqcBHyp4tO7Wh3bubMTmIZBrvx/99+IKuVBH3wpSigmnluDcHr62Vx X-Microsoft-Exchange-Diagnostics: 1; AM3PR04MB0758; 6:6JwyafRS8ssFS3AYmOq50oMwoqKfgfEJccsy84/CXIAsqvuN32XijYx7Tp/uuqJdSf4nhqg8Ql1i7BQad3OOwxzfC7IAvyBvB3EIuGRDzDyUoX8FFwP8ij1ilhE1tkA9YFag43PBcMl3GXQanUeQ/XUIYrrn2SEF6NVJFI3hre8To1sX0YFRZ5E0npimXU9g45eLnvLwKNAf7SBqTjlXaRE10aldkMZRg6/cL4uoVExdf/ThD4alJWzEaheIEg7qYjqeUzudqfwx6V7CW8r3o7geyvuVXanTGhfx25OodTLjXGAkHAUhXL6U5TJx/959nrCcqAuz+VNfkTNQUR8Cgb5RmmKHwsquq59E6c6PraOpRCztrh2EGmC9Fy+mWPVbNOtd+6GtnPEbmzZtQl3nuXvjC9peDQH5stKzG6EBpZLiz/KhGys/wGUekF2akA9x94vPR4BKMJY/qgHgFoTMkw==; 5:XEQXggqXE5sSXFwR+g76fdmjef/X0UpA7iYBRDG7+7co0zJQ+X+dh0S1vUHDucX+FdV4pSUM2uw1/ESoC+Cf3YJAbUd5+Lh4zPNLNIISB6XDpX/VH94TL06qCi3TWiCoEyXy+s27aZTHfl4QsLt4NFcH4w9/XNDJVwRSX5bDvpI=; 24:VU3EHPJ/QtQPsDBRVABJ2DV2hb6AT9rdiaEzzSqQfTR5AxvV6X/3qDxJMB4kUcECN2R9zrlX8Azg/v5xVnUJnk3nRpeT8CYrTXVlQdvneIo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM3PR04MB0758; 7:PxtpdiE5HCK8AFv4uzdHa8/8iRC2+IpnNCiXFJaSLXv7b7YQp5U4VwuBB5emDjuuCHUXXi6ohsUbHi3g3RvVOqmZgFyWeNpw2Dm9eP+ZpcdCkL2DOVuR1fqxpfdQ1MSXbYTavF8yxc13/sWRXwyT1YzwWF5tFvQw8BjAtPHYRAGmiuezhdyamdu/jVOoVdyo2L/zUe2nSWjluLs2U5lgAgBdwKOfX3hF8dCETP1PiO4+U21Bd9hy+6SDtYGdmw2R X-MS-Office365-Filtering-Correlation-Id: cfa103cf-fbc5-44ff-972d-08d5aa076096 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2018 17:18:19.3986 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cfa103cf-fbc5-44ff-972d-08d5aa076096 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR04MB0758 Subject: [dpdk-dev] [PATCH v4 2/2] net/dpaa2: fix the ethdev offload checks 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" From: Sunil Kumar Kori Fixes: 0ebce6129bc6 ("net/dpaa2: support new ethdev offload APIs") Signed-off-by: Sunil Kumar Kori Signed-off-by: Hemant Agrawal --- drivers/net/dpaa2/dpaa2_ethdev.c | 88 +++++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 28 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 54ab9eb..2f34022 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -27,6 +27,36 @@ #include "dpaa2_ethdev.h" #include +/* Supported Rx offloads */ +static uint64_t dev_rx_offloads_sup = + DEV_RX_OFFLOAD_VLAN_STRIP | + DEV_RX_OFFLOAD_IPV4_CKSUM | + DEV_RX_OFFLOAD_UDP_CKSUM | + DEV_RX_OFFLOAD_TCP_CKSUM | + DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | + DEV_RX_OFFLOAD_VLAN_FILTER | + DEV_RX_OFFLOAD_JUMBO_FRAME; + +/* Rx offloads which cannot be disabled */ +static uint64_t dev_rx_offloads_nodis = + DEV_RX_OFFLOAD_CRC_STRIP | + DEV_RX_OFFLOAD_SCATTER; + +/* Supported Tx offloads */ +static uint64_t dev_tx_offloads_sup = + DEV_TX_OFFLOAD_VLAN_INSERT | + DEV_TX_OFFLOAD_IPV4_CKSUM | + DEV_TX_OFFLOAD_UDP_CKSUM | + DEV_TX_OFFLOAD_TCP_CKSUM | + DEV_TX_OFFLOAD_SCTP_CKSUM | + DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM; + +/* Tx offloads which cannot be disabled */ +static uint64_t dev_tx_offloads_nodis = + DEV_TX_OFFLOAD_MULTI_SEGS | + DEV_TX_OFFLOAD_MT_LOCKFREE | + DEV_TX_OFFLOAD_MBUF_FAST_FREE; + struct rte_dpaa2_xstats_name_off { char name[RTE_ETH_XSTATS_NAME_SIZE]; uint8_t page_id; /* dpni statistics page id */ @@ -170,24 +200,10 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE; dev_info->max_rx_queues = (uint16_t)priv->nb_rx_queues; dev_info->max_tx_queues = (uint16_t)priv->nb_tx_queues; - dev_info->rx_offload_capa = - DEV_RX_OFFLOAD_IPV4_CKSUM | - DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_VLAN_FILTER | - DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_SCATTER; - dev_info->tx_offload_capa = - DEV_TX_OFFLOAD_IPV4_CKSUM | - DEV_TX_OFFLOAD_UDP_CKSUM | - DEV_TX_OFFLOAD_TCP_CKSUM | - DEV_TX_OFFLOAD_SCTP_CKSUM | - DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_TX_OFFLOAD_VLAN_INSERT | - DEV_TX_OFFLOAD_MBUF_FAST_FREE | - DEV_TX_OFFLOAD_MULTI_SEGS; + dev_info->rx_offload_capa = dev_rx_offloads_sup | + dev_rx_offloads_nodis; + dev_info->tx_offload_capa = dev_tx_offloads_sup | + dev_tx_offloads_nodis; dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G | ETH_LINK_SPEED_10G; @@ -277,7 +293,6 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) struct dpaa2_dev_priv *priv = dev->data->dev_private; struct fsl_mc_io *dpni = priv->hw; struct rte_eth_conf *eth_conf = &dev->data->dev_conf; - struct rte_eth_dev_info dev_info; uint64_t rx_offloads = eth_conf->rxmode.offloads; uint64_t tx_offloads = eth_conf->txmode.offloads; int rx_l3_csum_offload = false; @@ -288,20 +303,37 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); - dpaa2_dev_info_get(dev, &dev_info); - if ((~(dev_info.rx_offload_capa) & rx_offloads) != 0) { - DPAA2_PMD_ERR("Some Rx offloads are not supported " - "requested 0x%" PRIx64 " supported 0x%" PRIx64, - rx_offloads, dev_info.rx_offload_capa); + /* Rx offloads validation */ + if (~(dev_rx_offloads_sup | dev_rx_offloads_nodis) & rx_offloads) { + DPAA2_PMD_ERR( + "Rx offloads non supported - requested 0x%" PRIx64 + " supported 0x%" PRIx64, + rx_offloads, + dev_rx_offloads_sup | dev_rx_offloads_nodis); return -ENOTSUP; } + if (dev_rx_offloads_nodis & ~rx_offloads) { + DPAA2_PMD_WARN( + "Rx offloads non configurable - requested 0x%" PRIx64 + " ignored 0x%" PRIx64, + rx_offloads, dev_rx_offloads_nodis); + } - if ((~(dev_info.tx_offload_capa) & tx_offloads) != 0) { - DPAA2_PMD_ERR("Some Tx offloads are not supported " - "requested 0x%" PRIx64 " supported 0x%" PRIx64, - tx_offloads, dev_info.tx_offload_capa); + /* Tx offloads validation */ + if (~(dev_tx_offloads_sup | dev_tx_offloads_nodis) & tx_offloads) { + DPAA2_PMD_ERR( + "Tx offloads non supported - requested 0x%" PRIx64 + " supported 0x%" PRIx64, + tx_offloads, + dev_tx_offloads_sup | dev_tx_offloads_nodis); return -ENOTSUP; } + if (dev_tx_offloads_nodis & ~tx_offloads) { + DPAA2_PMD_WARN( + "Tx offloads non configurable - requested 0x%" PRIx64 + " ignored 0x%" PRIx64, + tx_offloads, dev_tx_offloads_nodis); + } if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) { if (eth_conf->rxmode.max_rx_pkt_len <= DPAA2_MAX_RX_PKT_LEN) {