Previous iavf not support 5 tuple hash, this patch aims to enable it for regular ip pattern and also GTPU inner ip pattern, the 5 tuple involves ip src and ip dst, tcp sport and tcp dport, udp sport and udp dport and protocol id.
Signed-off-by: Jeff Guo <jia....@intel.com> --- drivers/net/iavf/iavf_hash.c | 186 ++++++++++++++++++++++------------- 1 file changed, 116 insertions(+), 70 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index 921dc961f..a253d08f6 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -218,6 +218,28 @@ static struct iavf_pattern_match_item iavf_hash_pattern_list[] = { FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \ FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), {BUFF_NOUSED } } +#define proto_hint_ipv4_src_prot { \ + VIRTCHNL_PROTO_HDR_IPV4, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \ + {BUFF_NOUSED } } + +#define proto_hint_ipv4_dst_prot { \ + VIRTCHNL_PROTO_HDR_IPV4, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), \ + {BUFF_NOUSED } } + +#define proto_hint_ipv4_only_prot { \ + VIRTCHNL_PROTO_HDR_IPV4, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } } + +#define proto_hint_ipv4_prot { \ + VIRTCHNL_PROTO_HDR_IPV4, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED } } + #define proto_hint_udp_src_port { \ VIRTCHNL_PROTO_HDR_UDP, \ FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_UDP_SRC_PORT), {BUFF_NOUSED } } @@ -282,6 +304,28 @@ static struct iavf_pattern_match_item iavf_hash_pattern_list[] = { FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \ FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), {BUFF_NOUSED } } +#define proto_hint_ipv6_src_prot { \ + VIRTCHNL_PROTO_HDR_IPV6, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \ + {BUFF_NOUSED } } + +#define proto_hint_ipv6_dst_prot { \ + VIRTCHNL_PROTO_HDR_IPV6, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), \ + {BUFF_NOUSED } } + +#define proto_hint_ipv6_only_prot { \ + VIRTCHNL_PROTO_HDR_IPV6, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } } + +#define proto_hint_ipv6_prot { \ + VIRTCHNL_PROTO_HDR_IPV6, \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED } } + #define proto_hint_gtpu_eh_only { \ VIRTCHNL_PROTO_HDR_GTPU_EH, \ FIELD_FOR_PROTO_ONLY, {BUFF_NOUSED } } @@ -347,72 +391,72 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4 = { }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot, proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot, proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot, proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot, proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot, proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot, proto_hint_udp } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv4_prot, proto_hint_tcp } }; @@ -480,22 +524,22 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_esp = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_src_port} + proto_hint_ipv4_only_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = { @@ -505,22 +549,22 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_eh = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_src_port} + proto_hint_ipv4_src_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_eh = { @@ -535,54 +579,54 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_eh = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_udp} + proto_hint_ipv4_prot, proto_hint_udp} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_eh = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_eh_only, - proto_hint_tcp} + proto_hint_ipv4_prot, proto_hint_tcp} }; /* GTPU UP */ struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_src_port} + proto_hint_ipv4_only_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = { @@ -592,22 +636,22 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_up = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_src_port} + proto_hint_ipv4_src_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_up = { @@ -622,54 +666,54 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_up = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_udp} + proto_hint_ipv4_prot, proto_hint_udp} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_up = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_up_only, - proto_hint_tcp} + proto_hint_ipv4_prot, proto_hint_tcp} }; /* GTPU DWN */ struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_src_port} + proto_hint_ipv4_only_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_only_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = { @@ -679,22 +723,22 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_gtpu_dwn = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_src_port} + proto_hint_ipv4_src_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_udp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_src_tcp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_src_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_gtpu_dwn = { @@ -709,32 +753,32 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv4_gtpu_dwn = { struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_udp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_udp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_src_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_src_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_src_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_dst_tcp_dst_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp_dst_port} + proto_hint_ipv4_dst_prot, proto_hint_tcp_dst_port} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_udp_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_udp} + proto_hint_ipv4_prot, proto_hint_udp} }; struct virtchnl_proto_hdrs hdrs_hint_ipv4_tcp_gtpu_dwn = { TUNNEL_LEVEL_FIRST_INNER, PROTO_COUNT_THREE, {proto_hint_gtpu_dwn_only, - proto_hint_tcp} + proto_hint_ipv4_prot, proto_hint_tcp} }; /* IPV6 */ @@ -752,70 +796,72 @@ struct virtchnl_proto_hdrs hdrs_hint_ipv6 = { }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot, proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot, proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot, proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot, proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_udp_src_port } + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot, + proto_hint_udp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_udp_dst_port } + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot, + proto_hint_udp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_udp = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot, proto_hint_udp } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_src_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_src_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_dst_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_dst_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_src_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot, proto_hint_tcp_src_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp_dst_port = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_only_prot, proto_hint_tcp_dst_port } }; struct virtchnl_proto_hdrs hdrs_hint_ipv6_tcp = { - TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6, + TUNNEL_LEVEL_OUTER, PROTO_COUNT_TWO, {proto_hint_ipv6_prot, proto_hint_tcp } }; -- 2.20.1