From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0087.outbound.protection.outlook.com [104.47.42.87]) by dpdk.org (Postfix) with ESMTP id 15C25FA45 for ; Fri, 3 Mar 2017 08:14:36 +0100 (CET) Received: from BN6PR03CA0045.namprd03.prod.outlook.com (10.175.124.31) by CY1PR0301MB0732.namprd03.prod.outlook.com (10.160.159.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Fri, 3 Mar 2017 07:14:34 +0000 Received: from BY2FFO11FD043.protection.gbl (2a01:111:f400:7c0c::170) by BN6PR03CA0045.outlook.office365.com (2603:10b6:404:10c::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12 via Frontend Transport; Fri, 3 Mar 2017 07:14:33 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD043.mail.protection.outlook.com (10.1.14.228) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.933.11 via Frontend Transport; Fri, 3 Mar 2017 07:14:32 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v237D50V005035; Fri, 3 Mar 2017 00:14:30 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Fri, 3 Mar 2017 18:16:45 +0530 Message-ID: <1488545223-25739-29-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1488545223-25739-1-git-send-email-hemant.agrawal@nxp.com> References: <1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com> <1488545223-25739-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131329988731654833; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(336005)(39860400002)(39850400002)(39840400002)(39380400002)(39450400003)(39410400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(33646002)(50226002)(2351001)(110136004)(189998001)(106466001)(5660300001)(305945005)(36756003)(86362001)(2906002)(85426001)(53936002)(47776003)(4326008)(626004)(356003)(8656002)(38730400002)(5003940100001)(8676002)(81166006)(77096006)(104016004)(48376002)(8936002)(2950100002)(54906002)(92566002)(50466002)(105606002)(6916009)(76176999)(50986999)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0732; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD043; 1:L460PLUuwzpvIwEjBZahI4vZmAOueYoX0b7af8PYxDMjG2anat7kDQiRrLUABgu3itI/X6m3nv58wnuDba984izsyh4sC3UfKBGeaJX9la0pTs9wOkfaH6OYKzGCFZ33u6i0Y7qD3WlWUHVikj6ZbvehXXJuA50sFIOSMcXbwnnfSRVofGexC4KrC4nk985i6w9IiuVdJW5y/W0fDrtwFzLB5taB2nsfdshn2mVRoROp2Onc+cHugDoUwrQnQGONRHqbqsGDJzj/6CpaqevE0YwT8gchZwie+9NnK5gWpnZW1VpNf23EBG7wQ5eDpNep7E0ufEB8KTAHfIXvBrtRaIHe82W0EHZkF4o+hHrgf+kcxxSn4d8l45VDBqCaTOqzV5RTOtdTsxSfz4jj0XEL4+QcalUCTNzcrQe+QfVEi59sPBd3HI6h8XYZMRDX+JMTJCocigTgaH98N9zd6IGGHZYZ/P2V2QJn9AsIRzyo6cuxvbc6RlYD56eM6Io0Qg2lGfUsVQtsE2s67cV4Q0/CUb5pc0tGwOGu4LOvMUWbr6EyDq+VpIbwa0wXbMPrcv9ZjE3HTLaJJT5aH4QgZIZTXd8KRkaM03OyDq6TV9pf/qhPJ9YihrAPRHQzeb3e/KnlkZ+5udleT8pVyzrXlGzIWQ== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 9c5e2830-de37-4e71-d2b1-08d46204f12b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0301MB0732; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0732; 3:M8Ilcfp6oGORkGk9+OXjQQOx2ah12FY4TmdcbvGdtwf++0vd9eE/pcIaKUSqLgdqtf+Ly7ddqNSeGgtnANgfGzUCzH7GU48Zd7k99LDZu4k1wc3X9Pr0zpTMIgfH2iFej59D+IXJJss6N9yfaUPHXcsKrFKKhfHx4x8yjc60HHiZfg1AzfqI6Czs4vxXnW12Nv3Ku7AYmUey0rmI1t+0dOa081sVTENyJ2mvNmm/6C0EFr3iPV/NvmzWDcpxikIDtGhr2VL00pUAS2rFVACoP47BuDaZ4arHP/I1fls8iFcl/hy7OtJ3Jm9f0sI7pCJ/rgDit10v0uSzzFyPwrzpO+VFxF9faEWLKQVg/c2eqLwgBTxS1v9CmsVb0e+lXpkp; 25:/9Yo+N/aECT3BprxPNzC26/X7HFVpHiw3JKOZ6hqT/tmaw1p34r+u1w5hD6pmSb1c/f98MXLm4QobOeOc+N9AX0UWU3xx1/TxbkYbrApvqdIrHGQZV9Bev7ecWNhcl1HkcdRIWbwtd8y+hII3b5uEsquL6VOB4x/MwFxzMAOI7nQTguo2N2GW8mZo+2hKuvszRMj9HGdIGmlVr9BhhgH5Rzvn7FUthFOB2Kaorh1gCupbUHGaSx1eC7IE1w+yy5U5VI232X77c4NyyUU7fsoZtHL5OUwrg/64Fo3LfWk1LnEIu4djCZqsn1eATpuSyg4LVQzGdJJTU3TwvTquAq2ncRj5RVG1Cs1gCcmKXp0kTRk7KAAZIlCrbbuEqQzsj83ry7sk4fSaBhMez5jm0h8fnBTSKknBzXfLFE5SLtJcODW7pZ9yQFH8WcY384UFGKsXBxiOivGbV1v3iAMYlvFzA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0732; 31:ywHWBuniDJBlEWifJPH8Z82DmcNUJ35hm97KOZFeHkf3/Hi8aYODtzbnd7GBaYeJv0dtdTb9CBSqFg1Bu1mxpqR9kST8VXuEajn6pq6fR2gJOL+aEOrYG6Ffv74qPXEKkAarASuWg3WjHxjARab0uYBwIrbZNTa1JdJIkQjNzXm8wkbbxcYEH0FCjMrmepA1goFsB4d0vSSPSg/VIf7/cyXy19qVTk1FGJYB6lA/E/3rqC7dGK2rLUUAd14j/x4W X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(8121501046)(5005006)(13018025)(3002001)(10201501046)(6055026)(6096035)(20161123563025)(20161123561025)(20161123559025)(20161123565025)(20161123556025); SRVR:CY1PR0301MB0732; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB0732; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0732; 4:k4hMJcR0UEyVB+dHzM1hFD//ZuZONZDFD+co5369rShX6YPZjy56X3pN00bo3j53SvGrvhuX0EtRdktgeFs4QBUbIqavNNcoQAK7Y7l1d6MC0sYMo/Qkm2z0/fJyE53dTQ7krpEYO8BWlTrp3M/ymznMZfE60vkvKs2zQYAPwccZCwuwycozO4OGJovrdqplskQcL3ZcPvMdEKJ/hM+nWQtmNUPMU0fnsmnJ1x1fjV4/CTAiJiIkVq7zAdfCUfGXf0nSNHZbrlHfSqZruzSesrh++ikk7PKv3dFK1DkcuriZVm+4HcVg5FZCX+eZOOzHGfY2xCPsuL+iearh0wccJwvNq5pyioYuAOMyBV3vKGZJ/ndVYfn5CsPKnAl6rcV+qAN2MCXyR1XyGdkxJBXAEECH89QxmfIcC6aIClWBZZj3D4e0zzrxQu8uZKc6d4gEFfM9X4HkmciJzwqL7rP1ihgiz+jmwlGg9PxI2u0DM0tf7RQVBk03TuO9beL2LxgIdLGpMvsjQLUAabZcEOoD+YKJJisleR+ozefwo8kIlUjTOSJCQMkJHURlqa844i1cHElgV2p+sNd9jyPLLBdgHoyVIcFuHdWGDXQLWMlWh6+7AGcVBQIsJkzwbZh9cSj6CjSrOU9bx7USKsgoPbTYia4SL4JHfcujg4mDVG6t1qKGkQcAVcBFtAgul+e94OUI7GiKow4YZ6sUPlptB76ru1tl25wdIkpq2KPcSfv0XuDmQRe4wU0/tKzpHZ1ARTLQ X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0732; 23:foCl6Ct4UwuNZ9gs/Y10HFo+XJo+FgXVwn8QqaS?= =?us-ascii?Q?E/cD5dqzHpRnyJKB5RH4ZlamTdv695NqjhsUSYYfEZZ1B7Zauz5MdRa3wpGQ?= =?us-ascii?Q?nY5cC7dMmxxNQ4IA5KoojwkbQLKRS7x3VJuEXiLi1wjNDLNt2s//g2hn85fk?= =?us-ascii?Q?lVh680f9uCmHVBlJuaicX2Tg9+/uKCWSSOJRQ8xMImFAcdrpXX8r6anP/Ew9?= =?us-ascii?Q?6svP7m0oKNE8bkQchXRRo9Tn+Ync3EhbnXAyKaBW39b7VdIKQemRybrpzAXm?= =?us-ascii?Q?zcVvTT9/L7KX9jvI+5RHEuuuQeNHcpJWdCzARN6f2v5NTTOBD7qv9YXmcmyo?= =?us-ascii?Q?Uev6HFCNh2zbkCprqPZnbrc7vT/t4M3FUaDvAK2NWh6rwxjLsYMnArIPgvIK?= =?us-ascii?Q?5suOGsQgzXSUM19Mu9GLxAdgKs1nq0tdmV0uUcwPNibuK9J69cjtJRdA/9t1?= =?us-ascii?Q?z6HXlWNovYcxANwKQa7b0hhmcFwkTmsYog5H3lzCNy36VajB/Sn9r6EXtKvi?= =?us-ascii?Q?FgwTeMI54yAJhLrW6xkjxDWVlCPcNmdhA9a9/iJhOO3gFa63oP+TsdubWj2P?= =?us-ascii?Q?9KE31sgTUcVNJD5aBWyHgJA2CEOrWkdTiX2ZkGVDEobGZYD9XhY60voz8zET?= =?us-ascii?Q?YnV/MLLccMv94Wb4rJ9H/OqWPZNGbZan4npDgmjUgJkJQxE4XLcD0iKHuzWl?= =?us-ascii?Q?iTRGiHq1esqjikPdlqiEEHB7640HejigbMeAaBSsquxk6hw4lE3iyyLFTuTa?= =?us-ascii?Q?hyE4mnhfAUOxfPyMS/42rYX/Qwu2B3nCzaPwxRxWcYWuRjJ2XiyhzvlygFps?= =?us-ascii?Q?1/KY6q/IF3wyAkMtPe4Tbgvtjc0gyrlsGpUPsJZ+YOT1SOEwD6tSHCq5NNdf?= =?us-ascii?Q?/nrD0cZ8VVe4LqPGEsKD19GpwQYVeqSeTv7jV82LdlK7jxh1FKGjpUjnONh+?= =?us-ascii?Q?KE7+cukjP708rSEpzsyzNJt8mpCLjmg32TIh5mlf9bX5sTk1meGw2poNrQDf?= =?us-ascii?Q?kY+hXzgTTTUyFwg8GjrLARF2Wk0dTfEtesiUhOuqSElwZWMd8tHBkb8nP2sq?= =?us-ascii?Q?RiaGGRsSua+fK2XEDZsC8xdu/L/qFcLQyuVX8yQAQqErfBWHx8CeNUPaBfh7?= =?us-ascii?Q?FdrksBJk8XTwTd6TxvB9lxroDVRI/0SzDPvnwRF5d4aBbDQ1ImpzfWqNIGMs?= =?us-ascii?Q?Q7NTE4zhhUfITerTZt1SebYUECDCeWeo0aohjMXW9aiYANwH3GUHE0qWxzRj?= =?us-ascii?Q?eqYbf4fRP/AhFVS1ZXcX3RsjEuqI4CulbtnslK/s1?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0732; 6:BlWt0uEz+mcTRVzLYctm15tk8xuRO6qdHNILltAFd0tNNsDLIWny6u/uq8JTtijz1qjHqCdWydza1wV9P+mA9W2GiEy4VWrafs6RxKjro6QVAfDG3mF9goBZ7JVyJslZ5OHvkn4sXyzJezDZemrZ3xS4yM1b1RXr5jAwY1MHshjif1XmtBgVeHWW2GcZRVFdAXtzXKdlNqxF7Dud9CbT1vFMuqI8Q/U7phf4xfMuBqfVJZVZySamGRRFaeVfxwLVB6PqfyiS1NhQ9goehPRwE/LiKhsM3QA4qbLBT+1toctU3t/mn7CAElMB7V8xqGJ1EIgmatFMsv0Y7TYGW4TRM+wg6+/2WG61ldy6tvmYLw7/1CEIXbYY1u1khvFoPXv3AYAHp6AsHaboDB1yJYASV0veLenVsmlHGdZE6v2VZIA=; 5:s4WqUvBekyp7RGhmixW1FoZ2K3GJQDFEh8/48/N+jhDEKTDq782NbYPbAKc8Q/otZefytW/N9hJmnJzmoiRceM6z3k6AXAtuKNMo82Uh2qRxVZpup+8SV7I1jRW6taRXYIz30o6L9vxMbl7BKlS42lTcOFy7LKE7D00fo/XCXnis4PxEIaVBDlzTE/N8zKLj; 24:XTPPJBZvRsYf56ecf7m7Tv6zQNrbjy4DQmAMlS8D0ojg1p2uzeo4XKViCfWNSxdcn0AORiPMO4NI1Ga/JtozyyyQ4/CG9EEYoATf2DvNLo4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0732; 7:yKHhl+EDo2BzpP0rIIcKXVKGxwkLzSszFc1eeLNy6p8M12/EFE9oOuoJAjI0x2BoK8Spb1fxQB776ujpE97uyskP3dRUblTok5R7vTGpaHFWNtVO/S22A6xoE2eRcmVVVd1aJn9l+HLDFzIXWgzXWpHsyCV7bN6hzmYPkEZirzIJVs+ruseo5krjefauRfXTTywVuItPDW3L/VhUEQaK9o4FUHAt655/RGwXpLmddU+12NGlzmDxymn0JrPMXNEmnO2XsLrCz71sWFMa0GEqf6/sOW/RQBk/1s1Cpr7l7hhMh+8oF3hbI1bjhPWqG3y/5eVGE4ut4c0u1glsTcOb7Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 07:14:32.9782 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB0732 Subject: [dpdk-dev] [PATCHv8 28/46] net/dpaa2: add support for L3 and L4 checksum offload 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: , X-List-Received-Date: Fri, 03 Mar 2017 07:14:36 -0000 Signed-off-by: Hemant Agrawal --- doc/guides/nics/features/dpaa2.ini | 2 ++ drivers/net/dpaa2/dpaa2_ethdev.c | 72 +++++++++++++++++++++++++++++++++++--- 2 files changed, 70 insertions(+), 4 deletions(-) diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini index 20152a0..d50c62e 100644 --- a/doc/guides/nics/features/dpaa2.ini +++ b/doc/guides/nics/features/dpaa2.ini @@ -6,6 +6,8 @@ [Features] Queue start/stop = Y RSS hash = Y +L3 checksum offload = Y +L4 checksum offload = Y Linux VFIO = Y ARMv8 = Y Usage doc = Y diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 906a4d9..763c574 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -68,7 +68,17 @@ 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_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_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G | ETH_LINK_SPEED_10G; @@ -252,8 +262,13 @@ memset(&tx_conf_cfg, 0, sizeof(struct dpni_queue)); memset(&tx_flow_cfg, 0, sizeof(struct dpni_queue)); - tc_id = 0; - flow_id = tx_queue_id; + if (priv->num_tc == 1) { + tc_id = 0; + flow_id = tx_queue_id % priv->num_dist_per_tc[tc_id]; + } else { + tc_id = tx_queue_id; + flow_id = 0; + } ret = dpni_set_queue(dpni, CMD_PRI_LOW, priv->token, DPNI_QUEUE_TX, tc_id, flow_id, options, &tx_flow_cfg); @@ -302,6 +317,7 @@ struct dpaa2_dev_priv *priv = data->dev_private; struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; struct dpni_queue cfg; + struct dpni_error_cfg err_cfg; uint16_t qdid; struct dpni_queue_id qid; struct dpaa2_queue *dpaa2_q; @@ -337,6 +353,48 @@ dpaa2_q->fqid = qid.fqid; } + ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, + DPNI_OFF_RX_L3_CSUM, true); + if (ret) { + PMD_INIT_LOG(ERR, "Error to set RX l3 csum:Error = %d\n", ret); + return ret; + } + + ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, + DPNI_OFF_RX_L4_CSUM, true); + if (ret) { + PMD_INIT_LOG(ERR, "Error to get RX l4 csum:Error = %d\n", ret); + return ret; + } + + ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, + DPNI_OFF_TX_L3_CSUM, true); + if (ret) { + PMD_INIT_LOG(ERR, "Error to set TX l3 csum:Error = %d\n", ret); + return ret; + } + + ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, + DPNI_OFF_TX_L4_CSUM, true); + if (ret) { + PMD_INIT_LOG(ERR, "Error to get TX l4 csum:Error = %d\n", ret); + return ret; + } + + /*checksum errors, send them to normal path and set it in annotation */ + err_cfg.errors = DPNI_ERROR_L3CE | DPNI_ERROR_L4CE; + + err_cfg.error_action = DPNI_ERROR_ACTION_CONTINUE; + err_cfg.set_frame_annotation = true; + + ret = dpni_set_errors_behavior(dpni, CMD_PRI_LOW, + priv->token, &err_cfg); + if (ret) { + PMD_INIT_LOG(ERR, "Error to dpni_set_errors_behavior:" + "code = %d\n", ret); + return ret; + } + return 0; } @@ -453,7 +511,13 @@ */ priv->nb_rx_queues = priv->num_dist_per_tc[DPAA2_DEF_TC]; - priv->nb_tx_queues = attr.num_queues; + if (attr.num_tcs == 1) + priv->nb_tx_queues = attr.num_queues; + else + priv->nb_tx_queues = attr.num_tcs; + + PMD_INIT_LOG(DEBUG, "num_tc %d", priv->num_tc); + PMD_INIT_LOG(DEBUG, "nb_rx_queues %d", priv->nb_rx_queues); priv->hw = dpni_dev; priv->hw_id = hw_id; -- 1.9.1