From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 01B26A04FD; Mon, 23 May 2022 04:45:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E7E6241611; Mon, 23 May 2022 04:45:13 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 2362041143 for ; Mon, 23 May 2022 04:45:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653273912; x=1684809912; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=l8aqCDEBmDVMd1TFtDPW+z1O4r9eQGqXeCsdE4gqQNs=; b=FvjZAhkI+i341Y5lobvHlt8kGAfg8eS3p/c4LE4YP2tuWH2VEiAfRROH itUVI+43H2Pusxp91TKjn4ykdPxIy1eHfTGfWBtem7i9bWF+m9bpLbUoC 4Xqdriz2vfyubwBuiPqnQG12gnlIZUzhdgtUk7I7yZXSEF9r4cwGZs3Rz NlIKaQUVabeXwckcnO9QGAVkVYEYX6EgDi3fCPwOk0qAhWnVURZWR9ATs IhpyQm5ZnjTE42SdFSWbZrpvwJMY9atzE3Etu/oq/Hgt4AylZYRbVMcVF A+a8g5ZIpo5/ksYdMpJANj0OM3mYJErnYaZqyEq1YQ43O+GSp2Pnwj2HG A==; X-IronPort-AV: E=McAfee;i="6400,9594,10355"; a="359477057" X-IronPort-AV: E=Sophos;i="5.91,245,1647327600"; d="scan'208";a="359477057" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 May 2022 19:45:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,245,1647327600"; d="scan'208";a="525698713" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga003.jf.intel.com with ESMTP; 22 May 2022 19:45:10 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 22 May 2022 19:45:10 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 22 May 2022 19:45:10 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sun, 22 May 2022 19:45:10 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.48) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Sun, 22 May 2022 19:45:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lHjliERq0JoREYw5qnwNJWPosu2Zp0sVoOBTwRLPpcE5oPyG0nuxCcvZZMz2Z4rcli69hCWrn8L1AOA7Pqjfao3tkG3JFZqzqI3PXRuwcyB9o86bGvtZ3YRA54LZMegpjkQwXoY9nLZ9HyQ7FCGvf//iAVe0u4WozGGWWwzDWBvEeoosiZ0pTGcat5HU6MqFhUm0lPSiMSKgI48tx64VEcZitKJu39WfBMFlb/U0NNpLZvpUsGyP2sB+3fT3R8sXUKBvW6Xs+hEpOhNO9+CSg0ddkexgN0BErH1MlZxRsJ69YtGpGvZBnfoDGMmzMNVboNFavNWX6hCWC+TORjX6Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jDIGuMHqBNsxy4vrklDxo1GIPh/tFX8R0QOy9Gjdwg0=; b=TlcB3H91C15U48gjX6GqCPGCv/mj5ITWdXhSk3/Jg66QOy9vWnsQBHLU3G6XEw9iDDlIGmawfUp/F9+Zm4V9c09wb3iU/zHjjrdKpRCHU/t28LOSJuLFWUcxqoXygb9M99rqfsVxusR8Bw+Zk7kAfMs6SJK1ZMy1Vsjzgf+L2jVxYxbnkM626JVSvNTYazigIodyD/oPj8sc72fQdjykAKiqP5mhVKTT4EDKa3ClH28kZJk97+LPRKWHOB/zLxz9p+vGEqiZuaNNb0+IHBy8ltrncZmiO8fHnKnAtKYK9SZU0e0bvoeWrmzfWgFZo2r16uyF10dAenqQ9ydsEPTkEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB3723.namprd11.prod.outlook.com (2603:10b6:5:13f::25) by SN6PR11MB3118.namprd11.prod.outlook.com (2603:10b6:805:dc::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Mon, 23 May 2022 02:45:08 +0000 Received: from DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::3589:6c9d:b262:5187]) by DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::3589:6c9d:b262:5187%4]) with mapi id 15.20.5273.022; Mon, 23 May 2022 02:45:08 +0000 From: "Guo, Junfeng" To: "Zhang, Qi Z" , "Wu, Jingjing" , "Xing, Beilei" CC: "dev@dpdk.org" , "Xu, Ting" Subject: RE: [PATCH 2/2] net/iavf: support Protocol Agnostic Flow Offloading VF RSS Thread-Topic: [PATCH 2/2] net/iavf: support Protocol Agnostic Flow Offloading VF RSS Thread-Index: AQHYbk03pwsZ06xeu0ma5G8JflKpSq0rwZIg Date: Mon, 23 May 2022 02:45:08 +0000 Message-ID: References: <20220520091648.3524540-2-junfeng.guo@intel.com> <20220523023138.3777313-1-junfeng.guo@intel.com> <20220523023138.3777313-5-junfeng.guo@intel.com> In-Reply-To: <20220523023138.3777313-5-junfeng.guo@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ca8fd534-a4cb-4abd-a519-08da3c663fef x-ms-traffictypediagnostic: SN6PR11MB3118:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /Kzo+73KfPUfV82rplMx8qqw/N6kSsg5/X7gq6kXZb70SU5BX4bJPma6x4Ax2kGRXDQv5epdKGyYu7pgEvTLj0LXWjOhV/P8c62/E7ab9ZpR5Lw/jYi1IivtfMIwIr9vBiCBRZXWsvqpzcmv/XRraGN9bxVQhlcMX+QouXihHcNz9I96DctfeRWX4vrAWYuxSQIkmtywuYCKrt7HAtc5r11p8G6nS1HZRsHRhPm9gfab64lsFUpRk6tA/xycMKmsdXx8CSMV5k8aIoFmM720WSK56bPO5JagBBHPMLHmmAXjKuMNx/AO3FAajVI/1KbL0XvgShawh20Bzna2cJHFy236+tyN9bOO84JKykOC1xGxOZD+otVNGI9jBXWJazM4idJVqF0ZMWINinveR0Lh032abmo50O8Vkau8OJOM8DCtazVpiwrSVNJakZ8mIEkrK3wEpv4OH1Kf3ZS9wPvzhYbKh1JWan9zxf5KkUKECloSh+KbHzMgDfmvqcZHGU0haGKVr0Ol1mu/tjlOjwdOt9SblfWd1qdzDnXMF7vftu191zH6f6x3cZDMP48SxswAD/2jrDSEq064hzTp+YSUL8MBN/rh/OvBtUSckK/VmHGq38k+7M0zF8qOqChN6Gv+qGWjUA1ppthGd1nQnZYS+En6A93eVVr5nCmHTUqpH2ZogRPJKnylc1ykP1Q0PjbYKKq8wNmoV1AHyCVPxat+Uw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3723.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(122000001)(186003)(2906002)(5660300002)(38100700002)(6636002)(82960400001)(55016003)(8936002)(33656002)(71200400001)(107886003)(9686003)(26005)(76116006)(52536014)(316002)(6506007)(4326008)(8676002)(66946007)(64756008)(66476007)(7696005)(66446008)(66556008)(86362001)(110136005)(54906003)(53546011)(83380400001)(38070700005)(508600001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ldNnIBTn0iBVqCzaaiPOalvOqDPRGwxBsarlObFfxsEjbqW89ZMHggWcpE1Q?= =?us-ascii?Q?JMexScN0YwACAOWjSKVRgh/08Zh5a3MIcclgnalXB3KQD/kgxZelcNSPDqMf?= =?us-ascii?Q?lzGsBuaDzdSkQZ/4tCiinrJHt5RjgKr8mwuFqVoKMggtObUeEwVq7ff25SxZ?= =?us-ascii?Q?czMZXC7/9wIKk7KtzZl0Il6S0XDy+N8QPYWdnK5D2UK2hPPhepiU7QJO/djs?= =?us-ascii?Q?WkScNiYIrLbo/nsyjiBuZjfjkLrJFhmsf+bKN5xFb0hE2mhE8mDLpqAfhPer?= =?us-ascii?Q?jBMszwVhavnnI4AZ7jNVrMw46lXKixoIt/rhF+2kYelWZTCYboovJv26YaK8?= =?us-ascii?Q?agh/EueZugcW9YWrdsw80IdS3reySLzcX+pys46Zraz/0zAOyAp6tSjQufui?= =?us-ascii?Q?SPewNTn3zbd5YgdxlNQPaXC3GgTQkKdjm6AblbEmbX3EvwjyQstMoNfwsGjK?= =?us-ascii?Q?4mDqPstXrtwO9deo5M+L1ZVInyCj6DFYtk9wpWwjALd7c4rt157TnVt89A6C?= =?us-ascii?Q?4sEZsemDue1wdC9QMF31LdiweMCxGcB0NJlWQcPDtvqe7eY557c2Uy7gITEJ?= =?us-ascii?Q?dlgog29XZIu+mA7Yw5Y5sQEzwwNrC5wn+ZK822RYYsWr8eahTxxBfAoHoPYg?= =?us-ascii?Q?5Qmnh8Ki6v8reLy4RmHiA6JkZeszv1bZBPMysWWttkWBXSJRoQIIYhHNiKZp?= =?us-ascii?Q?aVrL+p+29x3TvwnWFBUY0g7AkF9saOICI6NUrm04nbShyd59a5zeVUw8tTqR?= =?us-ascii?Q?D+p51Odzwweq/K7mOGj5Ws98ODolCMOYVllVZNHmLWrA8EwS7kVEtwFv/Ay1?= =?us-ascii?Q?TVdt9lpoGtpvbEgivlSlqXovnZDpod47cOwISQ3ItWUz4bG5/YdMnTgFuij3?= =?us-ascii?Q?ySGuN7Mz5nGFeYr4Ehcpv/zRBHAgXGbRAr/2hrm0dsSbGClcgI+9FmBwTUxa?= =?us-ascii?Q?nW4+OiUHgBzcNipOHt2iFVWGNajuTeYv/akgcZXbr+r1PAHEWpTrfjw0flCO?= =?us-ascii?Q?ucxrkUdUlU4g+yh17cwONwStaWuGZ8B+0hwk6/TyRnMFuXS65B5Pcq2g3jxI?= =?us-ascii?Q?cCNuhDkSBxMp7bL0vdUtmDsBZOjMtBOGo1TtkiimR5lv1dy4jhLFBZtmH+5N?= =?us-ascii?Q?q8qFsE3fsOrderBrwaRIL1XwPXsp8t41aLpwZ7B8uyoHYAJ+E9v0xKl+MA4f?= =?us-ascii?Q?QG0KGczQ1ZQ3Cc8/XgngB38oG6NqauZ8AE2K1+dsuoveMDXludruhttg3BGS?= =?us-ascii?Q?dt1G02SQAi2t+m2Dda0VKO81xGDGYo5BziYSfI2vBHm6lRuD2JffBVgpn4AO?= =?us-ascii?Q?dNtoRKBW2kn/oGlVXcpFsWAZAqQDT0WBYuufGl8WFuJJMNtI1MPaHikR5AfC?= =?us-ascii?Q?9MzrknU5FwMqO4su0tu1/9K9B7C/Y2NvMoxSCYd8r9uMB/y0nxnKq/CcJzNe?= =?us-ascii?Q?CgMX+0O9SEOrRu0XuKrVxyFMlPUsIHiS89nTxmMFob1vCUZolTo4qwK06o+q?= =?us-ascii?Q?wA/Rz6a//bLgyQOSRuyFDjyx8t46aG4q6aLSEU2R99usBoUzMduRIeGiAbmD?= =?us-ascii?Q?7wacNz/kJwKZSHKCIAxKoviohD0TOkgDwpOlLkcysokugKrY1+X3VbhpdRIH?= =?us-ascii?Q?MFxgpe0XNAgQHipAbVnDwmfy6TcLcQxK9ndyVLFYlRzqApFjyUMbPtEfruWn?= =?us-ascii?Q?IeSwrGfaFrr4dkKbFSj5CoFJYGWZDI8CLevSr3VIKp6DJzpNmQFznkmCNCfg?= =?us-ascii?Q?VJ6Yh19uhA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3723.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca8fd534-a4cb-4abd-a519-08da3c663fef X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2022 02:45:08.3034 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7Viw4XEi+WkdmSvorpLrHwb5RivsOkQ59v7gRnV2gxTV9CY8Ro9JVKDYBxOgXNRR5fPIBZFPS/DITr2fhCHIGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3118 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sorry to send this commit by mistake. Please drop this one. Thanks! > -----Original Message----- > From: Guo, Junfeng > Sent: Monday, May 23, 2022 10:32 > To: Zhang, Qi Z ; Wu, Jingjing > ; Xing, Beilei > Cc: dev@dpdk.org; Xu, Ting ; Guo, Junfeng > > Subject: [PATCH 2/2] net/iavf: support Protocol Agnostic Flow Offloading > VF RSS >=20 > From: Ting Xu >=20 > Enable Protocol Agnostic Flow Offloading for RSS hash in VF. It supports > raw pattern flow rule creation in VF based on Parser Library feature. VF > parses the spec and mask input of raw pattern, and passes it to kernel > driver to create the flow rule. Current rte_flow raw API is utilized. >=20 > command example: > RSS hash for ipv4-src-dst: > flow create 0 ingress pattern raw pattern spec > 000000000000000000000000080045000014000040004010000000000000 > 00000000 > pattern mask > 0000000000000000000000000000000000000000000000000000ffffffffffff > ffff / > end actions rss queues end / end >=20 > Signed-off-by: Ting Xu > --- > drivers/net/iavf/iavf_hash.c | 96 > ++++++++++++++++++++++++++++++++++++ > 1 file changed, 96 insertions(+) >=20 > diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c > index 278e75117d..42df7c4e48 100644 > --- a/drivers/net/iavf/iavf_hash.c > +++ b/drivers/net/iavf/iavf_hash.c > @@ -37,6 +37,8 @@ > /* L2TPv2 */ > #define IAVF_PHINT_L2TPV2 BIT_ULL(9) > #define IAVF_PHINT_L2TPV2_LEN BIT_ULL(10) > +/* Raw */ > +#define IAVF_PHINT_RAW BIT_ULL(11) >=20 > #define IAVF_PHINT_GTPU_MSK (IAVF_PHINT_GTPU | \ > IAVF_PHINT_GTPU_EH | \ > @@ -58,6 +60,7 @@ struct iavf_hash_match_type { > struct iavf_rss_meta { > struct virtchnl_proto_hdrs proto_hdrs; > enum virtchnl_rss_algorithm rss_algorithm; > + bool raw_ena; > }; >=20 > struct iavf_hash_flow_cfg { > @@ -532,6 +535,7 @@ struct virtchnl_proto_hdrs ipv6_l2tpv2_ppp_tmplt > =3D { > */ > static struct iavf_pattern_match_item iavf_hash_pattern_list[] =3D { > /* IPv4 */ > + {iavf_pattern_raw, > IAVF_INSET_NONE, NULL}, > {iavf_pattern_eth_ipv4, > IAVF_RSS_TYPE_OUTER_IPV4, &outer_ipv4_tmplt}, > {iavf_pattern_eth_ipv4_udp, > IAVF_RSS_TYPE_OUTER_IPV4_UDP, > &outer_ipv4_udp_tmplt}, > {iavf_pattern_eth_ipv4_tcp, > IAVF_RSS_TYPE_OUTER_IPV4_TCP, &outer_ipv4_tcp_tmplt}, > @@ -804,6 +808,9 @@ iavf_hash_parse_pattern(const struct > rte_flow_item pattern[], uint64_t *phint, > } >=20 > switch (item->type) { > + case RTE_FLOW_ITEM_TYPE_RAW: > + *phint |=3D IAVF_PHINT_RAW; > + break; > case RTE_FLOW_ITEM_TYPE_IPV4: > if (!(*phint & IAVF_PHINT_GTPU_MSK) && > !(*phint & IAVF_PHINT_GRE) && > @@ -873,6 +880,80 @@ iavf_hash_parse_pattern(const struct > rte_flow_item pattern[], uint64_t *phint, > return 0; > } >=20 > +static int > +iavf_hash_parse_raw_pattern(const struct rte_flow_item *item, > + struct iavf_rss_meta *meta) > +{ > + const struct rte_flow_item_raw *raw_spec, *raw_mask; > + uint8_t *pkt_buf, *msk_buf; > + uint8_t spec_len, pkt_len; > + uint8_t tmp_val =3D 0; > + uint8_t tmp_c =3D 0; > + int i, j; > + > + raw_spec =3D item->spec; > + raw_mask =3D item->mask; > + > + spec_len =3D strlen((char *)(uintptr_t)raw_spec->pattern); > + if (strlen((char *)(uintptr_t)raw_mask->pattern) !=3D > + spec_len) > + return -rte_errno; > + > + pkt_len =3D spec_len / 2; > + > + pkt_buf =3D rte_zmalloc(NULL, pkt_len, 0); > + if (!pkt_buf) > + return -ENOMEM; > + > + msk_buf =3D rte_zmalloc(NULL, pkt_len, 0); > + if (!msk_buf) > + return -ENOMEM; > + > + /* convert string to int array */ > + for (i =3D 0, j =3D 0; i < spec_len; i +=3D 2, j++) { > + tmp_c =3D raw_spec->pattern[i]; > + if (tmp_c >=3D 'a' && tmp_c <=3D 'f') > + tmp_val =3D tmp_c - 'a' + 10; > + if (tmp_c >=3D 'A' && tmp_c <=3D 'F') > + tmp_val =3D tmp_c - 'A' + 10; > + if (tmp_c >=3D '0' && tmp_c <=3D '9') > + tmp_val =3D tmp_c - '0'; > + > + tmp_c =3D raw_spec->pattern[i + 1]; > + if (tmp_c >=3D 'a' && tmp_c <=3D 'f') > + pkt_buf[j] =3D tmp_val * 16 + tmp_c - 'a' + 10; > + if (tmp_c >=3D 'A' && tmp_c <=3D 'F') > + pkt_buf[j] =3D tmp_val * 16 + tmp_c - 'A' + 10; > + if (tmp_c >=3D '0' && tmp_c <=3D '9') > + pkt_buf[j] =3D tmp_val * 16 + tmp_c - '0'; > + > + tmp_c =3D raw_mask->pattern[i]; > + if (tmp_c >=3D 'a' && tmp_c <=3D 'f') > + tmp_val =3D tmp_c - 0x57; > + if (tmp_c >=3D 'A' && tmp_c <=3D 'F') > + tmp_val =3D tmp_c - 0x37; > + if (tmp_c >=3D '0' && tmp_c <=3D '9') > + tmp_val =3D tmp_c - '0'; > + > + tmp_c =3D raw_mask->pattern[i + 1]; > + if (tmp_c >=3D 'a' && tmp_c <=3D 'f') > + msk_buf[j] =3D tmp_val * 16 + tmp_c - 'a' + 10; > + if (tmp_c >=3D 'A' && tmp_c <=3D 'F') > + msk_buf[j] =3D tmp_val * 16 + tmp_c - 'A' + 10; > + if (tmp_c >=3D '0' && tmp_c <=3D '9') > + msk_buf[j] =3D tmp_val * 16 + tmp_c - '0'; > + } > + > + rte_memcpy(meta->proto_hdrs.raw.spec, pkt_buf, pkt_len); > + rte_memcpy(meta->proto_hdrs.raw.mask, msk_buf, pkt_len); > + meta->proto_hdrs.raw.pkt_len =3D pkt_len; > + > + rte_free(pkt_buf); > + rte_free(msk_buf); > + > + return 0; > +} > + > #define REFINE_PROTO_FLD(op, fld) \ > VIRTCHNL_##op##_PROTO_HDR_FIELD(hdr, > VIRTCHNL_PROTO_HDR_##fld) > #define REPALCE_PROTO_FLD(fld_1, fld_2) \ > @@ -1387,6 +1468,10 @@ iavf_hash_parse_action(struct > iavf_pattern_match_item *match_item, >=20 > RTE_FLOW_ERROR_TYPE_ACTION, action, > "a non-NULL RSS queue is not > supported"); >=20 > + /* If pattern type is raw, no need to refine rss > type */ > + if (pattern_hint =3D=3D IAVF_PHINT_RAW) > + break; > + > /** > * Check simultaneous use of SRC_ONLY and > DST_ONLY > * of the same level. > @@ -1453,6 +1538,17 @@ > iavf_hash_parse_pattern_action(__rte_unused struct iavf_adapter *ad, > if (ret) > goto error; >=20 > + if (phint =3D=3D IAVF_PHINT_RAW) { > + rss_meta_ptr->raw_ena =3D true; > + ret =3D iavf_hash_parse_raw_pattern(pattern, > rss_meta_ptr); > + if (ret) { > + rte_flow_error_set(error, EINVAL, > + > RTE_FLOW_ERROR_TYPE_ITEM, NULL, > + "Parse raw pattern failed"); > + goto error; > + } > + } > + > ret =3D iavf_hash_parse_action(pattern_match_item, actions, phint, > rss_meta_ptr, error); >=20 > -- > 2.25.1