net/ice/base: support GTP-U type switch rule
authorQi Zhang <qi.z.zhang@intel.com>
Wed, 26 Aug 2020 10:16:19 +0000 (18:16 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:09 +0000 (18:55 +0200)
This patch add support for GTP-U type of switch rule.
It enable all GTP-U related ptype.

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
drivers/net/ice/base/ice_protocol_type.h
drivers/net/ice/base/ice_switch.c
drivers/net/ice/base/ice_switch.h

index 7cc44c1..4d3136f 100644 (file)
@@ -51,6 +51,7 @@ enum ice_protocol_type {
        ICE_ESP,
        ICE_AH,
        ICE_NAT_T,
+       ICE_GTP_NO_PAY,
        ICE_PROTOCOL_LAST
 };
 
@@ -71,6 +72,12 @@ enum ice_sw_tunnel_type {
        ICE_SW_IPV6_TCP,
        ICE_SW_IPV6_UDP,
        ICE_SW_TUN_GTP,
+       ICE_SW_TUN_IPV4_GTPU_NO_PAY,
+       ICE_SW_TUN_IPV6_GTPU_NO_PAY,
+       ICE_SW_TUN_IPV4_GTPU_IPV4,
+       ICE_SW_TUN_IPV4_GTPU_IPV6,
+       ICE_SW_TUN_IPV6_GTPU_IPV4,
+       ICE_SW_TUN_IPV6_GTPU_IPV6,
        ICE_SW_TUN_PPPOE,
        ICE_SW_TUN_PPPOE_PAY,
        ICE_SW_TUN_PPPOE_IPV4,
index f2d8514..69fa64a 100644 (file)
@@ -535,6 +535,207 @@ static const u8 dummy_udp_gtp_packet[] = {
        0x00, 0x00, 0x00, 0x00,
 };
 
+static const
+struct ice_dummy_pkt_offsets dummy_ipv4_gtpu_ipv4_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV4_OFOS,        14 },
+       { ICE_UDP_OF,           34 },
+       { ICE_GTP,              42 },
+       { ICE_IPV4_IL,          62 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
+static const u8 dummy_ipv4_gtpu_ipv4_packet[] = {
+       0x00, 0x00, 0x00, 0x00, /* ICE_MAC_OFOS 0 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x08, 0x00,
+
+       0x45, 0x00, 0x00, 0x44, /* ICE_IPV4_OFOS 14 */
+       0x00, 0x00, 0x40, 0x00,
+       0x40, 0x11, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x08, 0x68, 0x08, 0x68, /* ICE_UDP_OF 34 */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x34, 0xff, 0x00, 0x28,  /* ICE_GTP 42 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x85,
+
+       0x02, 0x00, 0x00, 0x00, /* PDU Session extension header */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x45, 0x00, 0x00, 0x14, /* ICE_IPV4_IL 62 */
+       0x00, 0x00, 0x40, 0x00,
+       0x40, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00,
+};
+
+static const
+struct ice_dummy_pkt_offsets dummy_ipv4_gtpu_ipv6_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV4_OFOS,        14 },
+       { ICE_UDP_OF,           34 },
+       { ICE_GTP,              42 },
+       { ICE_IPV6_IL,          62 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
+static const u8 dummy_ipv4_gtpu_ipv6_packet[] = {
+       0x00, 0x00, 0x00, 0x00, /* ICE_MAC_OFOS 0 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x08, 0x00,
+
+       0x45, 0x00, 0x00, 0x58, /* ICE_IPV4_OFOS 14 */
+       0x00, 0x00, 0x40, 0x00,
+       0x40, 0x11, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x08, 0x68, 0x08, 0x68, /* ICE_UDP_OF 34 */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x34, 0xff, 0x00, 0x28,  /* ICE_GTP 42 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x85,
+
+       0x02, 0x00, 0x00, 0x00, /* PDU Session extension header */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x60, 0x00, 0x00, 0x00, /* ICE_IPV6_IL 62 */
+       0x00, 0x00, 0x3b, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x00, 0x00,
+};
+
+static const
+struct ice_dummy_pkt_offsets dummy_ipv6_gtpu_ipv4_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV6_OFOS,        14 },
+       { ICE_UDP_OF,           54 },
+       { ICE_GTP,              62 },
+       { ICE_IPV4_IL,          82 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
+static const u8 dummy_ipv6_gtpu_ipv4_packet[] = {
+       0x00, 0x00, 0x00, 0x00, /* ICE_MAC_OFOS 0 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x86, 0xdd,
+
+       0x60, 0x00, 0x00, 0x00, /* ICE_IPV6_OFOS 14 */
+       0x00, 0x58, 0x11, 0x00, /* Next header UDP*/
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x08, 0x68, 0x08, 0x68, /* ICE_UDP_OF 54 */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x34, 0xff, 0x00, 0x28,  /* ICE_GTP 62 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x85,
+
+       0x02, 0x00, 0x00, 0x00, /* PDU Session extension header */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x45, 0x00, 0x00, 0x14, /* ICE_IPV4_IL 82 */
+       0x00, 0x00, 0x40, 0x00,
+       0x40, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x00, 0x00,
+};
+
+static const
+struct ice_dummy_pkt_offsets dummy_ipv6_gtpu_ipv6_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV6_OFOS,        14 },
+       { ICE_UDP_OF,           54 },
+       { ICE_GTP,              62 },
+       { ICE_IPV6_IL,          82 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
+static const u8 dummy_ipv6_gtpu_ipv6_packet[] = {
+       0x00, 0x00, 0x00, 0x00, /* ICE_MAC_OFOS 0 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x86, 0xdd,
+
+       0x60, 0x00, 0x00, 0x00, /* ICE_IPV6_OFOS 14 */
+       0x00, 0x6c, 0x11, 0x00, /* Next header UDP*/
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x08, 0x68, 0x08, 0x68, /* ICE_UDP_OF 54 */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x34, 0xff, 0x00, 0x28,  /* ICE_GTP 62 */
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x85,
+
+       0x02, 0x00, 0x00, 0x00, /* PDU Session extension header */
+       0x00, 0x00, 0x00, 0x00,
+
+       0x60, 0x00, 0x00, 0x00, /* ICE_IPV6_OFIL 82 */
+       0x00, 0x00, 0x3b, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00,
+
+       0x00, 0x00,
+};
+
+static const
+struct ice_dummy_pkt_offsets dummy_ipv4_gtp_no_pay_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV4_OFOS,        14 },
+       { ICE_UDP_OF,           34 },
+       { ICE_GTP_NO_PAY,       42 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
+static const
+struct ice_dummy_pkt_offsets dummy_ipv6_gtp_no_pay_packet_offsets[] = {
+       { ICE_MAC_OFOS,         0 },
+       { ICE_IPV6_OFOS,        14 },
+       { ICE_UDP_OF,           54 },
+       { ICE_GTP_NO_PAY,       62 },
+       { ICE_PROTOCOL_LAST,    0 },
+};
+
 static const struct ice_dummy_pkt_offsets dummy_pppoe_packet_offsets[] = {
        { ICE_MAC_OFOS,         0 },
        { ICE_ETYPE_OL,         12 },
@@ -1070,11 +1271,13 @@ static enum ice_sw_tunnel_type ice_get_tun_type_for_recipe(u8 rid)
                }
 
                if (j >= ICE_PROFID_IPV4_GTPU_EH_IPV4_OTHER &&
-                   j <= ICE_PROFID_IPV6_GTPU_IPV6_OTHER)
+                   j <= ICE_PROFID_IPV6_GTPU_IPV6_TCP)
                        gtp_valid = true;
 
-               if (j >= ICE_PROFID_IPV4_ESP &&
-                   j <= ICE_PROFID_IPV6_PFCP_SESSION)
+               if ((j >= ICE_PROFID_IPV4_ESP &&
+                    j <= ICE_PROFID_IPV6_PFCP_SESSION) ||
+                   (j >= ICE_PROFID_IPV4_GTPC_TEID &&
+                    j <= ICE_PROFID_IPV6_GTPU_TEID))
                        flag_valid = true;
        }
 
@@ -1092,6 +1295,8 @@ static enum ice_sw_tunnel_type ice_get_tun_type_for_recipe(u8 rid)
        else if (non_tun_valid && !vxlan_valid && !gre_valid && !gtp_valid &&
                 !pppoe_valid)
                tun_type = ICE_NON_TUN;
+       else
+               tun_type = ICE_NON_TUN;
 
        if (profile_num > 1 && tun_type == ICE_SW_TUN_PPPOE) {
                i = ice_is_bit_set(recipe_to_profile[rid],
@@ -1104,6 +1309,21 @@ static enum ice_sw_tunnel_type ice_get_tun_type_for_recipe(u8 rid)
                        tun_type = ICE_SW_TUN_PPPOE_IPV6;
        }
 
+       if (tun_type == ICE_SW_TUN_GTP) {
+               if (ice_is_bit_set(recipe_to_profile[rid],
+                                  ICE_PROFID_IPV4_GTPU_IPV4_OTHER))
+                       tun_type = ICE_SW_TUN_IPV4_GTPU_IPV4;
+               else if (ice_is_bit_set(recipe_to_profile[rid],
+                                       ICE_PROFID_IPV4_GTPU_IPV6_OTHER))
+                       tun_type = ICE_SW_TUN_IPV4_GTPU_IPV6;
+               else if (ice_is_bit_set(recipe_to_profile[rid],
+                                       ICE_PROFID_IPV6_GTPU_IPV4_OTHER))
+                       tun_type = ICE_SW_TUN_IPV6_GTPU_IPV4;
+               else if (ice_is_bit_set(recipe_to_profile[rid],
+                                       ICE_PROFID_IPV6_GTPU_IPV6_OTHER))
+                       tun_type = ICE_SW_TUN_IPV6_GTPU_IPV6;
+       }
+
        if (profile_num == 1 && (flag_valid || non_tun_valid || pppoe_valid)) {
                for (j = 0; j < ICE_MAX_NUM_PROFILES; j++) {
                        if (ice_is_bit_set(recipe_to_profile[rid], j)) {
@@ -1181,6 +1401,12 @@ static enum ice_sw_tunnel_type ice_get_tun_type_for_recipe(u8 rid)
                                case ICE_PROFID_MAC_IPV6_L2TPV3:
                                        tun_type = ICE_SW_TUN_IPV6_L2TPV3;
                                        break;
+                               case ICE_PROFID_IPV4_GTPU_TEID:
+                                       tun_type = ICE_SW_TUN_IPV4_GTPU_NO_PAY;
+                                       break;
+                               case ICE_PROFID_IPV6_GTPU_TEID:
+                                       tun_type = ICE_SW_TUN_IPV6_GTPU_NO_PAY;
+                                       break;
                                default:
                                        break;
                                }
@@ -5608,6 +5834,7 @@ static const struct ice_prot_ext_tbl_entry ice_prot_ext[ICE_PROTOCOL_LAST] = {
        { ICE_ESP,              { 0, 2, 4, 6 } },
        { ICE_AH,               { 0, 2, 4, 6, 8, 10 } },
        { ICE_NAT_T,            { 8, 10, 12, 14 } },
+       { ICE_GTP_NO_PAY,       { 8, 10, 12, 14 } },
 };
 
 /* The following table describes preferred grouping of recipes.
@@ -5640,6 +5867,7 @@ static const struct ice_protocol_entry ice_prot_id_tbl[ICE_PROTOCOL_LAST] = {
        { ICE_ESP,              ICE_ESP_HW },
        { ICE_AH,               ICE_AH_HW },
        { ICE_NAT_T,            ICE_UDP_ILOS_HW },
+       { ICE_GTP_NO_PAY,       ICE_UDP_ILOS_HW },
 };
 
 /**
@@ -6507,6 +6735,38 @@ ice_get_compat_fv_bitmap(struct ice_hw *hw, struct ice_adv_rule_info *rinfo,
        case ICE_SW_IPV6_UDP:
                ice_set_bit(ICE_PROFID_IPV6_UDP, bm);
                return;
+       case ICE_SW_TUN_IPV4_GTPU_IPV4:
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV4_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV4_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV4_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV4_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV4_TCP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV4_TCP, bm);
+               return;
+       case ICE_SW_TUN_IPV6_GTPU_IPV4:
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV4_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV4_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV4_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV4_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV4_TCP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV4_TCP, bm);
+               return;
+       case ICE_SW_TUN_IPV4_GTPU_IPV6:
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV6_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV6_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV6_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV6_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_EH_IPV6_TCP, bm);
+               ice_set_bit(ICE_PROFID_IPV4_GTPU_IPV6_TCP, bm);
+               return;
+       case ICE_SW_TUN_IPV6_GTPU_IPV6:
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV6_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV6_OTHER, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV6_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV6_UDP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_EH_IPV6_TCP, bm);
+               ice_set_bit(ICE_PROFID_IPV6_GTPU_IPV6_TCP, bm);
+               return;
        case ICE_SW_TUN_AND_NON_TUN:
        default:
                prof_type = ICE_PROF_ALL;
@@ -6797,6 +7057,38 @@ ice_find_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
                        tcp = true;
        }
 
+       if (tun_type == ICE_SW_TUN_IPV4_GTPU_NO_PAY) {
+               *pkt = dummy_ipv4_gtpu_ipv4_packet;
+               *pkt_len = sizeof(dummy_ipv4_gtpu_ipv4_packet);
+               *offsets = dummy_ipv4_gtp_no_pay_packet_offsets;
+               return;
+       } else if (tun_type == ICE_SW_TUN_IPV6_GTPU_NO_PAY) {
+               *pkt = dummy_ipv6_gtpu_ipv6_packet;
+               *pkt_len = sizeof(dummy_ipv6_gtpu_ipv6_packet);
+               *offsets = dummy_ipv6_gtp_no_pay_packet_offsets;
+               return;
+       } else if (tun_type == ICE_SW_TUN_IPV4_GTPU_IPV4) {
+               *pkt = dummy_ipv4_gtpu_ipv4_packet;
+               *pkt_len = sizeof(dummy_ipv4_gtpu_ipv4_packet);
+               *offsets = dummy_ipv4_gtpu_ipv4_packet_offsets;
+               return;
+       } else if (tun_type == ICE_SW_TUN_IPV4_GTPU_IPV6) {
+               *pkt = dummy_ipv4_gtpu_ipv6_packet;
+               *pkt_len = sizeof(dummy_ipv4_gtpu_ipv6_packet);
+               *offsets = dummy_ipv4_gtpu_ipv6_packet_offsets;
+               return;
+       } else if (tun_type == ICE_SW_TUN_IPV6_GTPU_IPV4) {
+               *pkt = dummy_ipv6_gtpu_ipv4_packet;
+               *pkt_len = sizeof(dummy_ipv6_gtpu_ipv4_packet);
+               *offsets = dummy_ipv6_gtpu_ipv4_packet_offsets;
+               return;
+       } else if (tun_type == ICE_SW_TUN_IPV6_GTPU_IPV6) {
+               *pkt = dummy_ipv6_gtpu_ipv6_packet;
+               *pkt_len = sizeof(dummy_ipv6_gtpu_ipv6_packet);
+               *offsets = dummy_ipv6_gtpu_ipv6_packet_offsets;
+               return;
+       }
+
        if (tun_type == ICE_SW_TUN_IPV4_ESP) {
                *pkt = dummy_ipv4_esp_pkt;
                *pkt_len = sizeof(dummy_ipv4_esp_pkt);
@@ -7111,6 +7403,7 @@ ice_fill_adv_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
                        break;
 
                case ICE_GTP:
+               case ICE_GTP_NO_PAY:
                        len = sizeof(struct ice_udp_gtp_hdr);
                        break;
                case ICE_PPPOE:
index aa44677..a7e9434 100644 (file)
 #define ICE_PROFID_PPPOE_IPV6_UDP      39
 #define ICE_PROFID_PPPOE_IPV6_OTHER    40
 #define ICE_PROFID_IPV4_GTPC_TEID      41
+#define ICE_PROFID_IPV4_GTPU_TEID              43
+#define ICE_PROFID_IPV6_GTPU_TEID              46
 #define ICE_PROFID_IPV4_GTPU_EH_IPV4_OTHER     47
-#define ICE_PROFID_IPV6_GTPU_IPV6_OTHER        70
+#define ICE_PROFID_IPV4_GTPU_IPV4_OTHER                48
+#define ICE_PROFID_IPV4_GTPU_EH_IPV4_UDP       49
+#define ICE_PROFID_IPV4_GTPU_IPV4_UDP          50
+#define ICE_PROFID_IPV4_GTPU_EH_IPV4_TCP       51
+#define ICE_PROFID_IPV4_GTPU_IPV4_TCP          52
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_OTHER     53
+#define ICE_PROFID_IPV6_GTPU_IPV4_OTHER                54
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_UDP       55
+#define ICE_PROFID_IPV6_GTPU_IPV4_UDP          56
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_TCP       57
+#define ICE_PROFID_IPV6_GTPU_IPV4_TCP          58
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_OTHER     59
+#define ICE_PROFID_IPV4_GTPU_IPV6_OTHER                60
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_UDP       61
+#define ICE_PROFID_IPV4_GTPU_IPV6_UDP          62
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_TCP       63
+#define ICE_PROFID_IPV4_GTPU_IPV6_TCP          64
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_OTHER     65
+#define ICE_PROFID_IPV6_GTPU_IPV6_OTHER                66
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_UDP       67
+#define ICE_PROFID_IPV6_GTPU_IPV6_UDP          68
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_TCP       69
+#define ICE_PROFID_IPV6_GTPU_IPV6_TCP          70
 #define ICE_PROFID_IPV4_ESP            71
 #define ICE_PROFID_IPV6_ESP            72
 #define ICE_PROFID_IPV4_AH             73