From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0082.outbound.protection.outlook.com [104.47.42.82]) by dpdk.org (Postfix) with ESMTP id 0F165D1E4 for ; Fri, 24 Mar 2017 14:36:23 +0100 (CET) Received: from DM2PR03CA0048.namprd03.prod.outlook.com (10.141.96.47) by BN6PR03MB2785.namprd03.prod.outlook.com (10.173.144.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Fri, 24 Mar 2017 13:36:21 +0000 Received: from BN1AFFO11FD044.protection.gbl (2a01:111:f400:7c10::116) by DM2PR03CA0048.outlook.office365.com (2a01:111:e400:2428::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14 via Frontend Transport; Fri, 24 Mar 2017 13:36:21 +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 BN1AFFO11FD044.mail.protection.outlook.com (10.58.52.191) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.977.7 via Frontend Transport; Fri, 24 Mar 2017 13:36:20 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v2ODZhfv005481; Fri, 24 Mar 2017 06:36:14 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Fri, 24 Mar 2017 19:05:26 +0530 Message-ID: <1490362538-20854-11-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1490362538-20854-1-git-send-email-hemant.agrawal@nxp.com> References: <1489756124-10805-1-git-send-email-hemant.agrawal@nxp.com> <1490362538-20854-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131348361811682006; (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)(336005)(39840400002)(39450400003)(39860400002)(39410400002)(39400400002)(39850400002)(39380400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(53936002)(4326008)(189998001)(5003940100001)(85426001)(76176999)(50986999)(48376002)(356003)(8656002)(50466002)(104016004)(77096006)(38730400002)(110136004)(305945005)(54906002)(36756003)(105606002)(50226002)(86362001)(2906002)(47776003)(5660300001)(8936002)(2351001)(8676002)(33646002)(81166006)(2950100002)(6666003)(6916009)(106466001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2785; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD044; 1:I4RZxyPngRx2I7lU5R1KTrO+yretHwhLdoxQ3n38GlcErj5zIWJgsXHsDF9fqweHnMnDPP/+T29zJqFyCMcHzvdKgzc7ZBQlAaAIc1jErp91sCTnLd21garL/CXFpnva34wcPO9NrKwPP8+vmYYgae8uzmzD9civAiP+MJQ92SmFP4dNJW7gmzbDsSLILHr6pclySFmInhJGx4xbVhE6wLmqAaImNu6hf44IywvctXbf7O+ibo0Q5xr7SqqFXhZXGB1iQ4ySZzZz3tp4BZESbHbENDnhdJcgV5bjQyxjeNnVLUt5U/FKQ5kCXkomsYfGCbjew6GUAKwKHYCSQcH2WfMnWqQsndWjpaAY7umopn4Dsp7DAKfOlyFOsKNmgd336ZnAY9FPNJlsFuGQsrU73rqVPV4Oq4PbL/uYhh7hgYKhdCKWz7yBTpxI3p7+oKGmiLKEMRtpfM2N1pzeB4JIFDTHiaxXzh3o4emoMMWw4qY79phjhsZ7r0NH/arjakabtEUTjq3x5ugenE78JGJJeNF9Fz0B5Y1eQJwp8pCqc2Lg9VrzHUEp+xLYpVWfNcrXRZVgKL1yu+CLWNo63K/0TavWXtiaXvTT+UCQCQ+AsNyrsP7ns5bCEeVHGroxaGe3jaJxhYwe3mvS2fbjhEGXqg== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: cc5a8b35-a811-4bee-57c6-08d472bac201 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR03MB2785; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2785; 3:2kfBsx/+FwvgU5tO25hs7PQWRJCX859LFTYvVRv/xX0OthchVbFhugRMusaFZ9Rp9DM5IdBgSiRE/feh4SjQmptd5zDy8owMyXJDin/5V4mp09jrzAL/14vEzlFNqn7XDG2JoZuFzn2mN7TDE+n3Xvzj1pLGqqQUt71fuJKH/fefZ21bInaqvwxOQDJHoO7tJa1pugu0nEYYiJ0h6+h3aFwVgVV0l/Rfpto1KKVtu5Kr5qYh998ig06M4hkV0p1j+2ZsbD5zZKFMiP8Ykvcd8juu9ew4h1Jt+jTZEkiSX217mVjQ+ppgWnv+la+mg03l1WazFpnJA6Tm+v0c9yG4SBDHPD+93pfmBfONyjfpxOHBAvzgYdYQUlda6XLg+ffA; 25:UeyoX8hthF/PWV+KeMsOOB2H/LE1yCXVAVKmo+d8yXC/SN38yWMQleQO+46kiPFZlOsL42oqnt5O1CcU+wOaYTeTkBI7TqviiGh1LpAf3VpghxePnvz5EBMLvOeu7S0b5B8PFRItuK5e8kikyQlYpEWO42i49mm6bqDu8voNmGV43Pip0yJl1rqRp3h70tKVkUq7ghu67u+mIJ71ueG1p8+1pvSGuZ1ZEvuREBFiazZ8FiJbi8rsTWsI1XbOj8Qi42Ye43ZN2iitjB4e2Hdl9o84naNtLVPupp8NSkOBPyk7KJnuPawj5CPGvhdyZI8EVmGiTeV1Xu50sqWcT/LaWpsyREAjPO8c+J6MJZB/Od5UgWracLDOmH3D1bwaw2C3vUDDKP1EqIwA3w2kSn7wjBwk3PLAofynr4mql1L1D0ARITeseezJP3o5pt4Z6ZOWf/PZ/efXxbykQDNpfE0EnQ== X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2785; 31:Oq4NApNQdM9uAOHaT02Z/qoUBIuzA0QNCJf8qeRO9PmmLbkVvr11lL3auwWl9le6obF7LuElwZozQDGNSXyTNrnICp+g3txLZtHx2I6k37Ft9oE9pWGesDIf8fWPObsWf/5ifHuJ2RixQndcgfyCS9/fshZAf66R9ELcgkgzRrsLPLvIcp3791FvazaNucpG+ghFZFlxy+/bVAaGV6PPrfEQn9RTw8TXAMqL+SfKpM6/ryHKlcf74RQh9axb0vOQmDGFaUKnQELkM10plp+n6A== 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)(5005006)(13017025)(13015025)(8121501046)(13024025)(13023025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123561025)(20161123563025)(20161123559025)(20161123565025); SRVR:BN6PR03MB2785; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2785; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2785; 4:BmcBDRjzchaTo9vRmKTUltlUwnTf6USi4ZD4XzHOJQPu4tvz9JWmybCiICJ74xegZ4QkoowaCeU1Kf6jMPjHHo+PPfeqAWLNLZ2M8XGBdlYTLkrdNIZxfq734LbdlLAtfoA/b3AlulerToYBNqncsvzTBT9me/MV4Fopuq01lY2rhiMHKp6sSle0Stc65lcccKn7uZVOa6xeVTO+hu4/9TjRZi5ervOxlkFks1RgoAKXt+abf6n/CE/eJ9GMzO/6u7HHpgi0TxS5kVr2Tr3SK5oMp4x0AWc9RoMbF860PxsDqxGTQaiPnrYYdcxpSa9MVeLvb/a7gkATmy4X6F1G0vzHSYersnvfKTGynWjal9PO4LeYyxlhCWpgmtb5iFvm28cXH7ROIn9+zoQzzz5Udo7PMT3xml2CTWGQflpwbIW83Oduo7qEhzVGUge/Yc9wI2jB1RCps7iBfWndtiy4ZE2NSt20yGMtUcORSC8O2GJ0EDZvU0rI8Wl693ftyprszqIQ13KObnJwFyDUpipeOWEiRnut7ttl9rEou58B3On5802s3zr6klkW0uSee9OcHx6JWz/PU7idg9KOi7SRQGn8LVTaJOy4oDbkoglmJUsJBOrAwmklvk7hqoslhsxViu9kLoMbYNYQ40rwDcv/bzJP6ukL3iOFcDWobW+14I9Y+VqZ+KUvDZdA0f0KYVI00pN7XYBcBMeq8Aqq6/VprkrFFfFPVE8DHQ0/s0gnDGPWZ9/lHfJxhg1426yRUynI X-Forefront-PRVS: 0256C18696 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2785; 23:QMVUb/UE+b7WhjuisVPvu9zABL5Es59SWWcAOBHnM?= =?us-ascii?Q?2gHmdSjr1lsmmF5TiLQoplyDycARmNjx3rNQFc92La9dsBbsG65pBnCQKbwt?= =?us-ascii?Q?E74VgRhK+rzBCpbmXgVDoZcFPqV/DdjvR6EYmiiOKwNir3fPUb/hZzZNRuW1?= =?us-ascii?Q?0tYVDn2EOPtNgrLnZtc/GzCXxuZ3Jn6x+ir9PZOLsWEerZRucMA1GhvQ4gh+?= =?us-ascii?Q?IuGavsoKrZ549CYjWELBuuxlJdKQWe18d/9c+/QDTrCe0dQ+T2YhIpggBzAf?= =?us-ascii?Q?CEO7cS66YDhH4gJgAUwR1hY+3mvkrH7OUx3fyNPRbSopdgDtAqzqsHbVVhUz?= =?us-ascii?Q?rVdGObQCvCMWhzBFNzjkciZFliCkdj35IKeBEMzO/d4ElNRwpPn7+7M8ly4E?= =?us-ascii?Q?UHpz6RnQU3ZPDA6JtQAUO1OQ+RZYfYfxbtAkd2Bq862l07thq7aGmSXDxrZM?= =?us-ascii?Q?8+tvgXW+WXZobEhJ2K7ci1yvvB1rEbaLHSBG+IStK9hrhPqbGxN1mnpZgnjN?= =?us-ascii?Q?vbVeCe72W72Ucuy+BZkleG7puqIGiU5mAvwBupX5zDIlBIfVtpdwUxxH6B6m?= =?us-ascii?Q?8jemLBj5AXwveKnxKI0ipbWy1MeBfXykd4drzqmyvbt4TG4cnQ0YITmbAzPY?= =?us-ascii?Q?6GRDdmNSv51b+Iwk/HwNAWSTrN84utLxsRHA2KmGl2LXMF0EC/fofBjq1d1W?= =?us-ascii?Q?YzkPLdgZASNLBOuTUBvU6i+ejKospBNXjjE1ZIh7AyAtdj2AxbPfBhrFxIUj?= =?us-ascii?Q?dC8UH+BIQyeNdHTapcOjjHJXX8PvLZ00eeBXIEMkZciYg8QtJkUgaN99jON9?= =?us-ascii?Q?HeuVGW1CCDwBio04MgSGKe6k/t4iNQWw02srVBw8+jWRgfeFupbR2rLtjcVh?= =?us-ascii?Q?QzO779xUe3RMMTrIyfmvOoMAefq1OLuMrCPXo3Dow/+oDf0voktC902ceClI?= =?us-ascii?Q?FPGIg2+2A/OKJu4pTKqxMMezPyzRC/Q6OrfC34/f0ML78AElLDBkGrA9A7AU?= =?us-ascii?Q?XRMcAr3uzwxn1MSES4cq5LAgHpI1lcDPg634OdWiLN4EWSABVQMIlaVoIka8?= =?us-ascii?Q?XV8xRidh0ryoKe1DiHUxfEpNmYE0m4sNkTpZ3EHKGrTFjNnJfNM/cZ28ybXh?= =?us-ascii?Q?BY0O/q59wDpWPZ/MHP1VajJLrbIluYQe1fhnVw7jvqPPOU0uyK5naNVAcsGl?= =?us-ascii?Q?aCQ5d/LMZAsiZolWnPXSR1s/roV2uqsGfXd?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2785; 6:xWV3FISd1PA0Pg/NhkqvwxMMuos/fvtr9zbSZHv1pHIXn8fi6VEBv5f3zKtZkd3yaUbpTLqesAQd2J+ycYlK3+wVd1Z8cjK/EUXLXvm/VvFBqOQ7o5ZTmeTRO+vQe24hVEBpsjqHFfKm+TjRrR70tcWzNxUJnz1wuuZATzSLuz9nf7fVp9XFLjHllOEmlFMgiTgnn0Et6bM/n532r+42Ldx+ckRBCNyj0MtXMKEJDFCdrtP9K/GQbz8eGmhrfX0/vc2wJ3hJ4ICtDJLlncsohlw0Ma6pE/55LBjYK4jSPG+oV9tiyrG7iSD/gy2oF2a8VL9O0iTyHe3rH/uDruUszIiHz/wh/xtjKVqO4wOzvDPOxwZso395LhVaJZ5oRtjNB6v7fifTh9RKRrmVcOQY1NgF4TylHlsgzT0BsNC46RI=; 5:DEocBX6V4f3fNFZIuk0x98zyJfM9l5pOTZ8I1sY9JgEjK8ngkKhRbyEvJhDRvXtKkEFKvUdhhhqS1sR/IbqMZDhaFNqDGpDVjA4Y8Q06nDOZ45sTumuoRcuT5Yb7x9Rs7+GFiHH0yWk/92jhlKUCDwN97tArwrkd3cF8qf46zG+nayPiyc6EJA8n0qCuP4kt; 24:gmdsXbprAOhzt325JvN5I8Wk/GXDokQ7s9SsGKCWjiP5SGhqwZbSyZ0g2YiWCM+iXuE2AIfN8S+zBImMOH7jOaOHLwEqvSiEdW3vgm/Pqls= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2785; 7:bYLCNLa08qCQ2hlDZVfbq8y7C3Xahyw6uA4jagLv3SLGVzH/mxtc+D8WlrS0Sy/MOnQ3hSHdaOjhm0xwSzMV1IpnB+m7TkxfCNMrh5RIn4ZpQAY1UDLceegL2mfterIbO2eipPPzWwnOWiubBYvCzdqQeA1T26nSllsJexsvt7fVcoUsppwpVO3goqayFkWUh5niE9o0/znY/lEC1G92x1tuyjziutoFVEqBkZvX4gn5QFA9oHSAG5x5Z9csn8IB+1yWYKb6Y8E5mxUb1dGYQdTdVJlcqGx8aQcuINdDvQ6INxXWDcAR+IHv+/+GwrnbcikjfqSkNwScYFEaLgg9ZQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2017 13:36:20.8717 (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: BN6PR03MB2785 Subject: [dpdk-dev] [PATCH v10 10/22] 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, 24 Mar 2017 13:36:23 -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 e1bdeef..5328ed9 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