From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0048.outbound.protection.outlook.com [104.47.41.48]) by dpdk.org (Postfix) with ESMTP id 658E1688B for ; Tue, 25 Apr 2017 09:29:37 +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=ee5sLzfBpi9ILZ5BNQ/8SuQGCjfuDDJ+KqxuzvDFaxY=; b=QBCI4HkCSQ2TOoW2M8L19EnO5FtA5keLEm4EMNut6GOCfKSzjuOUGPFC2sG2+DQmxwQaso7PMLYJ8eBVBRtmdfY1hiVrV/gL8BVCa9DxQuVGVEHkuCjK3hgYNkt+JsZ5qbvNyubyFqU+uzR7Xg6nJGWLcRpV6+qm1UrbtX6fP0Y= Received: from SN1PR0701CA0046.namprd07.prod.outlook.com (10.163.126.14) by SN1PR0701MB1951.namprd07.prod.outlook.com (10.163.131.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Tue, 25 Apr 2017 07:29:35 +0000 Received: from BN1BFFO11FD023.protection.gbl (2a01:111:f400:7c10::1:155) by SN1PR0701CA0046.outlook.office365.com (2a01:111:e400:52fd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12 via Frontend Transport; Tue, 25 Apr 2017 07:29:35 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1BFFO11FD023.mail.protection.outlook.com (10.58.144.86) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1047.9 via Frontend Transport; Tue, 25 Apr 2017 07:29:35 +0000 Received: from avsmtprelay01.qlc.com (10.1.112.194) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.309.2; Tue, 25 Apr 2017 00:29:26 -0700 Received: from avluser05.qlc.com (avluser05.qlc.com [10.1.113.115]) by avsmtprelay01.qlc.com (Postfix) with ESMTP id 5EDE68BF770A4; Tue, 25 Apr 2017 00:29:26 -0700 (PDT) Received: (from rmody@localhost) by avluser05.qlc.com (8.14.4/8.14.4/Submit) id v3P7TQwr032101; Tue, 25 Apr 2017 00:29:26 -0700 X-Authentication-Warning: avluser05.qlc.com: rmody set sender to rasesh.mody@cavium.com using -f From: Rasesh Mody To: CC: Harish Patil , Date: Tue, 25 Apr 2017 00:28:41 -0700 Message-ID: <1493105326-31984-6-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1493105326-31984-1-git-send-email-rasesh.mody@cavium.com> References: <1493105326-31984-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39840400002)(39850400002)(39410400002)(39400400002)(2980300002)(428002)(199003)(189002)(9170700003)(50466002)(87636002)(356003)(5003940100001)(76176999)(105586002)(5660300001)(50986999)(42186005)(4326008)(101416001)(48376002)(305945005)(81166006)(575784001)(6666003)(86362001)(4720700003)(110136004)(8936002)(38730400002)(2950100002)(107886003)(54906002)(106466001)(50226002)(189998001)(47776003)(2351001)(8676002)(33646002)(2906002)(6916009)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0701MB1951; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD023; 1:UShznhH6meVlC3YASvvgg7pU4+ZBzBKjYvcWhqnCD92ossoEqiorUkvmjjPa+uIwr57q85budQPE1QM4LTcEIgC1cuyg5H0YZGu8W+2Iokdz+/xvLua4nJSG79uDBtrSsUdAmiMV6oje7HP+1npQBXyxjPNx73RKgisz6SO+CnN8p2i1rKp50wwebL9SVaxXvgNG7LTQjxWp0VZmLYBRsQzB2aJLZXSAUoyni3YMrmB4Pr9jprxtWSVgTqiNibMuIg2AJGRZr6DisdGHOvmDMo4DKCVAUQmEYKSZT/xR6wn5fvGZcoixrsVypxTFaabXAk4m/semMjPiMFtGoxRO2X+R+dzqvGWWfXGptMb2dFQZk9zNiJgt3VLahJSrqn4rOBiDPwRx9xxZnVBKkJG82nwIBJEIi8P/1OibcPoSx9xqHv8r25C7mGrF/Ri5AJKxoVBvvDSQqH+yXN/9muJ60LTDgyD5y/az3XIHkIp72UGWRkq8mPc8+/CJ5/iNjLUlM+QCbzjHJnIcla3L8vIrlw== X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 71af6ecd-1377-4df3-979b-08d48bacd2f3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:SN1PR0701MB1951; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 3:08xeb974mWZo/rEsNWe4u0iT6RNjY2txQEBdM/GilWwEsej2fH6cqXs++twDU6HyvmyixslmijrmAvlTMuyGzA765U3MLx5mTbDKtFZeqvZF0dTZyGL2k0FSzKjhbR1DgLKF8i7g5hKy1NjRBuAye3q0l1SxQPpg8DoxpS6QIbDhRRp+7OE54W4xgnQVJXWDkYEb0QkyG1mXHCKnXU8slcQwW1KdZ3bLlWrbldWVZYAnR2CmINwo5epnjPh5oeFS91dc3Z4lOFd1X6zJDcOv+OlU/6wMDpP6kIMNGAsW2REkyY4mtF6XKs4+kvCFmw4dtz5Bh0DaA6xGLhwlhCIntsY08cyOgEcaYAqfKQhCWE+/x3vko2e1ObREkJahxcgONxIcCUammhpDQBr98vBNPNzFA7VBxssMf2lblLuE3n4wyzYdlee34KftrztyYxJlEcOPboT8XQR3YpAhIJiguQ== X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 25:pLVIWkmSIKhI803yVo+4NVub2zX6r7RKoMWF077Xd1hP2mQCDGFfPPldlC66XQCSaoum9tPzzu3VrPPFZ2XvO1oQWNiilCKHx80Tc7+7SWK9VPfitQkUJUsloDx1qesc/Jiv1uB03YTYrlig1ujJen/O1TYdVYwXy/l5TStllQasThvJd2MlfbdtaHqJ5eBuHeKf+oXYCu7Pbjr6dcQlec6NgfwuRHyInucufUJGyfLw07MAqWneG04so/DIGIJ+3e3chmnk/yuERF1lO+BwqNHZRCZ4CObcpgyyFlKFGGv+YlKi3nMnOfdptIH2YxIv+wsLLFcAtYDzFlIXa+eVl2v/xod1steRNk3TkGk+OQtZsIMZP9zOhkDcCYgY6xOWdufvyrbA1tVcnUTeoFYjZ9t2d7lIM4LJlaA0+/4CGVf3Tbiz7G/tAQhKgDvsrFGsxGovQWcOByIsYKWhupzoCw==; 31:NJCoW7+CWsNeSdeibDCCDFQSEp2JuEhjbeVc4HljonxtRbtITkEM552ihkOZNC0Eb/NljdYPX93qZzYiVHXKrr/3cqkCWUyqQk7mQQv3tDTcXvRJzhcUCq+/mre2Pq+1XRKNzMNGiQIy0P4mVOhPlLWsUEIuE09HOv5VN0gBTpY9Hubs+iNIHElnay2JNyILHprx6QmQUebSyiyST2a1zODuP4enYW1ju3PAqgwslNQaR6BSKU823jFLVu1sGDOM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 20:9q1bqXFzxOMRTLP1ASZPdQqt9IUOCuSTknef9MR/7lN8cA2umXoXn12luJ133iEI5byXRwhMqZzwwOIpgIn4h/i6GUmjgCVVcNVoQqFKNVour2H56ryieej+YbUs9IpU5b5Wy/UwDR3gzPsc5hqtdux/4zHJ9TWSdMKVvev6uVxLbF5rWL9bg9PBRZ9CoIdxc7AcTKJNWFYD8cRBsgmKo5JrDoO2WfFwRUnzZvusG9f70m1K2GnCaYL2PRlVtvQ2D8x8N+U0ClqtttyBQBWlsu8TMTh5Rs0hxtybACABFtv1+nPK1PZmKnfLhvbgl7d+6MF9eusI8Ess+eZcczRac5njkVHOM9WGtl3h/cBZZXheSoxagexPO9yZBjg6tMpNPwQNkBb1b+Z88EDSb74aSl2Xfzw1BSgPJ3eKYvPeXUaaHToC9efEJGBmiO7+NgGDPyFb2i/8r2/DKg0+OEe757mmhvtD5ohjH1F5Y9M0oVzC7pX4CvT5UF0dNyuTV7q5 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13015025)(8121501046)(5005006)(13017025)(13018025)(13023025)(13024025)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:SN1PR0701MB1951; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0701MB1951; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 4:1Bo/LxyWc6h7mv94OSoKMoo5Lrct1q3HPoPFc/oJt/6Ncgdl8sRFzvTS4I1gCBKVrgpC6a7s3iep0JRpIGCJm/dVbmEbFybNWcR43gdXfckURpRSGWtzVVCRpZSkRMfIj0qE8wCGk1JarKHGhzwVJZ8/vSHqMt+O6bCVGh7uDI6NUgIUSkDRqsXAYr0c9iq1ds6E9/lB1FqEjkolSIwwfbJrpGjOAfOzJ57JC4/ugOQbgNBqn9VhXKYAjIUauvKW0mpmO+iM4AkmaSclYzY2CreMkLu/ck/JNNppB/r6puDRIaW5HYLi30W/35L3E97uc7J5JUFhHMDZq80voVR2lSAzfHavY1XnTjEgB02ltrsnwP9BUDTlcE0DLUAEBdLDaexPxWtqsya5gEFzN4zjAqVA2vdn4VdkyYkhoZ4JITqctQkK9jF2byaO4cFaR7IUzqNegOVKfsbWX8bWjcqUcwid6YAGoWHAB2mAVUNLDeURLO8by9emswQvFKOBcwff3o/l8iRkNci64LyBRJLDhCuUSgJZC0rGvp+ZN8+7jMdsTDGvRwdHovkd9ak3NCnrVBODPEAFSV0BdJYImj3L+dX1MJgebYrr7BoWO+FKE8xppenxdZJ2FsGgq25RPLyMDVrv2QtmfKYtU+dSyssdCMTfw3pr1UAwmyiJ52SDi7QODJLJYx5x3h2Hn0mpcKLafITdqoayypSphxmHSM4B1rrbtC3EzZ1acKLNy/JMfvGO20d7UocdYjBOfwRNTLdV9+DWsmhspPSo07CJFlPRbU9lUxL2XN/Kw8SWdxKnSIcKI1IHyzTrvDO27Z7HEaU3 X-Forefront-PRVS: 0288CD37D9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0701MB1951; 23:DpRElMlPq2q+Fy7c2N6y42PaEGisX92M+XjkMTM?= =?us-ascii?Q?l3YLuF8q9qw8J5eiOOMqHmz9MPxbVd/MRssFPqWnuu9M36bzhcQem6TmLaay?= =?us-ascii?Q?4AHKbae0s3pJ+fWuQLo9kl4H9IPE4ulXJLHIK5es4/33fMzLzAV86ucJa/6L?= =?us-ascii?Q?XTY6NuY1xe/i9RSUszk0ka13t14qGHhTgdR/bicYaymbrXXunzNyH5pKXZao?= =?us-ascii?Q?OcxzzQZ5XTPB0gu+gkB/85Me9b7iwmw9j0ICMM/pa5vK5c2QzSBBoCNtIK6a?= =?us-ascii?Q?1MsnaNIxrPupuSjRjC59AfrcwMqQS499x1NhhD5dXbOd6xdnIPVHZGRzxwHy?= =?us-ascii?Q?3z/9dDyynpwGvSCsLnzctv/9k1SfkLEtoI9ws71EVfflITxpd/cq4vhaO1wQ?= =?us-ascii?Q?9488by2QPn3e/Y3k3pt1VXYVIQk+ycrdcZo7Tz9RrCGMDUMwNQuOneoMfeBL?= =?us-ascii?Q?NtpIlDjBQZLvBmrKhbFskR7KRpi8tK7KM4w5xVqZpHU4y7QTMykMk0FqCqka?= =?us-ascii?Q?6CJq2c+g/71CrOBH2pX56WyPCYnvv0i0L5fh2q/L+cq+A0jjKq2nzxXgA5XX?= =?us-ascii?Q?3tzHvkFPaCjN/fKWl3twWUSno1GgGMxmP5+P6WzxU02j4ErKmGM6ZHaMUJUq?= =?us-ascii?Q?N5cIWGrnAjoA47vW1WPe3ZQAZzTxBiICV72oh2lSzIqAfM+87APNl2gsT9eo?= =?us-ascii?Q?YbtFO7u0b3QrQQFseFJaVhmo8Oq81/pOsNfjVKZq8oyyNF65wQqcskHPXROx?= =?us-ascii?Q?75tQCO7VnIw/1MZ+ApUxwG2nimq7fRpWG5l3nKR+OuPLwYErHKdj1N4LOmdh?= =?us-ascii?Q?IDxqc4RYTfG8SY97/6dzG6YjuvldvHTJTBzeygadQcrbJHtOCag/kqJtK3vK?= =?us-ascii?Q?bIJbWaZXXtR/UN4R4a9DfYGbPOzOl1/GV0YkoJzoRdY+wB1J/kilcVfKD3F+?= =?us-ascii?Q?N2giJt6TvTPUw0bC5lit2x7whlH/IaQbZyb2WrPFGWvnanZk6dO4oEs3KcSv?= =?us-ascii?Q?Nva1bQYiJMOccKcWxDtcVOSMT9vrQxnrxJ0O+yDpORx0RR9eMTaE83/n5PdV?= =?us-ascii?Q?+G78SlAngbczd1ErlWkbETpPHPtrXhCXwheeiQGlIFUCOK8CDlDd44xjjFWu?= =?us-ascii?Q?8sYoeBA5GpT5FgJw62yl/Nk5FgM1IbNnP?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 6:XLyhlmuQhRlL3DDpWsF7wFt8k1YhZAM8AwqabvixyFnSXnSWIBYRKP4yGTfTCExyhyevxLS0CHIzjIpU8nO31GYl2QShb7NH8R7fx2lL//bB2pJBl2XKz/E0xp0y7FiDk4JYVeNrwH8Ltlin5QkLgZfbiuAa4ZDdBHMcCDbNNZvTJJaTSlkh7py9lJzMKHkPkvqVPGbN3U4AMx0o03CoKnIUWBoq7CKraGH/DB2m9bXRbQKbidLeSF1P5DtvAJ3KuVCZdQGcZPP0hvV3zyfOjxNY6XLqys/VlprwNQD1fLmg8NGkcyuA+JoJQu9RhGkb8s0TRE+Cowa3/OoNML76+dGwPKFEyRi31NyJDNT97ApQOreIIhMw9k0+89tzGQONSL48gCVqAlg6465blHXSJJkNahD9LybL1tTNz6lsTC/GAZK7cG2fno4T2tN4iIsHQ7Y4FnxQwdoD9M1ek0bD6JRw3OAYKUpBLXxMyW6AFefqhwd+13VEpp6bJSyKtZqNn2k2lQ36P5H1EWnfCkPiBA==; 5:Fm6Wk15vbYyAy4tkT/AqmCHln3CSLd/efT6hxWuVxVpN7j9WJBJ5DKl3mE+ai/sIzJwUApFitjFa+udiioVFNpsmt6fPls6PjRXj1LJVZDb02jpyWXHaTEsWH6UKAKpIi3+3EMagFbHom7AKYCGoRA==; 24:TGC2T2MhIwvt2FjmuVENG3rrVigassPwikQJynV2Qzv/sh/dPlPAdkw0oRZUrLMSXDWjWPMi2GG5/tyfaB2+sGBCFpkZ1WDu6ksJHscCw+A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1951; 7:GX9ct+7pKo8CP1r+BCZ6oV3Zs7rrrxYNXqwVy84Bl9KIpUxrt670kjDQ0WhagxkQdo3yTrAQdGIYb+pNzW9yAVHOKyScY2vI8VOe7L6guKbAmoofWY0ocyryb3NQLiAW8wlaPBmJe2mrLT1NcYWY4AEEjv9BNmxaPTIen1QLOvg/kmPUarTSjxDI4g/Q50LoMjp2Q6A539rIGPkU5Q2FTXwriBNcSgxNwBp5IVSYIlZYqQ6v4+khbvYpHkZsc9JpU7GFS2RRx+4JmTOC9Iw03GJKfBfullZgzEyKZpufT1Jz4iVRl7GKKdmE9jeA2BuAyh9gB27BmwDgpXSHCpByVw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2017 07:29:35.2309 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0701MB1951 Subject: [dpdk-dev] [PATCH 06/11] net/qede: remove IPV4/IPV6 as valid ntuple flows 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: Tue, 25 Apr 2017 07:29:38 -0000 From: Harish Patil Firmware supports ntuple configuration which is always based on 4-tuples. So remove RTE_ETH_FLOW_FRAG_IPV4 and RTE_ETH_FLOW_FRAG_IPV6 as valid flows. Also merge the two switch statements into one. Fixes: 622075356e8f ("net/qede: support ntuple and flow director filter") Signed-off-by: Harish Patil --- drivers/net/qede/qede_fdir.c | 93 +++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 52 deletions(-) diff --git a/drivers/net/qede/qede_fdir.c b/drivers/net/qede/qede_fdir.c index f0dc73a..18fb8d6 100644 --- a/drivers/net/qede/qede_fdir.c +++ b/drivers/net/qede/qede_fdir.c @@ -31,10 +31,8 @@ #endif #define QEDE_VALID_FLOW(flow_type) \ - ((flow_type) == RTE_ETH_FLOW_FRAG_IPV4 || \ - (flow_type) == RTE_ETH_FLOW_NONFRAG_IPV4_TCP || \ + ((flow_type) == RTE_ETH_FLOW_NONFRAG_IPV4_TCP || \ (flow_type) == RTE_ETH_FLOW_NONFRAG_IPV4_UDP || \ - (flow_type) == RTE_ETH_FLOW_FRAG_IPV6 || \ (flow_type) == RTE_ETH_FLOW_NONFRAG_IPV6_TCP || \ (flow_type) == RTE_ETH_FLOW_NONFRAG_IPV6_UDP) @@ -274,10 +272,8 @@ void qede_fdir_dealloc_resc(struct rte_eth_dev *eth_dev) uint8_t size, dst = 0; uint16_t len; static const uint8_t next_proto[] = { - [RTE_ETH_FLOW_FRAG_IPV4] = IPPROTO_IP, [RTE_ETH_FLOW_NONFRAG_IPV4_TCP] = IPPROTO_TCP, [RTE_ETH_FLOW_NONFRAG_IPV4_UDP] = IPPROTO_UDP, - [RTE_ETH_FLOW_FRAG_IPV6] = IPPROTO_NONE, [RTE_ETH_FLOW_NONFRAG_IPV6_TCP] = IPPROTO_TCP, [RTE_ETH_FLOW_NONFRAG_IPV6_UDP] = IPPROTO_UDP, }; @@ -300,11 +296,10 @@ void qede_fdir_dealloc_resc(struct rte_eth_dev *eth_dev) raw_pkt += sizeof(uint16_t); len += sizeof(uint16_t); - /* fill the common ip header */ switch (input->flow_type) { case RTE_ETH_FLOW_NONFRAG_IPV4_TCP: case RTE_ETH_FLOW_NONFRAG_IPV4_UDP: - case RTE_ETH_FLOW_FRAG_IPV4: + /* fill the common ip header */ ip = (struct ipv4_hdr *)raw_pkt; *ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4); ip->version_ihl = QEDE_FDIR_IP_DEFAULT_VERSION_IHL; @@ -320,10 +315,31 @@ void qede_fdir_dealloc_resc(struct rte_eth_dev *eth_dev) ip->src_addr = input->flow.ip4_flow.src_ip; len += sizeof(struct ipv4_hdr); params->ipv4 = true; + + raw_pkt = (uint8_t *)buff; + /* UDP */ + if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV4_UDP) { + udp = (struct udp_hdr *)(raw_pkt + len); + udp->dst_port = input->flow.udp4_flow.dst_port; + udp->src_port = input->flow.udp4_flow.src_port; + udp->dgram_len = sizeof(struct udp_hdr); + len += sizeof(struct udp_hdr); + /* adjust ip total_length */ + ip->total_length += sizeof(struct udp_hdr); + params->udp = true; + } else { /* TCP */ + tcp = (struct tcp_hdr *)(raw_pkt + len); + tcp->src_port = input->flow.tcp4_flow.src_port; + tcp->dst_port = input->flow.tcp4_flow.dst_port; + tcp->data_off = QEDE_FDIR_TCP_DEFAULT_DATAOFF; + len += sizeof(struct tcp_hdr); + /* adjust ip total_length */ + ip->total_length += sizeof(struct tcp_hdr); + params->tcp = true; + } break; case RTE_ETH_FLOW_NONFRAG_IPV6_TCP: case RTE_ETH_FLOW_NONFRAG_IPV6_UDP: - case RTE_ETH_FLOW_FRAG_IPV6: ip6 = (struct ipv6_hdr *)raw_pkt; *ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv6); ip6->proto = input->flow.ipv6_flow.proto ? @@ -334,6 +350,23 @@ void qede_fdir_dealloc_resc(struct rte_eth_dev *eth_dev) rte_memcpy(&ip6->dst_addr, &input->flow.ipv6_flow.src_ip, IPV6_ADDR_LEN); len += sizeof(struct ipv6_hdr); + + raw_pkt = (uint8_t *)buff; + /* UDP */ + if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV6_UDP) { + udp = (struct udp_hdr *)(raw_pkt + len); + udp->src_port = input->flow.udp6_flow.dst_port; + udp->dst_port = input->flow.udp6_flow.src_port; + len += sizeof(struct udp_hdr); + params->udp = true; + } else { /* TCP */ + tcp = (struct tcp_hdr *)(raw_pkt + len); + tcp->src_port = input->flow.tcp4_flow.src_port; + tcp->dst_port = input->flow.tcp4_flow.dst_port; + tcp->data_off = QEDE_FDIR_TCP_DEFAULT_DATAOFF; + len += sizeof(struct tcp_hdr); + params->tcp = true; + } break; default: DP_ERR(edev, "Unsupported flow_type %u\n", @@ -341,50 +374,6 @@ void qede_fdir_dealloc_resc(struct rte_eth_dev *eth_dev) return 0; } - /* fill the L4 header */ - raw_pkt = (uint8_t *)buff; - switch (input->flow_type) { - case RTE_ETH_FLOW_NONFRAG_IPV4_UDP: - udp = (struct udp_hdr *)(raw_pkt + len); - udp->dst_port = input->flow.udp4_flow.dst_port; - udp->src_port = input->flow.udp4_flow.src_port; - udp->dgram_len = sizeof(struct udp_hdr); - len += sizeof(struct udp_hdr); - /* adjust ip total_length */ - ip->total_length += sizeof(struct udp_hdr); - params->udp = true; - break; - case RTE_ETH_FLOW_NONFRAG_IPV4_TCP: - tcp = (struct tcp_hdr *)(raw_pkt + len); - tcp->src_port = input->flow.tcp4_flow.src_port; - tcp->dst_port = input->flow.tcp4_flow.dst_port; - tcp->data_off = QEDE_FDIR_TCP_DEFAULT_DATAOFF; - len += sizeof(struct tcp_hdr); - /* adjust ip total_length */ - ip->total_length += sizeof(struct tcp_hdr); - params->tcp = true; - break; - case RTE_ETH_FLOW_NONFRAG_IPV6_TCP: - tcp = (struct tcp_hdr *)(raw_pkt + len); - tcp->data_off = QEDE_FDIR_TCP_DEFAULT_DATAOFF; - tcp->src_port = input->flow.udp6_flow.src_port; - tcp->dst_port = input->flow.udp6_flow.dst_port; - /* adjust ip total_length */ - len += sizeof(struct tcp_hdr); - params->tcp = true; - break; - case RTE_ETH_FLOW_NONFRAG_IPV6_UDP: - udp = (struct udp_hdr *)(raw_pkt + len); - udp->src_port = input->flow.udp6_flow.dst_port; - udp->dst_port = input->flow.udp6_flow.src_port; - /* adjust ip total_length */ - len += sizeof(struct udp_hdr); - params->udp = true; - break; - default: - DP_ERR(edev, "Unsupported flow_type %d\n", input->flow_type); - return 0; - } return len; } -- 1.7.10.3