net/ice: fix race condition in Rx timestamp
[dpdk.git] / drivers / net / ice / base / ice_parser.h
index e310466..22c73b6 100644 (file)
@@ -58,6 +58,12 @@ struct ice_parser {
 enum ice_status ice_parser_create(struct ice_hw *hw, struct ice_parser **psr);
 void ice_parser_destroy(struct ice_parser *psr);
 void ice_parser_dvm_set(struct ice_parser *psr, bool on);
+enum ice_status ice_parser_vxlan_tunnel_set(struct ice_parser *psr,
+                                           u16 udp_port, bool on);
+enum ice_status ice_parser_geneve_tunnel_set(struct ice_parser *psr,
+                                            u16 udp_port, bool on);
+enum ice_status ice_parser_ecpri_tunnel_set(struct ice_parser *psr,
+                                           u16 udp_port, bool on);
 
 struct ice_parser_proto_off {
        u8 proto_id; /* hardware protocol ID */
@@ -80,4 +86,30 @@ struct ice_parser_result {
 enum ice_status ice_parser_run(struct ice_parser *psr, const u8 *pkt_buf,
                               int pkt_len, struct ice_parser_result *rslt);
 void ice_parser_result_dump(struct ice_hw *hw, struct ice_parser_result *rslt);
+
+struct ice_parser_fv {
+       u8 proto_id; /* hardware protocol ID */
+       u16 offset; /* offset from the start of the protocol header */
+       u16 spec; /* 16 bits pattern to match */
+       u16 msk; /* 16 bits pattern mask */
+};
+
+struct ice_parser_profile {
+       struct ice_parser_fv fv[48]; /* field vector array */
+       int fv_num; /* field vector number must <= 48 */
+       u16 flags; /* 16 bits key builder flag */
+       u16 flags_msk; /* key builder flag masker */
+       /* 1024 bits PTYPE bitmap */
+       ice_declare_bitmap(ptypes, ICE_FLOW_PTYPE_MAX);
+};
+
+enum ice_status ice_parser_profile_init(struct ice_parser_result *rslt,
+                                       const u8 *pkt_buf, const u8 *msk_buf,
+                                       int buf_len, enum ice_block blk,
+                                       bool prefix_match,
+                                       struct ice_parser_profile *prof);
+void ice_parser_profile_dump(struct ice_hw *hw,
+                            struct ice_parser_profile *prof);
+bool ice_check_ddp_support_proto_id(struct ice_hw *hw,
+                                   enum ice_prot_id proto_id);
 #endif /* _ICE_PARSER_H_ */