FreeBSD kernel BXE device code
bxe_dcb.h File Reference
#include <sys/cdefs.h>
Include dependency graph for bxe_dcb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  bxe_dcbx_app_params
 
struct  bxe_dcbx_cos_params
 
struct  bxe_dcbx_pg_params
 
struct  bxe_dcbx_pfc_params
 
struct  bxe_dcbx_port_params
 
struct  bxe_config_lldp_params
 
struct  bxe_lldp_params_get
 
struct  bxe_admin_priority_app_table
 
struct  bxe_config_dcbx_params
 
struct  bxe_dcbx_params_get
 
struct  bxe_dcbx_params_set
 
struct  cos_entry_help_data
 
struct  cos_help_data
 
struct  pg_entry_help_data
 
struct  pg_help_data
 

Macros

#define BXE_DCB_H
 
#define LLFC_DRIVER_TRAFFIC_TYPE_MAX   3 /* NW, iSCSI, FCoE */
 
#define DCBX_COS_MAX_NUM_E2   DCBX_E2E3_MAX_NUM_COS
 
#define BXE_MAX_COS_SUPPORT   3
 
#define DCBX_COS_MAX_NUM_E3B0   BXE_MAX_COS_SUPPORT
 
#define DCBX_COS_MAX_NUM   BXE_MAX_COS_SUPPORT
 
#define BXE_DCBX_STRICT_INVALID   DCBX_COS_MAX_NUM
 
#define BXE_DCBX_STRICT_COS_HIGHEST   0
 
#define BXE_DCBX_STRICT_COS_NEXT_LOWER_PRI(sp)   ((sp) + 1)
 
#define BXE_DCBX_CONFIG_INV_VALUE   (0xFFFFFFFF)
 
#define BXE_DCBX_OVERWRITE_SETTINGS_DISABLE   0
 
#define BXE_DCBX_OVERWRITE_SETTINGS_ENABLE   1
 
#define BXE_DCBX_OVERWRITE_SETTINGS_INVALID   (BXE_DCBX_CONFIG_INV_VALUE)
 
#define BXE_IS_ETS_ENABLED(sc)
 
#define LLDP_PARAMS_VER_NUM   2
 
#define LLDP_TX_ONLY   0x01
 
#define LLDP_RX_ONLY   0x02
 
#define LLDP_TX_RX   0x03
 
#define LLDP_DISABLED   0x04
 
#define INVALID_TRAFFIC_TYPE_PRIORITY   (0xFFFFFFFF)
 
#define TRAFFIC_TYPE_ETH   0
 
#define TRAFFIC_TYPE_PORT   1
 
#define DCBX_CONFIG_MAX_APP_PROTOCOL   4
 
#define BXE_DCBX_CURRENT_STATE_IS_SYNC   (1 << 0)
 
#define BXE_PFC_IS_CURRENTLY_OPERATIONAL   (1 << 1)
 
#define BXE_ETS_IS_CURRENTLY_OPERATIONAL   (1 << 2)
 
#define BXE_PRIORITY_TAGGING_IS_CURRENTLY_OPERATIONAL   (1 << 3)
 
#define GET_FLAGS(flags, bits)   ((flags) & (bits))
 
#define SET_FLAGS(flags, bits)   ((flags) |= (bits))
 
#define RESET_FLAGS(flags, bits)   ((flags) &= ~(bits))
 
#define ETH_TYPE_FCOE   (0x8906)
 
#define TCP_PORT_ISCSI   (0xCBC)
 
#define PFC_VALUE_FRAME_SIZE   (512)
 
#define PFC_QUANTA_IN_NANOSEC_FROM_SPEED_MEGA(mega_speed)    ((1000 * PFC_VALUE_FRAME_SIZE)/(mega_speed))
 
#define PFC_BRB1_REG_HIGH_LLFC_LOW_THRESHOLD   130
 
#define PFC_BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD   170
 
#define DCBX_ILLEGAL_PG   (0xFF)
 
#define DCBX_PFC_PRI_MASK   (0xFF)
 
#define DCBX_STRICT_PRIORITY   (15)
 
#define DCBX_INVALID_COS_BW   (0xFFFFFFFF)
 
#define DCBX_PFC_PRI_NON_PAUSE_MASK(sc)    ((sc)->dcbx_port_params.pfc.priority_non_pauseable_mask)
 
#define DCBX_PFC_PRI_PAUSE_MASK(sc)    ((uint8_t)~DCBX_PFC_PRI_NON_PAUSE_MASK(sc))
 
#define DCBX_PFC_PRI_GET_PAUSE(sc, pg_pri)    ((pg_pri) & (DCBX_PFC_PRI_PAUSE_MASK(sc)))
 
#define DCBX_PFC_PRI_GET_NON_PAUSE(sc, pg_pri)    (DCBX_PFC_PRI_NON_PAUSE_MASK(sc) & (pg_pri))
 
#define DCBX_IS_PFC_PRI_SOME_PAUSE(sc, pg_pri)    (0 != DCBX_PFC_PRI_GET_PAUSE(sc, pg_pri))
 
#define IS_DCBX_PFC_PRI_ONLY_PAUSE(sc, pg_pri)    (pg_pri == DCBX_PFC_PRI_GET_PAUSE((sc), (pg_pri)))
 
#define IS_DCBX_PFC_PRI_ONLY_NON_PAUSE(sc, pg_pri)    ((pg_pri) == DCBX_PFC_PRI_GET_NON_PAUSE((sc), (pg_pri)))
 
#define IS_DCBX_PFC_PRI_MIX_PAUSE(sc, pg_pri)
 

Enumerations

enum  { DCBX_READ_LOCAL_MIB , DCBX_READ_REMOTE_MIB }
 
enum  { BXE_DCBX_STATE_NEG_RECEIVED = 0x1 , BXE_DCBX_STATE_TX_PAUSED , BXE_DCBX_STATE_TX_RELEASED }
 

Functions

 __FBSDID ("$FreeBSD$")
 
void bxe_dcbx_init_params (struct bxe_softc *sc)
 
void bxe_dcbx_set_state (struct bxe_softc *sc, uint8_t dcb_on, uint32_t dcbx_enabled)
 
int bxe_dcb_get_lldp_params_ioctl (struct bxe_softc *sc, void *uaddr)
 
int bxe_dcb_get_dcbx_params_ioctl (struct bxe_softc *sc, void *uaddr)
 
int bxe_dcb_set_dcbx_params_ioctl (struct bxe_softc *sc, void *uaddr)
 
void bxe_dcbx_set_params (struct bxe_softc *sc, uint32_t state)
 
void bxe_dcbx_pmf_update (struct bxe_softc *sc)
 

Macro Definition Documentation

◆ BXE_DCB_H

#define BXE_DCB_H

Definition at line 33 of file bxe_dcb.h.

◆ BXE_DCBX_CONFIG_INV_VALUE

#define BXE_DCBX_CONFIG_INV_VALUE   (0xFFFFFFFF)

Definition at line 78 of file bxe_dcb.h.

◆ BXE_DCBX_CURRENT_STATE_IS_SYNC

#define BXE_DCBX_CURRENT_STATE_IS_SYNC   (1 << 0)

Definition at line 157 of file bxe_dcb.h.

◆ BXE_DCBX_OVERWRITE_SETTINGS_DISABLE

#define BXE_DCBX_OVERWRITE_SETTINGS_DISABLE   0

Definition at line 79 of file bxe_dcb.h.

◆ BXE_DCBX_OVERWRITE_SETTINGS_ENABLE

#define BXE_DCBX_OVERWRITE_SETTINGS_ENABLE   1

Definition at line 80 of file bxe_dcb.h.

◆ BXE_DCBX_OVERWRITE_SETTINGS_INVALID

#define BXE_DCBX_OVERWRITE_SETTINGS_INVALID   (BXE_DCBX_CONFIG_INV_VALUE)

Definition at line 81 of file bxe_dcb.h.

◆ BXE_DCBX_STRICT_COS_HIGHEST

#define BXE_DCBX_STRICT_COS_HIGHEST   0

Definition at line 56 of file bxe_dcb.h.

◆ BXE_DCBX_STRICT_COS_NEXT_LOWER_PRI

#define BXE_DCBX_STRICT_COS_NEXT_LOWER_PRI (   sp)    ((sp) + 1)

Definition at line 57 of file bxe_dcb.h.

◆ BXE_DCBX_STRICT_INVALID

#define BXE_DCBX_STRICT_INVALID   DCBX_COS_MAX_NUM

Definition at line 55 of file bxe_dcb.h.

◆ BXE_ETS_IS_CURRENTLY_OPERATIONAL

#define BXE_ETS_IS_CURRENTLY_OPERATIONAL   (1 << 2)

Definition at line 159 of file bxe_dcb.h.

◆ BXE_IS_ETS_ENABLED

#define BXE_IS_ETS_ENABLED (   sc)
Value:
((sc)->dcb_state == BXE_DCB_STATE_ON && \
(sc)->dcbx_port_params.ets.enabled)
#define BXE_DCB_STATE_ON
Definition: bxe.h:1733

Definition at line 82 of file bxe_dcb.h.

◆ BXE_MAX_COS_SUPPORT

#define BXE_MAX_COS_SUPPORT   3

Definition at line 43 of file bxe_dcb.h.

◆ BXE_PFC_IS_CURRENTLY_OPERATIONAL

#define BXE_PFC_IS_CURRENTLY_OPERATIONAL   (1 << 1)

Definition at line 158 of file bxe_dcb.h.

◆ BXE_PRIORITY_TAGGING_IS_CURRENTLY_OPERATIONAL

#define BXE_PRIORITY_TAGGING_IS_CURRENTLY_OPERATIONAL   (1 << 3)

Definition at line 160 of file bxe_dcb.h.

◆ DCBX_CONFIG_MAX_APP_PROTOCOL

#define DCBX_CONFIG_MAX_APP_PROTOCOL   4

Definition at line 122 of file bxe_dcb.h.

◆ DCBX_COS_MAX_NUM

#define DCBX_COS_MAX_NUM   BXE_MAX_COS_SUPPORT

Definition at line 45 of file bxe_dcb.h.

◆ DCBX_COS_MAX_NUM_E2

#define DCBX_COS_MAX_NUM_E2   DCBX_E2E3_MAX_NUM_COS

Definition at line 41 of file bxe_dcb.h.

◆ DCBX_COS_MAX_NUM_E3B0

#define DCBX_COS_MAX_NUM_E3B0   BXE_MAX_COS_SUPPORT

Definition at line 44 of file bxe_dcb.h.

◆ DCBX_ILLEGAL_PG

#define DCBX_ILLEGAL_PG   (0xFF)

Definition at line 230 of file bxe_dcb.h.

◆ DCBX_INVALID_COS_BW

#define DCBX_INVALID_COS_BW   (0xFFFFFFFF)

Definition at line 233 of file bxe_dcb.h.

◆ DCBX_IS_PFC_PRI_SOME_PAUSE

#define DCBX_IS_PFC_PRI_SOME_PAUSE (   sc,
  pg_pri 
)     (0 != DCBX_PFC_PRI_GET_PAUSE(sc, pg_pri))

Definition at line 242 of file bxe_dcb.h.

◆ DCBX_PFC_PRI_GET_NON_PAUSE

#define DCBX_PFC_PRI_GET_NON_PAUSE (   sc,
  pg_pri 
)     (DCBX_PFC_PRI_NON_PAUSE_MASK(sc) & (pg_pri))

Definition at line 240 of file bxe_dcb.h.

◆ DCBX_PFC_PRI_GET_PAUSE

#define DCBX_PFC_PRI_GET_PAUSE (   sc,
  pg_pri 
)     ((pg_pri) & (DCBX_PFC_PRI_PAUSE_MASK(sc)))

Definition at line 238 of file bxe_dcb.h.

◆ DCBX_PFC_PRI_MASK

#define DCBX_PFC_PRI_MASK   (0xFF)

Definition at line 231 of file bxe_dcb.h.

◆ DCBX_PFC_PRI_NON_PAUSE_MASK

#define DCBX_PFC_PRI_NON_PAUSE_MASK (   sc)     ((sc)->dcbx_port_params.pfc.priority_non_pauseable_mask)

Definition at line 234 of file bxe_dcb.h.

◆ DCBX_PFC_PRI_PAUSE_MASK

#define DCBX_PFC_PRI_PAUSE_MASK (   sc)     ((uint8_t)~DCBX_PFC_PRI_NON_PAUSE_MASK(sc))

Definition at line 236 of file bxe_dcb.h.

◆ DCBX_STRICT_PRIORITY

#define DCBX_STRICT_PRIORITY   (15)

Definition at line 232 of file bxe_dcb.h.

◆ ETH_TYPE_FCOE

#define ETH_TYPE_FCOE   (0x8906)

Definition at line 208 of file bxe_dcb.h.

◆ GET_FLAGS

#define GET_FLAGS (   flags,
  bits 
)    ((flags) & (bits))

Definition at line 199 of file bxe_dcb.h.

◆ INVALID_TRAFFIC_TYPE_PRIORITY

#define INVALID_TRAFFIC_TYPE_PRIORITY   (0xFFFFFFFF)

Definition at line 115 of file bxe_dcb.h.

◆ IS_DCBX_PFC_PRI_MIX_PAUSE

#define IS_DCBX_PFC_PRI_MIX_PAUSE (   sc,
  pg_pri 
)
Value:
(!(IS_DCBX_PFC_PRI_ONLY_NON_PAUSE((sc), (pg_pri)) || \
IS_DCBX_PFC_PRI_ONLY_PAUSE((sc), (pg_pri))))
#define IS_DCBX_PFC_PRI_ONLY_NON_PAUSE(sc, pg_pri)
Definition: bxe_dcb.h:246

Definition at line 248 of file bxe_dcb.h.

◆ IS_DCBX_PFC_PRI_ONLY_NON_PAUSE

#define IS_DCBX_PFC_PRI_ONLY_NON_PAUSE (   sc,
  pg_pri 
)     ((pg_pri) == DCBX_PFC_PRI_GET_NON_PAUSE((sc), (pg_pri)))

Definition at line 246 of file bxe_dcb.h.

◆ IS_DCBX_PFC_PRI_ONLY_PAUSE

#define IS_DCBX_PFC_PRI_ONLY_PAUSE (   sc,
  pg_pri 
)     (pg_pri == DCBX_PFC_PRI_GET_PAUSE((sc), (pg_pri)))

Definition at line 244 of file bxe_dcb.h.

◆ LLDP_DISABLED

#define LLDP_DISABLED   0x04

Definition at line 105 of file bxe_dcb.h.

◆ LLDP_PARAMS_VER_NUM

#define LLDP_PARAMS_VER_NUM   2

Definition at line 97 of file bxe_dcb.h.

◆ LLDP_RX_ONLY

#define LLDP_RX_ONLY   0x02

Definition at line 103 of file bxe_dcb.h.

◆ LLDP_TX_ONLY

#define LLDP_TX_ONLY   0x01

Definition at line 102 of file bxe_dcb.h.

◆ LLDP_TX_RX

#define LLDP_TX_RX   0x03

Definition at line 104 of file bxe_dcb.h.

◆ LLFC_DRIVER_TRAFFIC_TYPE_MAX

#define LLFC_DRIVER_TRAFFIC_TYPE_MAX   3 /* NW, iSCSI, FCoE */

Definition at line 35 of file bxe_dcb.h.

◆ PFC_BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD

#define PFC_BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD   170

Definition at line 216 of file bxe_dcb.h.

◆ PFC_BRB1_REG_HIGH_LLFC_LOW_THRESHOLD

#define PFC_BRB1_REG_HIGH_LLFC_LOW_THRESHOLD   130

Definition at line 215 of file bxe_dcb.h.

◆ PFC_QUANTA_IN_NANOSEC_FROM_SPEED_MEGA

#define PFC_QUANTA_IN_NANOSEC_FROM_SPEED_MEGA (   mega_speed)     ((1000 * PFC_VALUE_FRAME_SIZE)/(mega_speed))

Definition at line 212 of file bxe_dcb.h.

◆ PFC_VALUE_FRAME_SIZE

#define PFC_VALUE_FRAME_SIZE   (512)

Definition at line 211 of file bxe_dcb.h.

◆ RESET_FLAGS

#define RESET_FLAGS (   flags,
  bits 
)    ((flags) &= ~(bits))

Definition at line 201 of file bxe_dcb.h.

◆ SET_FLAGS

#define SET_FLAGS (   flags,
  bits 
)    ((flags) |= (bits))

Definition at line 200 of file bxe_dcb.h.

◆ TCP_PORT_ISCSI

#define TCP_PORT_ISCSI   (0xCBC)

Definition at line 209 of file bxe_dcb.h.

◆ TRAFFIC_TYPE_ETH

#define TRAFFIC_TYPE_ETH   0

Definition at line 117 of file bxe_dcb.h.

◆ TRAFFIC_TYPE_PORT

#define TRAFFIC_TYPE_PORT   1

Definition at line 118 of file bxe_dcb.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DCBX_READ_LOCAL_MIB 
DCBX_READ_REMOTE_MIB 

Definition at line 203 of file bxe_dcb.h.

◆ anonymous enum

anonymous enum
Enumerator
BXE_DCBX_STATE_NEG_RECEIVED 
BXE_DCBX_STATE_TX_PAUSED 
BXE_DCBX_STATE_TX_RELEASED 

Definition at line 272 of file bxe_dcb.h.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ bxe_dcb_get_dcbx_params_ioctl()

int bxe_dcb_get_dcbx_params_ioctl ( struct bxe_softc sc,
void *  uaddr 
)

◆ bxe_dcb_get_lldp_params_ioctl()

int bxe_dcb_get_lldp_params_ioctl ( struct bxe_softc sc,
void *  uaddr 
)

◆ bxe_dcb_set_dcbx_params_ioctl()

int bxe_dcb_set_dcbx_params_ioctl ( struct bxe_softc sc,
void *  uaddr 
)

◆ bxe_dcbx_init_params()

void bxe_dcbx_init_params ( struct bxe_softc sc)

Referenced by bxe_attach().

Here is the caller graph for this function:

◆ bxe_dcbx_pmf_update()

void bxe_dcbx_pmf_update ( struct bxe_softc sc)

◆ bxe_dcbx_set_params()

void bxe_dcbx_set_params ( struct bxe_softc sc,
uint32_t  state 
)

◆ bxe_dcbx_set_state()

void bxe_dcbx_set_state ( struct bxe_softc sc,
uint8_t  dcb_on,
uint32_t  dcbx_enabled 
)

Definition at line 15773 of file bxe.c.

References BLOGD, BXE_DCBX_ENABLED_INVALID, BXE_DCBX_ENABLED_OFF, BXE_DCBX_ENABLED_ON_NEG_OFF, BXE_DCBX_ENABLED_ON_NEG_ON, CHIP_IS_E1x, DBG_LOAD, bxe_softc::dcb_state, and bxe_softc::dcbx_enabled.

Referenced by bxe_attach().

Here is the caller graph for this function: