1*4882a593Smuzhiyun /* Broadcom NetXtreme-C/E network driver. 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * Copyright (c) 2014-2016 Broadcom Corporation 4*4882a593Smuzhiyun * Copyright (c) 2016-2018 Broadcom Limited 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify 7*4882a593Smuzhiyun * it under the terms of the GNU General Public License as published by 8*4882a593Smuzhiyun * the Free Software Foundation. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef BNXT_DCB_H 12*4882a593Smuzhiyun #define BNXT_DCB_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <net/dcbnl.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun struct bnxt_dcb { 17*4882a593Smuzhiyun u8 max_tc; 18*4882a593Smuzhiyun struct ieee_pfc *ieee_pfc; 19*4882a593Smuzhiyun struct ieee_ets *ieee_ets; 20*4882a593Smuzhiyun u8 dcbx_cap; 21*4882a593Smuzhiyun u8 default_pri; 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun struct bnxt_cos2bw_cfg { 25*4882a593Smuzhiyun u8 pad[3]; 26*4882a593Smuzhiyun u8 queue_id; 27*4882a593Smuzhiyun __le32 min_bw; 28*4882a593Smuzhiyun __le32 max_bw; 29*4882a593Smuzhiyun #define BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 30*4882a593Smuzhiyun u8 tsa; 31*4882a593Smuzhiyun u8 pri_lvl; 32*4882a593Smuzhiyun u8 bw_weight; 33*4882a593Smuzhiyun u8 unused; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun struct bnxt_dscp2pri_entry { 37*4882a593Smuzhiyun u8 dscp; 38*4882a593Smuzhiyun u8 mask; 39*4882a593Smuzhiyun u8 pri; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #define BNXT_LLQ(q_profile) \ 43*4882a593Smuzhiyun ((q_profile) == \ 44*4882a593Smuzhiyun QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE) 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #define BNXT_CNPQ(q_profile) \ 47*4882a593Smuzhiyun ((q_profile) == \ 48*4882a593Smuzhiyun QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP) 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #define HWRM_STRUCT_DATA_SUBTYPE_HOST_OPERATIONAL 0x0300 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun void bnxt_dcb_init(struct bnxt *bp); 53*4882a593Smuzhiyun void bnxt_dcb_free(struct bnxt *bp); 54*4882a593Smuzhiyun #endif 55