Add L2TPv2 protocol identifier and session ID field definition
to enable flow classification and filtering for L2TPv2 tunneled
traffic.

Signed-off-by: Shaiq Wani <[email protected]>
Tested-by: Song Jiale <[email protected]>
---
 drivers/net/intel/ice/ice_generic_flow.h | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/net/intel/ice/ice_generic_flow.h 
b/drivers/net/intel/ice/ice_generic_flow.h
index 0b282d4ee5..1b5514d5df 100644
--- a/drivers/net/intel/ice/ice_generic_flow.h
+++ b/drivers/net/intel/ice/ice_generic_flow.h
@@ -27,6 +27,7 @@
 #define ICE_PROT_L2TPV3OIP             BIT_ULL(16)
 #define ICE_PROT_PFCP                  BIT_ULL(17)
 #define ICE_PROT_NAT_T_ESP             BIT_ULL(18)
+#define ICE_PROT_L2TPV2OIP             BIT_ULL(19)
 #define ICE_PROT_MAC_INNER             BIT_ULL(20)
 #define ICE_PROT_VLAN_INNER            BIT_ULL(21)
 #define ICE_PROT_IPV4_INNER            BIT_ULL(22)
@@ -64,6 +65,7 @@
 #define ICE_PFCP_S_FIELD               BIT_ULL(41)
 #define ICE_IP_PK_ID                   BIT_ULL(40)
 #define ICE_IP_FRAG_OFS                        BIT_ULL(39)
+#define ICE_L2TPV2OIP_SESSION_ID       BIT_ULL(38)
 
 /* input set */
 
@@ -131,6 +133,8 @@
        (ICE_PROT_PFCP | ICE_PFCP_S_FIELD | ICE_PFCP_SEID)
 #define ICE_INSET_NAT_T_ESP_SPI \
        (ICE_PROT_NAT_T_ESP | ICE_ESP_SPI)
+#define ICE_INSET_L2TPV2OIP_SESSION_ID \
+       (ICE_PROT_L2TPV2OIP | ICE_L2TPV2OIP_SESSION_ID)
 #define ICE_INSET_TUN_IPV4_SRC \
        (ICE_PROT_IPV4_INNER | ICE_IP_SRC)
 #define ICE_INSET_TUN_IPV4_DST \
@@ -425,6 +429,24 @@ extern enum rte_flow_item_type pattern_eth_ipv6_udp_ah[];
 /* L2TP */
 extern enum rte_flow_item_type pattern_eth_ipv4_l2tp[];
 extern enum rte_flow_item_type pattern_eth_ipv6_l2tp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_l2tpv2[];
+extern enum rte_flow_item_type pattern_eth_ipv6_l2tpv2[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv4[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv4_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv4_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv4[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv4_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv4_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv4_udp_l2tpv2_ppp_ipv6_tcp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv6[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv6_udp[];
+extern enum rte_flow_item_type pattern_eth_ipv6_udp_l2tpv2_ppp_ipv6_tcp[];
 
 /* PFCP */
 extern enum rte_flow_item_type pattern_eth_ipv4_pfcp[];
-- 
2.34.1

Reply via email to