openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

fcmap.h (24277B)


      1 /*
      2  * 
      3  * 
      4  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      5  * 
      6  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      7  *
      8  */
      9 
     10 #ifndef __BCM_FCMAP_H__
     11 #define __BCM_FCMAP_H__
     12 
     13 #if defined(INCLUDE_FCMAP)
     14 
     15 #include <bcm/types.h>
     16 #include <bfcmap.h>
     17 
     18 typedef _shr_bfcmap_dev_addr_t bcm_fcmap_dev_addr_t;
     19 
     20 typedef enum bcm_fcmap_dir_e {
     21     BCM_FCMAP_DIR_EGRESS = _SHR_BFCMAP_DIR_EGRESS, 
     22     BCM_FCMAP_DIR_INGRESS = _SHR_BFCMAP_DIR_INGRESS 
     23 } bcm_fcmap_dir_t;
     24 
     25 typedef enum bcm_fcmap_core_e {
     26     BCM_FCMAP_CORE_BCM84756 = _SHR_BFCMAP_CORE_BCM84756, 
     27     BCM_FCMAP_CORE_BCM88060_A0 = _SHR_BFCMAP_CORE_BCM88060_A0, 
     28     BCM_FCMAP_CORE_BCM88061_A0 = _SHR_BFCMAP_CORE_BCM88061_A0 
     29 } bcm_fcmap_core_t;
     30 
     31 typedef enum bcm_fcmap_port_mode_e {
     32     BCM_FCMAP_FCOE_TO_FC_MODE = _SHR_BFCMAP_FCOE_TO_FC_MODE, 
     33     BCM_FCMAP_FCOE_TO_FCOE_MODE = _SHR_BFCMAP_FCOE_TO_FCOE_MODE 
     34 } bcm_fcmap_port_mode_t;
     35 
     36 typedef enum bcm_fcmap_port_speed_e {
     37     BCM_FCMAP_PORT_SPEED_AN = _SHR_BFCMAP_PORT_SPEED_AN, 
     38     BCM_FCMAP_PORT_SPEED_2GBPS = _SHR_BFCMAP_PORT_SPEED_2GBPS, 
     39     BCM_FCMAP_PORT_SPEED_4GBPS = _SHR_BFCMAP_PORT_SPEED_4GBPS, 
     40     BCM_FCMAP_PORT_SPEED_8GBPS = _SHR_BFCMAP_PORT_SPEED_8GBPS, 
     41     BCM_FCMAP_PORT_SPEED_16GBPS = _SHR_BFCMAP_PORT_SPEED_16GBPS, 
     42     BCM_FCMAP_PORT_SPEED_32GBPS = _SHR_BFCMAP_PORT_SPEED_32GBPS, 
     43     BCM_FCMAP_PORT_SPEED_AN_2GBPS = _SHR_BFCMAP_PORT_SPEED_AN_2GBPS, 
     44     BCM_FCMAP_PORT_SPEED_AN_4GBPS = _SHR_BFCMAP_PORT_SPEED_AN_4GBPS, 
     45     BCM_FCMAP_PORT_SPEED_AN_8GBPS = _SHR_BFCMAP_PORT_SPEED_AN_8GBPS, 
     46     BCM_FCMAP_PORT_SPEED_AN_16GBPS = _SHR_BFCMAP_PORT_SPEED_AN_16GBPS, 
     47     BCM_FCMAP_PORT_SPEED_AN_32GBPS = _SHR_BFCMAP_PORT_SPEED_AN_32GBPS, 
     48     BCM_FCMAP_PORT_SPEED_MAX_COUNT = _SHR_BFCMAP_PORT_SPEED_MAX_COUNT 
     49 } bcm_fcmap_port_speed_t;
     50 
     51 typedef enum bcm_fcmap_port_state_e {
     52     BCM_FCMAP_PORT_STATE_INIT = _SHR_BFCMAP_PORT_STATE_INIT, 
     53     BCM_FCMAP_PORT_STATE_RESET = _SHR_BFCMAP_PORT_STATE_RESET, 
     54     BCM_FCMAP_PORT_STATE_ACTIVE = _SHR_BFCMAP_PORT_STATE_ACTIVE, 
     55     BCM_FCMAP_PORT_STATE_LINKDOWN = _SHR_BFCMAP_PORT_STATE_LINKDOWN, 
     56     BCM_FCMAP_PORT_STATE_DISABLE = _SHR_BFCMAP_PORT_STATE_DISABLE, 
     57     BCM_FCMAP_PORT_STATE_MAX_COUNT = _SHR_BFCMAP_PORT_STATE_MAX_COUNT 
     58 } bcm_fcmap_port_state_t;
     59 
     60 typedef enum bcm_fcmap_encap_mac_address_e {
     61     BCM_FCMAP_ENCAP_FCOE_FPMA = _SHR_BFCMAP_ENCAP_FCOE_FPMA, 
     62     BCM_FCMAP_ENCAP_FCOE_ETH_ADDRESS_NULL = _SHR_BFCMAP_ENCAP_FCOE_ETH_ADDRESS_NULL, 
     63     BCM_FCMAP_ENCAP_FCOE_ETH_ADDRESS_USER = _SHR_BFCMAP_ENCAP_FCOE_ETH_ADDRESS_USER 
     64 } bcm_fcmap_encap_mac_address_t;
     65 
     66 typedef enum bcm_fcmap_8g_fw_on_active_e {
     67     BCM_FCMAP_8G_FW_ON_ACTIVE_ARBFF = _SHR_BFCMAP_8G_FW_ON_ACTIVE_ARBFF, 
     68     BCM_FCMAP_8G_FW_ON_ACTIVE_IDLE = _SHR_BFCMAP_8G_FW_ON_ACTIVE_IDLE 
     69 } bcm_fcmap_8g_fw_on_active_t;
     70 
     71 typedef enum bcm_fcmap_map_table_input_e {
     72     BCM_FCMAP_MAP_TABLE_INPUT_VID = _SHR_BFCMAP_MAP_TABLE_INPUT_VID, 
     73     BCM_FCMAP_MAP_TABLE_INPUT_VFID = _SHR_BFCMAP_MAP_TABLE_INPUT_VFID 
     74 } bcm_fcmap_map_table_input_t;
     75 
     76 typedef enum bcm_fcmap_fc_crc_mode_e {
     77     BCM_FCMAP_FC_CRC_MODE_NO_CRC_CHECK = _SHR_BFCMAP_FC_CRC_MODE_NO_CRC_CHECK, 
     78     BCM_FCMAP_FC_CRC_MODE_NORMAL = _SHR_BFCMAP_FC_CRC_MODE_NORMAL 
     79 } bcm_fcmap_fc_crc_mode_t;
     80 
     81 typedef enum bcm_fcmap_vfthdr_proc_mode_e {
     82     BCM_FCMAP_VFTHDR_PRESERVE = _SHR_BFCMAP_VFTHDR_PRESERVE, 
     83     BCM_FCMAP_VFTHDR_INSERT = _SHR_BFCMAP_VFTHDR_INSERT, 
     84     BCM_FCMAP_VFTHDR_DELETE = _SHR_BFCMAP_VFTHDR_DELETE 
     85 } bcm_fcmap_vfthdr_proc_mode_t;
     86 
     87 typedef enum bcm_fcmap_vlantag_proc_mode_e {
     88     BCM_FCMAP_VLANTAG_PRESERVE = _SHR_BFCMAP_VLANTAG_PRESERVE, 
     89     BCM_FCMAP_VLANTAG_INSERT = _SHR_BFCMAP_VLANTAG_INSERT, 
     90     BCM_FCMAP_VLANTAG_DELETE = _SHR_BFCMAP_VLANTAG_DELETE 
     91 } bcm_fcmap_vlantag_proc_mode_t;
     92 
     93 typedef enum bcm_fcmap_vfid_mapsrc_e {
     94     BCM_FCMAP_VFID_MACSRC_PASSTHRU = _SHR_BFCMAP_VFID_MACSRC_PASSTHRU, 
     95     BCM_FCMAP_VFID_MACSRC_PORT_DEFAULT = _SHR_BFCMAP_VFID_MACSRC_PORT_DEFAULT, 
     96     BCM_FCMAP_VFID_MACSRC_VID = _SHR_BFCMAP_VFID_MACSRC_VID, 
     97     BCM_FCMAP_VFID_MACSRC_MAPPER = _SHR_BFCMAP_VFID_MACSRC_MAPPER, 
     98     BCM_FCMAP_VFID_MACSRC_DISABLE = _SHR_BFCMAP_VFID_MACSRC_DISABLE 
     99 } bcm_fcmap_vfid_mapsrc_t;
    100 
    101 typedef enum bcm_fcmap_vid_mapsrc_e {
    102     BCM_FCMAP_VID_MACSRC_PASSTHRU = _SHR_BFCMAP_VID_MACSRC_PASSTHRU, 
    103     BCM_FCMAP_VID_MACSRC_PORT_DEFAULT = _SHR_BFCMAP_VID_MACSRC_PORT_DEFAULT, 
    104     BCM_FCMAP_VID_MACSRC_VFID = _SHR_BFCMAP_VID_MACSRC_VFID, 
    105     BCM_FCMAP_VID_MACSRC_MAPPER = _SHR_BFCMAP_VID_MACSRC_MAPPER 
    106 } bcm_fcmap_vid_mapsrc_t;
    107 
    108 typedef enum bcm_fcmap_vlan_pri_map_mode_e {
    109     BCM_FCMAP_VLAN_PRI_MAP_MODE_PORT_DEFAULT = _SHR_BFCMAP_VLAN_PRI_MAP_MODE_PORT_DEFAULT, 
    110     BCM_FCMAP_VLAN_PRI_MAP_MODE_PASSTHRU = _SHR_BFCMAP_VLAN_PRI_MAP_MODE_PASSTHRU 
    111 } bcm_fcmap_vlan_pri_map_mode_t;
    112 
    113 typedef enum bcm_fcmap_hopcnt_check_mode_e {
    114     BCM_FCMAP_HOPCNT_CHECK_MODE_NO_CHK = _SHR_BFCMAP_HOPCNT_CHECK_MODE_NO_CHK, 
    115     BCM_FCMAP_HOPCNT_CHECK_MODE_FAIL_DROP = _SHR_BFCMAP_HOPCNT_CHECK_MODE_FAIL_DROP, 
    116     BCM_FCMAP_HOPCNT_CHECK_MODE_FAIL_EOFNI = _SHR_BFCMAP_HOPCNT_CHECK_MODE_FAIL_EOFNI 
    117 } bcm_fcmap_hopcnt_check_mode_t;
    118 
    119 /* link fault trigger. */
    120 typedef enum bcm_fcmap_lf_tr_e {
    121     BCM_FCMAP_LF_TR_NONE = _SHR_BFCMAP_LF_TR_NONE, 
    122     BCM_FCMAP_LF_TR_PORT_INIT = _SHR_BFCMAP_LF_TR_PORT_INIT, 
    123     BCM_FCMAP_LF_TR_OPEN_LINK = _SHR_BFCMAP_LF_TR_OPEN_LINK, 
    124     BCM_FCMAP_LF_TR_LINK_FAILURE = _SHR_BFCMAP_LF_TR_LINK_FAILURE, 
    125     BCM_FCMAP_LF_TR_OLS_RCVD = _SHR_BFCMAP_LF_TR_OLS_RCVD, 
    126     BCM_FCMAP_LF_TR_NOS_RCVD = _SHR_BFCMAP_LF_TR_NOS_RCVD, 
    127     BCM_FCMAP_LF_TR_SYNC_LOSS = _SHR_BFCMAP_LF_TR_SYNC_LOSS, 
    128     BCM_FCMAP_LF_TR_BOUCELINK_FROM_ADMIN = _SHR_BFCMAP_LF_TR_BOUCELINK_FROM_ADMIN, 
    129     BCM_FCMAP_LF_TR_CHGSPEED_FROM_ADMIN = _SHR_BFCMAP_LF_TR_CHGSPEED_FROM_ADMIN, 
    130     BCM_FCMAP_LF_TR_DISABLE_FROM_ADMIN = _SHR_BFCMAP_LF_TR_DISABLE_FROM_ADMIN, 
    131     BCM_FCMAP_LF_TR_RESET_FROM_ADMIN = _SHR_BFCMAP_LF_TR_RESET_FROM_ADMIN, 
    132     BCM_FCMAP_LF_TR_LR_RCVD = _SHR_BFCMAP_LF_TR_LR_RCVD, 
    133     BCM_FCMAP_LF_TR_LRR_RCVD = _SHR_BFCMAP_LF_TR_LRR_RCVD, 
    134     BCM_FCMAP_LF_TR_ED_TOV = _SHR_BFCMAP_LF_TR_ED_TOV, 
    135     BCM_FCMAP_LF_TR_SYS_LNK_FAILURE = _SHR_BFCMAP_LF_TR_SYS_LNK_FAILURE 
    136 } bcm_fcmap_lf_tr_t;
    137 
    138 /* link fault reason code. */
    139 typedef enum bcm_fcmap_lf_rc_e {
    140     BCM_FCMAP_LF_RC_NONE = _SHR_BFCMAP_LF_RC_NONE, 
    141     BCM_FCMAP_LF_RC_PORT_INIT = _SHR_BFCMAP_LF_RC_PORT_INIT, 
    142     BCM_FCMAP_LF_RC_OPEN_LINK = _SHR_BFCMAP_LF_RC_OPEN_LINK, 
    143     BCM_FCMAP_LF_RC_LINK_FAILURE = _SHR_BFCMAP_LF_RC_LINK_FAILURE, 
    144     BCM_FCMAP_LF_RC_OLS_RCVD = _SHR_BFCMAP_LF_RC_OLS_RCVD, 
    145     BCM_FCMAP_LF_RC_NOS_RCVD = _SHR_BFCMAP_LF_RC_NOS_RCVD, 
    146     BCM_FCMAP_LF_RC_SYNC_LOSS = _SHR_BFCMAP_LF_RC_SYNC_LOSS, 
    147     BCM_FCMAP_LF_RC_BOUCELINK_FROM_ADMIN = _SHR_BFCMAP_LF_RC_BOUCELINK_FROM_ADMIN, 
    148     BCM_FCMAP_LF_RC_CHGSPEED_FROM_ADMIN = _SHR_BFCMAP_LF_RC_CHGSPEED_FROM_ADMIN, 
    149     BCM_FCMAP_LF_RC_DISABLE_FROM_ADMIN = _SHR_BFCMAP_LF_RC_DISABLE_FROM_ADMIN, 
    150     BCM_FCMAP_LF_RC_RESET_FAILURE = _SHR_BFCMAP_LF_RC_RESET_FAILURE, 
    151     BCM_FCMAP_LF_RC_SYS_LNK_FAILURE = _SHR_BFCMAP_LF_RC_SYS_LNK_FAILURE 
    152 } bcm_fcmap_lf_rc_t;
    153 
    154 typedef enum bcm_fcmap_diag_code_e {
    155     BCM_FCMAP_DIAG_OK = _SHR_BFCMAP_DIAG_OK, 
    156     BCM_FCMAP_DIAG_PORT_INIT = _SHR_BFCMAP_DIAG_PORT_INIT, 
    157     BCM_FCMAP_DIAG_OPEN_LINK = _SHR_BFCMAP_DIAG_OPEN_LINK, 
    158     BCM_FCMAP_DIAG_LINK_FAILUR = _SHR_BFCMAP_DIAG_LINK_FAILURE, 
    159     BCM_FCMAP_DIAG_OLS_RCVD = _SHR_BFCMAP_DIAG_OLS_RCVD, 
    160     BCM_FCMAP_DIAG_NOS_RCVD = _SHR_BFCMAP_DIAG_NOS_RCVD, 
    161     BCM_FCMAP_DIAG_SYNC_LOSS = _SHR_BFCMAP_DIAG_SYNC_LOSS, 
    162     BCM_FCMAP_DIAG_BOUCELINK_FROM_ADMIN = _SHR_BFCMAP_DIAG_BOUCELINK_FROM_ADMIN, 
    163     BCM_FCMAP_DIAG_CHGSPEED_FROM_ADMIN = _SHR_BFCMAP_DIAG_CHGSPEED_FROM_ADMIN, 
    164     BCM_FCMAP_DIAG_DISABLE_FROM_ADMIN = _SHR_BFCMAP_DIAG_DISABLE_FROM_ADMIN, 
    165     BCM_FCMAP_DIAG_AN_NO_SIGNAL = _SHR_BFCMAP_DIAG_AN_NO_SIGNAL, 
    166     BCM_FCMAP_DIAG_AN_TIMEOUT = _SHR_BFCMAP_DIAG_AN_TIMEOUT, 
    167     BCM_FCMAP_DIAG_PROTO_TIMEOUT = _SHR_BFCMAP_DIAG_PROTO_TIMEOUT, 
    168     BCM_FCMAP_DIAG_SYS_LNK_FAILURE = _SHR_BFCMAP_DIAG_SYS_LNK_FAILURE 
    169 } bcm_fcmap_diag_code_t;
    170 
    171 #define BCM_FCMAP_ATTR_PORT_MODE_MASK       _SHR_FCMAP_ATTR_PORT_MODE_MASK 
    172 #define BCM_FCMAP_ATTR_SPEED_MASK           _SHR_FCMAP_ATTR_SPEED_MASK 
    173 #define BCM_FCMAP_ATTR_TX_BB_CREDITS_MASK   _SHR_FCMAP_ATTR_TX_BB_CREDITS_MASK 
    174 #define BCM_FCMAP_ATTR_RX_BB_CREDITS_MASK   _SHR_FCMAP_ATTR_RX_BB_CREDITS_MASK 
    175 #define BCM_FCMAP_ATTR_MAX_FRAME_LENGTH_MASK _SHR_FCMAP_ATTR_MAX_FRAME_LENGTH_MASK 
    176 #define BCM_FCMAP_ATTR_BB_SC_N_MASK         _SHR_FCMAP_ATTR_BB_SC_N_MASK 
    177 #define BCM_FCMAP_ATTR_PORT_STATE_MASK      _SHR_FCMAP_ATTR_PORT_STATE_MASK 
    178 #define BCM_FCMAP_ATTR_R_T_TOV_MASK         _SHR_FCMAP_ATTR_R_T_TOV_MASK 
    179 #define BCM_FCMAP_ATTR_INTERRUPT_ENABLE_MASK _SHR_FCMAP_ATTR_INTERRUPT_ENABLE_MASK 
    180 #define BCM_FCMAP_ATTR_FW_ON_ACTIVE_8G_MASK _SHR_FCMAP_ATTR_FW_ON_ACTIVE_8G_MASK 
    181 #define BCM_FCMAP_ATTR_SRC_MAC_CONSTRUCT_MASK _SHR_FCMAP_ATTR_SRC_MAC_CONSTRUCT_MASK 
    182 #define BCM_FCMAP_ATTR_DST_MAC_CONSTRUCT_MASK _SHR_FCMAP_ATTR_DST_MAC_CONSTRUCT_MASK 
    183 #define BCM_FCMAP_ATTR_VLAN_TAG_MASK        _SHR_FCMAP_ATTR_VLAN_TAG_MASK 
    184 #define BCM_FCMAP_ATTR_VFT_TAG_MASK         _SHR_FCMAP_ATTR_VFT_TAG_MASK 
    185 #define BCM_FCMAP_ATTR_MAPPER_LEN_MASK      _SHR_FCMAP_ATTR_MAPPER_LEN_MASK 
    186 #define BCM_FCMAP_ATTR_INGRESS_MAPPER_BYPASS_MASK _SHR_FCMAP_ATTR_INGRESS_MAPPER_BYPASS_MASK 
    187 #define BCM_FCMAP_ATTR_EGRESS_MAPPER_BYPASS_MASK _SHR_FCMAP_ATTR_EGRESS_MAPPER_BYPASS_MASK 
    188 #define BCM_FCMAP_ATTR_INGRESS_MAP_TABLE_INPUT_MASK _SHR_FCMAP_ATTR_INGRESS_MAP_TABLE_INPUT_MASK 
    189 #define BCM_FCMAP_ATTR_EGRESS_MAP_TABLE_INPUT_MASK _SHR_FCMAP_ATTR_EGRESS_MAP_TABLE_INPUT_MASK 
    190 #define BCM_FCMAP_ATTR_INGRESS_FC_CRC_MODE_MASK _SHR_FCMAP_ATTR_INGRESS_FC_CRC_MODE_MASK 
    191 #define BCM_FCMAP_ATTR_EGRESS_FC_CRC_MODE_MASK _SHR_FCMAP_ATTR_EGRESS_FC_CRC_MODE_MASK 
    192 #define BCM_FCMAP_ATTR_INGRESS_VFTHDR_PROC_MODE_MASK _SHR_FCMAP_ATTR_INGRESS_VFTHDR_PROC_MODE_MASK 
    193 #define BCM_FCMAP_ATTR_EGRESS_VFTHDR_PROC_MODE_MASK _SHR_FCMAP_ATTR_EGRESS_VFTHDR_PROC_MODE_MASK 
    194 #define BCM_FCMAP_ATTR_INGRESS_VLANTAG_PROC_MODE_MASK _SHR_FCMAP_ATTR_INGRESS_VLANTAG_PROC_MODE_MASK 
    195 #define BCM_FCMAP_ATTR_EGRESS_VLANTAG_PROC_MODE_MASK _SHR_FCMAP_ATTR_EGRESS_VLANTAG_PROC_MODE_MASK 
    196 #define BCM_FCMAP_ATTR_INGRESS_VFID_MAPSRC_MASK _SHR_FCMAP_ATTR_INGRESS_VFID_MAPSRC_MASK 
    197 #define BCM_FCMAP_ATTR_EGRESS_VFID_MAPSRC_MASK _SHR_FCMAP_ATTR_EGRESS_VFID_MAPSRC_MASK 
    198 #define BCM_FCMAP_ATTR_INGRESS_VID_MAPSRC_MASK _SHR_FCMAP_ATTR_INGRESS_VID_MAPSRC_MASK 
    199 #define BCM_FCMAP_ATTR_EGRESS_VID_MAPSRC_MASK _SHR_FCMAP_ATTR_EGRESS_VID_MAPSRC_MASK 
    200 #define BCM_FCMAP_ATTR_INGRESS_VLAN_PRI_MAP_MODE_MASK _SHR_FCMAP_ATTR_INGRESS_VLAN_PRI_MAP_MODE_MASK 
    201 #define BCM_FCMAP_ATTR_EGRESS_VLAN_PRI_MAP_MODE_MASK _SHR_FCMAP_ATTR_EGRESS_VLAN_PRI_MAP_MODE_MASK 
    202 #define BCM_FCMAP_ATTR_INGRESS_HOPCNT_CHECK_MODE_MASK _SHR_FCMAP_ATTR_INGRESS_HOPCNT_CHECK_MODE_MASK 
    203 #define BCM_FCMAP_ATTR2_EGRESS_HOPCNT_DEC_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_HOPCNT_DEC_ENABLE_MASK 
    204 #define BCM_FCMAP_ATTR2_USE_TTS_PCS_16G_MASK _SHR_FCMAP_ATTR2_USE_TTS_PCS_16G_MASK 
    205 #define BCM_FCMAP_ATTR2_USE_TTS_PCS_32G_MASK _SHR_FCMAP_ATTR2_USE_TTS_PCS_32G_MASK 
    206 #define BCM_FCMAP_ATTR2_TRAINING_ENABLE_16G_MASK _SHR_FCMAP_ATTR2_TRAINING_ENABLE_16G_MASK 
    207 #define BCM_FCMAP_ATTR2_TRAINING_ENABLE_32G_MASK _SHR_FCMAP_ATTR2_TRAINING_ENABLE_32G_MASK 
    208 #define BCM_FCMAP_ATTR2_FEC_ENABLE_16G_MASK _SHR_FCMAP_ATTR2_FEC_ENABLE_16G_MASK 
    209 #define BCM_FCMAP_ATTR2_FEC_ENABLE_32G_MASK _SHR_FCMAP_ATTR2_FEC_ENABLE_32G_MASK 
    210 #define BCM_FCMAP_ATTR2_INGRESS_FCS_CRRPT_EOF_ENABLE_MASK _SHR_FCMAP_ATTR2_INGRESS_FCS_CRRPT_EOF_ENABLE_MASK 
    211 #define BCM_FCMAP_ATTR2_INGRESS_VLANTAG_PRESENCE_ENABLE_MASK _SHR_FCMAP_ATTR2_INGRESS_VLANTAG_PRESENCE_ENABLE_MASK 
    212 #define BCM_FCMAP_ATTR2_EGRESS_HOPCNT_CHECK_MODE_MASK _SHR_FCMAP_ATTR2_EGRESS_HOPCNT_CHECK_MODE_MASK 
    213 #define BCM_FCMAP_ATTR2_EGRESS_PASS_CTRL_FRAME_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_PASS_CTRL_FRAME_ENABLE_MASK 
    214 #define BCM_FCMAP_ATTR2_EGRESS_PASS_PFC_FRAME_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_PASS_PFC_FRAME_ENABLE_MASK 
    215 #define BCM_FCMAP_ATTR2_EGRESS_PASS_PAUSE_FRAME_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_PASS_PAUSE_FRAME_ENABLE_MASK 
    216 #define BCM_FCMAP_ATTR2_EGRESS_FCOE_VER_CHK_DISABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_FCOE_VER_CHK_DISABLE_MASK 
    217 #define BCM_FCMAP_ATTR2_EGRESS_DEFAULT_COS_VALUE_MASK _SHR_FCMAP_ATTR2_EGRESS_DEFAULT_COS_VALUE_MASK 
    218 #define BCM_FCMAP_ATTR2_EGRESS_USE_IP_COS_MAP_MASK _SHR_FCMAP_ATTR2_EGRESS_USE_IP_COS_MAP_MASK 
    219 #define BCM_FCMAP_ATTR2_INGRESS_HOPCNT_DEC_ENABLE_MASK _SHR_FCMAP_ATTR2_INGRESS_HOPCNT_DEC_ENABLE_MASK 
    220 #define BCM_FCMAP_ATTR2_SCRAMBLING_ENABLE_MASK _SHR_FCMAP_ATTR2_SCRAMBLING_ENABLE_MASK 
    221 #define BCM_FCMAP_ATTR2_EGRESS_PAUSE_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_PAUSE_ENABLE_MASK 
    222 #define BCM_FCMAP_ATTR2_EGRESS_PFC_ENABLE_MASK _SHR_FCMAP_ATTR2_EGRESS_PFC_ENABLE_MASK 
    223 #define BCM_FCMAP_ATTR2_STAT_INTERVAL_MASK  _SHR_FCMAP_ATTR2_STAT_INTERVAL_MASK 
    224 #define BCM_FCMAP_ATTR2_TRCM_ATTRIBS_MASK   _SHR_FCMAP_ATTR2_TRCM_ATTRIBS_MASK 
    225 #define BCM_FCMAP_ATTR2_COS_TO_PRI_MASK     _SHR_FCMAP_ATTR2_COS_TO_PRI_MASK 
    226 
    227 #define BCM_FCMAP_ATTR_ALL_MASK _SHR_FCMAP_ATTR_ALL_MASK 
    228 
    229 #define BCM_FCMAP_ATTR2_ALL_MASK    _SHR_FCMAP_ATTR2_ALL_MASK 
    230 
    231 typedef bfcmap_dev_io_f bcm_fcmap_dev_io_t;
    232 
    233 typedef _shr_bfcmap_cos_to_pri_t bcm_fcmap_cos_to_pri_t_t;
    234 
    235 typedef _shr_bfcmap_port_config_t bcm_fcmap_port_config_t;
    236 
    237 #ifndef BCM_HIDE_DISPATCHABLE
    238 
    239 /* Set all FCMAP configuration for the specified port. */
    240 extern int bcm_fcmap_port_config_set(
    241     int unit, 
    242     bcm_port_t port, 
    243     bcm_fcmap_port_config_t *cfg);
    244 
    245 /* Returns all FCMAP configuration for the specified port. */
    246 extern int bcm_fcmap_port_config_get(
    247     int unit, 
    248     bcm_port_t port, 
    249     bcm_fcmap_port_config_t *cfg);
    250 
    251 /* 
    252  * Set FCMAP configuration for the specified port.
    253  * The configured port attributes are specified in the cfg->action_mask
    254  * and cfg->action_mask2.
    255  */
    256 extern int bcm_fcmap_port_config_selective_set(
    257     int unit, 
    258     bcm_port_t port, 
    259     bcm_fcmap_port_config_t *cfg);
    260 
    261 /* 
    262  * Returns the FCMAP configuration for the specified port.
    263  * The retrieved port attributes are specified in the cfg->action_mask
    264  * and cfg->action_mask2.
    265  */
    266 extern int bcm_fcmap_port_config_selective_get(
    267     int unit, 
    268     bcm_port_t port, 
    269     bcm_fcmap_port_config_t *cfg);
    270 
    271 /* Set speed attribute of the FC port. */
    272 extern int bcm_fcmap_port_speed_set(
    273     int unit, 
    274     bcm_port_t port, 
    275     bcm_fcmap_port_speed_t speed);
    276 
    277 /* 
    278  * Perform LINK Reset protocol on FCMAP Port, if the port is configured
    279  * to FC port.
    280  */
    281 extern int bcm_fcmap_port_link_reset(
    282     int unit, 
    283     bcm_port_t port);
    284 
    285 /* 
    286  * Perform LINK down protocol on FCMAP Port, if the port is configured to
    287  * FC port.
    288  */
    289 extern int bcm_fcmap_port_shutdown(
    290     int unit, 
    291     bcm_port_t port);
    292 
    293 /* Enable the FC port. */
    294 extern int bcm_fcmap_port_enable(
    295     int unit, 
    296     bcm_port_t port);
    297 
    298 #endif /* BCM_HIDE_DISPATCHABLE */
    299 
    300 /*  Prototype for Port interation callback function. */
    301 typedef int (*bcm_fcmap_port_traverse_cb)(
    302     int unit, 
    303     bcm_port_t port, 
    304     bcm_fcmap_core_t dev_core, 
    305     bcm_fcmap_dev_addr_t dev_addr, 
    306     int dev_port, 
    307     bcm_fcmap_dev_io_t devio_f, 
    308     void *user_data);
    309 
    310 #ifndef BCM_HIDE_DISPATCHABLE
    311 
    312 /* 
    313  * bcm_fcmap_port_traverse iterates over all the FCMAP Ports and calls
    314  * user-provided callback function for each port.
    315  */
    316 extern int bcm_fcmap_port_traverse(
    317     int unit, 
    318     bcm_fcmap_port_traverse_cb callbk, 
    319     void *user_data);
    320 
    321 #endif /* BCM_HIDE_DISPATCHABLE */
    322 
    323 typedef _shr_bfcmap_vlan_vsan_map_t bcm_fcmap_vlan_vsan_map_t;
    324 
    325 #ifndef BCM_HIDE_DISPATCHABLE
    326 
    327 /* Add the VLAN to VSAN mapping on the specified port */
    328 extern int bcm_fcmap_vlan_map_add(
    329     int unit, 
    330     bcm_port_t port, 
    331     bcm_fcmap_vlan_vsan_map_t *vlan);
    332 
    333 /* Get the VLAN to VSAN mapping on the specified port */
    334 extern int bcm_fcmap_vlan_map_get(
    335     int unit, 
    336     bcm_port_t port, 
    337     bcm_fcmap_vlan_vsan_map_t *vlan);
    338 
    339 /* Delete the VLAN to VSAN mapping on the specified port */
    340 extern int bcm_fcmap_vlan_map_delete(
    341     int unit, 
    342     bcm_port_t port, 
    343     bcm_fcmap_vlan_vsan_map_t *vlan);
    344 
    345 #endif /* BCM_HIDE_DISPATCHABLE */
    346 
    347 typedef enum bcm_fcmap_event_e {
    348     BCM_FCMAP_EVENT_FC_LINK_INIT = _SHR_BFCMAP_EVENT_FC_LINK_INIT, 
    349     BCM_FCMAP_EVENT_FC_LINK_RESET = _SHR_BFCMAP_EVENT_FC_LINK_RESET, 
    350     BCM_FCMAP_EVENT_FC_LINK_DOWN = _SHR_BFCMAP_EVENT_FC_LINK_DOWN, 
    351     BCM_FCMAP_EVENT_FC_R_T_TIMEOUT = _SHR_BFCMAP_EVENT_FC_R_T_TIMEOUT, 
    352     BCM_FCMAP_EVENT_FC_E_D_TIMEOUT = _SHR_BFCMAP_EVENT_FC_E_D_TIMEOUT 
    353 } bcm_fcmap_event_t;
    354 
    355 /*  Prototype for the event callback function. */
    356 typedef int (*bcm_fcmap_event_cb)(
    357     int unit, 
    358     bcm_port_t port, 
    359     bcm_fcmap_event_t event, 
    360     void *user_data);
    361 
    362 #ifndef BCM_HIDE_DISPATCHABLE
    363 
    364 /* Register application event handler function */
    365 extern int bcm_fcmap_event_register(
    366     int unit, 
    367     bcm_fcmap_event_cb cb, 
    368     void *user_data);
    369 
    370 /* Unregister the application event handler function. */
    371 extern int bcm_fcmap_event_unregister(
    372     int unit, 
    373     bcm_fcmap_event_cb cb);
    374 
    375 /* Enable or disable event notification for the specified event. */
    376 extern int bcm_fcmap_event_enable_set(
    377     int unit, 
    378     bcm_fcmap_event_t t, 
    379     int enable);
    380 
    381 /* Get current event notification status for the specified event. */
    382 extern int bcm_fcmap_event_enable_get(
    383     int unit, 
    384     bcm_fcmap_event_t t, 
    385     int *enable);
    386 
    387 #endif /* BCM_HIDE_DISPATCHABLE */
    388 
    389 typedef enum bcm_fcmap_stat_e {
    390     bcm_fc_rxdebug0 = _shr_fc_rxdebug0, 
    391     bcm_fc_rxdebug1 = _shr_fc_rxdebug1, 
    392     bcm_fc_rxunicastpkts = _shr_fc_rxunicastpkts, 
    393     bcm_fc_rxgoodframes = _shr_fc_rxgoodframes, 
    394     bcm_fc_rxbcastpkts = _shr_fc_rxbcastpkts, 
    395     bcm_fc_rxbbcredit0 = _shr_fc_rxbbcredit0, 
    396     bcm_fc_rxinvalidcrc = _shr_fc_rxinvalidcrc, 
    397     bcm_fc_rxframetoolong = _shr_fc_rxframetoolong, 
    398     bcm_fc_rxtruncframes = _shr_fc_rxtruncframes, 
    399     bcm_fc_rxdelimitererr = _shr_fc_rxdelimitererr, 
    400     bcm_fc_rxothererr = _shr_fc_rxothererr, 
    401     bcm_fc_rxruntframes = _shr_fc_rxruntframes, 
    402     bcm_fc_rxlipcount = _shr_fc_rxlipcount, 
    403     bcm_fc_rxnoscount = _shr_fc_rxnoscount, 
    404     bcm_fc_rxerrframes = _shr_fc_rxerrframes, 
    405     bcm_fc_rxdropframes = _shr_fc_rxdropframes, 
    406     bcm_fc_rxlinkfail = _shr_fc_rxlinkfail, 
    407     bcm_fc_rxlosssync = _shr_fc_rxlosssync, 
    408     bcm_fc_rxlosssig = _shr_fc_rxlosssig, 
    409     bcm_fc_rxprimseqerr = _shr_fc_rxprimseqerr, 
    410     bcm_fc_rxinvalidword = _shr_fc_rxinvalidword, 
    411     bcm_fc_rxinvalidset = _shr_fc_rxinvalidset, 
    412     bcm_fc_rxencodedisparity = _shr_fc_rxencodedisparity, 
    413     bcm_fc_rxbyt = _shr_fc_rxbyt, 
    414     bcm_fc_txdebug0 = _shr_fc_txdebug0, 
    415     bcm_fc_txdebug1 = _shr_fc_txdebug1, 
    416     bcm_fc_txunicastpkts = _shr_fc_txunicastpkts, 
    417     bcm_fc_txbcastpkts = _shr_fc_txbcastpkts, 
    418     bcm_fc_txbbcredit0 = _shr_fc_txbbcredit0, 
    419     bcm_fc_txgoodframes = _shr_fc_txgoodframes, 
    420     bcm_fc_txfifounderrun = _shr_fc_txfifounderrun, 
    421     bcm_fc_txdropframes = _shr_fc_txdropframes, 
    422     bcm_fc_txbyt = _shr_fc_txbyt, 
    423     bcm_fc_class2_rxgoodframes = _shr_fc_class2_rxgoodframes, 
    424     bcm_fc_class2_rxinvalidcrc = _shr_fc_class2_rxinvalidcrc, 
    425     bcm_fc_class2_rxframetoolong = _shr_fc_class2_rxframetoolong, 
    426     bcm_fc_class3_rxgoodframes = _shr_fc_class3_rxgoodframes, 
    427     bcm_fc_class3_rxinvalidcrc = _shr_fc_class3_rxinvalidcrc, 
    428     bcm_fc_class3_rxframetoolong = _shr_fc_class3_rxframetoolong, 
    429     bcm_fc_classf_rxgoodframes = _shr_fc_classf_rxgoodframes, 
    430     bcm_fc_classf_rxinvalidcrc = _shr_fc_classf_rxinvalidcrc, 
    431     bcm_fc_classf_rxframetoolong = _shr_fc_classf_rxframetoolong, 
    432     bcm_fc_rxbbc0drop = _shr_fc_rxbbc0drop, 
    433     bcm_fc_rxsyncfail = _shr_fc_rxsyncfail, 
    434     bcm_fc_rxbadxword = _shr_fc_rxbadxword, 
    435     bcm_fc_class2_rxruntframes = _shr_fc_class2_rxruntframes, 
    436     bcm_fc_class3_rxruntframes = _shr_fc_class3_rxruntframes, 
    437     bcm_fc_classf_rxruntframes = _shr_fc_classf_rxruntframes, 
    438     bcm_fc_class2_rxbyt = _shr_fc_class2_rxbyt, 
    439     bcm_fc_class3_rxbyt = _shr_fc_class3_rxbyt, 
    440     bcm_fc_classf_rxbyt = _shr_fc_classf_rxbyt, 
    441     bcm_fc_class2_txframes = _shr_fc_class2_txframes, 
    442     bcm_fc_class3_txframes = _shr_fc_class3_txframes, 
    443     bcm_fc_classf_txframes = _shr_fc_classf_txframes, 
    444     bcm_fc_txframes = _shr_fc_txframes, 
    445     bcm_fc_class2_txoversized_frames = _shr_fc_class2_txoversized_frames, 
    446     bcm_fc_class3_txoversized_frames = _shr_fc_class3_txoversized_frames, 
    447     bcm_fc_classf_txoversized_frames = _shr_fc_classf_txoversized_frames, 
    448     bcm_fc_txoversized_frames = _shr_fc_txoversized_frames, 
    449     bcm_fc_class2_txbyt = _shr_fc_class2_txbyt, 
    450     bcm_fc_class3_txbyt = _shr_fc_class3_txbyt, 
    451     bcm_fc_classf_txbyt = _shr_fc_classf_txbyt, 
    452     bcm_fcmap_stat__count = _shr_bfcmap_stat__count 
    453 } bcm_fcmap_stat_t;
    454 
    455 #ifndef BCM_HIDE_DISPATCHABLE
    456 
    457 /* Clear all the statistics for the specified port. */
    458 extern int bcm_fcmap_stat_clear(
    459     int unit, 
    460     bcm_port_t port);
    461 
    462 /* Return the statistics for the specified statistic type. */
    463 extern int bcm_fcmap_stat_get(
    464     int unit, 
    465     bcm_port_t port, 
    466     bcm_fcmap_stat_t stat, 
    467     uint64 *val);
    468 
    469 /*  Return the current statistics for the specified counter. */
    470 extern int bcm_fcmap_stat_get32(
    471     int unit, 
    472     bcm_port_t port, 
    473     bcm_fcmap_stat_t stat, 
    474     uint32 *val);
    475 
    476 /* 
    477  * Returns the linkfault trigger code and reason code from the specified
    478  * FC port.
    479  */
    480 extern int bcm_fcmap_linkfault_trigger_rc_get(
    481     int unit, 
    482     bcm_port_t port, 
    483     bcm_fcmap_lf_tr_t *trigger, 
    484     bcm_fcmap_lf_rc_t *rc);
    485 
    486 /* Returns the current diagnostic code from the specified FC port. */
    487 extern int bcm_fcmap_diag_get(
    488     int unit, 
    489     bcm_port_t port, 
    490     bcm_fcmap_diag_code_t *diag);
    491 
    492 #endif /* BCM_HIDE_DISPATCHABLE */
    493 
    494 /* Port ability */
    495 typedef _shr_bfcmap_port_ability_t bcm_fcmap_port_ability_t;
    496 
    497 #define BCM_FCMAP_PORT_ABILITY_SPEED_AN     _SHR_FCMAP_PORT_ABILITY_SPEED_AN 
    498 #define BCM_FCMAP_PORT_ABILITY_SPEED_2GBPS  _SHR_FCMAP_PORT_ABILITY_SPEED_2GBPS 
    499 #define BCM_FCMAP_PORT_ABILITY_SPEED_4GBPS  _SHR_FCMAP_PORT_ABILITY_SPEED_4GBPS 
    500 #define BCM_FCMAP_PORT_ABILITY_SPEED_8GBPS  _SHR_FCMAP_PORT_ABILITY_SPEED_8GBPS 
    501 #define BCM_FCMAP_PORT_ABILITY_SPEED_16GBPS _SHR_FCMAP_PORT_ABILITY_SPEED_16GBPS 
    502 #define BCM_FCMAP_PORT_ABILITY_SPEED_32GBPS _SHR_FCMAP_PORT_ABILITY_SPEED_32GBPS 
    503 
    504 #ifndef BCM_HIDE_DISPATCHABLE
    505 
    506 /* 
    507  * Sets the discrete speed values for auto-neg or single forced speed for
    508  * the specified FC port.
    509  */
    510 extern int bcm_fcmap_port_ability_advert_set(
    511     int unit, 
    512     bcm_port_t port, 
    513     bcm_fcmap_port_ability_t *ability_mask);
    514 
    515 /* Returns the supported port speeds for the specified FC port. */
    516 extern int bcm_fcmap_port_ability_advert_get(
    517     int unit, 
    518     bcm_port_t port, 
    519     bcm_fcmap_port_ability_t *ability_mask);
    520 
    521 #endif /* BCM_HIDE_DISPATCHABLE */
    522 
    523 #define BCM_FCMAP_PORT_SCRAMBLING_SPEED_2GBPS _SHR_FCMAP_PORT_SCRAMBLING_SPEED_2GBPS 
    524 #define BCM_FCMAP_PORT_SCRAMBLING_SPEED_4GBPS _SHR_FCMAP_PORT_SCRAMBLING_SPEED_4GBPS 
    525 #define BCM_FCMAP_PORT_SCRAMBLING_SPEED_8GBPS _SHR_FCMAP_PORT_SCRAMBLING_SPEED_8GBPS 
    526 #define BCM_FCMAP_PORT_SCRAMBLING_SPEED_16GBPS _SHR_FCMAP_PORT_SCRAMBLING_SPEED_16GBPS 
    527 #define BCM_FCMAP_PORT_SCRAMBLING_SPEED_32GBPS _SHR_FCMAP_PORT_SCRAMBLING_SPEED_32GBPS 
    528 
    529 #define BCM_FCMAP_PORT_MODULE_NO_FW_I2C     _SHR_FCMAP_PORT_MODULE_NO_FW_I2C 
    530 #define BCM_FCMAP_PORT_MODULE_IS_COPPER     _SHR_FCMAP_PORT_MODULE_IS_COPPER 
    531 #define BCM_FCMAP_PORT_MODULE_SPEED_CAP32G  _SHR_FCMAP_PORT_MODULE_SPEED_CAP32G 
    532 #define BCM_FCMAP_PORT_MODULE_SPEED_CAP16G  _SHR_FCMAP_PORT_MODULE_SPEED_CAP16G 
    533 #define BCM_FCMAP_PORT_MODULE_SPEED_CAP8G   _SHR_FCMAP_PORT_MODULE_SPEED_CAP8G 
    534 #define BCM_FCMAP_PORT_MODULE_SPEED_CAP4G   _SHR_FCMAP_PORT_MODULE_SPEED_CAP4G 
    535 #define BCM_FCMAP_PORT_MODULE_FEC_CAP32G    _SHR_FCMAP_PORT_MODULE_FEC_CAP32G 
    536 #define BCM_FCMAP_PORT_MODULE_FEC_CAP16G    _SHR_FCMAP_PORT_MODULE_FEC_CAP16G 
    537 #define BCM_FCMAP_PORT_MODULE_IS_QSFP       _SHR_FCMAP_PORT_MODULE_IS_QSFP 
    538 #define BCM_FCMAP_PORT_MODULE_SUPP_RS       _SHR_FCMAP_PORT_MODULE_SUPP_RS 
    539 #define BCM_FCMAP_PORT_MODULE_RS_HRD_RX_CUTOFF _SHR_FCMAP_PORT_MODULE_RS_HRD_RX_CUTOFF 
    540 #define BCM_FCMAP_PORT_MODULE_RS_HRD_TX_CUTOFF _SHR_FCMAP_PORT_MODULE_RS_HRD_TX_CUTOFF 
    541 
    542 #endif /* defined(INCLUDE_FCMAP) */
    543 
    544 #endif /* __BCM_FCMAP_H__ */