+ return 0;
+ }
+ /* Check esp mask and update input set */
+ if (esp_mask && esp_mask->hdr.seq) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ITEM,
+ item,
+ "Invalid esp mask");
+ return 0;
+ }
+
+ if (!esp_spec && !esp_mask && !input_set) {
+ profile_rule = 1;
+ if (ipv6_valiad && udp_valiad)
+ *tun_type =
+ ICE_SW_TUN_PROFID_IPV6_NAT_T;
+ else if (ipv6_valiad)
+ *tun_type = ICE_SW_TUN_PROFID_IPV6_ESP;
+ else if (ipv4_valiad)
+ return 0;
+ } else if (esp_spec && esp_mask &&
+ esp_mask->hdr.spi){
+ if (udp_valiad)
+ list[t].type = ICE_NAT_T;
+ else
+ list[t].type = ICE_ESP;
+ list[t].h_u.esp_hdr.spi =
+ esp_spec->hdr.spi;
+ list[t].m_u.esp_hdr.spi =
+ esp_mask->hdr.spi;
+ input_set |= ICE_INSET_ESP_SPI;
+ t++;
+ }
+
+ if (!profile_rule) {
+ if (ipv6_valiad && udp_valiad)
+ *tun_type = ICE_SW_TUN_IPV6_NAT_T;
+ else if (ipv4_valiad && udp_valiad)
+ *tun_type = ICE_SW_TUN_IPV4_NAT_T;
+ else if (ipv6_valiad)
+ *tun_type = ICE_SW_TUN_IPV6_ESP;
+ else if (ipv4_valiad)
+ *tun_type = ICE_SW_TUN_IPV4_ESP;