1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2001-2020 Intel Corporation 3 */ 4 5 #ifndef _ICE_FLEX_PIPE_H_ 6 #define _ICE_FLEX_PIPE_H_ 7 8 #include "ice_type.h" 9 10 /* Package minimal version supported */ 11 #define ICE_PKG_SUPP_VER_MAJ 1 12 #define ICE_PKG_SUPP_VER_MNR 3 13 14 /* Package format version */ 15 #define ICE_PKG_FMT_VER_MAJ 1 16 #define ICE_PKG_FMT_VER_MNR 0 17 #define ICE_PKG_FMT_VER_UPD 0 18 #define ICE_PKG_FMT_VER_DFT 0 19 20 #define ICE_PKG_CNT 4 21 22 enum ice_status 23 ice_update_pkg(struct ice_hw *hw, struct ice_buf *bufs, u32 count); 24 enum ice_status 25 ice_acquire_change_lock(struct ice_hw *hw, enum ice_aq_res_access_type access); 26 void ice_release_change_lock(struct ice_hw *hw); 27 enum ice_status 28 ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u16 fv_idx, 29 u8 *prot, u16 *off); 30 enum ice_status 31 ice_find_label_value(struct ice_seg *ice_seg, char const *name, u32 type, 32 u16 *value); 33 void 34 ice_get_sw_fv_bitmap(struct ice_hw *hw, enum ice_prof_type type, 35 ice_bitmap_t *bm); 36 void 37 ice_init_prof_result_bm(struct ice_hw *hw); 38 enum ice_status 39 ice_get_sw_fv_list(struct ice_hw *hw, u8 *prot_ids, u16 ids_cnt, 40 ice_bitmap_t *bm, struct LIST_HEAD_TYPE *fv_list); 41 bool 42 ice_get_open_tunnel_port(struct ice_hw *hw, enum ice_tunnel_type type, 43 u16 *port); 44 enum ice_status 45 ice_create_tunnel(struct ice_hw *hw, enum ice_tunnel_type type, u16 port); 46 enum ice_status ice_destroy_tunnel(struct ice_hw *hw, u16 port, bool all); 47 bool ice_tunnel_port_in_use(struct ice_hw *hw, u16 port, u16 *index); 48 bool 49 ice_tunnel_get_type(struct ice_hw *hw, u16 port, enum ice_tunnel_type *type); 50 51 /* XLT2/VSI group functions */ 52 enum ice_status 53 ice_vsig_find_vsi(struct ice_hw *hw, enum ice_block blk, u16 vsi, u16 *vsig); 54 enum ice_status 55 ice_add_prof(struct ice_hw *hw, enum ice_block blk, u64 id, u8 ptypes[], 56 const struct ice_ptype_attributes *attr, u16 attr_cnt, 57 struct ice_fv_word *es, u16 *masks); 58 void ice_init_all_prof_masks(struct ice_hw *hw); 59 void ice_shutdown_all_prof_masks(struct ice_hw *hw); 60 struct ice_prof_map * 61 ice_search_prof_id(struct ice_hw *hw, enum ice_block blk, u64 id); 62 enum ice_status 63 ice_add_vsi_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u16 vsig); 64 enum ice_status 65 ice_add_prof_id_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u64 hdl); 66 enum ice_status 67 ice_rem_prof_id_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u64 hdl); 68 enum ice_status ice_init_pkg(struct ice_hw *hw, u8 *buff, u32 len); 69 enum ice_status 70 ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len); 71 enum ice_status ice_init_hw_tbls(struct ice_hw *hw); 72 void ice_free_seg(struct ice_hw *hw); 73 void ice_fill_blk_tbls(struct ice_hw *hw); 74 void ice_clear_hw_tbls(struct ice_hw *hw); 75 void ice_free_hw_tbls(struct ice_hw *hw); 76 enum ice_status 77 ice_rem_prof(struct ice_hw *hw, enum ice_block blk, u64 id); 78 79 enum ice_status 80 ice_set_key(u8 *key, u16 size, u8 *val, u8 *upd, u8 *dc, u8 *nm, u16 off, 81 u16 len); 82 #endif /* _ICE_FLEX_PIPE_H_ */ 83