162306a36Sopenharmony_ci/* Broadcom NetXtreme-C/E network driver. 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * Copyright (c) 2014-2016 Broadcom Corporation 462306a36Sopenharmony_ci * Copyright (c) 2016-2018 Broadcom Limited 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify 762306a36Sopenharmony_ci * it under the terms of the GNU General Public License as published by 862306a36Sopenharmony_ci * the Free Software Foundation. 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef BNXT_DCB_H 1262306a36Sopenharmony_ci#define BNXT_DCB_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <net/dcbnl.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct bnxt_dcb { 1762306a36Sopenharmony_ci u8 max_tc; 1862306a36Sopenharmony_ci struct ieee_pfc *ieee_pfc; 1962306a36Sopenharmony_ci struct ieee_ets *ieee_ets; 2062306a36Sopenharmony_ci u8 dcbx_cap; 2162306a36Sopenharmony_ci u8 default_pri; 2262306a36Sopenharmony_ci}; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_cistruct bnxt_cos2bw_cfg { 2562306a36Sopenharmony_ci u8 pad[3]; 2662306a36Sopenharmony_ci struct_group_attr(cfg, __packed, 2762306a36Sopenharmony_ci u8 queue_id; 2862306a36Sopenharmony_ci __le32 min_bw; 2962306a36Sopenharmony_ci __le32 max_bw; 3062306a36Sopenharmony_ci u8 tsa; 3162306a36Sopenharmony_ci u8 pri_lvl; 3262306a36Sopenharmony_ci u8 bw_weight; 3362306a36Sopenharmony_ci ); 3462306a36Sopenharmony_ci/* for min_bw / max_bw */ 3562306a36Sopenharmony_ci#define BW_VALUE_UNIT_PERCENT1_100 (0x1UL << 29) 3662306a36Sopenharmony_ci u8 unused; 3762306a36Sopenharmony_ci}; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_cistruct bnxt_dscp2pri_entry { 4062306a36Sopenharmony_ci u8 dscp; 4162306a36Sopenharmony_ci u8 mask; 4262306a36Sopenharmony_ci u8 pri; 4362306a36Sopenharmony_ci}; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci#define BNXT_LLQ(q_profile) \ 4662306a36Sopenharmony_ci ((q_profile) == \ 4762306a36Sopenharmony_ci QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE) 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci#define BNXT_CNPQ(q_profile) \ 5062306a36Sopenharmony_ci ((q_profile) == \ 5162306a36Sopenharmony_ci QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP) 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci#define HWRM_STRUCT_DATA_SUBTYPE_HOST_OPERATIONAL 0x0300 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_civoid bnxt_dcb_init(struct bnxt *bp); 5662306a36Sopenharmony_civoid bnxt_dcb_free(struct bnxt *bp); 5762306a36Sopenharmony_ci#endif 58