crypto/dpaa_sec: support authonly and chain with raw API
[dpdk.git] / drivers / net / ice / base / ice_flow.h
index eb63f67..371d960 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2020 Intel Corporation
+ * Copyright(c) 2001-2021 Intel Corporation
  */
 
 #ifndef _ICE_FLOW_H_
@@ -184,10 +184,14 @@ enum ice_flow_seg_hdr {
        ICE_FLOW_SEG_HDR_GTPU_NON_IP    = 0x01000000,
        ICE_FLOW_SEG_HDR_VXLAN          = 0x02000000,
        ICE_FLOW_SEG_HDR_ECPRI_TP0      = 0x04000000,
+       ICE_FLOW_SEG_HDR_UDP_ECPRI_TP0  = 0x08000000,
+       ICE_FLOW_SEG_HDR_L2TPV2         = 0x10000000,
+       ICE_FLOW_SEG_HDR_PPP            = 0x20000000,
        /* The following is an additive bit for ICE_FLOW_SEG_HDR_IPV4 and
-        * ICE_FLOW_SEG_HDR_IPV6 which include the IPV4 other PTYPEs
+        * ICE_FLOW_SEG_HDR_IPV6.
         */
-       ICE_FLOW_SEG_HDR_IPV_OTHER      = 0x20000000,
+       ICE_FLOW_SEG_HDR_IPV_FRAG       = 0x40000000,
+       ICE_FLOW_SEG_HDR_IPV_OTHER      = 0x80000000,
 };
 
 /* These segements all have the same PTYPES, but are otherwise distinguished by
@@ -224,6 +228,9 @@ enum ice_flow_field {
        ICE_FLOW_FIELD_IDX_IPV4_DA,
        ICE_FLOW_FIELD_IDX_IPV6_SA,
        ICE_FLOW_FIELD_IDX_IPV6_DA,
+       ICE_FLOW_FIELD_IDX_IPV4_CHKSUM,
+       ICE_FLOW_FIELD_IDX_IPV4_ID,
+       ICE_FLOW_FIELD_IDX_IPV6_ID,
        ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA,
        ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA,
        ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA,
@@ -238,6 +245,9 @@ enum ice_flow_field {
        ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT,
        ICE_FLOW_FIELD_IDX_SCTP_DST_PORT,
        ICE_FLOW_FIELD_IDX_TCP_FLAGS,
+       ICE_FLOW_FIELD_IDX_TCP_CHKSUM,
+       ICE_FLOW_FIELD_IDX_UDP_CHKSUM,
+       ICE_FLOW_FIELD_IDX_SCTP_CHKSUM,
        /* ARP */
        ICE_FLOW_FIELD_IDX_ARP_SIP,
        ICE_FLOW_FIELD_IDX_ARP_DIP,
@@ -258,8 +268,10 @@ enum ice_flow_field {
        ICE_FLOW_FIELD_IDX_GTPU_EH_QFI,
        /* GTPU_UP */
        ICE_FLOW_FIELD_IDX_GTPU_UP_TEID,
+       ICE_FLOW_FIELD_IDX_GTPU_UP_QFI,
        /* GTPU_DWN */
        ICE_FLOW_FIELD_IDX_GTPU_DWN_TEID,
+       ICE_FLOW_FIELD_IDX_GTPU_DWN_QFI,
        /* PPPOE */
        ICE_FLOW_FIELD_IDX_PPPOE_SESS_ID,
        /* PFCP */
@@ -276,6 +288,8 @@ enum ice_flow_field {
        ICE_FLOW_FIELD_IDX_VXLAN_VNI,
        /* ECPRI_TP0 */
        ICE_FLOW_FIELD_IDX_ECPRI_TP0_PC_ID,
+       /* UDP_ECPRI_TP0 */
+       ICE_FLOW_FIELD_IDX_UDP_ECPRI_TP0_PC_ID,
         /* The total number of enums must not exceed 64 */
        ICE_FLOW_FIELD_IDX_MAX
 };
@@ -340,6 +354,10 @@ enum ice_rss_cfg_hdr_type {
        /* take inner headers as inputset for packet with outer ipv6. */
        ICE_RSS_INNER_HEADERS_W_OUTER_IPV6,
        /* take outer headers first then inner headers as inputset */
+       /* take inner as inputset for GTPoGRE with outer ipv4 + gre. */
+       ICE_RSS_INNER_HEADERS_W_OUTER_IPV4_GRE,
+       /* take inner as inputset for GTPoGRE with outer ipv6 + gre. */
+       ICE_RSS_INNER_HEADERS_W_OUTER_IPV6_GRE,
        ICE_RSS_ANY_HEADERS
 };
 
@@ -443,7 +461,7 @@ struct ice_flow_entry {
        u8 acts_cnt;
 };
 
-#define ICE_FLOW_ENTRY_HNDL(e) ((unsigned long)e)
+#define ICE_FLOW_ENTRY_HNDL(e) ((intptr_t)e)
 #define ICE_FLOW_ENTRY_PTR(h)  ((struct ice_flow_entry *)(h))
 
 struct ice_flow_prof {
@@ -550,6 +568,8 @@ ice_flow_set_fld_prefix(struct ice_flow_seg_info *seg, enum ice_flow_field fld,
 void
 ice_flow_add_fld_raw(struct ice_flow_seg_info *seg, u16 off, u8 len,
                     u16 val_loc, u16 mask_loc);
+enum ice_status ice_flow_rem_vsi_prof(struct ice_hw *hw, enum ice_block blk,
+                                     u16 vsi_handle, u64 prof_id);
 void ice_rem_vsi_rss_list(struct ice_hw *hw, u16 vsi_handle);
 enum ice_status ice_replay_rss_cfg(struct ice_hw *hw, u16 vsi_handle);
 enum ice_status