From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D24CDA046B for ; Fri, 26 Jul 2019 11:03:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 527631C3DF; Fri, 26 Jul 2019 11:03:13 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 4A3D51C3D3 for ; Fri, 26 Jul 2019 11:03:12 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x6Q90Twv014279; Fri, 26 Jul 2019 02:03:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=pfpt0818; bh=ddlqYs+FKvL6c4g7c6Vwnb4tYSLBMR+RhnbNiRGSbvU=; b=xrAARwwCGgLAb14hKSwXaCaamAh0WPqKkqlO+okdFaPvlUtsCLloYMBlkC8MLVUio4h4 DWKNMpKIuuP7pOuX0baKNmmr9eporOennQgtIOwchnG65fFCn3n00qJIUMeSinPRZOaK g/Wznzb0jJYWgi5wjGz9N210RM4qs3XsNFrcbt/P2mHz/OaP5Fdd5E1ANolZADusZlBk 89zyjGaB6pkI5KJ48nscOj4ZKezcAoVFKtCT36wicy4sKMMLhKmZelBp/Z/ZOIDWS9u3 MdyyGqBjnryXoCrB7UwacZcZHpeUcd6ojopWXE6okK3cgmeCP/LOrkfak1bxsFVSR0hg HA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2tx6255fa3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 26 Jul 2019 02:03:11 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 26 Jul 2019 02:03:09 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Fri, 26 Jul 2019 02:03:09 -0700 Received: from localhost.localdomain (unknown [10.28.34.15]) by maili.marvell.com (Postfix) with ESMTP id B19233F7044; Fri, 26 Jul 2019 02:03:07 -0700 (PDT) From: To: Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , "John McNamara" , Marko Kovacevic CC: Date: Fri, 26 Jul 2019 14:33:03 +0530 Message-ID: <20190726090303.7809-1-kirankumark@marvell.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-26_05:2019-07-26,2019-07-26 signatures=0 Subject: [dpdk-dev] [PATCH] net/octeontx2: add gre key parsing support 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Kiran Kumar K Adding support to parse GRE KEY for octeontx2 Flow. Matching on GRE Key will only work, if checksum and routing bits in the GRE header are equal to 0. Signed-off-by: Kiran Kumar K --- doc/guides/nics/octeontx2.rst | 96 +++++++++++++------------ drivers/net/octeontx2/otx2_flow_parse.c | 7 ++ 2 files changed, 56 insertions(+), 47 deletions(-) diff --git a/doc/guides/nics/octeontx2.rst b/doc/guides/nics/octeontx2.rst index 5f511feb7..ce54de478 100644 --- a/doc/guides/nics/octeontx2.rst +++ b/doc/guides/nics/octeontx2.rst @@ -221,53 +221,55 @@ Patterns: .. table:: Item types - +----+--------------------------------+ - | # | Pattern Type | - +====+================================+ - | 1 | RTE_FLOW_ITEM_TYPE_ETH | - +----+--------------------------------+ - | 2 | RTE_FLOW_ITEM_TYPE_VLAN | - +----+--------------------------------+ - | 3 | RTE_FLOW_ITEM_TYPE_E_TAG | - +----+--------------------------------+ - | 4 | RTE_FLOW_ITEM_TYPE_IPV4 | - +----+--------------------------------+ - | 5 | RTE_FLOW_ITEM_TYPE_IPV6 | - +----+--------------------------------+ - | 6 | RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4| - +----+--------------------------------+ - | 7 | RTE_FLOW_ITEM_TYPE_MPLS | - +----+--------------------------------+ - | 8 | RTE_FLOW_ITEM_TYPE_ICMP | - +----+--------------------------------+ - | 9 | RTE_FLOW_ITEM_TYPE_UDP | - +----+--------------------------------+ - | 10 | RTE_FLOW_ITEM_TYPE_TCP | - +----+--------------------------------+ - | 11 | RTE_FLOW_ITEM_TYPE_SCTP | - +----+--------------------------------+ - | 12 | RTE_FLOW_ITEM_TYPE_ESP | - +----+--------------------------------+ - | 13 | RTE_FLOW_ITEM_TYPE_GRE | - +----+--------------------------------+ - | 14 | RTE_FLOW_ITEM_TYPE_NVGRE | - +----+--------------------------------+ - | 15 | RTE_FLOW_ITEM_TYPE_VXLAN | - +----+--------------------------------+ - | 16 | RTE_FLOW_ITEM_TYPE_GTPC | - +----+--------------------------------+ - | 17 | RTE_FLOW_ITEM_TYPE_GTPU | - +----+--------------------------------+ - | 18 | RTE_FLOW_ITEM_TYPE_GENEVE | - +----+--------------------------------+ - | 19 | RTE_FLOW_ITEM_TYPE_VXLAN_GPE | - +----+--------------------------------+ - | 20 | RTE_FLOW_ITEM_TYPE_IPV6_EXT | - +----+--------------------------------+ - | 21 | RTE_FLOW_ITEM_TYPE_VOID | - +----+--------------------------------+ - | 22 | RTE_FLOW_ITEM_TYPE_ANY | - +----+--------------------------------+ + +----+--------------------------------+-----------------------------------+ + | # | Pattern Type | Comment | + +====+================================+===================================+ + | 1 | RTE_FLOW_ITEM_TYPE_ETH | | + +----+--------------------------------+-----------------------------------+ + | 2 | RTE_FLOW_ITEM_TYPE_VLAN | | + +----+--------------------------------+-----------------------------------+ + | 3 | RTE_FLOW_ITEM_TYPE_E_TAG | | + +----+--------------------------------+-----------------------------------+ + | 4 | RTE_FLOW_ITEM_TYPE_IPV4 | | + +----+--------------------------------+-----------------------------------+ + | 5 | RTE_FLOW_ITEM_TYPE_IPV6 | | + +----+--------------------------------+-----------------------------------+ + | 6 | RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4| | + +----+--------------------------------+-----------------------------------+ + | 7 | RTE_FLOW_ITEM_TYPE_MPLS | | + +----+--------------------------------+-----------------------------------+ + | 8 | RTE_FLOW_ITEM_TYPE_ICMP | | + +----+--------------------------------+-----------------------------------+ + | 9 | RTE_FLOW_ITEM_TYPE_UDP | | + +----+--------------------------------+-----------------------------------+ + | 10 | RTE_FLOW_ITEM_TYPE_TCP | | + +----+--------------------------------+-----------------------------------+ + | 11 | RTE_FLOW_ITEM_TYPE_SCTP | | + +----+--------------------------------+-----------------------------------+ + | 12 | RTE_FLOW_ITEM_TYPE_ESP | | + +----+--------------------------------+-----------------------------------+ + | 13 | RTE_FLOW_ITEM_TYPE_GRE | | + +----+--------------------------------+-----------------------------------+ + | 14 | RTE_FLOW_ITEM_TYPE_NVGRE | | + +----+--------------------------------+-----------------------------------+ + | 15 | RTE_FLOW_ITEM_TYPE_VXLAN | | + +----+--------------------------------+-----------------------------------+ + | 16 | RTE_FLOW_ITEM_TYPE_GTPC | | + +----+--------------------------------+-----------------------------------+ + | 17 | RTE_FLOW_ITEM_TYPE_GTPU | | + +----+--------------------------------+-----------------------------------+ + | 18 | RTE_FLOW_ITEM_TYPE_GENEVE | | + +----+--------------------------------+-----------------------------------+ + | 19 | RTE_FLOW_ITEM_TYPE_VXLAN_GPE | | + +----+--------------------------------+-----------------------------------+ + | 20 | RTE_FLOW_ITEM_TYPE_IPV6_EXT | | + +----+--------------------------------+-----------------------------------+ + | 21 | RTE_FLOW_ITEM_TYPE_VOID | | + +----+--------------------------------+-----------------------------------+ + | 22 | RTE_FLOW_ITEM_TYPE_ANY | | + +----+--------------------------------+-----------------------------------+ + | 23 | RTE_FLOW_ITEM_TYPE_GRE_KEY | chksum & routing should be 0 | + +----+--------------------------------+-----------------------------------+ Actions: diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c index 6e65db8e4..6670c1a70 100644 --- a/drivers/net/octeontx2/otx2_flow_parse.c +++ b/drivers/net/octeontx2/otx2_flow_parse.c @@ -389,6 +389,7 @@ int otx2_flow_parse_ld(struct otx2_parse_state *pst) { char hw_mask[NPC_MAX_EXTRACT_DATA_LEN]; + uint32_t gre_key_mask = 0xffffffff; struct otx2_flow_item_info info; int lid, lt, lflags; int rc; @@ -450,6 +451,12 @@ otx2_flow_parse_ld(struct otx2_parse_state *pst) info.def_mask = &rte_flow_item_gre_mask; info.len = sizeof(struct rte_flow_item_gre); break; + case RTE_FLOW_ITEM_TYPE_GRE_KEY: + lt = NPC_LT_LD_GRE; + info.def_mask = &gre_key_mask; + info.len = sizeof(gre_key_mask); + info.hw_hdr_len = 4; + break; case RTE_FLOW_ITEM_TYPE_NVGRE: lt = NPC_LT_LD_GRE; lflags = NPC_F_GRE_NVGRE; -- 2.17.1