> -----Original Message----- > From: Zhang, AlvinX <alvinx.zh...@intel.com> > Sent: Thursday, September 10, 2020 11:26 AM > To: Guo, Jia <jia....@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com> > Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zh...@intel.com> > Subject: [PATCH v4] net/iavf: support outer IP hash for GTPU > > From: Alvin Zhang <alvinx.zh...@intel.com> > > Add headers for GTPU, now outer IP hash can be configured as input sets for > GTPU packet. >
I think this patch will not cover outer IP hash for any GTPU case, only none-inner GTPU case, right? > Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com> > --- > > V2: Modify codes according to comments. > V3: Refact all codes. > V4: Fix compatibility issues. > > drivers/net/iavf/iavf_hash.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index > aab8b14..3ec32d9 100644 > --- a/drivers/net/iavf/iavf_hash.c > +++ b/drivers/net/iavf/iavf_hash.c > @@ -132,6 +132,9 @@ struct iavf_hash_flow_cfg { > VIRTCHNL_PROTO_HDR_PFCP, \ > FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PFCP_SEID), > {BUFF_NOUSED} } > > +#define proto_hdr_gtpu { \ > + VIRTCHNL_PROTO_HDR_GTPU_IP, 0, {BUFF_NOUSED} } > + I still not funs of set field to zero here since it should be general use for other case, it could specific refine to 0 when parsing pattern if need. > #define TUNNEL_LEVEL_OUTER 0 > #define TUNNEL_LEVEL_INNER 1 > > @@ -256,6 +259,14 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = { > TUNNEL_LEVEL_OUTER, 2, {proto_hdr_ipv6, proto_hdr_pfcp} }; > > +struct virtchnl_proto_hdrs outer_ipv4_udp_gtpu_tmplt = { > + TUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv4, proto_hdr_udp, > proto_hdr_gtpu} > +}; > + > +struct virtchnl_proto_hdrs outer_ipv6_udp_gtpu_tmplt = { > + TUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv6, proto_hdr_udp, > proto_hdr_gtpu} > +}; > + > /* rss type super set */ > > /* IPv4 outer */ > @@ -348,6 +359,7 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = { > {iavf_pattern_eth_vlan_ipv4_udp, > IAVF_RSS_TYPE_VLAN_IPV4_UDP, &outer_ipv4_udp_tmplt}, > {iavf_pattern_eth_vlan_ipv4_tcp, > IAVF_RSS_TYPE_VLAN_IPV4_TCP, &outer_ipv4_tcp_tmplt}, > {iavf_pattern_eth_vlan_ipv4_sctp, > IAVF_RSS_TYPE_VLAN_IPV4_SCTP, &outer_ipv4_sctp_tmplt}, > + {iavf_pattern_eth_ipv4_gtpu, ETH_RSS_IPV4, > &outer_ipv4_udp_gtpu_tmplt}, There is also a question the same as the other mail loop of GTPC, should it be supper set here? > {iavf_pattern_eth_ipv4_gtpu_ipv4, > IAVF_RSS_TYPE_GTPU_IPV4, &inner_ipv4_tmplt}, > {iavf_pattern_eth_ipv4_gtpu_ipv4_udp, > IAVF_RSS_TYPE_GTPU_IPV4_UDP, &inner_ipv4_udp_tmplt}, > {iavf_pattern_eth_ipv4_gtpu_ipv4_tcp, > IAVF_RSS_TYPE_GTPU_IPV4_TCP, &inner_ipv4_tcp_tmplt}, > @@ -374,6 +386,7 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = { > {iavf_pattern_eth_vlan_ipv6_udp, > IAVF_RSS_TYPE_VLAN_IPV6_UDP, &outer_ipv6_udp_tmplt}, > {iavf_pattern_eth_vlan_ipv6_tcp, > IAVF_RSS_TYPE_VLAN_IPV6_TCP, &outer_ipv6_tcp_tmplt}, > {iavf_pattern_eth_vlan_ipv6_sctp, > IAVF_RSS_TYPE_VLAN_IPV6_SCTP, &outer_ipv6_sctp_tmplt}, > + {iavf_pattern_eth_ipv6_gtpu, ETH_RSS_IPV6, > &outer_ipv6_udp_gtpu_tmplt}, > {iavf_pattern_eth_ipv4_gtpu_ipv6, > IAVF_RSS_TYPE_GTPU_IPV6, &inner_ipv6_tmplt}, > {iavf_pattern_eth_ipv4_gtpu_ipv6_udp, > IAVF_RSS_TYPE_GTPU_IPV6_UDP, &inner_ipv6_udp_tmplt}, > {iavf_pattern_eth_ipv4_gtpu_ipv6_tcp, > IAVF_RSS_TYPE_GTPU_IPV6_TCP, &inner_ipv6_tcp_tmplt}, > -- > 1.8.3.1