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        struct_group_attr(cfg, __packed,
  27                u8              queue_id;
  28                __le32          min_bw;
  29                __le32          max_bw;
  30#define BW_VALUE_UNIT_PERCENT1_100              (0x1UL << 29)
  31                u8              tsa;
  32                u8              pri_lvl;
  33                u8              bw_weight;
  34        );
  35        u8                      unused;
  36};
  37
  38struct bnxt_dscp2pri_entry {
  39        u8      dscp;
  40        u8      mask;
  41        u8      pri;
  42};
  43
  44#define BNXT_LLQ(q_profile)     \
  45        ((q_profile) ==         \
  46         QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE)
  47
  48#define BNXT_CNPQ(q_profile)    \
  49        ((q_profile) ==         \
  50         QUEUE_QPORTCFG_RESP_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP)
  51
  52#define HWRM_STRUCT_DATA_SUBTYPE_HOST_OPERATIONAL       0x0300
  53
  54void bnxt_dcb_init(struct bnxt *bp);
  55void bnxt_dcb_free(struct bnxt *bp);
  56#endif
  57