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