From: Junfeng Guo <junfeng.guo@intel.com> To: qi.z.zhang@intel.com, xiaolong.ye@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com Subject: [dpdk-dev] [PATCH v2 2/2] net/iavf: add FD support for GTPU with outer IP Date: Mon, 15 Jun 2020 13:04:41 +0800 Message-ID: <20200615050441.55224-3-junfeng.guo@intel.com> (raw) In-Reply-To: <20200615050441.55224-1-junfeng.guo@intel.com> Add FDir support for MAC_IPV6_GTPU type with outer IP address, teid and qfi fields matching. Note that outer IP matching fields here includes both SRC & DST of both IPv4 & IPv6. Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> --- drivers/net/iavf/iavf_fdir.c | 22 ++++++++++++++++++---- drivers/net/iavf/iavf_generic_flow.c | 22 +++++++++++++++++++++- drivers/net/iavf/iavf_generic_flow.h | 12 ++++++++++-- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c index 264c47d83..5ea524ed4 100644 --- a/drivers/net/iavf/iavf_fdir.c +++ b/drivers/net/iavf/iavf_fdir.c @@ -68,14 +68,22 @@ IAVF_INSET_IPV6_TC | IAVF_INSET_IPV6_HOP_LIMIT | \ IAVF_INSET_SCTP_SRC_PORT | IAVF_INSET_SCTP_DST_PORT) -#define IAVF_FDIR_INSET_GTPU (\ +#define IAVF_FDIR_INSET_IPV4_GTPU (\ IAVF_INSET_IPV4_SRC | IAVF_INSET_IPV4_DST | \ IAVF_INSET_GTPU_TEID) -#define IAVF_FDIR_INSET_GTPU_EH (\ +#define IAVF_FDIR_INSET_IPV4_GTPU_EH (\ IAVF_INSET_IPV4_SRC | IAVF_INSET_IPV4_DST | \ IAVF_INSET_GTPU_TEID | IAVF_INSET_GTPU_QFI) +#define IAVF_FDIR_INSET_IPV6_GTPU (\ + IAVF_INSET_IPV6_SRC | IAVF_INSET_IPV6_DST | \ + IAVF_INSET_GTPU_TEID) + +#define IAVF_FDIR_INSET_IPV6_GTPU_EH (\ + IAVF_INSET_IPV6_SRC | IAVF_INSET_IPV6_DST | \ + IAVF_INSET_GTPU_TEID | IAVF_INSET_GTPU_QFI) + #define IAVF_FDIR_INSET_L2TPV3OIP (\ IAVF_L2TPV3OIP_SESSION_ID) @@ -98,16 +106,22 @@ static struct iavf_pattern_match_item iavf_fdir_pattern[] = { {iavf_pattern_ethertype, IAVF_FDIR_INSET_ETH, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv4, IAVF_FDIR_INSET_ETH_IPV4, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv4_udp, IAVF_FDIR_INSET_ETH_IPV4_UDP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv4_tcp, IAVF_FDIR_INSET_ETH_IPV4_TCP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv4_sctp, IAVF_FDIR_INSET_ETH_IPV4_SCTP, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv6, IAVF_FDIR_INSET_ETH_IPV6, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv6_udp, IAVF_FDIR_INSET_ETH_IPV6_UDP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv6_tcp, IAVF_FDIR_INSET_ETH_IPV6_TCP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv6_sctp, IAVF_FDIR_INSET_ETH_IPV6_SCTP, IAVF_INSET_NONE}, - {iavf_pattern_eth_ipv4_gtpu, IAVF_FDIR_INSET_GTPU, IAVF_INSET_NONE}, - {iavf_pattern_eth_ipv4_gtpu_eh, IAVF_FDIR_INSET_GTPU_EH, IAVF_INSET_NONE}, + + {iavf_pattern_eth_ipv4_gtpu, IAVF_FDIR_INSET_IPV4_GTPU, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv4_gtpu_eh, IAVF_FDIR_INSET_IPV4_GTPU_EH, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv6_gtpu, IAVF_FDIR_INSET_IPV6_GTPU, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv6_gtpu_eh, IAVF_FDIR_INSET_IPV6_GTPU_EH, IAVF_INSET_NONE}, + {iavf_pattern_eth_ipv4_l2tpv3, IAVF_FDIR_INSET_L2TPV3OIP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv6_l2tpv3, IAVF_FDIR_INSET_L2TPV3OIP, IAVF_INSET_NONE}, {iavf_pattern_eth_ipv4_esp, IAVF_FDIR_INSET_ESP, IAVF_INSET_NONE}, diff --git a/drivers/net/iavf/iavf_generic_flow.c b/drivers/net/iavf/iavf_generic_flow.c index b6c26c4fd..e4d693774 100644 --- a/drivers/net/iavf/iavf_generic_flow.c +++ b/drivers/net/iavf/iavf_generic_flow.c @@ -315,7 +315,7 @@ enum rte_flow_item_type iavf_pattern_eth_qinq_ipv6_icmp6[] = { RTE_FLOW_ITEM_TYPE_END, }; -/* GTPU */ +/* IPv4 GTPU (EH) */ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[] = { RTE_FLOW_ITEM_TYPE_ETH, RTE_FLOW_ITEM_TYPE_IPV4, @@ -333,6 +333,25 @@ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh[] = { RTE_FLOW_ITEM_TYPE_END, }; +/* IPv6 GTPU (EH) */ +enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[] = { + RTE_FLOW_ITEM_TYPE_ETH, + RTE_FLOW_ITEM_TYPE_IPV6, + RTE_FLOW_ITEM_TYPE_UDP, + RTE_FLOW_ITEM_TYPE_GTPU, + RTE_FLOW_ITEM_TYPE_END, +}; + +enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu_eh[] = { + RTE_FLOW_ITEM_TYPE_ETH, + RTE_FLOW_ITEM_TYPE_IPV6, + RTE_FLOW_ITEM_TYPE_UDP, + RTE_FLOW_ITEM_TYPE_GTPU, + RTE_FLOW_ITEM_TYPE_GTP_PSC, + RTE_FLOW_ITEM_TYPE_END, +}; + +/* IPv4 GTPU IPv4 */ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_ipv4[] = { RTE_FLOW_ITEM_TYPE_ETH, RTE_FLOW_ITEM_TYPE_IPV4, @@ -342,6 +361,7 @@ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_ipv4[] = { RTE_FLOW_ITEM_TYPE_END, }; +/* IPv4 GTPU EH IPv4 */ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh_ipv4[] = { RTE_FLOW_ITEM_TYPE_ETH, RTE_FLOW_ITEM_TYPE_IPV4, diff --git a/drivers/net/iavf/iavf_generic_flow.h b/drivers/net/iavf/iavf_generic_flow.h index 978d0716b..8a6687542 100644 --- a/drivers/net/iavf/iavf_generic_flow.h +++ b/drivers/net/iavf/iavf_generic_flow.h @@ -182,10 +182,18 @@ extern enum rte_flow_item_type iavf_pattern_eth_ipv6_icmp6[]; extern enum rte_flow_item_type iavf_pattern_eth_vlan_ipv6_icmp6[]; extern enum rte_flow_item_type iavf_pattern_eth_qinq_ipv6_icmp6[]; -/* GTPU */ +/* IPv4 GTPU (EH) */ extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[]; -extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_ipv4[]; extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh[]; + +/* IPv6 GTPU (EH) */ +extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[]; +extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu_eh[]; + +/* IPv4 GTPU IPv4 */ +extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_ipv4[]; + +/* IPv4 GTPU EH IPv4 */ extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh_ipv4[]; extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh_ipv4_udp[]; extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh_ipv4_tcp[]; -- 2.17.1
next prev parent reply other threads:[~2020-06-16 9:37 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-12 8:13 [dpdk-dev] [PATCH 0/2] add FD support for GTPU with outer IP on PF and VF Junfeng Guo 2020-06-12 8:13 ` [dpdk-dev] [PATCH 1/2] net/ice: add FD support for GTPU with outer IP Junfeng Guo 2020-06-12 8:13 ` [dpdk-dev] [PATCH 2/2] net/iavf: " Junfeng Guo 2020-06-12 8:30 ` [dpdk-dev] [PATCH 0/2] add FD support for GTPU with outer IP on PF and VF Ye Xiaolong 2020-06-12 9:06 ` Guo, Junfeng 2020-06-15 5:04 ` [dpdk-dev] [PATCH v2 " Junfeng Guo 2020-06-15 5:04 ` [dpdk-dev] [PATCH v2 1/2] net/ice: add FD support for GTPU with outer IP Junfeng Guo 2020-06-15 5:04 ` Junfeng Guo [this message] 2020-06-17 2:43 ` [dpdk-dev] [PATCH v3 0/2] add FD support for GTPU with outer IP on VF and PF Junfeng Guo 2020-06-17 2:43 ` [dpdk-dev] [PATCH v3 1/2] net/ice: add FD support for GTPU with outer IP Junfeng Guo 2020-06-17 2:43 ` [dpdk-dev] [PATCH v3 2/2] net/iavf: " Junfeng Guo 2020-07-08 4:26 ` [dpdk-dev] [PATCH v4 0/2] add FD support for GTPU with outer IP on PF and VF Junfeng Guo 2020-07-08 4:26 ` [dpdk-dev] [PATCH v4 1/2] net/ice: add FD support for GTPU with outer IPv4 and IPv6 Junfeng Guo 2020-07-08 4:26 ` [dpdk-dev] [PATCH v4 2/2] net/iavf: " Junfeng Guo 2020-07-08 8:30 ` [dpdk-dev] [PATCH v4 0/2] add FD support for GTPU with outer IP on PF and VF Zhang, Qi Z
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200615050441.55224-3-junfeng.guo@intel.com \ --to=junfeng.guo@intel.com \ --cc=beilei.xing@intel.com \ --cc=dev@dpdk.org \ --cc=jia.guo@intel.com \ --cc=qi.z.zhang@intel.com \ --cc=simei.su@intel.com \ --cc=xiaolong.ye@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git