42 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */2/* Copyright (c) 2015 - 2020 Intel Corporation */3#ifndef IRDMA_WS_H4#define IRDMA_WS_H5 6#include "osdep.h"7 8enum irdma_ws_node_type {9 WS_NODE_TYPE_PARENT,10 WS_NODE_TYPE_LEAF,11};12 13enum irdma_ws_match_type {14 WS_MATCH_TYPE_VSI,15 WS_MATCH_TYPE_TC,16};17 18struct 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 36struct irdma_sc_vsi;37int irdma_ws_add(struct irdma_sc_vsi *vsi, u8 user_pri);38void irdma_ws_remove(struct irdma_sc_vsi *vsi, u8 user_pri);39void irdma_ws_reset(struct irdma_sc_vsi *vsi);40 41#endif /* IRDMA_WS_H */42