Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB */
0002 /* Copyright (c) 2015 - 2020 Intel Corporation */
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; /* opaque handle used by LAN */
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; /* used for splitting a TC */
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 /* IRDMA_WS_H */