0001
0002
0003 #ifndef IRDMA_WS_H
0004 #define IRDMA_WS_H
0005
0006 #include "osdep.h"
0007
0008 enum irdma_ws_node_type {
0009 WS_NODE_TYPE_PARENT,
0010 WS_NODE_TYPE_LEAF,
0011 };
0012
0013 enum irdma_ws_match_type {
0014 WS_MATCH_TYPE_VSI,
0015 WS_MATCH_TYPE_TC,
0016 };
0017
0018 struct irdma_ws_node {
0019 struct list_head siblings;
0020 struct list_head child_list_head;
0021 struct irdma_ws_node *parent;
0022 u64 lan_qs_handle;
0023 u32 l2_sched_node_id;
0024 u16 index;
0025 u16 qs_handle;
0026 u16 vsi_index;
0027 u8 traffic_class;
0028 u8 user_pri;
0029 u8 rel_bw;
0030 u8 abstraction_layer;
0031 u8 prio_type;
0032 bool type_leaf:1;
0033 bool enable:1;
0034 };
0035
0036 struct irdma_sc_vsi;
0037 int irdma_ws_add(struct irdma_sc_vsi *vsi, u8 user_pri);
0038 void irdma_ws_remove(struct irdma_sc_vsi *vsi, u8 user_pri);
0039 void irdma_ws_reset(struct irdma_sc_vsi *vsi);
0040
0041 #endif