From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <users-bounces@dpdk.org> Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3F54F43193 for <public@inbox.dpdk.org>; Wed, 18 Oct 2023 04:19:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AFA8F40261; Wed, 18 Oct 2023 04:19:23 +0200 (CEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 6B0494003C for <users@dpdk.org>; Wed, 18 Oct 2023 04:19:22 +0200 (CEST) Received: from kwepemm000002.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4S9Dtz0Q3wzvQ81; Wed, 18 Oct 2023 10:14:35 +0800 (CST) Received: from dggpeml500020.china.huawei.com (7.185.36.88) by kwepemm000002.china.huawei.com (7.193.23.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Wed, 18 Oct 2023 10:19:19 +0800 Received: from dggpeml500020.china.huawei.com ([7.185.36.88]) by dggpeml500020.china.huawei.com ([7.185.36.88]) with mapi id 15.01.2507.031; Wed, 18 Oct 2023 10:19:18 +0800 From: "jiangheng (G)" <jiangheng14@huawei.com> To: "Xing, Beilei" <beilei.xing@intel.com>, "users@dpdk.org" <users@dpdk.org>, Stephen Hemminger <stephen@networkplumber.org> CC: "Fanbin(Kira,2012 Blue Lab.)" <fanbin12@huawei.com> Subject: =?gb2312?B?tPC4tDogV2hldGhlciB0aGUgY3JlYXRhdGlvbiBvZiBmbG93IHJ1bGVzIG9m?= =?gb2312?Q?_i40e_NIC_support_tcp_port_mask?= Thread-Topic: Whether the creatation of flow rules of i40e NIC support tcp port mask Thread-Index: AdoA1zKopRhb/mz0T4qZQSq4v/eEUgAjryTQAABKRJA= Date: Wed, 18 Oct 2023 02:19:18 +0000 Message-ID: <baf345cb9cd3493eafbb686d93ce1d55@huawei.com> References: <ca071f7ccde7402ea223f7295e1cca4f@huawei.com> <LV2PR11MB59978448F7C340F2F508A6B6F7D5A@LV2PR11MB5997.namprd11.prod.outlook.com> In-Reply-To: <LV2PR11MB59978448F7C340F2F508A6B6F7D5A@LV2PR11MB5997.namprd11.prod.outlook.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.136.117.195] Content-Type: multipart/alternative; boundary="_000_baf345cb9cd3493eafbb686d93ce1d55huaweicom_" MIME-Version: 1.0 X-CFilter-Loop: Reflected X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions <users.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/users>, <mailto:users-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/users/> List-Post: <mailto:users@dpdk.org> List-Help: <mailto:users-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/users>, <mailto:users-request@dpdk.org?subject=subscribe> Errors-To: users-bounces@dpdk.org --_000_baf345cb9cd3493eafbb686d93ce1d55huaweicom_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgQmVpbGVpOg0KV2hhdCBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZmxvdyBydWxlcyBzdXBw b3J0ZWQgYnkgdGhlIGk0MGU/DQpXaGF0IGFib3V0IHRoYXQgc2l0dWF0aW9uOiAgbnVtYmVycyBv ZiB0Y3AgY29ubmVjdGlvbiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGZs b3cgcnVsZXMuDQoNCg0Kt6K8/sjLOiBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNv bT4NCreiy83KsbzkOiAyMDIzxOoxMNTCMTjI1SA5OjU1DQrK1bz+yMs6IGppYW5naGVuZyAoRykg PGppYW5naGVuZzE0QGh1YXdlaS5jb20+OyB1c2Vyc0BkcGRrLm9yZw0Ks63LzTogRmFuYmluKEtp cmEsMjAxMiBCbHVlIExhYi4pIDxmYW5iaW4xMkBodWF3ZWkuY29tPg0K1vfM4jogUkU6IFdoZXRo ZXIgdGhlIGNyZWF0YXRpb24gb2YgZmxvdyBydWxlcyBvZiBpNDBlIE5JQyBzdXBwb3J0IHRjcCBw b3J0IG1hc2sNCg0KSGkgSmlhbmdoZW5nLA0KDQpUaGF0oa9zIGJlY2F1c2UgaTQwZSBvbmx5IHN1 cHBvcnRzIHBlcmZlY3QgbWF0Y2guDQoNCkJSLA0KQmVpbGVpDQoNCkZyb206IGppYW5naGVuZyAo RykgPGppYW5naGVuZzE0QGh1YXdlaS5jb208bWFpbHRvOmppYW5naGVuZzE0QGh1YXdlaS5jb20+ Pg0KU2VudDogVHVlc2RheSwgT2N0b2JlciAxNywgMjAyMyA0OjUyIFBNDQpUbzogWGluZywgQmVp bGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb208bWFpbHRvOmJlaWxlaS54aW5nQGludGVsLmNvbT4+ OyB1c2Vyc0BkcGRrLm9yZzxtYWlsdG86dXNlcnNAZHBkay5vcmc+DQpDYzogRmFuYmluKEtpcmEs MjAxMiBCbHVlIExhYi4pIDxmYW5iaW4xMkBodWF3ZWkuY29tPG1haWx0bzpmYW5iaW4xMkBodWF3 ZWkuY29tPj4NClN1YmplY3Q6IFdoZXRoZXIgdGhlIGNyZWF0YXRpb24gb2YgZmxvdyBydWxlcyBv ZiBpNDBlIE5JQyBzdXBwb3J0IHRjcCBwb3J0IG1hc2sNCg0KDQpIaSBiZWlsZWmjrA0KDQpJIHdv dWxkIGxpa2UgdG8gY3JlYXRlIGZsb3dzIHVzaW5nIHRjcCBwb3J0IG1hc2ssIGJ1dCBpdCBzZWVt cyBvbmx5IG1hc2sgMHhmZmZmIG9yIDB4MCB3b3JrLCBEb2VzIGZsb3cgcmx1ZSBjYW4gYmUgY3Jl YXRlZCB1c2luZyBvdGhlciBtYXNrPw0KDQpJNDBlIGRpcnZlciB3YXMgdXNpbmcgbm93Lg0KDQoN Cg0KSGVyZSBpcyBteSBjb2RlOg0KDQogICAgc3RydWN0IHJ0ZV9mbG93X2F0dHIgYXR0cjsNCg0K ICAgIHN0cnVjdCBydGVfZmxvd19pdGVtIHBhdHRlcm5bTUFYX1BBVFRFUk5fTlVNXTsNCg0KICAg IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gYWN0aW9uW01BWF9BQ1RJT05fTlVNXTsNCg0KICAgIHN0 cnVjdCBydGVfZmxvdyAqZmxvdyA9IE5VTEw7DQoNCiAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X3F1ZXVlIHF1ZXVlID0geyAuaW5kZXggPSBxdWV1ZV9pZCB9Ow0KDQogICAgc3RydWN0IHJ0ZV9m bG93X2l0ZW1faXB2NCBpcF9zcGVjOw0KDQogICAgc3RydWN0IHJ0ZV9mbG93X2l0ZW1faXB2NCBp cF9tYXNrOw0KDQoNCg0KICAgIHN0cnVjdCBydGVfZmxvd19pdGVtX3RjcCB0Y3Bfc3BlYzsNCg0K ICAgIHN0cnVjdCBydGVfZmxvd19pdGVtX3RjcCB0Y3BfbWFzazsNCg0KICAgIGludCByZXM7DQoN Cg0KDQogICAgbWVtc2V0X3MocGF0dGVybiwgc2l6ZW9mKHBhdHRlcm4pLCAwLCBzaXplb2YocGF0 dGVybikpOw0KDQogICAgbWVtc2V0X3MoYWN0aW9uLCBzaXplb2YoYWN0aW9uKSwgMCwgc2l6ZW9m KGFjdGlvbikpOw0KDQoNCg0KICAgIC8qDQoNCiAgICAgKiBzZXQgdGhlIHJ1bGUgYXR0cmlidXRl Lg0KDQogICAgICogaW4gdGhpcyBjYXNlIG9ubHkgaW5ncmVzcyBwYWNrZXRzIHdpbGwgYmUgY2hl Y2tlZC4NCg0KICAgICAqLw0KDQogICAgbWVtc2V0X3MoJmF0dHIsIHNpemVvZihzdHJ1Y3QgcnRl X2Zsb3dfYXR0ciksIDAsIHNpemVvZihzdHJ1Y3QgcnRlX2Zsb3dfYXR0cikpOw0KDQogICAgYXR0 ci5pbmdyZXNzID0gMTsNCg0KDQoNCiAgICAvKg0KDQogICAgICogY3JlYXRlIHRoZSBhY3Rpb24g c2VxdWVuY2UuDQoNCiAgICAgKiBvbmUgYWN0aW9uIG9ubHksICBtb3ZlIHBhY2tldCB0byBxdWV1 ZQ0KDQogICAgICovDQoNCiAgICBhY3Rpb25bMF0udHlwZSA9IFJURV9GTE9XX0FDVElPTl9UWVBF X1FVRVVFOw0KDQogICAgYWN0aW9uWzBdLmNvbmYgPSAmcXVldWU7DQoNCiAgICBhY3Rpb25bMV0u dHlwZSA9IFJURV9GTE9XX0FDVElPTl9UWVBFX0VORDsNCg0KDQoNCiAgICAvLyBub3QgbGltaXQg ZXRoIGhlYWRlcg0KDQogICAgcGF0dGVyblswXS50eXBlID0gUlRFX0ZMT1dfSVRFTV9UWVBFX0VU SDsNCg0KDQoNCiAgICAvLyBpcCBoZWFkZXINCg0KICAgIG1lbXNldF9zKCZpcF9zcGVjLCBzaXpl b2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1faXB2NCksIDAsIHNpemVvZihzdHJ1Y3QgcnRlX2Zsb3df aXRlbV9pcHY0KSk7DQoNCiAgICBtZW1zZXRfcygmaXBfbWFzaywgc2l6ZW9mKHN0cnVjdCBydGVf Zmxvd19pdGVtX2lwdjQpLCAwLCBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1faXB2NCkpOw0K DQogICAgaXBfc3BlYy5oZHIuZHN0X2FkZHIgPSBkc3RfaXA7DQoNCiAgICBpcF9tYXNrLmhkci5k c3RfYWRkciA9IEVNUFRZX01BU0s7DQoNCiAgICBpcF9zcGVjLmhkci5zcmNfYWRkciA9IHNyY19p cDsNCg0KICAgIGlwX21hc2suaGRyLnNyY19hZGRyID0gRU1QVFlfTUFTSzsNCg0KICAgIHBhdHRl cm5bMV0udHlwZSA9IFJURV9GTE9XX0lURU1fVFlQRV9JUFY0Ow0KDQogICAgcGF0dGVyblsxXS5z cGVjID0gJmlwX3NwZWM7DQoNCiAgICBwYXR0ZXJuWzFdLm1hc2sgPSAmaXBfbWFzazsNCg0KDQoN CiAgICAvLyB0Y3AgaGVhZGVyLCBmdWxsIG1hc2sgMHhmZmZmDQoNCiAgICBtZW1zZXRfcygmdGNw X3NwZWMsIHNpemVvZihzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV90Y3ApLCAwLCBzaXplb2Yoc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fdGNwKSk7DQoNCiAgICBtZW1zZXRfcygmdGNwX21hc2ssIHNpemVvZihz dHJ1Y3QgcnRlX2Zsb3dfaXRlbV90Y3ApLCAwLCBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1f dGNwKSk7DQoNCiAgICBwYXR0ZXJuWzJdLnR5cGUgPSBSVEVfRkxPV19JVEVNX1RZUEVfVENQOyAv LyAyOiBwYXR0ZXJuIDIgaXMgdGNwIGhlYWRlcg0KDQogICAgdGNwX3NwZWMuaGRyLnNyY19wb3J0 ID0gc3JjX3BvcnQ7DQoNCiAgICB0Y3Bfc3BlYy5oZHIuZHN0X3BvcnQgPSBkc3RfcG9ydDsNCg0K ICAgIHRjcF9tYXNrLmhkci5zcmNfcG9ydCA9IDB4ZmZmZjsgIC8vIG9ubHkgMHhmZmZmIGFuZCAw eDAgd29yaw0KDQogICAgdGNwX21hc2suaGRyLmRzdF9wb3J0ID0gMHhmZmZmOyAvLyBvbmx5IDB4 ZmZmZiBhbmQgMHgwIHdvcmsNCg0KICAgIHBhdHRlcm5bMl0uc3BlYyA9ICZ0Y3Bfc3BlYzsNCg0K ICAgIHBhdHRlcm5bMl0ubWFzayA9ICZ0Y3BfbWFzazsNCg0KDQoNCiAgICAvKiB0aGUgZmluYWwg bGV2ZWwgbXVzdCBiZSBhbHdheXMgdHlwZSBlbmQgKi8NCg0KICAgIHBhdHRlcm5bM10udHlwZSA9 IFJURV9GTE9XX0lURU1fVFlQRV9FTkQ7DQoNCiAgICByZXMgPSBydGVfZmxvd192YWxpZGF0ZShw b3J0X2lkLCAmYXR0ciwgcGF0dGVybiwgYWN0aW9uLCBlcnJvcik7DQoNCiAgICBpZiAoIXJlcykg ew0KDQogICAgICAgIGZsb3cgPSBydGVfZmxvd19jcmVhdGUocG9ydF9pZCwgJmF0dHIsIHBhdHRl cm4sIGFjdGlvbiwgZXJyb3IpOw0KDQogICAgfSBlbHNlIHsNCg0KICAgICAgICBMU1RBQ0tfTE9H KEVSUiwgUE9SVCwgInJ0ZV9mbG93X2NyZWF0ZS5ydGVfZmxvd192YWxpZGF0ZSBlcnJvciwgcmVz ICVkIFxuIiwgcmVzKTsNCg0KICAgIH0NCg0KDQoNCkxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIGZh dm91cmFibGUgcmVwbHkuDQoNCg== --_000_baf345cb9cd3493eafbb686d93ce1d55huaweicom_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:=CB=CE=CC=E5; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:=B5=C8=CF=DF; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4;} @font-face {font-family:"MS PGothic"; panose-1:2 11 6 0 7 2 5 8 2 4;} @font-face {font-family:"\@MS PGothic"; panose-1:2 11 6 0 7 2 5 8 2 4;} @font-face {font-family:"\@=CB=CE=CC=E5"; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:"\@=B5=C8=CF=DF"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Calibri",sans-serif; mso-fareast-language:JA;} a:link, span.MsoHyperlink {mso-style-priority:99; color:#0563C1; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:#954F72; text-decoration:underline;} p.MsoPlainText, li.MsoPlainText, div.MsoPlainText {mso-style-priority:99; mso-style-link:"=B4=BF=CE=C4=B1=BE =D7=D6=B7=FB"; margin:0cm; margin-bottom:.0001pt; font-size:10.5pt; font-family:"Calibri",sans-serif; mso-fareast-language:JA;} p.msonormal0, li.msonormal0, div.msonormal0 {mso-style-name:msonormal; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; font-size:12.0pt; font-family:"MS PGothic",sans-serif; mso-fareast-language:JA;} span.a {mso-style-name:"=B4=BF=CE=C4=B1=BE =D7=D6=B7=FB"; mso-style-priority:99; mso-style-link:=B4=BF=CE=C4=B1=BE; font-family:=CB=CE=CC=E5; mso-fareast-language:JA;} p.PlainText, li.PlainText, div.PlainText {mso-style-name:"Plain Text"; mso-style-link:"Plain Text Char"; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Calibri",sans-serif; mso-fareast-language:JA;} span.PlainTextChar {mso-style-name:"Plain Text Char"; mso-style-priority:99; mso-style-link:"Plain Text"; font-family:Consolas;} span.EmailStyle22 {mso-style-type:personal; font-family:"Calibri",sans-serif; color:windowtext;} span.EmailStyle24 {mso-style-type:personal-reply; font-family:"Calibri",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"ZH-CN" link=3D"#0563C1" vlink=3D"#954F72" style=3D"text-justi= fy-trim:punctuation"> <div class=3D"WordSection1"> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:Z= H-CN">Hi Beilei:<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:Z= H-CN">What is the maximum number of flow rules supported by the i40e?<o:p><= /o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:Z= H-CN">What about that situation: numbers of tcp connection is greater= than the maximum number of flow rules.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:Z= H-CN"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:Z= H-CN"><o:p> </o:p></span></p> <div> <div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm = 0cm 0cm"> <p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><b><span st= yle=3D"font-size:11.0pt;font-family:=B5=C8=CF=DF;mso-fareast-language:ZH-CN= ">=B7=A2=BC=FE=C8=CB<span lang=3D"EN-US">:</span></span></b><span lang=3D"E= N-US" style=3D"font-size:11.0pt;font-family:=B5=C8=CF=DF;mso-fareast-langua= ge:ZH-CN"> Xing, Beilei <beilei.xing@intel.com> <br> </span><b><span style=3D"font-size:11.0pt;font-family:=B5=C8=CF=DF;mso-fare= ast-language:ZH-CN">=B7=A2=CB=CD=CA=B1=BC=E4<span lang=3D"EN-US">:</span></= span></b><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:=B5=C8= =CF=DF;mso-fareast-language:ZH-CN"> 2023</span><span style=3D"font-size:11.= 0pt;font-family:=B5=C8=CF=DF;mso-fareast-language:ZH-CN">=C4=EA<span lang= =3D"EN-US">10</span>=D4=C2<span lang=3D"EN-US">18</span>=C8=D5<span lang=3D= "EN-US"> 9:55<br> </span><b>=CA=D5=BC=FE=C8=CB<span lang=3D"EN-US">:</span></b><span lang=3D"= EN-US"> jiangheng (G) <jiangheng14@huawei.com>; users@dpdk.org<br> </span><b>=B3=AD=CB=CD<span lang=3D"EN-US">:</span></b><span lang=3D"EN-US"= > Fanbin(Kira,2012 Blue Lab.) <fanbin12@huawei.com><br> </span><b>=D6=F7=CC=E2<span lang=3D"EN-US">:</span></b><span lang=3D"EN-US"= > RE: Whether the creatation of flow rules of i40e NIC support tcp port mas= k<o:p></o:p></span></span></p> </div> </div> <p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><span lang= =3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt">Hi J= iangheng, <o:p> </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt"><o:p= > </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt">That= =A1=AFs because i40e only supports perfect match.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt"><o:p= > </o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt">BR,<= o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt">Beil= ei<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt"><o:p= > </o:p></span></p> <div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm = 4.0pt"> <div> <div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm = 0cm 0cm"> <p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><b><span la= ng=3D"EN-US" style=3D"font-size:11.0pt">From:</span></b><span lang=3D"EN-US= " style=3D"font-size:11.0pt"> jiangheng (G) <<a href=3D"mailto:jiangheng= 14@huawei.com">jiangheng14@huawei.com</a>> <br> <b>Sent:</b> Tuesday, October 17, 2023 4:52 PM<br> <b>To:</b> Xing, Beilei <<a href=3D"mailto:beilei.xing@intel.com">beilei= .xing@intel.com</a>>; <a href=3D"mailto:users@dpdk.org">users@dpdk.org</a><br> <b>Cc:</b> Fanbin(Kira,2012 Blue Lab.) <<a href=3D"mailto:fanbin12@huawe= i.com">fanbin12@huawei.com</a>><br> <b>Subject:</b> Whether the creatation of flow rules of i40e NIC support tc= p port mask<o:p></o:p></span></p> </div> </div> <p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><span lang= =3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US">Hi beilei</span><span style= =3D"font-family:=B5=C8=CF=DF;mso-fareast-language:ZH-CN">=A3=AC</span><span= lang=3D"EN-US"><o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US">I would like to create flows= using tcp port mask, but it seems <b>only mask 0xffff or 0x0 work</b>, Does flow rlue can be created using ot= her mask? <o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US">I40e dirver was using now. <= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> <o:p></o:p= ></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US">Here is my code:<o:p></o:p><= /span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_attr attr;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_item pattern[MAX_PATTERN_NUM];<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_action action[MAX_ACTION_NUM];<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow *flow =3D NULL;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_action_queue queue =3D { .index =3D queue_id };<o:p></o:p></span></p= > <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_item_ipv4 ip_spec;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_item_ipv4 ip_mask;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> stru= ct rte_flow_item_tcp tcp_spec;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> struct rt= e_flow_item_tcp tcp_mask;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> int res;<= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> mems= et_s(pattern, sizeof(pattern), 0, sizeof(pattern));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= action, sizeof(action), 0, sizeof(action));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> /*<o= :p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> * s= et the rule attribute.<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> * i= n this case only ingress packets will be checked.<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> */<= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= &attr, sizeof(struct rte_flow_attr), 0, sizeof(struct rte_flow_attr));<= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> attr.ingr= ess =3D 1;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> /*<o= :p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> * c= reate the action sequence.<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> * o= ne action only, move packet to queue<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> */<= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> action[0]= .type =3D RTE_FLOW_ACTION_TYPE_QUEUE;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> action[0]= .conf =3D &queue;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> action[1]= .type =3D RTE_FLOW_ACTION_TYPE_END;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> // n= ot limit eth header<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[0= ].type =3D RTE_FLOW_ITEM_TYPE_ETH;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> // i= p header<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= &ip_spec, sizeof(struct rte_flow_item_ipv4), 0, sizeof(struct rte_flow_= item_ipv4));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= &ip_mask, sizeof(struct rte_flow_item_ipv4), 0, sizeof(struct rte_flow_= item_ipv4));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> ip_spec.h= dr.dst_addr =3D dst_ip;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> ip_mask.h= dr.dst_addr =3D EMPTY_MASK;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> ip_spec.h= dr.src_addr =3D src_ip;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> ip_mask.h= dr.src_addr =3D EMPTY_MASK;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[1= ].type =3D RTE_FLOW_ITEM_TYPE_IPV4;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[1= ].spec =3D &ip_spec;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[1= ].mask =3D &ip_mask;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> // t= cp header, full mask 0xffff<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= &tcp_spec, sizeof(struct rte_flow_item_tcp), 0, sizeof(struct rte_flow_= item_tcp));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> memset_s(= &tcp_mask, sizeof(struct rte_flow_item_tcp), 0, sizeof(struct rte_flow_= item_tcp));<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[2= ].type =3D RTE_FLOW_ITEM_TYPE_TCP; // 2: pattern 2 is tcp header<o:p></o:p>= </span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> tcp_spec.= hdr.src_port =3D src_port;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> tcp_spec.= hdr.dst_port =3D dst_port;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><b><span lang=3D"EN-US" style=3D"color:red"> = ; tcp_mask.hdr.src_port =3D 0xffff; // only 0xffff and 0x= 0 work<o:p></o:p></span></b></p> <p class=3D"MsoPlainText"><b><span lang=3D"EN-US" style=3D"color:red"> = ; tcp_mask.hdr.dst_port =3D 0xffff; // only 0xffff and 0x0 work= <o:p></o:p></span></b></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[2= ].spec =3D &tcp_spec;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[2= ].mask =3D &tcp_mask;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> /* t= he final level must be always type end */<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> pattern[3= ].type =3D RTE_FLOW_ITEM_TYPE_END;<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> res =3D r= te_flow_validate(port_id, &attr, pattern, action, error);<o:p></o:p></s= pan></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> if (!res)= {<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> &nbs= p; flow =3D rte_flow_create(port_id, &attr, pattern, action= , error);<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> } else {<= o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> &nbs= p; LSTACK_LOG(ERR, PORT, "rte_flow_create.rte_flow_validat= e error, res %d \n", res);<o:p></o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"> }<o:p></o= :p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p> </o:p></span></p> <p class=3D"MsoPlainText"><span lang=3D"EN-US">Looking forward to your favo= urable reply.<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p> </o:p></span></p> </div> </div> </body> </html> --_000_baf345cb9cd3493eafbb686d93ce1d55huaweicom_--