Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
bnx2x_dcb.h File Reference
#include "bnx2x_hsi.h"

Go to the source code of this file.

Data Structures

struct  bnx2x_dcbx_app_params
 
struct  bnx2x_dcbx_cos_params
 
struct  bnx2x_dcbx_pg_params
 
struct  bnx2x_dcbx_pfc_params
 
struct  bnx2x_dcbx_port_params
 
struct  bnx2x_config_lldp_params
 
struct  bnx2x_admin_priority_app_table
 
struct  bnx2x_config_dcbx_params
 
struct  cos_entry_help_data
 
struct  cos_help_data
 
struct  pg_entry_help_data
 
struct  pg_help_data
 

Macros

#define LLFC_DRIVER_TRAFFIC_TYPE_MAX   3 /* NW, iSCSI, FCoE */
 
#define DCBX_COS_MAX_NUM_E2   DCBX_E2E3_MAX_NUM_COS
 
#define BNX2X_MAX_COS_SUPPORT   3
 
#define DCBX_COS_MAX_NUM_E3B0   BNX2X_MAX_COS_SUPPORT
 
#define DCBX_COS_MAX_NUM   BNX2X_MAX_COS_SUPPORT
 
#define BNX2X_DCBX_STRICT_INVALID   DCBX_COS_MAX_NUM
 
#define BNX2X_DCBX_STRICT_COS_HIGHEST   0
 
#define BNX2X_DCBX_STRICT_COS_NEXT_LOWER_PRI(sp)   ((sp) + 1)
 
#define BNX2X_DCBX_CONFIG_INV_VALUE   (0xFFFFFFFF)
 
#define BNX2X_DCBX_OVERWRITE_SETTINGS_DISABLE   0
 
#define BNX2X_DCBX_OVERWRITE_SETTINGS_ENABLE   1
 
#define BNX2X_DCBX_OVERWRITE_SETTINGS_INVALID   (BNX2X_DCBX_CONFIG_INV_VALUE)
 
#define BNX2X_IS_ETS_ENABLED(bp)
 
#define INVALID_TRAFFIC_TYPE_PRIORITY   (0xFFFFFFFF)
 
#define TRAFFIC_TYPE_ETH   0
 
#define TRAFFIC_TYPE_PORT   1
 
#define DCBX_CONFIG_MAX_APP_PROTOCOL   4
 
#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(bp)   ((bp)->dcbx_port_params.pfc.priority_non_pauseable_mask)
 
#define DCBX_PFC_PRI_PAUSE_MASK(bp)   ((u8)~DCBX_PFC_PRI_NON_PAUSE_MASK(bp))
 
#define DCBX_PFC_PRI_GET_PAUSE(bp, pg_pri)   ((pg_pri) & (DCBX_PFC_PRI_PAUSE_MASK(bp)))
 
#define DCBX_PFC_PRI_GET_NON_PAUSE(bp, pg_pri)   (DCBX_PFC_PRI_NON_PAUSE_MASK(bp) & (pg_pri))
 
#define DCBX_IS_PFC_PRI_SOME_PAUSE(bp, pg_pri)   (0 != DCBX_PFC_PRI_GET_PAUSE(bp, pg_pri))
 
#define IS_DCBX_PFC_PRI_ONLY_PAUSE(bp, pg_pri)   (pg_pri == DCBX_PFC_PRI_GET_PAUSE((bp), (pg_pri)))
 
#define IS_DCBX_PFC_PRI_ONLY_NON_PAUSE(bp, pg_pri)   ((pg_pri) == DCBX_PFC_PRI_GET_NON_PAUSE((bp), (pg_pri)))
 
#define IS_DCBX_PFC_PRI_MIX_PAUSE(bp, pg_pri)
 

Enumerations

enum  { DCBX_READ_LOCAL_MIB, DCBX_READ_REMOTE_MIB }
 
enum  { BNX2X_DCBX_STATE_NEG_RECEIVED = 0x1, BNX2X_DCBX_STATE_TX_PAUSED, BNX2X_DCBX_STATE_TX_RELEASED }
 

Functions

void bnx2x_dcbx_update (struct work_struct *work)
 
void bnx2x_dcbx_init_params (struct bnx2x *bp)
 
void bnx2x_dcbx_set_state (struct bnx2x *bp, bool dcb_on, u32 dcbx_enabled)
 
void bnx2x_dcbx_set_params (struct bnx2x *bp, u32 state)
 
void bnx2x_dcbx_pmf_update (struct bnx2x *bp)
 

Macro Definition Documentation

#define BNX2X_DCBX_CONFIG_INV_VALUE   (0xFFFFFFFF)

Definition at line 67 of file bnx2x_dcb.h.

#define BNX2X_DCBX_OVERWRITE_SETTINGS_DISABLE   0

Definition at line 68 of file bnx2x_dcb.h.

#define BNX2X_DCBX_OVERWRITE_SETTINGS_ENABLE   1

Definition at line 69 of file bnx2x_dcb.h.

#define BNX2X_DCBX_OVERWRITE_SETTINGS_INVALID   (BNX2X_DCBX_CONFIG_INV_VALUE)

Definition at line 70 of file bnx2x_dcb.h.

#define BNX2X_DCBX_STRICT_COS_HIGHEST   0

Definition at line 45 of file bnx2x_dcb.h.

#define BNX2X_DCBX_STRICT_COS_NEXT_LOWER_PRI (   sp)    ((sp) + 1)

Definition at line 46 of file bnx2x_dcb.h.

#define BNX2X_DCBX_STRICT_INVALID   DCBX_COS_MAX_NUM

Definition at line 44 of file bnx2x_dcb.h.

#define BNX2X_IS_ETS_ENABLED (   bp)
Value:
((bp)->dcb_state == BNX2X_DCB_STATE_ON &&\
(bp)->dcbx_port_params.ets.enabled)

Definition at line 71 of file bnx2x_dcb.h.

#define BNX2X_MAX_COS_SUPPORT   3

Definition at line 32 of file bnx2x_dcb.h.

#define DCBX_CONFIG_MAX_APP_PROTOCOL   4

Definition at line 93 of file bnx2x_dcb.h.

#define DCBX_COS_MAX_NUM   BNX2X_MAX_COS_SUPPORT

Definition at line 34 of file bnx2x_dcb.h.

#define DCBX_COS_MAX_NUM_E2   DCBX_E2E3_MAX_NUM_COS

Definition at line 30 of file bnx2x_dcb.h.

#define DCBX_COS_MAX_NUM_E3B0   BNX2X_MAX_COS_SUPPORT

Definition at line 33 of file bnx2x_dcb.h.

#define DCBX_ILLEGAL_PG   (0xFF)

Definition at line 151 of file bnx2x_dcb.h.

#define DCBX_INVALID_COS_BW   (0xFFFFFFFF)

Definition at line 154 of file bnx2x_dcb.h.

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

Definition at line 163 of file bnx2x_dcb.h.

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

Definition at line 161 of file bnx2x_dcb.h.

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

Definition at line 159 of file bnx2x_dcb.h.

#define DCBX_PFC_PRI_MASK   (0xFF)

Definition at line 152 of file bnx2x_dcb.h.

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

Definition at line 155 of file bnx2x_dcb.h.

#define DCBX_PFC_PRI_PAUSE_MASK (   bp)    ((u8)~DCBX_PFC_PRI_NON_PAUSE_MASK(bp))

Definition at line 157 of file bnx2x_dcb.h.

#define DCBX_STRICT_PRIORITY   (15)

Definition at line 153 of file bnx2x_dcb.h.

#define ETH_TYPE_FCOE   (0x8906)

Definition at line 127 of file bnx2x_dcb.h.

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

Definition at line 118 of file bnx2x_dcb.h.

#define INVALID_TRAFFIC_TYPE_PRIORITY   (0xFFFFFFFF)

Definition at line 86 of file bnx2x_dcb.h.

#define IS_DCBX_PFC_PRI_MIX_PAUSE (   bp,
  pg_pri 
)
Value:
(!(IS_DCBX_PFC_PRI_ONLY_NON_PAUSE((bp), (pg_pri)) || \
IS_DCBX_PFC_PRI_ONLY_PAUSE((bp), (pg_pri))))

Definition at line 169 of file bnx2x_dcb.h.

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

Definition at line 167 of file bnx2x_dcb.h.

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

Definition at line 165 of file bnx2x_dcb.h.

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

Definition at line 24 of file bnx2x_dcb.h.

#define PFC_BRB1_REG_HIGH_LLFC_HIGH_THRESHOLD   170

Definition at line 135 of file bnx2x_dcb.h.

#define PFC_BRB1_REG_HIGH_LLFC_LOW_THRESHOLD   130

Definition at line 134 of file bnx2x_dcb.h.

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

Definition at line 131 of file bnx2x_dcb.h.

#define PFC_VALUE_FRAME_SIZE   (512)

Definition at line 130 of file bnx2x_dcb.h.

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

Definition at line 120 of file bnx2x_dcb.h.

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

Definition at line 119 of file bnx2x_dcb.h.

#define TCP_PORT_ISCSI   (0xCBC)

Definition at line 128 of file bnx2x_dcb.h.

#define TRAFFIC_TYPE_ETH   0

Definition at line 88 of file bnx2x_dcb.h.

#define TRAFFIC_TYPE_PORT   1

Definition at line 89 of file bnx2x_dcb.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
DCBX_READ_LOCAL_MIB 
DCBX_READ_REMOTE_MIB 

Definition at line 122 of file bnx2x_dcb.h.

anonymous enum
Enumerator:
BNX2X_DCBX_STATE_NEG_RECEIVED 
BNX2X_DCBX_STATE_TX_PAUSED 
BNX2X_DCBX_STATE_TX_RELEASED 

Definition at line 191 of file bnx2x_dcb.h.

Function Documentation

void bnx2x_dcbx_init_params ( struct bnx2x bp)

Definition at line 917 of file bnx2x_dcb.c.

void bnx2x_dcbx_pmf_update ( struct bnx2x bp)

Definition at line 1838 of file bnx2x_dcb.c.

void bnx2x_dcbx_set_params ( struct bnx2x bp,
u32  state 
)

Definition at line 693 of file bnx2x_dcb.c.

void bnx2x_dcbx_set_state ( struct bnx2x bp,
bool  dcb_on,
u32  dcbx_enabled 
)

Definition at line 900 of file bnx2x_dcb.c.

void bnx2x_dcbx_update ( struct work_struct work)