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__ */