Mention branches and keyring.
[releases.git] / hw / irdma / ws.h
1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2 /* Copyright (c) 2015 - 2020 Intel Corporation */
3 #ifndef IRDMA_WS_H
4 #define IRDMA_WS_H
5
6 #include "osdep.h"
7
8 enum irdma_ws_node_type {
9         WS_NODE_TYPE_PARENT,
10         WS_NODE_TYPE_LEAF,
11 };
12
13 enum irdma_ws_match_type {
14         WS_MATCH_TYPE_VSI,
15         WS_MATCH_TYPE_TC,
16 };
17
18 struct irdma_ws_node {
19         struct list_head siblings;
20         struct list_head child_list_head;
21         struct irdma_ws_node *parent;
22         u64 lan_qs_handle; /* opaque handle used by LAN */
23         u32 l2_sched_node_id;
24         u16 index;
25         u16 qs_handle;
26         u16 vsi_index;
27         u8 traffic_class;
28         u8 user_pri;
29         u8 rel_bw;
30         u8 abstraction_layer; /* used for splitting a TC */
31         u8 prio_type;
32         bool type_leaf:1;
33         bool enable:1;
34 };
35
36 struct irdma_sc_vsi;
37 int irdma_ws_add(struct irdma_sc_vsi *vsi, u8 user_pri);
38 void irdma_ws_remove(struct irdma_sc_vsi *vsi, u8 user_pri);
39 void irdma_ws_reset(struct irdma_sc_vsi *vsi);
40
41 #endif /* IRDMA_WS_H */