switch.h (395593B)
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 * DO NOT EDIT THIS FILE! 9 * This file is auto-generated. 10 * Edits to this file will be lost when it is regenerated. 11 */ 12 13 #ifndef __BCM_SWITCH_H__ 14 #define __BCM_SWITCH_H__ 15 16 #include <bcm/port.h> 17 #include <bcm/error.h> 18 #include <bcm/udf.h> 19 #include <bcm/field.h> 20 #include <bcm/stg.h> 21 #include <bcm/types.h> 22 #include <shared/switch.h> 23 24 /* Switch controls. */ 25 typedef enum bcm_switch_control_e { 26 bcmSwitchHgHdrErrToCpu = 0, /* Higig Header Error to CPU. */ 27 bcmSwitchClassTagPacketsToCpu = 1, /* HG2 packets with a PPD header of 1. */ 28 bcmSwitchIpmcTunnelToCpu = 2, /* IPMC tunnel packet to CPU. */ 29 bcmSwitchStationMoveOverLearnLimitToCpu = 3, /* Station movement over MAC learn limit 30 to CPU. */ 31 bcmSwitchMcastUnknownErrToCpu = 4, /* MC unknown Index Error to CPU. */ 32 bcmSwitchLearnLimitPriority = 5, /* Priority for MAC limit exceeds to 33 CPU. */ 34 bcmSwitchControlOpcodePriority = 6, /* Control Op Code priority. */ 35 bcmSwitchCpuProtoBpduPriority = 7, /* Priority for BPDUs to CPU. */ 36 bcmSwitchCpuProtoArpPriority = 8, /* Priority for ARP/ND packets to CPU. */ 37 bcmSwitchCpuProtoIgmpPriority = 9, /* Priority for IGMP/MLD packets to CPU. */ 38 bcmSwitchCpuProtoDhcpPriority = 10, /* Priority for DHCP packets to CPU. */ 39 bcmSwitchCpuProtoIpmcReservedPriority = 11, /* Priority for IPv4/IPv6 multicast 40 packets to CPU. */ 41 bcmSwitchCpuProtoIpOptionsPriority = 12, /* Priority for IPv4/IPv6 packets with 42 options or IPv6 packets with 0 len. 43 Payload/jumbo option to CPU. */ 44 bcmSwitchCpuProtoExceptionsPriority = 13, /* Priority for IPv4/IPv6 packets with 45 TTL=1 to CPU. */ 46 bcmSwitchCpuProtocolPrio = 14, /* Priority used for BPDUs to CPU. */ 47 bcmSwitchCpuUnknownPrio = 15, /* Priority for unknown SA or DA to CPU. */ 48 bcmSwitchCpuSamplePrio = 16, /* Priority for sFlow sample to CPU. */ 49 bcmSwitchCpuDefaultPrio = 17, /* Priority for all other packets to 50 CPU. */ 51 bcmSwitchL2StaticMoveToCpu = 18, /* Port movement of static L2 addr. */ 52 bcmSwitchUnknownIpmcToCpu = 19, /* Send unknown IP multicasts to CPU. */ 53 bcmSwitchUnknownMcastToCpu = 20, /* Send unknown multicasts to CPU. */ 54 bcmSwitchUnknownUcastToCpu = 21, /* Send DLF packets to CPU. */ 55 bcmSwitchNonIpL3ErrToCpu = 22, /* Non-IP packets w/DA of my router MAC 56 to CPU. */ 57 bcmSwitchL3HeaderErrToCpu = 23, /* Invalid checksum, TTL 0, etc. */ 58 bcmSwitchUnknownVlanToCpu = 24, /* Packet VLAN not in VLAN table. */ 59 bcmSwitchUnknownL3SrcToCpu = 25, /* SIP not found in L3 table. */ 60 bcmSwitchUnknownL3DestToCpu = 26, /* DIP not found in L3/LPM tables. */ 61 bcmSwitchIpmcPortMissToCpu = 27, /* Incoming port not in IPMC entry. */ 62 bcmSwitchIpmcErrorToCpu = 28, /* IPMC pkt has header err or TTL=0. */ 63 bcmSwitchVCLabelMissToCpu = 29, /* Send VC mismatch packet to CPU. */ 64 bcmSwitchSourceRouteToCpu = 30, /* Send multicast SA packet to CPU. */ 65 bcmSwitchSampleIngressRandomSeed = 31, /* SFlow ingress RNG seed. */ 66 bcmSwitchSampleEgressRandomSeed = 32, /* SFlow egress RNG seed. */ 67 bcmSwitchCpuFpCopyPrio = 33, /* Priority used for FP copy to CPU. */ 68 bcmSwitchCpuIcmpRedirectPrio = 34, /* Priority for ICMP to CPU. */ 69 bcmSwitchCpuMtuFailPrio = 35, /* Priority for MTU failure to CPU. */ 70 bcmSwitchCpuMirrorPrio = 36, /* Priority for packets mirrored to CPU. */ 71 bcmSwitchCpuLookupFpCopyPrio = 37, /* Priority for Lookup FP copy to SPU. */ 72 bcmSwitchL2NonStaticMoveToCpu = 38, /* L2 w/non-static addr to CPU. */ 73 bcmSwitchV6L3ErrToCpu = 39, /* Invalid IPv6 packets to CPU. */ 74 bcmSwitchV6L3DstMissToCpu = 40, /* IPv6 unknown dest packets to CPU. */ 75 bcmSwitchV6L3LocalLinkDrop = 41, /* Drop IPv6 with link local sources. */ 76 bcmSwitchV4L3ErrToCpu = 42, /* Invalid IPv6 packets to CPU. */ 77 bcmSwitchV4L3DstMissToCpu = 43, /* IPv6 unknown dest packets to CPU. */ 78 bcmSwitchTunnelErrToCpu = 44, /* Invalid tunnel packets to CPU. */ 79 bcmSwitchMartianAddrToCpu = 45, /* Martian packets to CPU. */ 80 bcmSwitchMartianAddr = 46, /* Enable/Disable Martian packet check. */ 81 bcmSwitchL3UcTtlErrToCpu = 47, /* L3 unicast w/invalid TTL to CPU. */ 82 bcmSwitchL3SlowpathToCpu = 48, /* Slowpath packets to CPU. */ 83 bcmSwitchIpmcTtlErrToCpu = 49, /* IPMC packets w/invalid TTL to CPU. */ 84 bcmSwitchDosAttackToCpu = 50, /* Denial of Service attacks to CPU. */ 85 bcmSwitchDosAttackSipEqualDip = 51, /* Enable SIP=DIP checking. */ 86 bcmSwitchDosAttackMinTcpHdrSize = 52, /* Header length for min TCP header 87 checking. */ 88 bcmSwitchDosAttackV4FirstFrag = 53, /* Enable IPv4 First Frag checking. */ 89 bcmSwitchDosAttackTcpFlags = 54, /* Enable TCP flag checking. */ 90 bcmSwitchDosAttackL4Port = 55, /* Enable L4 port number checking. */ 91 bcmSwitchDosAttackTcpFrag = 56, /* Enable TCP fragment checking. */ 92 bcmSwitchDosAttackIcmp = 57, /* Enable ICMP size checK for v4 and v6. */ 93 bcmSwitchDosAttackIcmpV4 = 58, /* Enable ICMPv4 size check. */ 94 bcmSwitchDosAttackIcmpV6 = 59, /* Enable ICMPv6 size check. */ 95 bcmSwitchDosAttackIcmpPktOversize = 60, /* Max pkt size for ICMP size check. */ 96 bcmSwitchDosAttackMACSAEqualMACDA = 61, /* MACSA == MACDA check. */ 97 bcmSwitchDosAttackIcmpV6PingSize = 62, /* Max pkt size for v6 ping check. */ 98 bcmSwitchDosAttackIcmpFragments = 63, /* Fragmented ICMP packets check. */ 99 bcmSwitchDosAttackTcpOffset = 64, /* TCP Header offset equals to 1 check. */ 100 bcmSwitchDosAttackUdpPortsEqual = 65, /* UDP packets where SPORT = DROP. */ 101 bcmSwitchDosAttackTcpPortsEqual = 66, /* TCP packets where SPORT = DROP. */ 102 bcmSwitchDosAttackTcpFlagsSF = 67, /* TCP packets with SYN & FIN bits 103 enabled. */ 104 bcmSwitchDosAttackTcpFlagsFUP = 68, /* TCP packets with FIN, URG, PSH bits 105 set and sequence number equals 0. */ 106 bcmSwitchDosAttackTcpHdrPartial = 69, /* TCP packets with not full TCP header. */ 107 bcmSwitchDosAttackPingFlood = 70, /* Enable ping flood checking. */ 108 bcmSwitchDosAttackSynFlood = 71, /* Enable SYN flood checking. */ 109 bcmSwitchDosAttackTcpSmurf = 72, /* Enable TCP smurf checking. */ 110 bcmSwitchDosAttackTcpXMas = 73, /* SeqNum, Fin,Urg,Psh equal 0. */ 111 bcmSwitchDosAttackL3Header = 74, /* Ipv4/6 header length checks. */ 112 bcmSwitchIcmpRedirectToCpu = 75, /* ICMP redirect To CPU. */ 113 bcmSwitchMplsSequenceErrToCpu = 76, /* MPLS Sequence number check failure to 114 CPU. */ 115 bcmSwitchMplsLabelMissToCpu = 77, /* MPLS label lookup miss to CPU. */ 116 bcmSwitchMplsTtlErrToCpu = 78, /* MPLS Header TTL used value is 0 or 1. */ 117 bcmSwitchMplsInvalidL3PayloadToCpu = 79, /* MPLS L3 payload invalid. */ 118 bcmSwitchMplsInvalidActionToCpu = 80, /* Invalid action / comnination of 119 actions. */ 120 bcmSwitchSharedVlanMismatchToCpu = 81, /* Private VLAN VID mismatch. */ 121 bcmSwitchL3SrcUrpfErrToCpu = 82, /* Invalid L3 uRPF SIP to CPU. */ 122 bcmSwitchGreKeyToVlan = 83, /* Enable system configuration for GRE 123 enhancement (including GRE.key). */ 124 bcmSwitchArpReplyToCpu = 84, /* ARP replies to CPU. */ 125 bcmSwitchArpReplyDrop = 85, /* ARP replies dropped. */ 126 bcmSwitchArpRequestToCpu = 86, /* ARP requests to CPU. */ 127 bcmSwitchArpRequestDrop = 87, /* ARP requests dropped. */ 128 bcmSwitchArpReplyMyStationL2ToCPU = 88, /* Only APR reply packets with My MAC 129 should be sent to CPU */ 130 bcmSwitchNdPktToCpu = 89, /* ND packets to CPU. */ 131 bcmSwitchNdPktDrop = 90, /* ND packets dropped. */ 132 bcmSwitchMcastFloodBlocking = 91, /* Current PFM rule is applied when 133 IGMP/MLD/MC/ReservedMC packet flooded 134 to VLAN. */ 135 bcmSwitchIgmpPktToCpu = 92, /* IGMP packets to CPU. */ 136 bcmSwitchIgmpPktDrop = 93, /* IGMP packets dropped. */ 137 bcmSwitchDhcpPktToCpu = 94, /* DHCP packets to CPU. */ 138 bcmSwitchDhcpPktDrop = 95, /* DHCP packets dropped. */ 139 bcmSwitchMldPktToCpu = 96, /* MLD packets to CPU. */ 140 bcmSwitchMldPktDrop = 97, /* MLD packets dropped. */ 141 bcmSwitchV4ResvdMcPktToCpu = 98, /* IPv4 reserved MC packets to CPU. */ 142 bcmSwitchV4ResvdMcPktDrop = 99, /* IPv4 reserved MC packets dropped. */ 143 bcmSwitchV4ResvdMcPktFlood = 100, /* IPv4 reserved MC packets flooded to 144 VLAN. */ 145 bcmSwitchV6ResvdMcPktToCpu = 101, /* IPv6 reserved MC packets to CPU. */ 146 bcmSwitchV6ResvdMcPktDrop = 102, /* IPv6 reserved MC packets dropped. */ 147 bcmSwitchV6ResvdMcPktFlood = 103, /* IPv6 reserved MC packets flooded to 148 VLAN. */ 149 bcmSwitchIgmpReportLeaveToCpu = 104, /* IGMP report/leave messages to CPU. */ 150 bcmSwitchIgmpReportLeaveDrop = 105, /* IGMP report/leave messages dropped. */ 151 bcmSwitchIgmpReportLeaveFlood = 106, /* IGMP report/leave messages flooded to 152 VLAN. */ 153 bcmSwitchIgmpQueryToCpu = 107, /* IGMP query messages to CPU. */ 154 bcmSwitchIgmpQueryDrop = 108, /* IGMP query messages dropped. */ 155 bcmSwitchIgmpQueryFlood = 109, /* IGMP query messages flooded to VLAN. */ 156 bcmSwitchIgmpUnknownToCpu = 110, /* IGMP unknown messages to CPU. */ 157 bcmSwitchIgmpUnknownDrop = 111, /* IGMP unknown messages dropped. */ 158 bcmSwitchIgmpUnknownFlood = 112, /* IGMP unknown messages flooded to 159 VLAN. */ 160 bcmSwitchMldReportDoneToCpu = 113, /* MLD report/done messages to CPU. */ 161 bcmSwitchMldReportDoneDrop = 114, /* MLD report/done messages dropped. */ 162 bcmSwitchMldReportDoneFlood = 115, /* MLD report/done messages flooded to 163 VLAN. */ 164 bcmSwitchMldQueryToCpu = 116, /* MLD query messages to CPU. */ 165 bcmSwitchMldQueryDrop = 117, /* MLD query messages dropped. */ 166 bcmSwitchMldQueryFlood = 118, /* MLD query messages flooded to VLAN. */ 167 bcmSwitchIpmcV4RouterDiscoveryToCpu = 119, /* IPv4 Router discovery messages to 168 CPU. */ 169 bcmSwitchIpmcV4RouterDiscoveryDrop = 120, /* IPv4 Router discovery messages 170 dropped. */ 171 bcmSwitchIpmcV4RouterDiscoveryFlood = 121, /* IPv4 Router discovery messages 172 flooded to VLAN. */ 173 bcmSwitchIpmcV6RouterDiscoveryToCpu = 122, /* IPv6 Router discovery messages to 174 CPU. */ 175 bcmSwitchIpmcV6RouterDiscoveryDrop = 123, /* IPv6 Router discovery messages 176 dropped. */ 177 bcmSwitchIpmcV6RouterDiscoveryFlood = 124, /* IPv6 Router discovery messages 178 flooded to VLAN. */ 179 bcmSwitchDirectedMirroring = 125, /* Enable directed mirroring mode. */ 180 bcmSwitchPktAge = 126, /* Chip-wide packet age time, msec. */ 181 bcmSwitchMcastFloodDefault = 127, /* VLAN Multicast flood control. */ 182 bcmSwitchParityErrorToCpu = 128, /* Lookup parity error. */ 183 bcmSwitchL3MtuFailToCpu = 129, /* L3 MTU check failure. */ 184 bcmSwitchMeterAdjust = 130, /* Meter/Rate control with overhead on 185 wire accounted for per packet. */ 186 bcmSwitchCounterAdjust = 131, /* Counter compensation. */ 187 bcmSwitchMeterAdjustInterframeGap = 132, /* Indicate the size in Bytes of the IFG 188 in Header-compensation for policer. */ 189 bcmSwitchHashL2 = 133, /* Hash Select for L2. */ 190 bcmSwitchHashL3 = 134, /* Hash Select for L3. */ 191 bcmSwitchHashMultipath = 135, /* Hash Select for Multipath. */ 192 bcmSwitchHashControl = 136, /* Hash Control of fields. */ 193 bcmSwitchFieldMultipathHashSelect = 137, /* Hash Select for FP 194 bcmFieldActionL3Switch. */ 195 bcmSwitchFieldMultipathHashSeed = 138, /* Hash Seed for FP 196 bcmFieldActionL3Switch. */ 197 bcmSwitchMirrorStackMode = 139, /* Select BCM56504, 5670 or 5675-A0 198 style stacking. */ 199 bcmSwitchMirrorSrcModCheck = 140, /* Source modid check in BCM56504 style 200 of mirroring. */ 201 bcmSwitchMirrorUnmarked = 141, /* Send mirror packets as simple 202 unicast. */ 203 bcmSwitchDestPortHGTrunk = 142, /* Enable to use dest port in HiGig 204 trunking. */ 205 bcmSwitchColorSelect = 143, /* Choose color selection source. */ 206 bcmSwitchModuleLoopback = 144, /* Allow local module ingress. */ 207 bcmSwitchSrcModBlockMirrorCopy = 145, /* Source modid blocking for BCM5670 208 compatibility. */ 209 bcmSwitchSrcModBlockMirrorOnly = 146, /* Source modid blocking for BCM5675-A0 210 compatibility. */ 211 bcmSwitchHashSeed0 = 147, /* BCM56700/56800/56580 hash seeds. */ 212 bcmSwitchHashSeed1 = 148, /* For enhanced hashing algoithm. */ 213 bcmSwitchHashField0PreProcessEnable = 149, /* Enable pre-processing for enhanced 214 hash mode 0. */ 215 bcmSwitchHashField1PreProcessEnable = 150, /* Enable pre-processing for enhanced 216 hash mode 1. */ 217 bcmSwitchHashField0Config = 151, /* BCM56700/56800/56580 enhanced hash 218 mode 0 config. */ 219 bcmSwitchHashField0Config1 = 152, /* BCM56840 enhanced hash mode 0 config 220 1. */ 221 bcmSwitchHashField1Config = 153, /* BCM56700/56800/56580 enhanced hash 222 mode 1 config. */ 223 bcmSwitchHashField1Config1 = 154, /* BCM56840 enhanced hash mode 1 config 224 1. */ 225 bcmSwitchMacroFlowHashFieldConfig = 155, /* Enhanced hash macro flow mode config. */ 226 bcmSwitchHashSelectControl = 156, /* BCM56700/56800/56580 field selection 227 control. */ 228 bcmSwitchHashIP4Field0 = 157, /* BCM56700/56800/56580 enhanced hash 229 field. */ 230 bcmSwitchHashIP4Field1 = 158, /* Selections for IPv4 packets. */ 231 bcmSwitchHashIP4TcpUdpField0 = 159, /* BCM56840 enhanced hash field. */ 232 bcmSwitchHashIP4TcpUdpField1 = 160, /* Selections for IPv4 TCP/UDP packets. */ 233 bcmSwitchHashIP4TcpUdpPortsEqualField0 = 161, /* BCM56840 enhanced hash field. */ 234 bcmSwitchHashIP4TcpUdpPortsEqualField1 = 162, /* Selections for IPv4 TCP/UDP packets 235 with source L4 port equals to 236 destination L4 port. */ 237 bcmSwitchHashIP6Field0 = 163, /* BCM56700/56800/56580 enhanced hash 238 field. */ 239 bcmSwitchHashIP6Field1 = 164, /* Selections for IPv6 packets. */ 240 bcmSwitchHashIP6TcpUdpField0 = 165, /* BCM56840 enhanced hash field. */ 241 bcmSwitchHashIP6TcpUdpField1 = 166, /* Selections for IPv6 TCP/UDP packets. */ 242 bcmSwitchHashIP6TcpUdpPortsEqualField0 = 167, /* BCM56840 enhanced hash field. */ 243 bcmSwitchHashIP6TcpUdpPortsEqualField1 = 168, /* Selections for IPv6 TCP/UDP packets 244 with source L4 port equals to 245 destination L4 port. */ 246 bcmSwitchHashL2Field0 = 169, /* BCM56700/56800/56580 enhanced hash 247 field. */ 248 bcmSwitchHashL2Field1 = 170, /* Selections for L2 packets. */ 249 bcmSwitchHashMPLSField0 = 171, /* BCM56700/56800/56580 enhanced hash 250 field. */ 251 bcmSwitchHashMPLSField1 = 172, /* Selections for MPLS packets. */ 252 bcmSwitchHashFCOEField0 = 173, /* BCM56840 enhanced hash field. */ 253 bcmSwitchHashFCOEField1 = 174, /* Selections for FCOE packets. */ 254 bcmSwitchHashL2TrillField0 = 175, /* BCM56840 enhanced hash field. */ 255 bcmSwitchHashL2TrillField1 = 176, /* Selections for L2 payload Trill 256 packets. */ 257 bcmSwitchHashL3TrillField0 = 177, /* BCM56840 enhanced hash field. */ 258 bcmSwitchHashL3TrillField1 = 178, /* Selections for L3 payload Trill 259 packets. */ 260 bcmSwitchHashTrillTunnelField0 = 179, /* BCM56840 enhanced hash field. */ 261 bcmSwitchHashTrillTunnelField1 = 180, /* Selections Trill tunnel packets. */ 262 bcmSwitchHashHG2UnknownField0 = 181, /* BCM56700/56800/56580 enhanced hash 263 field. */ 264 bcmSwitchHashHG2UnknownField1 = 182, /* Selections for HiGig2 packets. */ 265 bcmSwitchHashField0OverlayCntagRpidEnable = 183, /* Selections for CNTAG, RPID fields. */ 266 bcmSwitchHashField1OverlayCntagRpidEnable = 184, /* Selections for CNTAG, RPID fields. */ 267 bcmSwitchHashHg2PktFieldsEnable = 185, /* Selections for HiGig2 packets. */ 268 bcmSwitchHashField0Ip6FlowLabel = 186, /* Selections for IPV6 packets. */ 269 bcmSwitchHashField1Ip6FlowLabel = 187, /* Selections for IPV6 packets. */ 270 bcmSwitchHashUseFlowSelTrunkUc = 188, /* Enable/Disable flow based hashing for 271 Trunk. */ 272 bcmSwitchHashUseFlowSelEcmp = 189, /* Enable/Disable flow based hashing for 273 ECMP. */ 274 bcmSwitchTrunkHashSet0UnicastOffset = 190, /* BCM56700/56800/56580 enhanced hash 275 bits. */ 276 bcmSwitchTrunkHashSet1UnicastOffset = 191, /* Selections for unicast trunking. */ 277 bcmSwitchTrunkHashSet0NonUnicastOffset = 192, /* BCM56700/56800/56580 enhanced hash 278 bits. */ 279 bcmSwitchTrunkHashSet1NonUnicastOffset = 193, /* Selections for non-unicast trunking. */ 280 bcmSwitchTrunkFailoverHashOffset = 194, /* Enhanced hash selections for trunk 281 failover. */ 282 bcmSwitchFabricTrunkHashSet0UnicastOffset = 195, /* BCM56700/56800/56580 enhanced hash 283 bits. */ 284 bcmSwitchFabricTrunkHashSet1UnicastOffset = 196, /* Selections for unicast fabric 285 trunking. */ 286 bcmSwitchFabricTrunkHashSet0NonUnicastOffset = 197, /* BCM56700/56800/56580 enhanced hash 287 bits. */ 288 bcmSwitchFabricTrunkHashSet1NonUnicastOffset = 198, /* Selections for non-unicast fabric 289 trunking. */ 290 bcmSwitchFabricTrunkFailoverHashOffset = 199, /* Enhanced hash selections for fabric 291 trunk failover. */ 292 bcmSwitchFabricTrunkDynamicHashOffset = 200, /* Enhanced hash selections for fabric 293 trunk dynamic load balancing. */ 294 bcmSwitchLoadBalanceHashSet0UnicastOffset = 201, /* BCM56700/56800/56580 enhanced hash 295 bits. */ 296 bcmSwitchLoadBalanceHashSet1UnicastOffset = 202, /* Selections for unicast load 297 balancing. */ 298 bcmSwitchLoadBalanceHashSet0NonUnicastOffset = 203, /* BCM56700/56800/56580 enhanced hash 299 bits. */ 300 bcmSwitchLoadBalanceHashSet1NonUnicastOffset = 204, /* Selections for non-unicast load 301 balancing. */ 302 bcmSwitchMacroFlowHashMinOffset = 205, /* Minimum offset value to be used in 303 offset table. */ 304 bcmSwitchMacroFlowHashMaxOffset = 206, /* Maximum offset value to be used in 305 offset table. */ 306 bcmSwitchMacroFlowHashStrideOffset = 207, /* Offset increment to be used for 307 populating offset table. */ 308 bcmSwitchUniformUcastTrunkDistribution = 208, /* Uniform unicast trunk distribution on 309 trunk with non power of 2 trunk 310 ports. */ 311 bcmSwitchUniformFabricTrunkDistribution = 209, /* Uniform Higig trunk distribution on 312 trunk with non power of 2 trunk 313 ports. */ 314 bcmSwitchECMPHashSet0Offset = 210, /* BCM56700/56800/56580 enhanced hash 315 bits. */ 316 bcmSwitchECMPHashSet1Offset = 211, /* Selections for ECMP. */ 317 bcmSwitchCpuToCpuEnable = 212, /* Enable copying packets from CMIC to 318 CPU. */ 319 bcmSwitchIgmpUcastEnable = 213, /* Enable unicast packets with IGMP 320 payload. */ 321 bcmSwitchMldUcastEnable = 214, /* Enable unicast packets with MLD 322 payload. */ 323 bcmSwitchIgmpReservedMcastEnable = 215, /* IGMP packets with reserved MC address 324 threated as IGMP. */ 325 bcmSwitchMldReservedMcastEnable = 216, /* MLD packets with reserved MC address 326 threated as MLD. */ 327 bcmSwitchMldDirectAttachedOnly = 217, /* Stricter checks for MLD packets are 328 enable. */ 329 bcmSwitchPortEgressBlockL2 = 218, /* Apply egress mask port blocking on L2 330 traffic. */ 331 bcmSwitchPortEgressBlockL3 = 219, /* Apply egress mask port blocking on L3 332 traffic. */ 333 bcmSwitchBpduInvalidVlanDrop = 220, /* BPDU packets are dropped upon invalid 334 VLAN. */ 335 bcmSwitchMirrorInvalidVlanDrop = 221, /* Mirror-to-port packets are dropped 336 upon invalid VLAN. */ 337 bcmSwitchMirrorPktChecksEnable = 222, /* Enable/Disable all packet checks for 338 mirror packets. */ 339 bcmSwitchRemoteLearnTrust = 223, /* Honor the DONOT_LEARN bit in HiGig 340 header. */ 341 bcmSwitchSourceMacZeroDrop = 224, /* Packets with MACSA of all zeros are 342 dropped. */ 343 bcmSwitchIpmcGroupMtu = 225, /* For ingress MTU check for all IPMC 344 groups. */ 345 bcmSwitchModuleType = 226, /* Set Switch module type. */ 346 bcmSwitchDeprecated227 = 227, /* Deprecated. Do not use. */ 347 bcmSwitchDeprecated228 = 228, /* Deprecated. Do not use. */ 348 bcmSwitchDeprecated229 = 229, /* Deprecated. Do not use. */ 349 bcmSwitchL3EgressMode = 230, /* Enable advanced egress management. */ 350 bcmSwitchL3DefipMultipathCountUpdate = 231, /* Enable control to update L3-DEFIP 351 ECMP-COUNT */ 352 bcmSwitchL3IngressMode = 232, /* Enable advanced Ingress-interface 353 management. */ 354 bcmSwitchL3HostAsRouteReturnValue = 233, /* Enable control to return value, when 355 prefix added to Route table during 356 L3HostAdd. */ 357 bcmSwitchSourceModBlockUcast = 234, /* Apply source modid block on unicast 358 packets only. */ 359 bcmSwitchSourceModBlockControlOpcode = 235, /* Apply source modid block on system 360 control packets. */ 361 bcmSwitchEgressBlockUcast = 236, /* Apply egress mask on unicast packets 362 only. */ 363 bcmSwitchAlternateStoreForward = 237, /* Alternate Store and Forward. */ 364 bcmSwitchWarmBoot = 238, /* Set Warm boot state. */ 365 bcmSwitchStableSelect = 239, /* Select the storage (or stable) 366 location for Level 2 Warm Boot. */ 367 bcmSwitchStableSize = 240, /* Select the storage (or stable) size 368 (bytes) for Level 2 Warm Boot. */ 369 bcmSwitchStableUsed = 241, /* Query the storage (or stable) usage 370 (bytes) for Level 2 Warm Boot. */ 371 bcmSwitchStableConsistent = 242, /* Query the storage (or stable) for 372 whether state is believed consistent 373 with hardware (API completed prior to 374 warmboot). */ 375 bcmSwitchControlSync = 243, /* Force a sync of the Level 2 warm boot 376 state on demand. */ 377 bcmSwitchControlAutoSync = 244, /* Perform a sync of the Level 2 warm 378 boot state after every API. */ 379 bcmSwitchCallbackAbortOnError = 245, /* Abort if a callback returns an error 380 code. */ 381 bcmSwitchUnknownIpmcAsMcast = 246, /* Threat unknown IPMC as L2 Mcast. */ 382 bcmSwitchTunnelUnknownIpmcDrop = 247, /* Drop unknown IPMC for incomming 383 tunnel. */ 384 bcmSwitchDhcpLearn = 248, /* Do not learn MACSA of DHCP packet. */ 385 bcmSwitchIpmcTtl1ToCpu = 249, /* Copy L3 Mcast with TTL 1 to CPU. */ 386 bcmSwitchL3UcastTtl1ToCpu = 250, /* Copy L3 Ucast with TTL 1 to CPU. */ 387 bcmSwitchDosAttackFlagZeroSeqZero = 251, /* Null scan. */ 388 bcmSwitchHgHdrExtLengthEnable = 252, /* Use HiGig+ HDR_EXT_LEN field. */ 389 bcmSwitchDosAttackSynFrag = 253, /* Drop TCP SYN packet with source port 390 0-1023 for the first segment. */ 391 bcmSwitchIp4McastL2DestCheck = 254, /* Check MACDA and IPv4 DIP address 392 match. */ 393 bcmSwitchIp6McastL2DestCheck = 255, /* Check MACDA and IPv6 DIP address 394 match. */ 395 bcmSwitchL3InterfaceUrpfEnable = 256, /* Enable URPF per VLAN/L3-IIF for 396 unicast packets. */ 397 bcmSwitchL3TunnelUrpfMode = 257, /* RPF mode for unicast tunneled 398 packets. */ 399 bcmSwitchL3TunnelUrpfDefaultRoute = 258, /* Enable URPF default gateway check for 400 unicast tunneled packets. */ 401 bcmSwitchL3UrpfFailToCpu = 259, /* Enable trap URPF fail packets to CPU. */ 402 bcmSwitchL3UrpfRouteEnable = 260, /* Enable route lookup for URPF check. */ 403 bcmSwitchL3UrpfRouteEnableExternal = 261, /* Enable External(only) route lookup 404 for URPF check. */ 405 bcmSwitchL3UrpfMode = 262, /* Port rpf mode for unicast packets. */ 406 bcmSwitchL3UrpfDefaultRoute = 263, /* Enable URPF default gateway check. */ 407 bcmSwitchIngressRateLimitIncludeIFG = 264, /* Add bytes to ingress rate limiting 408 for IFG. */ 409 bcmSwitchRateLimitLinear = 265, /* Use linear limits for shaping and 410 egress metering. */ 411 bcmSwitchHashL2Dual = 266, /* Secondary Hash Select for L2. */ 412 bcmSwitchHashL3Dual = 267, /* Secondary Hash Select for L3. */ 413 bcmSwitchHashDualMoveDepth = 268, /* Maximum moves in dual hash mode. */ 414 bcmSwitchHashDualMoveDepthL2 = 269, /* Maximum moves in dual hash mode for 415 L2 tables. */ 416 bcmSwitchHashDualMoveDepthL3 = 270, /* Maximum moves in dual hash mode for 417 L3 tables. */ 418 bcmSwitchHashDualMoveDepthVlan = 271, /* Maximum moves in dual hash mode for 419 vlan tables. */ 420 bcmSwitchHashDualMoveDepthMpls = 272, /* Maximum moves in dual hash mode for 421 mpls tables. */ 422 bcmSwitchHashDualMoveDepthEgressVlan = 273, /* Maximum moves in dual hash mode for 423 egress vlan tables. */ 424 bcmSwitchHashDualMoveDepthWlanPort = 274, /* Maximum moves in dual hash mode for 425 WLAN port table. */ 426 bcmSwitchHashDualMoveDepthWlanClient = 275, /* Maximum moves in dual hash mode for 427 WLAN client table. */ 428 bcmSwitchHashMultiMoveDepth = 276, /* Maximum moves in multi hash mode. */ 429 bcmSwitchHashMultiMoveDepthL2 = 277, /* Maximum moves in multi hash mode for 430 L2 tables. */ 431 bcmSwitchHashMultiMoveDepthL3 = 278, /* Maximum moves in multi hash mode for 432 L3 tables. */ 433 bcmSwitchHashMultiMoveDepthVlan = 279, /* Maximum moves in multi hash mode for 434 vlan tables. */ 435 bcmSwitchHashMultiMoveDepthMpls = 280, /* Maximum moves in multi hash mode for 436 mpls tables. */ 437 bcmSwitchHashMultiMoveDepthEgressVlan = 281, /* Maximum moves in multi hash mode for 438 egress vlan tables. */ 439 bcmSwitchHashL2DualLeastFull = 282, /* Use least full bank in dual hash L2 440 tables. */ 441 bcmSwitchHashL3DualLeastFull = 283, /* Use least full bank in dual hash L3 442 tables. */ 443 bcmSwitchHashMPLSDualLeastFull = 284, /* Use least full bank in dual hash MPLS 444 tables. */ 445 bcmSwitchSharedVlanEnable = 285, /* Enable shared vlan. */ 446 bcmSwitchSharedVlanL2McastEnable = 286, /* Use shared vlan for L2 mcast pkt. */ 447 bcmSwitchIpmcReplicationSharing = 287, /* IPMC replication uses lists. */ 448 bcmSwitchIpmcReplicationAvailabilityThreshold = 288, /* IPMC replication table available 449 space threshold. */ 450 bcmSwitchVrfMax = 289, /* Maximum VRF ID for the device. */ 451 bcmSwitchFailoverStackTrunk = 290, /* Trunk failover support for Stack 452 ports. */ 453 bcmSwitchFailoverEtherTrunk = 291, /* Trunk failover support for Ether 454 ports. */ 455 bcmSwitchClassBasedMoveFailPktToCpu = 292, /* Class based check fail pkt to cpu. */ 456 bcmSwitchClassBasedMoveFailPktDrop = 293, /* Drop class based check fail pkt. */ 457 bcmSwitchHgHdrMcastFlood = 294, /* Flood control value in Higig Header. */ 458 bcmSwitchHgHdrMcastFloodOverride = 295, /* Use flood control value in Higig 459 header. */ 460 bcmSwitchHgHdrIpMcastFlood = 296, /* IPMC flood control value in Higig 461 header. */ 462 bcmSwitchHgHdrIpMcastFloodOverride = 297, /* Use IPMC flood ctrl value in Higig 463 header. */ 464 bcmSwitchSTPBlockedFieldBypass = 298, /* Disable FP when STP state is blocked. */ 465 bcmSwitchL2PortBlocking = 299, /* Enable selective port blocking per 466 MAC address. */ 467 bcmSwitchHashIpfixIngress = 300, /* Hash Select for Ingress IPFIX. */ 468 bcmSwitchHashIpfixIngressDual = 301, /* Secondary Hash Select for Ingress 469 IPFIX. */ 470 bcmSwitchHashIpfixEgress = 302, /* Hash Select for Egress IPFIX. */ 471 bcmSwitchHashIpfixEgressDual = 303, /* Secondary Hash Select for Egress 472 IPFIX. */ 473 bcmSwitchHashMPLS = 304, /* Hash Select for MPLS entry. */ 474 bcmSwitchHashMPLSDual = 305, /* Secondary Hash Select for MPLS entry. */ 475 bcmSwitchForceForwardFabricTrunk = 306, /* Fabric trunk resolution in force 476 forward mode. */ 477 bcmSwitchUseGport = 307, /* Enable GPORT format for 478 destination/source representation. */ 479 bcmSwitchHgHdrMcastVlanRange = 308, /* HIGIG2 broadcast index range */ 480 bcmSwitchHgHdrMcastL2Range = 309, /* HIGIG2 multicast index range */ 481 bcmSwitchHgHdrMcastL3Range = 310, /* HIGIG2 IPMC index range */ 482 bcmSwitchMcastL2Range = 311, /* Multicast index range */ 483 bcmSwitchMcastL3Range = 312, /* IPMC index range */ 484 bcmSwitchHashWlanPort = 313, /* Hash Select for Wlan SVP entry. */ 485 bcmSwitchHashWlanPortDual = 314, /* Secondary hash Select for Wlan SVP 486 entry. */ 487 bcmSwitchHashWlanClient = 315, /* Hash select for Wlan client database 488 entry */ 489 bcmSwitchHashWlanClientDual = 316, /* Secondary hash select for Wlan client 490 database entry */ 491 bcmSwitchWlanClientAuthorizeAll = 317, /* Authorize all wlan clients, disable 492 wlan client lookup */ 493 bcmSwitchWlanClientUnauthToCpu = 318, /* Unauthorized WLAN client's packets to 494 CPU. */ 495 bcmSwitchWlanClientRoamedOutErrorToCpu = 319, /* Roamed out WLAN client's packets to 496 CPU. */ 497 bcmSwitchWlanClientSrcMacMissToCpu = 320, /* WLAN client with source MAC miss: 498 packets to CPU. */ 499 bcmSwitchWlanClientDstMacMissToCpu = 321, /* WLAN client with destination MAC 500 miss: packets to CPU. */ 501 bcmSwitchOamHeaderErrorToCpu = 322, /* Packets with error in the OAM header 502 to CPU. */ 503 bcmSwitchOamUnknownVersionToCpu = 323, /* Packets with unknown OAM version to 504 CPU. */ 505 bcmSwitchOamUnknownVersionDrop = 324, /* Packets with unknown OAM version 506 Dropped. */ 507 bcmSwitchOamUnexpectedPktToCpu = 325, /* OAM Packets with unexpected MDL to 508 CPU. */ 509 bcmSwitchOamCcmToCpu = 326, /* CCM with unexpected MEPID or Interval 510 to CPU. */ 511 bcmSwitchOamXconCcmToCpu = 327, /* CCM with low MDL or unexpected MAID 512 to CPU. */ 513 bcmSwitchOamXconOtherToCpu = 328, /* Other than CCM OAM PDUs with low MDL 514 to CPU. */ 515 bcmSwitchL3SrcBindFailToCpu = 329, /* Packets with L3 source bind table 516 miss to CPU. */ 517 bcmSwitchTunnelIp4IdShared = 330, /* Share the IPv4 ID space across 518 tunnels. */ 519 bcmSwitchHashRegexAction = 331, /* Hash Select for Regex Action entries. */ 520 bcmSwitchHashRegexActionDual = 332, /* Secondary hash Select for Regex 521 Action entries. */ 522 bcmSwitchDeprecated333 = 333, /* Deprecated. Do not use. */ 523 bcmSwitchCpuCopyDestination = 334, /* Destination for CPU bound packets. */ 524 bcmSwitchCpuProtoTimeSyncPrio = 335, /* Priority for Time-Sync packets to 525 CPU. */ 526 bcmSwitchCpuProtoMmrpPrio = 336, /* Priority for MMRP packets to CPU. */ 527 bcmSwitchCpuProtoSrpPrio = 337, /* Priority for SRP packets to CPU. */ 528 bcmSwitchTimeSyncPktToCpu = 338, /* Time-Sync protocol packets to CPU. */ 529 bcmSwitchTimeSyncPktDrop = 339, /* Time-Sync protocol packets dropped. */ 530 bcmSwitchTimeSyncPktFlood = 340, /* Time-Sync protocol packets flooded to 531 VLAN. */ 532 bcmSwitchMmrpPktToCpu = 341, /* MMRP protocol packets to CPU. */ 533 bcmSwitchMmrpPktDrop = 342, /* MMRP protocol packets dropped. */ 534 bcmSwitchMmrpPktFlood = 343, /* MMRP protocol packets flooded to 535 VLAN. */ 536 bcmSwitchSrpPktToCpu = 344, /* SRP protocol packets to CPU. */ 537 bcmSwitchSrpPktDrop = 345, /* SRP protocol packets dropped. */ 538 bcmSwitchSrpPktFlood = 346, /* SRP protocol packets flooded to VLAN. */ 539 bcmSwitchSRPEthertype = 347, /* Set SRP protocol ethertype to match. */ 540 bcmSwitchMMRPEthertype = 348, /* Set MMRP ethertype to match. */ 541 bcmSwitchTimeSyncEthertype = 349, /* Set Timing and Sync protocol 542 ethertype to match. */ 543 bcmSwitchFcoeEtherType = 350, /* Set FCOE protocol ethertype to match. */ 544 bcmSwitchSRPDestMacOui = 351, /* Set SRP protocol MAC upper 3 bytes to 545 match. */ 546 bcmSwitchMMRPDestMacOui = 352, /* Set MMRP protocol MAC upper 3 bytes 547 to match. */ 548 bcmSwitchTimeSyncDestMacOui = 353, /* Set Timnig and Sync protocol MAC 549 upper 3 bytes to match. */ 550 bcmSwitchSRPDestMacNonOui = 354, /* Set SRP protocol MAC lower 3 bytes to 551 match. */ 552 bcmSwitchMMRPDestMacNonOui = 355, /* Set MMRP protocol MAC lower 3 bytes 553 to match. */ 554 bcmSwitchTimeSyncDestMacNonOui = 356, /* Set Timnig and Sync protocol MAC lowe 555 3 bytes to match. */ 556 bcmSwitchTimeSyncMessageTypeBitmap = 357, /* Set Timnig and Sync protocol message 557 bitmap to match. */ 558 bcmSwitchTimeSyncClassAPktPrio = 358, /* Set Priority for the Class A. */ 559 bcmSwitchTimeSyncClassBPktPrio = 359, /* Set Priority for the Class B. */ 560 bcmSwitchTimeSyncClassAExeptionPktPrio = 360, /* Set Remapping Priority for exeption 561 packets in the Class 562 A. */ 563 bcmSwitchTimeSyncClassBExeptionPktPrio = 361, /* Set Remapping Priority for exeption 564 packets in the Class B. */ 565 bcmSwitchL2McastAllRouterPortsAddEnable = 362, /* Add all-router ports to every L2 566 multicast entry. */ 567 bcmSwitchBypassMode = 363, /* Omit some switching features to 568 decrease traffic latency. */ 569 bcmSwitchIpmcSameVlanL3Route = 364, /* Enable forwarding of known IPMC 570 packets to the incoming vlan . */ 571 bcmSwitchDeprecated365 = 365, /* Deprecated. Do not use. */ 572 bcmSwitchFieldCache = 366, /* Enable caching of Rule table or field 573 entries */ 574 bcmSwitchFieldCommit = 367, /* Flush the cached Rule table or field 575 entries to hardware */ 576 bcmSwitchIpmcCache = 368, /* Enable caching of IP Multicast S/G 577 entries */ 578 bcmSwitchIpmcCommit = 369, /* Flush the cached IP Multicast table 579 entries to hardware */ 580 bcmSwitchL2Cache = 370, /* Enable caching of MAC address entries */ 581 bcmSwitchL2Commit = 371, /* Flush the cached MAC address table to 582 hardware */ 583 bcmSwitchL2AgeDelete = 372, /* Enables deletition of MAC addresses 584 during aging scan */ 585 bcmSwitchL2AgeScan = 373, /* Scan all MAC addresses and decrement 586 age-status */ 587 bcmSwitchL3HostCache = 374, /* Enable caching of L3 Host table 588 entries */ 589 bcmSwitchL3HostCommit = 375, /* Flush the cached L3 Host table to 590 hardware */ 591 bcmSwitchL3RouteCache = 376, /* Enable caching of L3 Route table 592 entries */ 593 bcmSwitchL3RouteCommit = 377, /* Flush the cached L3 Route table to 594 hardware */ 595 bcmSwitchL2InvalidCtlToCpu = 378, /* Packets with invalid L2 control 596 fields to CPU. */ 597 bcmSwitchInvalidGreToCpu = 379, /* Packets with invalid GRE fields to 598 CPU */ 599 bcmSwitchHashL2MPLSField0 = 380, /* L2 MPLS enhanced hash field */ 600 bcmSwitchHashL2MPLSField1 = 381, /* L2 MPLS enhanced hash field */ 601 bcmSwitchHashL3MPLSField0 = 382, /* L3 MPLS enhanced hash field */ 602 bcmSwitchHashL3MPLSField1 = 383, /* L3 MPLS enhanced hash field */ 603 bcmSwitchHashMPLSTunnelField0 = 384, /* MPLS tunnel enhanced hash field */ 604 bcmSwitchHashMPLSTunnelField1 = 385, /* MPLS tunnel enhanced hash field */ 605 bcmSwitchHashMIMTunnelField0 = 386, /* MIM tunnel enhanced hash field */ 606 bcmSwitchHashMIMTunnelField1 = 387, /* MIM tunnel enhanced hash field */ 607 bcmSwitchHashMIMField0 = 388, /* MIM enhanced hash field */ 608 bcmSwitchHashMIMField1 = 389, /* MIM enhanced hash field */ 609 bcmSwitchStgInvalidToCpu = 390, /* Packets with STG state of egress port 610 is not in forwarding state to CPU */ 611 bcmSwitchVlanTranslateEgressMissToCpu = 391, /* Packets with VLAN translation talbe 612 missed when it is expected to hit to 613 CPU. */ 614 bcmSwitchL3PktErrToCpu = 392, /* Packets with IP length field is 615 longer than the actual packet length 616 to CPU. */ 617 bcmSwitchMtuFailureToCpu = 393, /* Packets with L2 MTU Failure to CPU. */ 618 bcmSwitchSrcKnockoutToCpu = 394, /* Packets with Split horizon or SVP 619 pruning (SVP==DVP) failure to CPU. */ 620 bcmSwitchWlanTunnelMismatchToCpu = 395, /* Packets with incoming WLAN SVP did 621 not arrive on the expected tunnel to 622 CPU. */ 623 bcmSwitchWlanTunnelMismatchDrop = 396, /* Drop packets with incoming WLAN SVP 624 did not arrive on the expected 625 tunnel. */ 626 bcmSwitchWlanPortMissToCpu = 397, /* WLAN packets that have a SVP miss to 627 CPU. */ 628 bcmSwitchUnknownVlanToCpuCosq = 398, /* VLAN copy to CPU COS. */ 629 bcmSwitchStgInvalidToCpuCosq = 399, /* STG copy to CPU COS. */ 630 bcmSwitchVlanTranslateEgressMissToCpuCosq = 400, /* VLAN translate miss copy to CPU COS. */ 631 bcmSwitchTunnelErrToCpuCosq = 401, /* Tunnel Error to CPU COS. */ 632 bcmSwitchL3HeaderErrToCpuCosq = 402, /* L3 Header Error to CPU COS. */ 633 bcmSwitchL3PktErrToCpuCosq = 403, /* L3 Pkt Error to CPU COS. */ 634 bcmSwitchIpmcTtlErrToCpuCosq = 404, /* TTL drop copy to CPU COS. */ 635 bcmSwitchMtuFailureToCpuCosq = 405, /* MTU failure copy to CPU COS. */ 636 bcmSwitchHgHdrErrToCpuCosq = 406, /* HIGIG error copy to CPU COS. */ 637 bcmSwitchSrcKnockoutToCpuCosq = 407, /* Split horizon or SVP failure to CPU 638 COS. */ 639 bcmSwitchWlanTunnelMismatchToCpuCosq = 408, /* WLAN move to CPU COS. */ 640 bcmSwitchWlanPortMissToCpuCosq = 409, /* WLAN SVP miss to CPU COS. */ 641 bcmSwitchIpfixRateViolationDataInsert = 410, /* Allow insert when rate violation is 642 detected. */ 643 bcmSwitchIpfixRateViolationPersistent = 411, /* Keep rate violation status 644 persistent. */ 645 bcmSwitchHashVlanTranslate = 412, /* Hash Select for VLAN translate. */ 646 bcmSwitchHashVlanTranslateDual = 413, /* Secondary Hash Select for VLAN 647 translate. */ 648 bcmSwitchHashEgressVlanTranslate = 414, /* Hash Select for Egress VLAN 649 translate. */ 650 bcmSwitchHashEgressVlanTranslateDual = 415, /* Secondary Hash Select for Egress VLAN 651 translate. */ 652 bcmSwitchLayeredQoSResolution = 416, /* Enable layered QoS resolution mode. */ 653 bcmSwitchCustomerQueuing = 417, /* Enable customer domain queuing. */ 654 bcmSwitchCosqStatThreshold = 418, /* Sets Statistics Threshold to ACE-TCE 655 Mode */ 656 bcmSwitchCosqStatInterval = 419, /* Sets background ejection Statistics 657 Interval */ 658 bcmSwitchEncapErrorToCpu = 420, /* Encapsulation Error to CPU */ 659 bcmSwitchMplsPortIndependentLowerRange1 = 421, /* Port Independent Lower MPLS Label for 660 Range-1 */ 661 bcmSwitchMplsPortIndependentUpperRange1 = 422, /* Port Independent Upper MPLS Label for 662 Range-1 */ 663 bcmSwitchMplsPortIndependentLowerRange2 = 423, /* Port Independent Lower MPLS Label for 664 Range-2 */ 665 bcmSwitchMplsPortIndependentUpperRange2 = 424, /* Port Independent Upper MPLS Label for 666 Range-2 */ 667 bcmSwitchMirrorEgressTrueColorSelect = 425, /* Color override selection for egress 668 true mirroring */ 669 bcmSwitchMirrorEgressTruePriority = 426, /* Priority override selection for 670 egress true mirroring */ 671 bcmSwitchPFCClass0Queue = 427, /* Queue to suspend when a Priority Flow 672 Control class 0 packet is received. */ 673 bcmSwitchPFCClass1Queue = 428, /* Queue to suspend when a Priority Flow 674 Control class 1 packet is received. */ 675 bcmSwitchPFCClass2Queue = 429, /* Queue to suspend when a Priority Flow 676 Control class 2 packet is received. */ 677 bcmSwitchPFCClass3Queue = 430, /* Queue to suspend when a Priority Flow 678 Control class 3 packet is received. */ 679 bcmSwitchPFCClass4Queue = 431, /* Queue to suspend when a Priority Flow 680 Control class 4 packet is received. */ 681 bcmSwitchPFCClass5Queue = 432, /* Queue to suspend when a Priority Flow 682 Control class 5 packet is received. */ 683 bcmSwitchPFCClass6Queue = 433, /* Queue to suspend when a Priority Flow 684 Control class 6 packet is received. */ 685 bcmSwitchPFCClass7Queue = 434, /* Queue to suspend when a Priority Flow 686 Control class 7 packet is received. */ 687 bcmSwitchPFCClass0McastQueue = 435, /* Multicast queue to suspend when a 688 Priority Flow Control class 0 packet 689 is received. */ 690 bcmSwitchPFCClass1McastQueue = 436, /* Multicast queue to suspend when a 691 Priority Flow Control class 1 packet 692 is received. */ 693 bcmSwitchPFCClass2McastQueue = 437, /* Multicast queue to suspend when a 694 Priority Flow Control class 2 packet 695 is received. */ 696 bcmSwitchPFCClass3McastQueue = 438, /* Multicast queue to suspend when a 697 Priority Flow Control class 3 packet 698 is received. */ 699 bcmSwitchPFCClass4McastQueue = 439, /* Multicast queue to suspend when a 700 Priority Flow Control class 4 packet 701 is received. */ 702 bcmSwitchPFCClass5McastQueue = 440, /* Multicast queue to suspend when a 703 Priority Flow Control class 5 packet 704 is received. */ 705 bcmSwitchPFCClass6McastQueue = 441, /* Multicast queue to suspend when a 706 Priority Flow Control class 6 packet 707 is received. */ 708 bcmSwitchPFCClass7McastQueue = 442, /* Multicast queue to suspend when a 709 Priority Flow Control class 7 packet 710 is received. */ 711 bcmSwitchPFCClass0DestmodQueue = 443, /* Destination module queue to suspend 712 when a Priority Flow Control class 0 713 packet is received. */ 714 bcmSwitchPFCClass1DestmodQueue = 444, /* Destination module queue to suspend 715 when a Priority Flow Control class 1 716 packet is received. */ 717 bcmSwitchPFCClass2DestmodQueue = 445, /* Destination module queue to suspend 718 when a Priority Flow Control class 2 719 packet is received. */ 720 bcmSwitchPFCClass3DestmodQueue = 446, /* Destination module queue to suspend 721 when a Priority Flow Control class 3 722 packet is received. */ 723 bcmSwitchPFCClass4DestmodQueue = 447, /* Destination module queue to suspend 724 when a Priority Flow Control class 4 725 packet is received. */ 726 bcmSwitchPFCClass5DestmodQueue = 448, /* Destination module queue to suspend 727 when a Priority Flow Control class 5 728 packet is received. */ 729 bcmSwitchPFCClass6DestmodQueue = 449, /* Destination module queue to suspend 730 when a Priority Flow Control class 6 731 packet is received. */ 732 bcmSwitchPFCClass7DestmodQueue = 450, /* Destination module queue to suspend 733 when a Priority Flow Control class 7 734 packet is received. */ 735 bcmSwitchPFCQueue0Class = 451, /* Priority Flow Control class for COS 736 queue 0. */ 737 bcmSwitchPFCQueue1Class = 452, /* Priority Flow Control class for COS 738 queue 1. */ 739 bcmSwitchPFCQueue2Class = 453, /* Priority Flow Control class for COS 740 queue 2. */ 741 bcmSwitchPFCQueue3Class = 454, /* Priority Flow Control class for COS 742 queue 3. */ 743 bcmSwitchPFCQueue4Class = 455, /* Priority Flow Control class for COS 744 queue 4. */ 745 bcmSwitchPFCQueue5Class = 456, /* Priority Flow Control class for COS 746 queue 5. */ 747 bcmSwitchPFCQueue6Class = 457, /* Priority Flow Control class for COS 748 queue 6. */ 749 bcmSwitchPFCQueue7Class = 458, /* Priority Flow Control class for COS 750 queue 7. */ 751 bcmSwitchReserveLowL3InterfaceId = 459, /* Set the lower inclusive bounds of the 752 L3 Interfaces. Get will return the 753 lowest value supported by the device. 754 Setting 0 will remove the reserved 755 range. */ 756 bcmSwitchReserveHighL3InterfaceId = 460, /* Set the higher inclusive bounds of 757 the L3 Interfaces. Get will return 758 the lowest value supported by the 759 device. Setting 0 will remove the 760 reserved range. */ 761 bcmSwitchReserveLowL3EgressId = 461, /* Set the lower inclusive bounds of the 762 L3 Egress object. Get will return 763 the lowest value supported by the 764 device. Setting 0 will remove the 765 reserved range. */ 766 bcmSwitchReserveHighL3EgressId = 462, /* Set the higher inclusive bounds of 767 the L3 Egress object. Get will 768 return the lowest value supported by 769 the device. Setting 0 will remove 770 the reserved range. */ 771 bcmSwitchReserveLowVlanPort = 463, /* Set the lower inclusive bounds of the 772 vlan gport resources. Get will 773 return the lowest value supported by 774 the device. Setting 0 will remove 775 the reserved range */ 776 bcmSwitchReserveHighVlanPort = 464, /* Set the highest inclusive bounds of 777 the vlan gport resources. Get will 778 return the highest value supported by 779 the device. Setting 0 will remove 780 the reserved range */ 781 bcmSwitchReserveLowMplsPort = 465, /* Set the lower inclusive bounds of the 782 mpls gport resources. Get will 783 return the lowest value supported by 784 the device. Setting 0 will remove 785 the reserved range */ 786 bcmSwitchReserveHighMplsPort = 466, /* Set the highest inclusive bounds of 787 the mpls gport resources. Get will 788 return the highest value supported by 789 the device. Setting 0 will remove 790 the reserved range */ 791 bcmSwitchReserveLowMimPort = 467, /* Set the lower inclusive bounds of the 792 mim gport resources. Get will return 793 the lowest value supported by the 794 device. Setting 0 will remove the 795 reserved range */ 796 bcmSwitchReserveHighMimPort = 468, /* Set the highest inclusive bounds of 797 the mim gport resources. Get will 798 return the highest value supported by 799 the device. Setting 0 will remove 800 the reserved range */ 801 bcmSwitchReserveLowEncap = 469, /* Set the lower inclusive bounds of the 802 Encap ID resources used internally by 803 gports. Get will return the lowest 804 value supported by the device. 805 Setting 0 will remove the reserved 806 range */ 807 bcmSwitchReserveHighEncap = 470, /* Set the highest inclusive bounds of 808 the Encap ID resources used 809 internally by gports. Get will 810 return the highest value supported by 811 the device. Setting 0 will remove 812 the reserved range */ 813 bcmSwitchReserveLowL2Egress = 471, /* Set the lower inclusive bounds of the 814 L2 Encap ID resources. Get will 815 return the lowest value supported by 816 the device. Setting 0 will remove 817 the reserved range */ 818 bcmSwitchReserveHighL2Egress = 472, /* Set the highest inclusive bounds of 819 the L2 Encap ID resources. Get will 820 return the highest value supported by 821 the device. Setting 0 will remove 822 the reserved range */ 823 bcmSwitchReserveLowVpn = 473, /* Set the lower inclusive bounds of the 824 VPN ID resources. Get will return 825 the lowest value supported by the 826 device. Setting 0 will remove the 827 reserved range */ 828 bcmSwitchReserveHighVpn = 474, /* Set the highest inclusive bounds of 829 the VPN ID resources. Get will 830 return the highest value supported by 831 the device. Setting 0 will remove 832 the reserved range */ 833 bcmSwitchReserveLowFailoverId = 475, /* Set the lower inclusive bounds of 834 failover object. Get will return the 835 lowest value supported by the device. 836 Setting 0 will remove the reserved 837 range */ 838 bcmSwitchReserveHighFailoverId = 476, /* Set the higher inclusive bounds of 839 failover object. Get will return the 840 lowest value supported by the device. 841 Setting 0 will remove the reserved 842 range */ 843 bcmSwitchReserveLowOamEndPointId = 477, /* Set the lower inclusive bounds of OAM 844 endpoint. Get will return the lowest 845 value supported by the device. 846 Setting 0 will remove the reserved 847 range */ 848 bcmSwitchReserveHighOamEndPointId = 478, /* Set the higher inclusive bounds of 849 OAM endpoin. Get will return the 850 lowest value supported by the device. 851 Setting 0 will remove the reserved 852 range */ 853 bcmSwitchReserveLowOamGroupId = 479, /* Set the lower inclusive bounds of OAM 854 Group. Get will return the lowest 855 value supported by the device. 856 Setting 0 will remove the reserved 857 range */ 858 bcmSwitchReserveHighOamGroupId = 480, /* Set the higher inclusive bounds of 859 OAM Group. Get will return the 860 lowest value supported by the device. 861 Setting 0 will remove the reserved 862 range */ 863 bcmSwitchSnapNonZeroOui = 481, /* Decode SNAP packets with non-zero OUI 864 for protocol-based VLAN */ 865 bcmSwitchSynchronousPortClockSource = 482, /* Set ITU-T G.8261/8262 synchronous 866 ethernet recovered clock source. 867 Setting -1 selects in free-run mode 868 (no recovered clock). Get returns the 869 current value. */ 870 bcmSwitchSynchronousPortClockSourceBkup = 483, /* Set ITU-T G.8261/8262 synchronous 871 ethernet recovered backup clock 872 source. Get returns the current 873 value. */ 874 bcmSwitchSynchronousPortClockSourceDivCtrl = 484, /* Set ITU-T G.8261/8262 synchronous 875 ethernet recovered clock source. 876 Setting -1 selects the divide by five 877 logic. Get returns the current value. */ 878 bcmSwitchSynchronousPortClockSourceBkupDivCtrl = 485, /* Set ITU-T G.8261/8262 synchronous 879 ethernet recovered backup clock 880 source. Setting -1 selects the 881 divide by five logic. Get returns the 882 current value. */ 883 bcmSwitchL2HitClear = 486, /* Clear L2 source and destination hit 884 bits when set to 1 */ 885 bcmSwitchL2SrcHitClear = 487, /* Clear L2 source hit bits when set to 886 1 */ 887 bcmSwitchL2DstHitClear = 488, /* Clear L2 destination hit bits when 888 set to 1 */ 889 bcmSwitchL3HostHitClear = 489, /* Clear L3 host hit bits when set to 1 */ 890 bcmSwitchL3RouteHitClear = 490, /* Clear L3 route hit bits when set to 1 */ 891 bcmSwitchIpmcSameVlanPruning = 491, /* Allow both L2 and L3 copies of a 892 packet to go out on a physical port 893 if it happens to be a member of both 894 the L2 and L3 bitmaps of the 895 replication group. */ 896 bcmSwitchDeprecated492 = 492, /* Deprecated. Do not use. */ 897 bcmSwitchDeprecated493 = 493, /* Deprecated. Do not use. */ 898 bcmSwitchL2McIdxRetType = 494, /* When set to 1, L2 multicast API will 899 return multicast index as 900 bcm_multicast_t instead of hardware 901 multicast index. */ 902 bcmSwitchL3McIdxRetType = 495, /* When set to 1, IP multicast API will 903 return multicast index as 904 bcm_multicast_t instead of hardware 905 multicast index. */ 906 bcmSwitchDeprecated496 = 496, /* Deprecated. Do not use. */ 907 bcmSwitchDeprecated497 = 497, /* Deprecated. Do not use. */ 908 bcmSwitchDeprecated498 = 498, /* Deprecated. Do not use. */ 909 bcmSwitchDeprecated499 = 499, /* Deprecated. Do not use. */ 910 bcmSwitchDeprecated500 = 500, /* Deprecated. Do not use. */ 911 bcmSwitchArpDhcpToCpu = 501, /* Set both ARP and DHCP to CPU. */ 912 bcmSwitchIgmpMldToCpu = 502, /* Set the snooping mode on both IGMP 913 and MLD together. */ 914 bcmSwitchLinkDownInfoSkip = 503, /* Skip port information gathering 915 during linkdown event 916 notification */ 917 bcmSwitchDeprecated504 = 504, /* Deprecated. Do not use. */ 918 bcmSwitchL2SourceDiscardMoveToCpu = 505, /* SRC MAC discard configuration to CPU */ 919 bcmSwitchNivEthertype = 506, /* Set ethertype field in VNTAG */ 920 bcmSwitchNivPrioDropToCpu = 507, /* NIV priority admittance drop to CPU */ 921 bcmSwitchNivInterfaceMissToCpu = 508, /* NIV forwarding lookup miss to CPU */ 922 bcmSwitchNivRpfFailToCpu = 509, /* NIV RPF check fail to CPU */ 923 bcmSwitchNivTagInvalidToCpu = 510, /* Invalid VNTAG to CPU */ 924 bcmSwitchNivTagDropToCpu = 511, /* VNTAG present to CPU */ 925 bcmSwitchNivUntagDropToCpu = 512, /* VNTAG not present to CPU */ 926 bcmSwitchEEEPipelineTime = 513, /* Time (in system clock cycles) for MAC 927 to ensure that the egress pipeline is 928 empty prior to the assertion of the 929 LPI control signal. */ 930 bcmSwitchEEEGlobalCongestionThreshold = 514, /* If this threshold is exceeded, EEE is 931 disabled for all ports. */ 932 bcmSwitchDeprecated515 = 515, /* Deprecated. Do not use. */ 933 bcmSwitchDeprecated516 = 516, /* Deprecated. Do not use. */ 934 bcmSwitchDeprecated517 = 517, /* Deprecated. Do not use. */ 935 bcmSwitchDeprecated518 = 518, /* Deprecated. Do not use. */ 936 bcmSwitchDeprecated519 = 519, /* Deprecated. Do not use. */ 937 bcmSwitchDeprecated520 = 520, /* Deprecated. Do not use. */ 938 bcmSwitchDeprecated521 = 521, /* Deprecated. Do not use. */ 939 bcmSwitchRemoteCpuSchanEnable = 522, /* Enables SCHAN requests for Remote CPU 940 feature */ 941 bcmSwitchRemoteCpuFromCpuEnable = 523, /* Enables recieving packets from CPU 942 for Remote CPU feature */ 943 bcmSwitchRemoteCpuToCpuEnable = 524, /* Enables sending packet to CPU for 944 Remote CPU feature */ 945 bcmSwitchRemoteCpuCmicEnable = 525, /* Enables CMIC requests for Remote CPU 946 feature */ 947 bcmSwitchRemoteCpuMatchLocalMac = 526, /* Local MAC addresses matching for 948 Remote CPU feature */ 949 bcmSwitchRemoteCpuMatchVlan = 527, /* VLAN matching for Remote CPU feature */ 950 bcmSwitchRemoteCpuVlan = 528, /* VLAN tag to be inserted into Remote 951 CPU packets */ 952 bcmSwitchRemoteCpuTpid = 529, /* TPID tag to be inserted into Remote 953 CPU packets */ 954 bcmSwitchRemoteCpuSignature = 530, /* Unique Signature for Remote CPU 955 packets */ 956 bcmSwitchRemoteCpuForceScheduling = 531, /* Remote CPU packets are forced to have 957 COS value */ 958 bcmSwitchRemoteCpuToCpuDestPortAllReasons = 532, /* Remote CPU packets to be forwarded 959 for all directed reasons */ 960 bcmSwitchRemoteCpuToCpuDestMacAllReasons = 533, /* Remote CPU packets to be forwarded 961 for all reasons */ 962 bcmSwitchRxRedirectPktReasons = 534, /* All forwarding reasons for normal 963 packets */ 964 bcmSwitchRxRedirectPktReasonsExtended = 535, /* All extended forwarding reasons for 965 normal packets */ 966 bcmSwitchRxRedirectHigigPktReasons = 536, /* All forwarding reasons for higig 967 packets */ 968 bcmSwitchRxRedirectHigigPktReasonsExtended = 537, /* All extended forwarding reasons for 969 higig packets */ 970 bcmSwitchRxRedirectTruncatedPktReasons = 538, /* All forwarding reasons for truncated 971 packets */ 972 bcmSwitchRxRedirectTruncatedPktReasonsExtended = 539, /* All extended forwarding reasons for 973 truncated packets */ 974 bcmSwitchRxRedirectPktCos = 540, /* All forwarding COS queue bitmap for 975 normal packets */ 976 bcmSwitchRxRedirectPktCosExtended = 541, /* All extended forwarding COS queue 977 bitmap for normal packets */ 978 bcmSwitchRemoteCpuLocalMacOui = 542, /* Higher 3 bytes of Local MAC address 979 used for Remote CPU */ 980 bcmSwitchRemoteCpuLocalMacNonOui = 543, /* Lower 3 bytes of Local MAC address 981 used for Remote CPU */ 982 bcmSwitchRemoteCpuDestMacOui = 544, /* Higher 3 bytes of Destination MAC 983 address used for Remote CPU */ 984 bcmSwitchRemoteCpuDestMacNonOui = 545, /* Lower 3 bytes of Destination MAC 985 address used for Remote CPU */ 986 bcmSwitchRemoteCpuEthertype = 546, /* Remote CPU ethertype */ 987 bcmSwitchRemoteCpuDestPort = 547, /* Remote CPU will direct raw data 988 packets with SOBMH header to a given 989 port */ 990 bcmSwitchRemoteCpuHigigDestPort = 548, /* Remote CPU will direct raw data 991 packets with Higig header to a given 992 port */ 993 bcmSwitchRemoteCpuTcMappingMacOui = 549, /* Higher 3 bytes of Destination MAC 994 address used to match received ToCPU 995 packets */ 996 bcmSwitchRemoteCpuTcMappingMacNonOui = 550, /* Lower 3 bytes of Destination MAC 997 address used to match received ToCPU 998 packets */ 999 bcmSwitchRemoteCpuTcMappingEthertype = 551, /* Ethertype used to match received 1000 ToCPU packets */ 1001 bcmSwitchServiceTpidReplace = 552, /* Replace TPID in Service Delimiting 1002 SD-TAG */ 1003 bcmSwitchEgressPktAge = 553, /* Chip-wide egress packet age time, 1004 msec. */ 1005 bcmSwitchFabricTrunkDynamicSampleRate = 554, /* Number of times average port egressed 1006 bytes and queued bytes are computed 1007 in a second */ 1008 bcmSwitchFabricTrunkDynamicEgressBytesExponent = 555, /* The exponent used in the calculation 1009 of exponentially weighted moving 1010 average of port egressed bytes */ 1011 bcmSwitchFabricTrunkDynamicQueuedBytesExponent = 556, /* The exponent used in the calculation 1012 of exponentially weighted moving 1013 average of port queued bytes */ 1014 bcmSwitchFabricTrunkDynamicEgressBytesDecreaseReset = 557, /* If set, the average port egressed 1015 bytes is updated with the sampled 1016 value if the sampled value is less 1017 than the average */ 1018 bcmSwitchFabricTrunkDynamicQueuedBytesDecreaseReset = 558, /* If set, the average port queued bytes 1019 is updated with the sampled value if 1020 the sampled value is less than the 1021 average */ 1022 bcmSwitchFabricTrunkDynamicEgressBytesMinThreshold = 559, /* The minimum threshold, in mbps, used 1023 to quantize average port egressed 1024 bytes */ 1025 bcmSwitchFabricTrunkDynamicEgressBytesMaxThreshold = 560, /* The maximum threshold, in mbps, used 1026 to quantize average port egressed 1027 bytes */ 1028 bcmSwitchFabricTrunkDynamicQueuedBytesMinThreshold = 561, /* The minimum threshold, in bytes, used 1029 to quantize average port queued bytes */ 1030 bcmSwitchFabricTrunkDynamicQueuedBytesMaxThreshold = 562, /* The maximum threshold, in bytes, used 1031 to quantize average port queued bytes */ 1032 bcmSwitchMacLowPower = 563, /* Enable switch low power mode and set 1033 the low power frequency, Khz */ 1034 bcmSwitchCongestionCntag = 564, /* Enable/Disable CN-TAG processing */ 1035 bcmSwitchCongestionCntagEthertype = 565, /* Ethertype for CN-TAG */ 1036 bcmSwitchCongestionCnm = 566, /* Enable/Disable congestion 1037 notification message handling */ 1038 bcmSwitchCongestionCnmEthertype = 567, /* Ethertype for congestion notification 1039 message */ 1040 bcmSwitchCongestionNotificationIdHigh = 568, /* Device identifier for contructing 1041 congestion point identifier */ 1042 bcmSwitchCongestionNotificationIdLow = 569, /* Port identifier for constructing 1043 congestion point identifier */ 1044 bcmSwitchCongestionNotificationIdQueue = 570, /* Queue mode of the congestion point 1045 identifier. When set to 0 use 1046 congestion managed queue id, 1047 otherwise use queue number */ 1048 bcmSwitchCongestionUseOuterTpid = 571, /* Outer TPID to be used for congestion 1049 notification message */ 1050 bcmSwitchCongestionUseOuterVlan = 572, /* Outer vlan to be used for congestion 1051 notification message */ 1052 bcmSwitchCongestionUseOuterPktPri = 573, /* Outer priority to be used for 1053 congestion notification message */ 1054 bcmSwitchCongestionUseOuterCfi = 574, /* Outer CFI to be used for congestion 1055 notification message */ 1056 bcmSwitchCongestionUseInnerPktPri = 575, /* Inner priority to be used for 1057 congestion notification message */ 1058 bcmSwitchCongestionUseInnerCfi = 576, /* Inner CFI to be used for congestion 1059 notification message */ 1060 bcmSwitchCongestionMissingCntag = 577, /* Choose the CNM generation behavior 1061 when congestion notification 1062 threshold is reached but the incoming 1063 sampled packet does not have CN-TAG */ 1064 bcmSwitchCongestionExcludeReplications = 578, /* Take the replicated packets in 1065 account during the congestion test */ 1066 bcmSwitchMiMDefaultSVP = 579, /* Enable MiM termination lookup miss 1067 packets to be forwarded using default 1068 SVP */ 1069 bcmSwitchMiMDefaultSVPValue = 580, /* Default SVP for Mac-in-Mac */ 1070 bcmSwitchEgressDroppedReportZeroLength = 581, /* Enable egress pipeline to report zero 1071 length for dropped packets */ 1072 bcmSwitchLoadBalanceHashSelect = 582, /* Selects which hash function to use 1073 for Load Balance computation */ 1074 bcmSwitchTrillEthertype = 583, /* Set TRILL Ethertype field. Value of 1075 uint16 type */ 1076 bcmSwitchTrillISISEthertype = 584, /* Set TRILL ISIS Ethertype field. Value 1077 of uint16 type */ 1078 bcmSwitchTrillISISDestMacOui = 585, /* Set TRILL All_ISIS_Rbridge MAC upper 1079 3 bytes to match. */ 1080 bcmSwitchTrillBroadcastDestMacOui = 586, /* Set TRILL ALL_Rbridge MAC upper 3 1081 bytes to match. */ 1082 bcmSwitchTrillEndStationDestMacOui = 587, /* Set TRILL ALL_ESADI MAC upper 3 bytes 1083 to match. */ 1084 bcmSwitchTrillISISDestMacNonOui = 588, /* Set TRILL ALL_ISIS_Rbridge MAC lower 1085 3 bytes to match. */ 1086 bcmSwitchTrillBroadcastDestMacNonOui = 589, /* Set TRILL ALL_Rbridge MAC lower 3 1087 bytes to match. */ 1088 bcmSwitchTrillEndStationDestMacNonOui = 590, /* Set TRILL ALL_ESADI MAC lower 3 bytes 1089 to match. */ 1090 bcmSwitchTrillMinTtl = 591, /* Set minimum TTL for Egress and 1091 Transit TRILL Rbridge. */ 1092 bcmSwitchTrillTtlCheckEnable = 592, /* Enable TTL check for Egress TRILL 1093 Rbridge. */ 1094 bcmSwitchTrillTtlErrToCpu = 593, /* Copy TRILL TTL failure packets to 1095 CPU. */ 1096 bcmSwitchTrillHeaderErrToCpu = 594, /* Copy TRILL Header Error frame to CPU. */ 1097 bcmSwitchTrillMismatchToCpu = 595, /* Copy TRILL mismatch error frame to 1098 CPU. */ 1099 bcmSwitchTrillNameMissToCpu = 596, /* Copy TRILL Rbridge lookup failure to 1100 CPU. */ 1101 bcmSwitchTrillRpfFailToCpu = 597, /* Copy TRILL RPF check fail to CPU. */ 1102 bcmSwitchTrillOptionsToCpu = 598, /* Copy header Options to CPU. */ 1103 bcmSwitchTrillNameErrDrop = 599, /* Set Drop setting for TRILL packets 1104 with Ingress-name equal to 1105 Egress-name. */ 1106 bcmSwitchTrillRpfFailDrop = 600, /* Set Drop setting for TRILL multicast 1107 packets that fail RPF check. */ 1108 bcmSwitchTrillHeaderVersionErrDrop = 601, /* Set Drop Setting for TRILL frames 1109 received with a non-zero Version 1110 field. */ 1111 bcmSwitchTrillNameMissDrop = 602, /* Set Drop setting for TRILL Ingress 1112 RBridge nickname lookup failure. */ 1113 bcmSwitchTrillAdjacencyFailDrop = 603, /* Set Drop setting for TRILL adjacency 1114 failure. */ 1115 bcmSwitchTrillHeaderErrDrop = 604, /* Set Drop Setting for TRILL header 1116 error. */ 1117 bcmSwitchUdpPktActionEnable = 605, /* Enable additional actions for UDP 1118 packets */ 1119 bcmSwitchUdpPktRedirectPbmp = 606, /* Replace the destination port bitmap 1120 of UDP packets */ 1121 bcmSwitchUdpPktCopyToPbmp = 607, /* Add the destination port bitmap of 1122 UDP packets */ 1123 bcmSwitchUdpPktNewTc = 608, /* Change the Traffic Class value of UDP 1124 packets */ 1125 bcmSwitchL3TunnelIpV4ModeOnly = 609, /* Set L3 Tunnel to IPV4 mode only */ 1126 bcmSwitchL3SrcHitEnable = 610, /* Enables/Disables source hit bit 1127 lookup update in the L3 table */ 1128 bcmSwitchL2DstHitEnable = 611, /* Enables/Disables destination hit bit 1129 lookup update in the L2 table */ 1130 bcmSwitchWESPProtocolEnable = 612, /* Enables/Disables parsing into WESP 1131 payload */ 1132 bcmSwitchWESPProtocol = 613, /* WESP protocol number */ 1133 bcmSwitchDeprecated614 = 614, /* Deprecated. Do not use. */ 1134 bcmSwitchIp6CompressEnable = 615, /* Enables/Disables IPv6 compression 1135 support in the VFP table */ 1136 bcmSwitchIp6CompressDefaultOffset = 616, /* Set the offset value used to extract 1137 26-bits from the IPv6 address field 1138 of IPv6 packet */ 1139 bcmSwitchStableSaveLongIds = 617, /* When saving FP information to storage 1140 for level-2 warm boot, save full 1141 entity ids (i.e. not compact) */ 1142 bcmSwitchGportAnyDefaultL2Learn = 618, /* Set default cml_value for Any Gport 1143 type. */ 1144 bcmSwitchGportAnyDefaultL2Move = 619, /* Set default cml_station_move value 1145 for Any Gport type */ 1146 bcmSwitchIngParseL2TunnelTermDipSipSelect = 620, /* Controls the values used to populate 1147 the DIP+SIP containers for 1148 L2-tunnel-terminated packets */ 1149 bcmSwitchIngParseL3L4IPv4 = 621, /* Enable parsing of IPv4 L3/L4 headers */ 1150 bcmSwitchIngParseL3L4IPv6 = 622, /* Enable parsing of IPv6 L3/L4 headers */ 1151 bcmSwitchL2LearnMode = 623, /* Learning Mode */ 1152 bcmSwitchSetWredJitterMask = 624, /* Set WRED Jitter value */ 1153 bcmSwitchSetMplsEntropyLabelTtl = 625, /* Set MPLS Entropy-Label TTL value */ 1154 bcmSwitchSetMplsEntropyLabelPri = 626, /* Set MPLS Entropy-Label PRI value */ 1155 bcmSwitchSetMplsEntropyLabelOffset = 627, /* Set MPLS Entropy-Label Hash Offset */ 1156 bcmSwitchPonOamFailsafeState = 628, /* Enables/Disables MPCP fail safe */ 1157 bcmSwitchEquipmentAlarmState = 629, /* Set equipment alarm report state */ 1158 bcmSwitchPowerAlarmState = 630, /* Set power alarm report state */ 1159 bcmSwitchBatteryMissingAlarmState = 631, /* Set battery missing alarm report 1160 state */ 1161 bcmSwitchBatteryFailureAlarmState = 632, /* Set battery failure alarm report 1162 state */ 1163 bcmSwitchBatteryVoltLowAlarmState = 633, /* Set battery volt low alarm report 1164 state */ 1165 bcmSwitchBatteryVoltLowAlarmReportThreshold = 634, /* Set battery volt low alarm report 1166 threshold */ 1167 bcmSwitchBatteryVoltLowAlarmClearThreshold = 635, /* Set battery volt low alarm clear 1168 threshold */ 1169 bcmSwitchPhysicalIntrusionAlarmState = 636, /* Set physical instrusion alarm report 1170 state */ 1171 bcmSwitchSelfTestFailureAlarmState = 637, /* Set self test failure alarm report 1172 state */ 1173 bcmSwitchPonIfSwitchAlarmState = 638, /* Set PON switchover alarm report state */ 1174 bcmSwitchL3IngressInterfaceMapSet = 639, /* Enable mode to configure 1175 ingress-mapping of Vlan and L3 1176 Ingress Interface */ 1177 bcmSwitchMplsPWControlWordToCpu = 640, /* Enable MPLS packets with PWACH 1178 control word, to be copied to CPU */ 1179 bcmSwitchMplsPWControlTypeToCpu = 641, /* Enable MPLS packets with other 1180 control word, to be copied to CPU */ 1181 bcmSwitchMplsPWControlWord = 642, /* Set Control Word value */ 1182 bcmSwitchMplsPWCountPktsAll = 643, /* Enable count-all MPLS packets 1183 arriving on PWs */ 1184 bcmSwitchEntropyHashSet0Offset = 644, /* Selection for MPLS-Entropy-Label hash 1185 bits. */ 1186 bcmSwitchEntropyHashSet1Offset = 645, /* Selection for MPLS-Entropy-Label hash 1187 bits. */ 1188 bcmSwitchArpRequestMyStationIPToCPU = 646, /* APR reply packets with My IP address 1189 should be sent to CPU. */ 1190 bcmSwitchArpRequestMyStationIPDrop = 647, /* APR reply packets with My IP address 1191 should be dropped. */ 1192 bcmSwitchArpRequestMyStationIPFwd = 648, /* APR reply packets with given IP 1193 address should not trapped/dropped. */ 1194 bcmSwitchL3SIPMoveToCpu = 649, 1195 bcmSwitchTrunkHashSrcPortEnable = 650, /* BCM886XX: Make Source port part of 1196 the hash. */ 1197 bcmSwitchTrunkHashOffset = 651, /* BCM886XX: Hash key is barrel shifted 1198 by this value */ 1199 bcmSwitchTrunkHashMPLSLabelBOS = 652, /* In an mpls label stack, look for 1200 label with bottom of stack bit set. 1201 Valid values see 1202 BCM_HASH_MPLS_LABEL_BOS_ */ 1203 bcmSwitchTrunkHashMPLSPWControlWord = 653, /* BCM886XX: Indicates control word is 1204 present at end of MPLS headers. */ 1205 bcmSwitchTrunkHashSeed = 654, /* BCM886XX: Initial seed value for 1206 trunk hashing. */ 1207 bcmSwitchTrunkHashConfig = 655, /* BCM886XX: Selects hashing polynomial. */ 1208 bcmSwitchTrunkHashPktHeaderCount = 656, /* BCM886XX: Number of headers to 1209 consider in hashing. */ 1210 bcmSwitchTrunkHashPktHeaderSelect = 657, /* BCM886XX: Selects which starting 1211 header to use for hashing. */ 1212 bcmSwitchECMPHashSrcPortEnable = 658, /* BCM886XX: Make Source port part of 1213 the ECMP hash. */ 1214 bcmSwitchECMPHashOffset = 659, /* BCM886XX: ECMP Hash key is barrel 1215 shifted by this value. */ 1216 bcmSwitchECMPHashSeed = 660, /* BCM886XX: Initial seed value for ECMP 1217 hashing. */ 1218 bcmSwitchECMPHashConfig = 661, /* BCM886XX: Selects hashing polynomial 1219 for ECMP. */ 1220 bcmSwitchECMPHashPktHeaderCount = 662, /* BCM886XX: Number of headers to 1221 consider in ECMP hashing. */ 1222 bcmSwitchTrunkDynamicHashOffset = 663, /* Enhanced hash selections for trunk 1223 dynamic load balancing. */ 1224 bcmSwitchTrunkDynamicSampleRate = 664, /* Number of times historical member 1225 load and queued bytes are computed in 1226 a second */ 1227 bcmSwitchTrunkDynamicAccountingSelect = 665, /* 0 = physical link accounting, 1 = 1228 virtual link accounting */ 1229 bcmSwitchTrunkDynamicEgressBytesExponent = 666, /* The exponent used in the calculation 1230 of exponentially weighted moving 1231 average of historical member load. 1232 Applicable to physical link 1233 accounting. */ 1234 bcmSwitchTrunkDynamicQueuedBytesExponent = 667, /* The exponent used in the calculation 1235 of exponentially weighted moving 1236 average of historical member queued 1237 bytes. Applicable to physical link 1238 accounting. */ 1239 bcmSwitchTrunkDynamicEgressBytesDecreaseReset = 668, /* If set, the historical member load is 1240 reset to the instantaneous value if 1241 the latter is smaller. Applicable to 1242 physical link accounting. */ 1243 bcmSwitchTrunkDynamicQueuedBytesDecreaseReset = 669, /* If set, the historical member queued 1244 bytes is updated with the 1245 instantaneous value if the latter is 1246 smaller. Applicable to physical link 1247 accounting. */ 1248 bcmSwitchTrunkDynamicEgressBytesMinThreshold = 670, /* The minimum threshold, in mbps, used 1249 to quantize historical member load. 1250 Applicable to physical link 1251 accounting. */ 1252 bcmSwitchTrunkDynamicEgressBytesMaxThreshold = 671, /* The maximum threshold, in mbps, used 1253 to quantize historical member load. 1254 Applicable to physical link 1255 accounting. */ 1256 bcmSwitchTrunkDynamicQueuedBytesMinThreshold = 672, /* The minimum threshold, in bytes, used 1257 to quantize historical member queued 1258 bytes. Applicable to physical link 1259 accounting. */ 1260 bcmSwitchTrunkDynamicQueuedBytesMaxThreshold = 673, /* The maximum threshold, in bytes, used 1261 to quantize historical member queued 1262 bytes. Applicable to physical link 1263 accounting. */ 1264 bcmSwitchTrunkDynamicExpectedLoadMinThreshold = 674, /* The minimum threshold, in mbps, used 1265 to quantize historical and 1266 instantaneous expected member load. 1267 Applicable to virtual link 1268 accounting. */ 1269 bcmSwitchTrunkDynamicExpectedLoadMaxThreshold = 675, /* The maximum threshold, in mbps, used 1270 to quantize historical and 1271 instantaneous expected member load. 1272 Applicable to virtual link 1273 accounting. */ 1274 bcmSwitchTrunkDynamicImbalanceMinThreshold = 676, /* The minimum threshold, in percentage, 1275 used to quantize historical and 1276 instantaneous member load imbalance. 1277 Applicable to virtual link 1278 accounting. */ 1279 bcmSwitchTrunkDynamicImbalanceMaxThreshold = 677, /* The maximum threshold, in percentage, 1280 used to quantize historical and 1281 instantaneous member load imbalance. 1282 Applicable to virtual link 1283 accounting. */ 1284 bcmSwitchEcmpDynamicHashOffset = 678, /* Enhanced hash selections for L3 ECMP 1285 dynamic load balancing. */ 1286 bcmSwitchEcmpDynamicSampleRate = 679, /* Number of times historical member 1287 load and queued bytes are computed in 1288 a second */ 1289 bcmSwitchEcmpDynamicAccountingSelect = 680, /* 0 = physical link accounting, 1 = 1290 virtual link accounting */ 1291 bcmSwitchEcmpDynamicEgressBytesExponent = 681, /* The exponent used in the calculation 1292 of exponentially weighted moving 1293 average of historical member load. 1294 Applicable to physical link 1295 accounting. */ 1296 bcmSwitchEcmpDynamicQueuedBytesExponent = 682, /* The exponent used in the calculation 1297 of exponentially weighted moving 1298 average of historical member queued 1299 bytes. Applicable to physical link 1300 accounting. */ 1301 bcmSwitchEcmpDynamicEgressBytesDecreaseReset = 683, /* If set, the historical member load is 1302 reset to the instantaneous value if 1303 the latter is smaller. Applicable to 1304 physical link accounting. */ 1305 bcmSwitchEcmpDynamicQueuedBytesDecreaseReset = 684, /* If set, the historical member queued 1306 bytes is updated with the 1307 instantaneous value if the latter is 1308 smaller. Applicable to physical link 1309 accounting. */ 1310 bcmSwitchEcmpDynamicEgressBytesMinThreshold = 685, /* The minimum threshold, in mbps, used 1311 to quantize historical member load. 1312 Applicable to physical link 1313 accounting. */ 1314 bcmSwitchEcmpDynamicEgressBytesMaxThreshold = 686, /* The maximum threshold, in mbps, used 1315 to quantize historical member load. 1316 Applicable to physical link 1317 accounting. */ 1318 bcmSwitchEcmpDynamicQueuedBytesMinThreshold = 687, /* The minimum threshold, in bytes, used 1319 to quantize historical member queued 1320 bytes. Applicable to physical link 1321 accounting. */ 1322 bcmSwitchEcmpDynamicQueuedBytesMaxThreshold = 688, /* The maximum threshold, in bytes, used 1323 to quantize historical member queued 1324 bytes. Applicable to physical link 1325 accounting. */ 1326 bcmSwitchEcmpDynamicExpectedLoadMinThreshold = 689, /* The minimum threshold, in mbps, used 1327 to quantize historical and 1328 instantaneous expected member load. 1329 Applicable to virtual link 1330 accounting. */ 1331 bcmSwitchEcmpDynamicExpectedLoadMaxThreshold = 690, /* The maximum threshold, in mbps, used 1332 to quantize historical and 1333 instantaneous expected member load. 1334 Applicable to virtual link 1335 accounting. */ 1336 bcmSwitchEcmpDynamicImbalanceMinThreshold = 691, /* The minimum threshold, in percentage, 1337 used to quantize historical and 1338 instantaneous member load imbalance. 1339 Applicable to virtual link 1340 accounting. */ 1341 bcmSwitchEcmpDynamicImbalanceMaxThreshold = 692, /* The maximum threshold, in percentage, 1342 used to quantize historical and 1343 instantaneous member load imbalance. 1344 Applicable to virtual link 1345 accounting. */ 1346 bcmSwitchFailoverDropToCpu = 693, /* Protection data drop to CPU enable. */ 1347 bcmSwitchMplsReservedEntropyLabelToCpu = 694, /* Packet is copied to the CPU if the 1348 entropy label falls between the 1349 reserved range (0-15). */ 1350 bcmSwitchL3SrcBindMissToCpu = 695, /* Send a copy of L3 packet to CPU if 1351 SIP lookup fails in HPAE mode. */ 1352 bcmSwitchMplsGalAlertLabelToCpu = 696, /* When a GAL label is exposed in a 1353 packet, such a packet will be 1354 dropped. This control determines 1355 whether such a packet gets copied to 1356 CPU. */ 1357 bcmSwitchMplsRalAlertLabelToCpu = 697, /* When a RAL label is exposed in a 1358 packet, such a packet will be 1359 dropped. This control determines 1360 whether such a packet gets copied to 1361 CPU. */ 1362 bcmSwitchMplsIllegalReservedLabelToCpu = 698, /* Exposed an illegal reserved label to 1363 CPU. For example, exposed GAL Label 1364 has BOS=0. */ 1365 bcmSwitchMplsLookupsExceededToCpu = 699, /* Expose out of lookups to CPU */ 1366 bcmSwitchMplsUnknownAchTypeToCpu = 700, /* Packet has an unknown ACH Type. */ 1367 bcmSwitchMplsUnknownAchVersionToCpu = 701, /* The version number of ACH is not 1. */ 1368 bcmSwitchTimesyncIngressVersion = 702, /* Ingress 1588 version 0:V2 1:>V2. */ 1369 bcmSwitchTimesyncEgressVersion = 703, /* Egress 1588 version 0:V2 1:>V2. */ 1370 bcmSwitchTimesyncUnknownVersionToCpu = 704, /* The version number is not recognized. */ 1371 bcmSwitchCongestionCnmToCpu = 705, /* Send ICNM packets to the CPU. 1372 (Deprecated) */ 1373 bcmSwtichCongestionCnmProxyErrorToCpu = 706, /* Enable forwarding to CPU. */ 1374 bcmSwtichCongestionCnmProxyToCpu = 707, /* This is to copy the dropped CNM 1375 packet to CPU if a network 1376 administrator needs to look at them. */ 1377 bcmSwitchWlanTunnelErrorDrop = 708, /* WLAN Decryption offload enable. */ 1378 bcmSwitchMplsReservedEntropyLabelDrop = 709, /* When the value of the received 1379 entropy label falls in the reserved 1380 range(0-15), this control will 1381 determine if the packet is dropped or 1382 not. */ 1383 bcmSwitchRemoteProtectionTrust = 710, /* If set, use the Protection Status bit 1384 in the received HiGig Header. */ 1385 bcmSwitchL2GreProtocolType = 711, /* Set protocol-type for L2-GRE */ 1386 bcmSwitchL2GreVpnIdSizeSet = 712, /* Set bit-size of VPNID within L2-GRE 1387 key */ 1388 bcmSwitchL2GreVpnIdMissToCpu = 713, /* If set, send a copy of L2GRE packet 1389 to CPU if VPNID lookup fails. */ 1390 bcmSwitchL2GreTunnelMissToCpu = 714, /* If set, send a copy of L2GRE packet 1391 to CPU if SIP lookup fails. */ 1392 bcmSwitchMultipathCompressBuffer = 715, /* Set the size of the L3 ECMP table 1393 defragmentation buffer. */ 1394 bcmSwitchMultipathCompress = 716, /* Defragment L3 ECMP table. */ 1395 bcmSwitchBstEnable = 717, /* Enable BST tracking. */ 1396 bcmSwitchBstTrackingMode = 718, /* BST resource usage tracking mode. */ 1397 bcmSwitchL3McastL2 = 719, /* if set to 0 then l2 key is <VID, DA>, 1398 if set to 1 then l2 key is <RIF/VID, 1399 DIP>. */ 1400 bcmSwitchMiMTeBvidLowerRange = 720, /* Configure the lower limit for Traffic 1401 engineered BVID */ 1402 bcmSwitchMiMTeBvidUpperRange = 721, /* Configure the upper limit for Traffic 1403 engineered BVID */ 1404 bcmSwitchRemoteEncapsulationMode = 722, /* If set, all packet replication is 1405 performed on a remote device. 1406 Required egress encapsulation is 1407 indicated by the Higig2 header. */ 1408 bcmSwitchFabricTrunkAutoIncludeDisable = 723, /* If set, disable automatic inclusion 1409 of other members of a Higig trunk 1410 group when one member is specified as 1411 the steering destination for a remote 1412 module. */ 1413 bcmSwitchTrunkHashNormalize = 724, /* Enables using same hash in both 1414 directions of a flow. Applies to both 1415 MAC/IP addresses */ 1416 bcmSwitchMplsLabelCache = 725, /* Enable Mpls Label Cache */ 1417 bcmSwitchMplsLabelCommit = 726, /* Commit the MPLS Label Database to 1418 hardware */ 1419 bcmSwitchTrillHopCount = 727, /* Trill hop count */ 1420 bcmSwitchPolicerFairness = 728, /* if set, packet is considered in 1421 profile if bucket-level plus random 1422 value are above packet-size. If not 1423 set, packet is considered in profile 1424 if bucket-level is above packet-size. */ 1425 bcmSwitchVxlanUdpDestPortSet = 729, /* Set UDP Destination port for VXLAN */ 1426 bcmSwitchVxlanEntropyEnable = 730, /* Set UDP Source port for VXLAN Tunnel 1427 Entropy(Value = TRUE/FALSE) */ 1428 bcmSwitchVxlanVnIdMissToCpu = 731, /* Set VXLAN VN_ID lookup failure Copy 1429 to Cpu */ 1430 bcmSwitchVxlanTunnelMissToCpu = 732, /* If set, send a copy of VXLAN packet 1431 to CPU if VXLAN Tunnel lookup fails. */ 1432 bcmSwitchECMPVxlanHashOffset = 733, /* Enhanced hash select for VxLAN ECMP 1433 hashing . */ 1434 bcmSwitchECMPL2GreHashOffset = 734, /* Enhanced hash select for L2Gre ECMP 1435 hashing . */ 1436 bcmSwitchECMPTrillHashOffset = 735, /* Enhanced hash select for Trill ECMP 1437 hashing . */ 1438 bcmSwitchECMPMplsHashOffset = 736, /* Enhanced hash select for Mpls ECMP 1439 hashing . */ 1440 bcmSwitchVirtualPortDynamicHashOffset = 737, /* Enhanced hash select for Virtual Port 1441 Aggregation. */ 1442 bcmSwitchTMDomain = 738, /* Device TM-Domain. */ 1443 bcmSwitchPortHeaderType = 739, /* Sets TM Port header type. */ 1444 bcmSwitchL2OverflowEvent = 740, /* Enable/Disable L2 overflow event 1445 processing. */ 1446 bcmSwitchLinkProvClear = 741, /* Automatically clear provision for a 1447 link when it is de-registered. */ 1448 bcmSwitchEtagEthertype = 742, /* Set ethertype field in ETAG */ 1449 bcmSwitchEtagInvalidToCpu = 743, /* Invalid ETAG to CPU */ 1450 bcmSwitchEtagDropToCpu = 744, /* Packets dropped due to ETAG present 1451 to CPU. Enable/disable or set 1452 specific system port gport. */ 1453 bcmSwitchNonEtagDropToCpu = 745, /* Packets dropped due to ETAG not 1454 present to CPU */ 1455 bcmSwitchExtenderRpfFailToCpu = 746, /* Extender RPF check fail to CPU */ 1456 bcmSwitchExtenderInterfaceMissToCpu = 747, /* Extender forwarding lookup miss to 1457 CPU */ 1458 bcmSwitchPrioDropToCpu = 748, /* Priority admittance drop to CPU */ 1459 bcmSwitchExtenderMulticastLowerThreshold = 749, /* Lower threshold of multicast extended 1460 port VID */ 1461 bcmSwitchExtenderMulticastHigherThreshold = 750, /* Higher threshold of multicast 1462 extended port VID */ 1463 bcmSwitchL3NATEnable = 751, /* Enable/Disable NAT on the switch. */ 1464 bcmSwitchL3DNATHairpinToCpu = 752, /* If set send copy of DNAT hairpin 1465 packets to CPU. */ 1466 bcmSwitchL3DNATMissToCpu = 753, /* If set send copy of DNAT lookup miss 1467 packets to CPU. */ 1468 bcmSwitchL3SNATMissToCpu = 754, /* If set send copy of SNAT lookup miss 1469 packets to CPU. */ 1470 bcmSwitchL3NatOtherToCpu = 755, /* If set send copy of realm crossing 1471 non-TCP, UDP or ICMP packets to CPU. */ 1472 bcmSwitchL3NatRealmCrossingIcmpToCpu = 756, /* If set send copy of realm crossing 1473 ICMP packets to CPU. */ 1474 bcmSwitchL3NatFragmentsToCpu = 757, /* If set send copy of NAT fragment 1475 packets to CPU. */ 1476 bcmSwitchHashL3DNATPool = 758, /* Hash Select for DNAT address type 1477 entry. */ 1478 bcmSwitchHashL3DNATPoolDual = 759, /* Secondary Hash Select for DNAT 1479 address type entry. */ 1480 bcmSwitchMcastTrunkHashMin = 760, /* Minimal hushing value for a copy with 1481 a given port as destination. Copies 1482 with lower Hash values will be 1483 dropped. */ 1484 bcmSwitchMcastTrunkHashMax = 761, /* Maximal hushing value for a copy with 1485 a given port as destination. Copies 1486 with higher Hash values will be 1487 dropped. */ 1488 bcmSwitchIp4Compress = 762, /* compress IPv4 routing table. */ 1489 bcmSwitchEcmpResilientHashOffset = 763, /* Enhanced hash select for ECMP 1490 resilient hashing . */ 1491 bcmSwitchTrunkResilientHashOffset = 764, /* Barrel shift the resilient hashing 1492 LAG key. */ 1493 bcmSwitchFabricTrunkResilientHashOffset = 765, /* Enhanced hash select for Higig trunk 1494 resilient hashing . */ 1495 bcmSwitchShaperAdjust = 766, /* Meter/Rate control with overhead on 1496 wire accounted for per packet for 1497 EFP. */ 1498 bcmSwitchHashVpVlanMemberIngress = 767, /* Select Hash algorithm for ingress vp 1499 vlan membership check. */ 1500 bcmSwitchHashVpVlanMemberIngressDual = 768, /* Select secondary Hash algorithm for 1501 ingress vp vlan membership check. */ 1502 bcmSwitchHashVpVlanMemberEgress = 769, /* Select Hash algorithm for Egress vp 1503 vlan membership check. */ 1504 bcmSwitchHashVpVlanMemberEgressDual = 770, /* Select secondary Hash algorithm for 1505 Egress vp vlan membership check. */ 1506 bcmSwitchHashL2Endpoint = 771, /* Select hash algorithm for L2 Endpoint 1507 table. */ 1508 bcmSwitchHashL2EndpointDual = 772, /* Select secondary hash algorithm for 1509 L2 Endpoint table. */ 1510 bcmSwitchHashEndpointQueueMap = 773, /* Select hash algorithm for Endpoint 1511 Queue Map table. */ 1512 bcmSwitchHashEndpointQueueMapDual = 774, /* Select secondary hash algorithm for 1513 Endpoint Queue Map table. */ 1514 bcmSwitchStackRouteHistoryBitmap1 = 775, /* Configures Stacking route history 1515 bitmap stamping according to port 1516 profile number 1. Uses for packet 1517 pruning in Stacking system. */ 1518 bcmSwitchStackRouteHistoryBitmap2 = 776, /* Configures Stacking route history 1519 bitmap stamping according to port 1520 profile number 2. Uses for packet 1521 pruning in Stacking system. */ 1522 bcmSwitchArpIPcheck = 777, /* For ARP request, check if TPA is 1523 known. */ 1524 bcmSwitchDeprecated778 = 778, /* Deprecated. Do not use. */ 1525 bcmSwitchDeprecated779 = 779, /* Deprecated. Do not use. */ 1526 bcmSwitchL2LearnLimitToCpu = 780, /* Copy the frame to CPU once the learn 1527 limitation occurred due to the hash 1528 is full in L2 Table. */ 1529 bcmSwitchFlexibleMirrorDestinations = 781, /* Enable configuration of the maximum 1530 number of mirror destinations. */ 1531 bcmSwitchEcmpMacroFlowHashEnable = 782, /* Enable ECMP macro-flow hashing. */ 1532 bcmSwitchOamVersionCheckDisable = 783, /* Disable version check for OAM packets 1533 in pipeline. */ 1534 bcmSwitchOamOlpChipEtherType = 784, /* Ether Type to be used for OLP Chip 1535 communication. */ 1536 bcmSwitchOamOlpChipTpid = 785, /* TPID to be used for OLP Chip 1537 communication. */ 1538 bcmSwitchOamOlpChipVlan = 786, /* VLAN ID to be used for OLP Chip 1539 communication. */ 1540 bcmSwitchDeprecated787 = 787, /* Deprecated. Do not use. */ 1541 bcmSwitchEgressKeepSystemHeader = 788, /* Keep system headers on Tx packets for 1542 a given port. */ 1543 bcmSwitchMacroFlowEcmpHashConcatEnable = 789, /* Enable hash concatenation for ecmp 1544 macro flow. */ 1545 bcmSwitchMacroFlowLoadBalanceHashConcatEnable = 790, /* Enable hash concatenation for Load 1546 balance macro flow. */ 1547 bcmSwitchMacroFlowTrunkHashConcatEnable = 791, /* Enable hash concatenation for Trunk 1548 macro flow. */ 1549 bcmSwitchMacroFlowHigigTrunkHashConcatEnable = 792, /* Enable hash concatenation for Higig 1550 Trunk macro flow. */ 1551 bcmSwitchMacroFlowECMPHashSeed = 793, /* Set Hash seed for ecmp macro flow. */ 1552 bcmSwitchMacroFlowLoadBalanceHashSeed = 794, /* Set Hash Seed for Load balance macro 1553 flow. */ 1554 bcmSwitchMacroFlowTrunkHashSeed = 795, /* Set Hash Seed for Trunk macro flow. */ 1555 bcmSwitchMacroFlowHigigTrunkHashSeed = 796, /* Set Hash Seed for Higig Trunk macro 1556 flow. */ 1557 bcmSwitchHashTrillPayloadSelect0 = 797, /* Set hash control to select TRILL 1558 payload L2/L3 fields for Hash Block 1559 A. */ 1560 bcmSwitchHashTrillPayloadSelect1 = 798, /* Set hash control to select TRILL 1561 payload L2/L3 fields for Hash Block 1562 B. */ 1563 bcmSwitchHashTrillTunnelSelect0 = 799, /* Set hash control to select TRILL 1564 Tunnel L2/L3 fields for Hash Block A. */ 1565 bcmSwitchHashTrillTunnelSelect1 = 800, /* Set hash control to select TRILL 1566 Tunnel L2/L3 fields for Hash Block B. */ 1567 bcmSwitchHashIP6AddrCollapseSelect0 = 801, /* Hash Control to collapse IPV6 1568 addresses for hash block A. */ 1569 bcmSwitchHashIP6AddrCollapseSelect1 = 802, /* Hash Control to collapse IPV6 1570 addresses for hash block B. */ 1571 bcmSwitchPrependTagEnable = 803, /* Enable Prepend tag per Port. */ 1572 bcmSwitchHashL2VxlanField0 = 804, /* Hash A Selection of L2 Payload for 1573 Vxlan Packets */ 1574 bcmSwitchHashL2VxlanField1 = 805, /* Hash B Selection of L2 Payload for 1575 Vxlan Packets */ 1576 bcmSwitchHashL3VxlanField0 = 806, /* Hash A Selection of L3 Payload for 1577 Vxlan Packets */ 1578 bcmSwitchHashL3VxlanField1 = 807, /* Hash B Selection of L3 Payload for 1579 Vxlan Packets */ 1580 bcmSwitchHashL2L2GreField0 = 808, /* Hash A Selection of L2 Payload for 1581 L2Gre Packets */ 1582 bcmSwitchHashL2L2GreField1 = 809, /* Hash B Selection of L2 Payload for 1583 L2Gre Packets */ 1584 bcmSwitchHashL3L2GreField0 = 810, /* Hash A Selection of L3 Payload for 1585 L2Gre Packets */ 1586 bcmSwitchHashL3L2GreField1 = 811, /* Hash B Selection of L3 Payload for 1587 L2Gre Packets */ 1588 bcmSwitchMcastTrunkIngressCommit = 812, /* If set, the Multicast LAG packets use 1589 the new LAG table definition for the 1590 member resolution. */ 1591 bcmSwitchMcastTrunkEgressCommit = 813, /* If set, the new Multicast LAG table 1592 is copied to the old one. It assumes 1593 that all the devices are using the 1594 new LAG table, after calling 1595 bcmSwitchMcastTrunkIngressCommit. */ 1596 bcmSwitchMplsShortPipe = 814, /* If Set device supports Short pipe 1597 only. Otherwise Pipe only. */ 1598 bcmSwitchTraverseMode = 815, /* Control the traverse mode, choose 1599 mode from 1600 bcm_switch_table_update_mode_t */ 1601 bcmSwitchTrunkResilientHashConfig = 816, /* Stateful LAG hashing function */ 1602 bcmSwitchTrunkResilientHashSeed = 817, /* Stateful LAG hashing seed */ 1603 bcmSwitchECMPResilientHashSeed = 818, /* Stateful ECMP hashing seed */ 1604 bcmSwitchResilientHashAgeTimer = 819, /* Resilient hash entry deletion time. 1605 Units: seconds */ 1606 bcmSwitchFieldStageEgressToCpu = 820, /* Control to enable egress copy to cpu 1607 action */ 1608 bcmSwitchHashOamEgress = 821, /* Hash Select for egress OAM. */ 1609 bcmSwitchHashOamEgressDual = 822, /* Secondary Hash Select for egress OAM. */ 1610 bcmSwitchColorL3L2Marking = 823, /* Set the DP->Resolved-DP map (COS 1611 marking) */ 1612 bcmSwitchWredForAllPkts = 824, /* Apply WRED per color profiles on all 1613 packets */ 1614 bcmSwitchFcoeNpvModeEnable = 825, /* NPV mode */ 1615 bcmSwitchFcoeDomainRoutePrefixLength = 826, /* D-ID Bits to use for domain route 1616 search */ 1617 bcmSwitchFcoeCutThroughEnable = 827, /* Enables Cut-Through mode for FCOE 1618 packets */ 1619 bcmSwitchFcoeSourceBindCheckAction = 828, /* Sets the action to take when 1620 Source-bind-check fails */ 1621 bcmSwitchFcoeSourceFpmaPrefixCheckAction = 829, /* Sets the action to take when 1622 Source-fpma-prefix-check fails */ 1623 bcmSwitchFcoeVftHopCountExpiryToCpu = 830, /* If set, copy hopcount expired packets 1624 to CPU */ 1625 bcmSwitchFcoeVftHopCountExpiryAction = 831, /* If set, send hopcount expired packets 1626 with EOFni in FC trailer. Applicable 1627 at egress. */ 1628 bcmSwitchFcoeFcEofT1Value = 832, /* Sets the numerical value for EOFt */ 1629 bcmSwitchFcoeFcEofT2Value = 833, /* Sets the numerical value for EOFt 1630 (alternate) */ 1631 bcmSwitchFcoeFcEofA1Value = 834, /* Sets the numerical value for EOFa */ 1632 bcmSwitchFcoeFcEofA2Value = 835, /* Sets the numerical value for EOFa 1633 (alternate) */ 1634 bcmSwitchFcoeFcEofN1Value = 836, /* Sets the numerical value for EOFn */ 1635 bcmSwitchFcoeFcEofN2Value = 837, /* Sets the numerical value for EOFn 1636 (alternate) */ 1637 bcmSwitchFcoeFcEofNI1Value = 838, /* Sets the numerical value for EOFni */ 1638 bcmSwitchFcoeFcEofNI2Value = 839, /* Sets the numerical value for EOFni 1639 (alternate) */ 1640 bcmSwitchFcoeZoneCheckFailToCpu = 840, /* Action to take when FCOE zone check 1641 fails, 0 : no-op(default), 1 : 1642 Copy-to-Cpu */ 1643 bcmSwitchFcoeZoneCheckMissDrop = 841, /* Action to take when FCOE zone check 1644 is a miss, 0 : no-op, 1 : 1645 Drop(default) */ 1646 bcmSwitchHashUseL2GreTunnelGreKey0 = 842, /* Place the GRE key extracted from 1647 L2GRE pkt header in Hash A buckets */ 1648 bcmSwitchHashUseL2GreTunnelGreKey1 = 843, /* Place the GRE key extracted from 1649 L2GRE pkt header in Hash B buckets */ 1650 bcmSwitchHashL2GrePayloadSelect0 = 844, /* Select inner L2/L3 fields to derive 1651 the Hash A buckets when an L2GRE pkt 1652 is received and the L2GRE tunnel is 1653 being terminated */ 1654 bcmSwitchHashL2GrePayloadSelect1 = 845, /* Select inner L2/L3 fields to derive 1655 the Hash B buckets when an L2GRE pkt 1656 is received and the L2GRE tunnel is 1657 being terminated */ 1658 bcmSwitchHashL2GreNetworkPortPayloadDisable0 = 846, /* Disable using the l2gre payload for 1659 hashing, for L2Gre pkts */ 1660 bcmSwitchHashL2GreNetworkPortPayloadDisable1 = 847, /* Disable using the l2gre payload for 1661 hashing, for L2Gre pkts */ 1662 bcmSwitchSystemReservedVlan = 848, /* System Reserved VLAN */ 1663 bcmSwitchProxySrcKnockout = 849, /* If set, remove the source port during 1664 a proxy lookup operation of a packet 1665 which originated on this module. */ 1666 bcmSwitchNetworkGroupDepth = 850, /* Number of split horizon groups 1667 supported by the device */ 1668 bcmSwitchUnknownSubportPktTagToCpu = 851, /* If set, send packet to CPU on 1669 following error conditions a. missing 1670 subport pkt tag and b. unknown 1671 subport pkt tag (lookup miss). */ 1672 bcmSwitchL3RoutedLearn = 852, /* enable L2 learning for routed 1673 packets. */ 1674 bcmSwitchSubportPktTagEthertype = 853, /* Set ethertype field in LLTAG */ 1675 bcmSwitchSubportPktTagToCpu = 854, /* LLTAG present to CPU */ 1676 bcmSwitchNonSubportPktTagToCpu = 855, /* LLTAG not present to CPU */ 1677 bcmSwitchHashL2GreKeyMask0 = 856, /* Set the mask which is AND-ed with 1678 hash L2GRE key before hash generation 1679 for hash A */ 1680 bcmSwitchHashL2GreKeyMask1 = 857, /* Set the mask which is AND-ed with 1681 hash L2GRE key before hash generation 1682 for hash B */ 1683 bcmSwitchL3Max128BV6Entries = 858, /* Max number of Number of 128B LPM 1684 entries. */ 1685 bcmSwitchEEEQueueThresholdProfile0 = 859, /* Set EEE BB mode queue depth threshold 1686 Profile 0 */ 1687 bcmSwitchEEEQueueThresholdProfile1 = 860, /* Set EEE BB mode queue depth threshold 1688 Profile 1 */ 1689 bcmSwitchEEEQueueThresholdProfile2 = 861, /* Set EEE BB mode queue depth threshold 1690 Profile 2 */ 1691 bcmSwitchEEEQueueThresholdProfile3 = 862, /* Set EEE BB mode queue depth threshold 1692 Profile 3 */ 1693 bcmSwitchEEEPacketLatencyProfile0 = 863, /* Set EEE BB mode packet max latency 1694 Profile 0 */ 1695 bcmSwitchEEEPacketLatencyProfile1 = 864, /* Set EEE BB mode packet max latency 1696 Profile 1 */ 1697 bcmSwitchEEEPacketLatencyProfile2 = 865, /* Set EEE BB mode packet max latency 1698 Profile 2 */ 1699 bcmSwitchEEEPacketLatencyProfile3 = 866, /* Set EEE BB mode packet max latency 1700 Profile 3 */ 1701 bcmSwitchDosAttackV6MinFragEnable = 867, /* Enable Min pkt size check for 1702 fragmented IPv6. */ 1703 bcmSwitchDosAttackV6MinFragSize = 868, /* Min pkt size for fragmented IPv6 1704 check. */ 1705 bcmSwitchMirrorUnicastCosq = 869, /* Unicast mirror COS. */ 1706 bcmSwitchMirrorMulticastCosq = 870, /* Multicast mirror COS. */ 1707 bcmSwitchMcQueueSchedMode = 871, /* Schedule mode select for multicast 1708 queues. */ 1709 bcmSwitchReserved872 = 872, /* Reserved. */ 1710 bcmSwitchCacheTableUpdateAll = 873, /* Update all cached memories. */ 1711 bcmSwitchHashNivSrcIfEtagSvidSelect0 = 874, /* Select VN-TAG.src_vif or E-Tag.svid 1712 for hashing computation in Hash A 1713 buckets. */ 1714 bcmSwitchHashNivSrcIfEtagSvidSelect1 = 875, /* Select VN-TAG.src_vif or E-Tag.svid 1715 for hashing computation in Hash B 1716 buckets. */ 1717 bcmSwitchHashNivDstIfEtagVidSelect0 = 876, /* Select VN-TAG.dst_vif or E-Tag.vid 1718 for hashing computation in Hash A 1719 buckets. */ 1720 bcmSwitchHashNivDstIfEtagVidSelect1 = 877, /* Select VN-TAG.dst_vif or E-Tag.vid 1721 for hashing computation in Hash B 1722 buckets. */ 1723 bcmSwitchBstSnapshotEnable = 878, /* BST resource usage SnapShot mode. */ 1724 bcmSwitchSymmetricHashControl = 879, /* Enable/Disable symmetric hash, for 1725 Ip4, Ip6, FCoE packet, etc. */ 1726 bcmSwitchL2ExtLearn = 880, /* Learn L2 addresses on EXT_L2_ENTRY */ 1727 bcmSwitchReserveHighTunnelId = 881, /* Set the highest inclusive bounds of 1728 the Tunnel ID resources. Get will 1729 return the highest value supported by 1730 the device. Setting 0 will remove 1731 the reserved range */ 1732 bcmSwitchReserveLowTunnelId = 882, /* Set the lower inclusive bounds of the 1733 Tunnel ID resources. Get will return 1734 the lowest value supported by the 1735 device. Setting 0 will remove the 1736 reserved range */ 1737 bcmSwitchHigigCongestionClassEnable = 883, /* Enable the Congestion_Class field in 1738 HIGIG2 header to store the int_cn 1739 value in it. */ 1740 bcmSwitchEcnNonIpResponsive = 884, /* Set the default responsive indication 1741 value for NON-IP packets. */ 1742 bcmSwitchEcnNonIpIntCongestionNotification = 885, /* Set the internal congestion 1743 notification (int_cn) value for 1744 NON-IP packets. */ 1745 bcmSwitchMimPayloadTpidEnable = 886, /* Indicates which of MPLS_TPID[3:0] are 1746 allowed to match the TPID of a 1747 transit MinM frame's payload L2 1748 header's outer VLAN tag. */ 1749 bcmSwitchHashMimUseTunnelHeader0 = 887, /* Indicates whether the tunnel or 1750 payload fields must be used for 1751 hashing for MIM traffic in field 1752 selection block A. */ 1753 bcmSwitchHashMimUseTunnelHeader1 = 888, /* Indicates whether the tunnel or 1754 payload fields must be used for 1755 hashing for MIM traffic in field 1756 selection block B. */ 1757 bcmSwitchMplsPipeTunnelLabelExpSet = 889, /* If set, MPLS pipe modes is supported 1758 with EXP field set. In this case exp 1759 is taken from the exp field in 1760 bcm_mpls_egress_label_s struct in the 1761 bcm_mpls_port_add api. Otherwise EXP 1762 field will be copied from previous 1763 label. Default is 0. */ 1764 bcmSwitchControlPortConfigInstall = 890, /* Port config install. */ 1765 bcmSwitchLoopbackMtuSize = 891, /* MTU size in bytes check for packets 1766 ingressed on loopback port. */ 1767 bcmSwitchHashVxlanPayloadSelect0 = 892, /* Set hash control to select VXLAN 1768 payload L2/L3 fields for Hash Block 1769 A. */ 1770 bcmSwitchHashVxlanPayloadSelect1 = 893, /* Set hash control to select VXLAN 1771 payload L2/L3 fields for Hash Block 1772 B. */ 1773 bcmSwitchCongestionCnmSrcMacNonOui = 894, /* Source MAC address in Congestion 1774 Notification Message Lower 3 bytes of 1775 MAC address to match */ 1776 bcmSwitchCongestionCnmSrcMacOui = 895, /* Source MAC address in Congestion 1777 Notification Message Upper 3 bytes of 1778 MAC address to match */ 1779 bcmSwitchHashL2MPLSPayloadSelect0 = 896, /* Set hash control to select L2 MPLS 1780 payload L2/L3 fields for Hash Block 1781 A. */ 1782 bcmSwitchHashL2MPLSPayloadSelect1 = 897, /* Set hash control to select L2 MPLS 1783 payload L2/L3 fields for Hash Block 1784 B. */ 1785 bcmSwitchHashL3L2MPLSField0 = 898, /* Hash A Selection of L3 Payload for L2 1786 MPLS Packets */ 1787 bcmSwitchHashL3L2MPLSField1 = 899, /* Hash B Selection of L3 Payload for L2 1788 MPLS Packets */ 1789 bcmSwitchHashIPSecSelect0 = 900, /* Set hash control to select outer 1790 L4_SRC/DST_PORT or IPSec SPI for hash 1791 block A. */ 1792 bcmSwitchHashIPSecSelect1 = 901, /* Set hash control to select outer 1793 L4_SRC/DST_PORT or IPSec SPI for hash 1794 block B. */ 1795 bcmSwitchECMPLevel1RandomSeed = 902, /* Seed for RNG used in ECMP Randomized 1796 Load Balancing (at Level1 in Two 1797 Level ECMP) */ 1798 bcmSwitchECMPLevel2RandomSeed = 903, /* Seed for RNG used in ECMP Randomized 1799 Load Balancing at Level2 in Two Level 1800 ECMP */ 1801 bcmSwitchTimesyncEgressTimestampingMode = 904, /* Selects 32bit or 48bit timestamping 1802 mode for 1588 packets. */ 1803 bcmSwitchSubportCoEEtherType = 905, /* Set COE protocol ingress ethertype to 1804 match */ 1805 bcmSwitchSubportEgressTpid = 906, /* The TPID to use when the 1806 bcmPortControlSubportTagSize is 4 1807 Bytes */ 1808 bcmSwitchSubportEgressWideTpid = 907, /* The TPID to use when the 1809 bcmPortControlSubportTagSize is 8 1810 Bytes */ 1811 bcmSwitchIpmcSameVlanPruningOverride = 908, /* Set to override the IPMC same vlan 1812 pruning */ 1813 bcmSwitchSynchronousPortClockSourceValid = 909, /* Returns whether synchronous clock can 1814 be sucessfully recovered from the 1815 port, configured via 1816 bcmSwitchSynchronousPortClockSource */ 1817 bcmSwitchSynchronousPortClockSourceBkupValid = 910, /* Returns whether synchronous clock is 1818 successfully recovered from the back 1819 up port, configured via 1820 bcmSwitchSynchronousPortClockSourceBkup */ 1821 bcmSwitchRemoteProtectionEnable = 911, /* Set the Protection Status bit in 1822 HiGig Header */ 1823 bcmSwitchMirrorExclusive = 912, /* Set Mirror exclusive behaviour 1824 between FP and Port */ 1825 bcmSwitchEcnDelayMeasurementThreshold = 913, /* Set Ecn delay measurement threshold */ 1826 bcmSwitchMacroFlowHashUseMSB = 914, /* If enable, use MSB for Macroflow 1827 based hashing */ 1828 bcmSwitchMplsDefaultTtlCopy = 915, /* Default value that is used when 1829 sending a packet from AC to PWE and 1830 the push-profile is copy */ 1831 bcmSwitchOamStackingSupport = 916, /* Use VC label field to carry OAM 1832 endpoint context to egress XGS switch */ 1833 bcmSwitchHashOam = 917, /* Hash select for OAM tables */ 1834 bcmSwitchHashOamDual = 918, /* Secondary hash select for OAM tables */ 1835 bcmSwitchHashOamLeastFull = 919, /* Use least full bank in dual hash OAM 1836 tables */ 1837 bcmSwitchHashDualMoveDepthOam = 920, /* Maximum moves in dual hash mode for 1838 OAM tables */ 1839 bcmSwitchPortVlanTranslationAdvanced = 921, /* Enable Port Advanced default vlan 1840 Edit mode. 1 - enable, 0 - disable */ 1841 bcmSwitchForwardingLayerMtuFilter = 922, /* EnableDisable Forwarding Layer 1842 filtering per header format */ 1843 bcmSwitchLinkLayerMtuFilter = 923, /* EnableDisable Link Layer Filtering 1844 per header format */ 1845 bcmSwitchForwardingLayerMtuSize = 924, /* Mtu size for Forwarding Layer 1846 Filtering */ 1847 bcmSwitchLinkLayerMtuSize = 925, /* MTU size for Link Layer Filtering */ 1848 bcmSwitchMimBvidInsertionControl = 926, /* If 0, BVID is inserted into the MiM 1849 packet if the destination virtual 1850 port(bcm_mim_port_t object) is a 1851 Network port (legacy behavior). If 1852 set to 1, BVID is inserted into the 1853 MiM packet if the egress_tunnel_vlan 1854 field of the corresponding 1855 bcm_mim_port_t object contains a 1856 valid vlan id (1 .. 4095) */ 1857 bcmSwitchL2CpuDeleteEvent = 927, /* If enable, when SW initiates a DELETE 1858 operation to l2 table, SDK can get 1859 relative DELETE events from L2 Mode 1860 FIFO. */ 1861 bcmSwitchL2LearnEvent = 928, /* If enable, when HW does a LEARN 1862 operation to l2 table, SDK can get 1863 relative LEARN events from L2 Mode 1864 FIFO. */ 1865 bcmSwitchL2CpuAddEvent = 929, /* If enable, when SW initiates a INSERT 1866 operation to l2 table, SDK can get 1867 ADD events from L2 Mode FIFO. */ 1868 bcmSwitchL2AgingEvent = 930, /* If enable, when HW does a AGE 1869 operation to l2 table , SDK can get 1870 AGE events from L2 Mode FIFO. */ 1871 bcmSwitchUdfHashEnable = 931, /* Enable/Disable UDF hashing */ 1872 bcmSwitchOlpMatchRule = 932, /* Set Match rule value that identifies 1873 OLP packets when copied to cpu. */ 1874 bcmSwitchMplsExtendedLabelTtl = 933, /* Set the TTL of the new MPLS label 1875 created when using extended label 1876 feature. */ 1877 bcmSwitchMacroFlowHashOverlayMaxOffset = 934, /* Maximum offset value to be used in 1878 overlay ECMP offset table */ 1879 bcmSwitchMacroFlowHashOverlayStrideOffset = 935, /* Offset increment to be used for 1880 populating overlay ECMP offset table. */ 1881 bcmSwitchMacroFlowHashOverlayMinOffset = 936, /* Minimum offset value to be used in 1882 overlay ECMP offset table */ 1883 bcmSwitchMacroFlowEcmpHashOverlayConcatEnable = 937, /* Enable hash concatenation for overlay 1884 layer ecmp macro flow. */ 1885 bcmSwitchMacroFlowECMPOverlayHashSeed = 938, /* Hash Seed value for the overlay ECMP 1886 calculation */ 1887 bcmSwitchECMPOverlayHashOffset = 939, /* Offset selections for enhanced 1888 overlay L3 ECMP. */ 1889 bcmSwitchMacroFlowEcmpUnderlayHashConcatEnable = 940, /* 56960 Enable hash concatenation for 1890 ecmp level 2 macro flow. */ 1891 bcmSwitchMacroFlowECMPUnderlayHashSeed = 941, /* 56960 Set Hash seed for ecmp level 2 1892 macro flow. */ 1893 bcmSwitchECMPUnderlayVxlanHashOffset = 942, /* Enhanced hash select for VxLAN ECMP 1894 Level 2 hashing . */ 1895 bcmSwitchECMPUnderlayL2GreHashOffset = 943, /* Enhanced hash select for L2Gre ECMP 1896 Level 2 hashing . */ 1897 bcmSwitchECMPUnderlayTrillHashOffset = 944, /* Enhanced hash select for Trill ECMP 1898 Level 2 hashing . */ 1899 bcmSwitchVirtualPortUnderlayDynamicHashOffset = 945, /* Enhanced hash select for Virtual Port 1900 Aggregation at Level 2. */ 1901 bcmSwitchECMPUnderlayHashSet0Offset = 946, /* 56960 enhanced hash bits for ECMP 1902 Level 2. */ 1903 bcmSwitchSampleFlexRandomSeed = 947, /* Set sFlow Flex RNG seed */ 1904 bcmSwitchNonUcVlanShapingEnable = 948, /* Enable/disable the ability of 1905 assigning single destination 1906 non-unicast traffic to service-based 1907 queues */ 1908 bcmSwitchCustomHeaderEncapPriorityOffset = 949, /* Set the offset of the priority value 1909 in the encapsulated custom header */ 1910 bcmSwitchIngCapwapEnable = 950, /* Enable or disable ingress CAPWAP 1911 parser. */ 1912 bcmSwitchCapwapDataUdpDstPort = 951, /* UDP dest port number of CAPWAP data 1913 packet. */ 1914 bcmSwitchCountCapwapPayloadBytesOnly = 952, /* If set, count only the CAPWAP's 1915 wireless payload bytes for CAPWAP 1916 data packets. */ 1917 bcmSwitchOamOlpStationMacOui = 953, /* Specify OUI bytes of BCM device MAC 1918 address used during OLP communication 1919 and OLP PKT sig match */ 1920 bcmSwitchOamOlpStationMacNonOui = 954, /* Specify NON OUI bytes of BCM device 1921 MAC address used during OLP 1922 communication and OLP PKT sig match */ 1923 bcmSwitchReserved955 = 955, /* Reserved955 */ 1924 bcmSwitchPFCDeadlockDetectionTimeInterval = 956, /* Set and Get the PFC detection time 1925 interval (0-100ms[default], 1-10ms). */ 1926 bcmSwitchPFCDeadlockRecoveryAction = 957, /* Set and Get Recovery action to be 1927 performed in PFC deadlock recovery 1928 state. 0-Transmit Packets (Default), 1929 1-Drop. */ 1930 bcmSwitchRangeCheckersAPIType = 958, /* Setting this switch control to 0 1931 allows to use only field API's 1932 (bcm_field_range_XXX) and setting it 1933 to 1 allows to use only new range 1934 module API's (bcm_range_XXX). Default 1935 value will be set to 0. */ 1936 bcmSwitchReserved958 = 959, /* Reserved958 */ 1937 bcmSwitchEcmpGroupMemberMode = 960, /* Set/get ECMP group mode */ 1938 bcmSwitchMimlEncapInnerEthertype = 961, /* Set MIML-ETYPE (inner ethertype) 1939 field in MiML for encapsulation. 1940 Value of unit16 type. */ 1941 bcmSwitchHashMiMPayloadSelect0 = 962, /* Set hash control to select MiM L2/L3 1942 payload fields for Hash Block A */ 1943 bcmSwitchHashMiMPayloadSelect1 = 963, /* Set hash control to select MiM L2/L3 1944 payload fields for Hash Block B */ 1945 bcmSwitchHashL3MiMField0 = 964, /* L3 MiM enhanced hash field for Hash 1946 Block A */ 1947 bcmSwitchHashL3MiMField1 = 965, /* L3 MiM enhanced hash field for Hash 1948 Block B */ 1949 bcmSwitchHashMPLSUseLabelStack = 966, /* If there are more than 3 labels, 1950 label stack (up to 5 labels) is used 1951 for hashing else Top 3 MPLS labels + 1952 payload IPV4/IPv6 fields will be 1953 selected for hashing */ 1954 bcmSwitchHashMPLSExcludeGAL = 967, /* To exclude GAL label from hash 1955 computation */ 1956 bcmSwitchRedirectBufferThresholdPriorityLow = 968, /* Set the buffer threshold limit for 1957 low priority redirected packets */ 1958 bcmSwitchRedirectBufferThresholdPriorityMedium = 969, /* Set the buffer threshold limit for 1959 medium priority redirected packets */ 1960 bcmSwitchRedirectBufferThresholdPriorityHigh = 970, /* Set the buffer threshold limit for 1961 high priority redirected packets */ 1962 bcmSwitchFlexIP6ExtHdr = 971, /* Programmable value for user defined 1963 extension header 1 & 2. */ 1964 bcmSwitchFlexIP6ExtHdrEgress = 972, /* Egress programmable value for user 1965 defined extension header 1 & 2. */ 1966 bcmSwitchHashUseFlowSelMplsEcmp = 973, /* Enable/Disable flow based hashing for 1967 MPLS ECMP. */ 1968 bcmSwitchV6L3SrcDstLocalLinkDropCancel = 974, /* Do not drop IPv6. It will override 1969 drop control 1970 bcmSwitchV6L3LocalLinkDrop if source 1971 and destination are local link. */ 1972 bcmSwitchL3ClassIdForL2Enable = 975, /* Enable/Disable L3 Lookup to get 1973 classids based on DIP & SIP for L2 1974 Switched packets. */ 1975 bcmSwitchDropSobmhOnLinkDown = 976, /* Enable/Disable SOBMH blocking on link 1976 down egress port */ 1977 bcmSwitchResilientHashCRC0ByteMask = 977, /* Set mask for CRC0 stateful hashing 1978 function in 2Byte resolution */ 1979 bcmSwitchResilientHashCRC1ByteMask = 978, /* Set mask for CRC1 stateful hashing 1980 function in 2Byte resolution */ 1981 bcmSwitchResilientHashCRC2ByteMask = 979, /* Set mask for CRC2 stateful hashing 1982 function in 2Byte resolution */ 1983 bcmSwitchResilientHashCRC3ByteMask = 980, /* Set mask for CRC3 stateful hashing 1984 function in 2Byte resolution */ 1985 bcmSwitchResilientHashCRCSeed = 981, /* Set seed for stateful CRC hashing 1986 functions */ 1987 bcmSwitchECMPResilientHashKey0Shift = 982, /* Shift left the 1988 Stateful-Hashing-Lb-Key(47 bit) to 1989 create ECMP key-0 */ 1990 bcmSwitchECMPResilientHashKey1Shift = 983, /* Shift right the 1991 Stateful-Hashing-Lb-Key(47 bit) to 1992 create ECMP key-1 */ 1993 bcmSwitchVpnDetachPorts = 984, /* Set VPN destroy mode to either delete 1994 ports that are attached to the VSI or 1995 ignore them. Default: 1 - Destroy 1996 attached ports. */ 1997 bcmSwitchClassL3L2Marking = 985, /* Set the 1998 In-Lif-Profile->Resolved-In-Lif-Profile 1999 map (In-Lif-Profile mapping */ 2000 bcmSwitchL3L2MarkingMode = 986, /* Set the DP map mode */ 2001 bcmSwitchSTPDisabledFieldBypass = 987, /* Disable FP when STP state is 2002 disabled. */ 2003 bcmSwitchHashSctpL4Port = 988, /* To set that RTAG7 hashing can be 2004 performed on SCTP. */ 2005 bcmSwitchReserved988 = 989, /* Reserved988. */ 2006 bcmSwitchGlobalTpidEnable = 990, /* Enable/Disable global TPIDs. */ 2007 bcmSwitchECMPResilientHashCombine = 991, /* Combine both regular and resilient 2008 hashing for ECMP key. */ 2009 bcmSwitchHashSetTflowMode = 992, /* enable/disable using hash offset 2010 b0/b1 regardless of th_tflow_enabled */ 2011 bcmSwitchDowngrade = 993, /* set the switch for a downgrade in 2012 Warmboot */ 2013 bcmSwitchHashELISearch = 994, /* Enable ELI search and the use of the 2014 EL label for LAG and ECMP load 2015 balancing. */ 2016 bcmSwitchCrashRecoveryMode = 995, /* Determine the Crash recovery mode 2017 0:off 1:API 2:on demand. */ 2018 bcmSwitchCrCommit = 996, /* If woekinging in on demand CR, use 2019 this to trigger a commit. */ 2020 bcmSwitchCrLastTransactionStatus = 997, /* Query after a crash if last 2021 transaction went through. */ 2022 bcmSwitchCrCouldNotRecover = 998, /* Query after A crash if program 2023 succesfully recovered. */ 2024 bcmSwitchHWL2Freeze = 999, /* Freeze/thaw L2 H/W activity. */ 2025 bcmSwitchHashIP6NextHeaderUseExtensionHeader0 = 1000, /* Hash Control to select the IPv6 Next 2026 Header field for hash Block A. If 2027 set, use Extension Header, else use 2028 current Next Header field. */ 2029 bcmSwitchHashIP6NextHeaderUseExtensionHeader1 = 1001, /* Hash Control to select the IPv6 Next 2030 Header field for hash Block B. If 2031 set, use Extension Header, else use 2032 current Next Header field. */ 2033 bcmSwitchHashUseFlowSelLbidNonUnicast = 1002, /* Enable/Disable flow based hashing for 2034 non-unicast LBID. */ 2035 bcmSwitchHashUseFlowSelLbidUnicast = 1003, /* Enable/Disable flow based hashing for 2036 unicast LBID. */ 2037 bcmSwitchHashUseFlowSelHigigTrunkNonUnicast = 1004, /* Enable/Disable flow based hashing for 2038 non-unicast Higig Trunk. */ 2039 bcmSwitchHashUseFlowSelHigigTrunkUnicast = 1005, /* Enable/Disable flow based hashing for 2040 unicast Higig Trunk. */ 2041 bcmSwitchHashUseFlowSelHigigTrunkFailover = 1006, /* Enable/Disable flow based hashing for 2042 Higig Trunk Failover. */ 2043 bcmSwitchHashUseFlowSelTrunkNonUnicast = 1007, /* Enable/Disable flow based hashing for 2044 non-unicast Trunk. */ 2045 bcmSwitchHashUseFlowSelEntropy = 1008, /* Enable/Disable flow based hashing for 2046 Entropy. */ 2047 bcmSwitchHashUseFlowSelVxlanEcmp = 1009, /* Enable/Disable flow based hashing for 2048 VXLAN ECMP. */ 2049 bcmSwitchDefaultNativeOutVlanPort = 1010, /* Default native out VLAN Port. */ 2050 bcmSwitchDefaultEgressVlanEditClassId = 1011, /* Default Vlan Edit Class Id for Egress 2051 VLAN translation. */ 2052 bcmSwitchGtpDetectEnable = 1012, /* Enable/disable the capability for GTP 2053 packet detection. */ 2054 bcmSwitchGtpHdrFirstByte = 1013, /* Setup the value for GTP Header First 2055 Byte. */ 2056 bcmSwitchGtpHdrFirstByteMask = 1014, /* Setup the mask for GTP Header First 2057 Byte. */ 2058 bcmSwitchHashGtpTeidEnable0 = 1015, /* Enable using the Tunnel endpoint id 2059 for hashing, for GTP pkts. */ 2060 bcmSwitchHashGtpTeidEnable1 = 1016, /* Enable using the Tunnel endpoint id 2061 for hashing, for GTP pkts. */ 2062 bcmSwitchEccSingleBitErrorEvent = 1017, /* Enable/Disable 1bit ECC error 2063 reporting for all the memories which 2064 are protected by ECC logic and whose 2065 Parity/ECC error could only be 2066 corrected by H/W. */ 2067 bcmSwitchHeaderCompensationPerPacket = 1018, /* Set the header compensation of 2068 packets according to the MSBs of its 2069 CUD. */ 2070 bcmSwitch3rdTagStampMode = 1019, /* Set the 3rd tag stamping mode, 2071 0:Dsiable, 1: Enable. */ 2072 bcmSwitchMacroFlowHigigTrunkHashMinOffset = 1020, /* Minumum offset value to be used in 2073 RTAG7 macroflow for Higig Trunk */ 2074 bcmSwitchMacroFlowHigigTrunkHashMaxOffset = 1021, /* Maximum offset value to be used in 2075 RTAG7 macroflow for Higig Trunk */ 2076 bcmSwitchMacroFlowHigigTrunkHashStrideOffset = 1022, /* Offset increment value to be used in 2077 RTAG7 macroflow for Higig Trunk */ 2078 bcmSwitchMacroFlowTrunkHashMinOffset = 1023, /* Minumum offset value to be used in 2079 RTAG7 macroflow for Trunk */ 2080 bcmSwitchMacroFlowTrunkHashMaxOffset = 1024, /* Maximum offset value to be used in 2081 RTAG7 macroflow for Trunk */ 2082 bcmSwitchMacroFlowTrunkHashStrideOffset = 1025, /* Offset increment value to be used in 2083 RTAG7 macroflow for Trunk */ 2084 bcmSwitchMacroFlowLoadBalanceEntropyHashMinOffset = 1026, /* Minumum offset value to be used in 2085 RTAG7 macroflow for Load Balance 2086 ID/Entropy */ 2087 bcmSwitchMacroFlowLoadBalanceEntropyHashMaxOffset = 1027, /* Maximum offset value to be used in 2088 RTAG7 macroflow for Load Balance 2089 ID/Entropy */ 2090 bcmSwitchMacroFlowLoadBalanceEntropyHashStrideOffset = 1028, /* Offset increment value to be used in 2091 RTAG7 macroflow for Load Balance 2092 ID/Entropy */ 2093 bcmSwitchCrTransactionStart = 1029, /* If working in on demand CR, use this 2094 to start a new transaction. */ 2095 bcmSwitchUdpTunnelIPv4DstPort = 1030, /* UDP destination port for IPv4 2096 encapsulation in UDP tunnel. */ 2097 bcmSwitchUdpTunnelIPv6DstPort = 1031, /* UDP destination port for IPv6 2098 encapsulation in UDP tunnel. */ 2099 bcmSwitchUdpTunnelMplsDstPort = 1032, /* UDP destination port for MPLS 2100 encapsulation in UDP tunnel. */ 2101 bcmSwitchECMPSecondHierHashOffset = 1033, /* BCM88680: ECMP second hierarchy Hash 2102 key is barrel shifted by this value. */ 2103 bcmSwitchECMPSecondHierHashConfig = 1034, /* BCM88680: Selects hashing polynomial 2104 for the second hierarchy of the ECMP. */ 2105 bcmSwitchIngressRateLimitMpps = 1035, /* Limit ingress rate in Mega Packets 2106 Per Second. */ 2107 bcmSwitchMirrorSnoopForwardOriginalWhenDropped = 1036, /* When dropping the mirror and/or snoop 2108 packet copies due to FIFOs being 2109 full, do not drop the original 2110 (forward) copy */ 2111 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesExponent = 1037, /* The exponent used in the calculation 2112 of exponentially weighted moving 2113 average of historical member bytes in 2114 physical queue. */ 2115 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesDecreaseReset = 1038, /* If set, the historical member bytes 2116 in physical queue is updated with the 2117 instantaneous value if the latter is 2118 smaller. */ 2119 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesMinThreshold = 1039, /* The minimum threshold, in bytes, used 2120 to quantize historical member bytes 2121 in physical queue. */ 2122 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesMaxThreshold = 1040, /* The maximum threshold, in bytes, used 2123 to quantize historical member bytes 2124 in physical queue. */ 2125 bcmSwitchTrunkDynamicPhysicalQueuedBytesExponent = 1041, /* The exponent used in the calculation 2126 of exponentially weighted moving 2127 average of historical member bytes in 2128 physical queue. */ 2129 bcmSwitchTrunkDynamicPhysicalQueuedBytesDecreaseReset = 1042, /* If set, the historical member bytes 2130 in physical queue is updated with the 2131 instantaneous value if the latter is 2132 smaller. */ 2133 bcmSwitchTrunkDynamicPhysicalQueuedBytesMinThreshold = 1043, /* The minimum threshold, in bytes, used 2134 to quantize historical member bytes 2135 in physical queue. */ 2136 bcmSwitchTrunkDynamicPhysicalQueuedBytesMaxThreshold = 1044, /* The maximum threshold, in bytes, used 2137 to quantize historical member bytes 2138 in physical queue. */ 2139 bcmSwitchEcmpDynamicPhysicalQueuedBytesExponent = 1045, /* The exponent used in the calculation 2140 of exponentially weighted moving 2141 average of historical member bytes in 2142 physical queue. */ 2143 bcmSwitchEcmpDynamicPhysicalQueuedBytesDecreaseReset = 1046, /* If set, the historical member bytes 2144 in physical queue is updated with the 2145 instantaneous value if the latter is 2146 smaller. */ 2147 bcmSwitchEcmpDynamicPhysicalQueuedBytesMinThreshold = 1047, /* The minimum threshold, in bytes, used 2148 to quantize historical member bytes 2149 in physical queue. */ 2150 bcmSwitchEcmpDynamicPhysicalQueuedBytesMaxThreshold = 1048, /* The maximum threshold, in bytes, used 2151 to quantize historical member bytes 2152 in physical queue. */ 2153 bcmSwitchFabricTrunkDynamicRandomSeed = 1049, /* Seed for RNG used in HiGig Trunk 2154 Dynamic Load Balancing */ 2155 bcmSwitchTrunkDynamicRandomSeed = 1050, /* Seed for RNG used in Trunk Dynamic 2156 Load Balancing */ 2157 bcmSwitchEcmpDynamicRandomSeed = 1051, /* Seed for RNG used in ECMP Dynamic 2158 Load Balancing */ 2159 bcmSwitchHashMPLSExcludeReservedLabel = 1052, /* To exclude all reserved labels from 2160 hash computation */ 2161 bcmSwitchMplsNonIpPayloadDefaultEcn = 1053, /* To set the default ECN for L2 MPLS 2162 termination flows for non-IP payloads */ 2163 bcmSwitchECMPHashBitCountSelect = 1054, /* To select the most significant bits 2164 of the 16-bit ECMP hash value before 2165 the modulo function */ 2166 bcmSwitchEcnIpPayloadResponsive = 1055, /* To set to use payload IP header's IP 2167 protocol field to determine 2168 responsive attribute of the packet 2169 for transiting tunnels */ 2170 bcmSwitchHashMultiMoveDepthExactMatch = 1056, /* Maximum moves in multi hash mode for 2171 FPEM tables. */ 2172 bcmSwitchCrAbort = 1057, /* If working in on demand CR, use this 2173 to abort the current transaction. */ 2174 bcmSwitchLIUdpSrcPortSet = 1058, /* Set UDP source port for Lawful 2175 Interception tunnel. */ 2176 bcmSwitchRoce1Ethertype = 1059, /* Set l2 ethertype to match RoCEv1 2177 packets. */ 2178 bcmSwitchRoce2UdpDstPort = 1060, /* Set udp dest port to match RoCEv2 2179 packets. */ 2180 bcmSwitchHashUseFlowSelRoce2Ecmp = 1061, /* Enable/Disable flow based hashing for 2181 RoCEv2 ECMP. */ 2182 bcmSwitchHashSelectControlExtended = 1062, /* Extended hash field selection control */ 2183 bcmSwitchHashField0Roce1FlowLabel = 1063, /* Enable RoCEv1 GRH(Global Route 2184 Header) flow label for Block A Hash 2185 Field Selection. */ 2186 bcmSwitchHashField1Roce1FlowLabel = 1064, /* Enable RoCEv1 GRH(Global Route 2187 Header) flow label for Block B Hash 2188 Field Selection. */ 2189 bcmSwitchHashField0Roce2FlowLabel = 1065, /* Enable RoCEv2 IPv6 flow label for 2190 Block A Hash Field Selection. */ 2191 bcmSwitchHashField1Roce2FlowLabel = 1066, /* Enable RoCEv2 IPv6 flow label for 2192 Block B Hash Field Selection. */ 2193 bcmSwitchHashRoce1Field0 = 1067, /* Hash block A field selection for 2194 RoCEv1 packets. */ 2195 bcmSwitchHashRoce1Field1 = 1068, /* Hash block B field selection for 2196 RoCEv1 packets. */ 2197 bcmSwitchHashRoce2IP4Field0 = 1069, /* Hash block A field selection for 2198 RoCEv2 IPv4 packets. */ 2199 bcmSwitchHashRoce2IP4Field1 = 1070, /* Hash block B field selection for 2200 RoCEv2 IPv4 packets. */ 2201 bcmSwitchHashRoce2IP6Field0 = 1071, /* Hash block A field selection for 2202 RoCEv2 IPv6 packets. */ 2203 bcmSwitchHashRoce2IP6Field1 = 1072, /* Hash block B field selection for 2204 RoCEv2 IPv6 packets. */ 2205 bcmSwitchEcmpRoce2HashOffset = 1073, /* Enhanced hash selection for RoCEv2 2206 ECMP port based hashing. */ 2207 bcmSwitchVxlanUdpDestPortSet1 = 1074, /* Set UDP Destination port for VXLAN 2208 (alternate). */ 2209 bcmSwitchVxlanEntropyEnableIP6 = 1075, /* Set IPv6 Flow Label for VXLAN Tunnel 2210 Entropy (Value = TRUE/FALSE). */ 2211 bcmSwitchE2EFCReceiveDestMacOui = 1076, /* E2EFC message MAC upper 3 bytes to 2212 match, only for E2EFC RX. */ 2213 bcmSwitchE2EFCReceiveDestMacNonOui = 1077, /* E2EFC message MAC lower 3 bytes to 2214 match, only for E2EFC RX. */ 2215 bcmSwitchE2EFCReceiveEtherType = 1078, /* E2EFC message EtherType/length to 2216 match, only for E2EFC RX. */ 2217 bcmSwitchE2EFCReceiveOpcode = 1079, /* E2EFC message opcode to match, only 2218 for E2EFC RX. */ 2219 bcmSwitchHashUseFlowSelEcmpOverlay = 1080, /* Enable/Disable flow based hashing for 2220 ECMP LEVEL 1. */ 2221 bcmSwitchMplsSpeculativeNibbleMap = 1081, /* Map first nibble after MPLS header to 2222 speculative next protocol. */ 2223 bcmSwitchIpmcSameFwdDmnThreshold = 1082, /* Set the threshold for 1:1 mapped 2224 VLANs and VPNs for IPMC packet flow 2225 for RIOT */ 2226 bcmSwitchHashUseFlowSelVpTrunk = 1083, /* Enable/Disable flow based hashing for 2227 VP Trunk. */ 2228 bcmSwitchHashUseFlowSelTrunkResilientHash = 1084, /* Enable/Disable flow based hashing for 2229 Trunk RH. */ 2230 bcmSwitchMeterMef10dot3Enable = 1085, /* Enable meter mef 10.3 mode. */ 2231 bcmSwitchHashMultiMoveDepthVlanTranslate1 = 1086, /* Maximum moves in multi hash mode for 2232 vlan translate1 tables. */ 2233 bcmSwitchHashMultiMoveDepthVlanTranslate2 = 1087, /* Maximum moves in multi hash mode for 2234 vlan translate2 tables. */ 2235 bcmSwitchHashMultiMoveDepthEgressVlanTranslate1 = 1088, /* Maximum moves in multi hash mode for 2236 vlan egress translate1 tables. */ 2237 bcmSwitchHashMultiMoveDepthEgressVlanTranslate2 = 1089, /* Maximum moves in multi hash mode for 2238 vlan egress translate2 tables. */ 2239 bcmSwitchIntL4DestPort1 = 1090, /* INT(Inband Network Telemetry) packet 2240 UDP destination port1. */ 2241 bcmSwitchIntL4DestPort2 = 1091, /* INT packet UDP destination port2. */ 2242 bcmSwitchIntProbeMarker1 = 1092, /* INT header ProbeMarker1. */ 2243 bcmSwitchIntProbeMarker2 = 1093, /* INT header ProbeMarker2. */ 2244 bcmSwitchIntVersion = 1094, /* INT header version. */ 2245 bcmSwitchIntRequestVectorValue = 1095, /* INT header request vector. */ 2246 bcmSwitchIntRequestVectorMask = 1096, /* INT header request vector mask. */ 2247 bcmSwitchIntSwitchId = 1097, /* INT payload switch ID. */ 2248 bcmSwitchIntEgressTimeDelta = 1098, /* Time in nano-second that is added to 2249 current time stamp to adjust latency 2250 from EP to port. */ 2251 bcmSwitchIntHopLimitCpuEnable = 1099, /* Enable copy to CPU on hop limit 2252 condition. */ 2253 bcmSwitchIntTurnAroundCpuEnable = 1100, /* Enable copy to CPU on egress port as 2254 turnaround port. */ 2255 bcmSwitchIntMaxPayloadLength = 1101, /* INT max payload length. Only apply to 2256 devices using global value */ 2257 bcmSwitchForwardLookupNotFoundTrap = 1102, /* Set foward lookup not found Trap ID. */ 2258 bcmSwitchEtherTypeCustom1 = 1103, /* Set Custom_1 Ethernet type. */ 2259 bcmSwitchEtherTypeCustom2 = 1104, /* Set Custom_2 Ethernet type. */ 2260 bcmSwitchL3LpmHitbitEnable = 1105, /* Enable hit bit lookup update in the 2261 LPM table. */ 2262 bcmSwitchMplsCtrlPktToCpu = 1106, /* MPLS control packets to CPU. */ 2263 bcmSwitchInvalidTpidToCpu = 1107, /* Invalid tag protocol ID packets to 2264 CPU. */ 2265 bcmSwitchFlowSelectMissToCpu = 1108, /* Packets that miss flow selection to 2266 CPU. */ 2267 bcmSwitchL3HdrMismatchToCpu = 1109, /* L3 header mismatch packets to CPU. */ 2268 bcmSwitchMeterTrafficClass = 1110, /* Meter Traffic Class value mapped from 2269 internal Traffic Class */ 2270 bcmSwitchRoeEthertype = 1111, /* Ethertype value for ROE frames after 2271 tunnel decap. */ 2272 bcmSwitchRoeCustomEthertype = 1112, /* Ethertype value for ROE Custom frames 2273 after tunnel decap. */ 2274 bcmSwitchRoeUdpDestPort = 1113, /* Set UDP Destination port for ROE 2275 frames. */ 2276 bcmSwitchRoeCustomUdpDestPort = 1114, /* Set UDP Destination port for ROE 2277 Custom frames. */ 2278 bcmSwitchOamOlpHeaderAdd = 1115, /* Enable or disable OLP header addition 2279 to OAM packets copied to CPU. OLP 2280 header addition is enabled by default 2281 for OAM packets. Please note that 2282 Embedded applications such as 2283 Ethernet LM/DM and MPLS LM/DM will 2284 not work correctly if OLP header 2285 addition is disabled. */ 2286 bcmSwitchL2FreezeMode = 1116, /* Use global forward mode for higher 2287 efficiency or per port no learn mode 2288 if some ports shouldn't forward. */ 2289 bcmSwitchL3McRpfDefaultRoute = 1117, /* Enable SIP base MC RPF default route 2290 check. */ 2291 bcmSwitchIngParseL2TunnelTermArp = 1118, /* Enable parsing of payload ARP header 2292 for L2 tunnel terminated packets. */ 2293 bcmSwitchIngParseL2TunnelTermRarp = 1119, /* Enable parsing of payload RARP header 2294 for L2 tunnel terminated packets. */ 2295 bcmSwitchNoneEthernetPacketMeterPtr = 1120, /* Ethernet meter pointer for none 2296 Ethernet packets. */ 2297 bcmSwitchEtherDscpRemark = 1121, /* Enable copying IP header.TOS to 2298 In-DSCP-EXP. */ 2299 bcmSwitchDosAttackTcpFirstOption = 1122, /* Configure TCP option number for 2300 switch control 2301 bcmSwitchDosAttackTcpFlagsSynOption. 2302 Only first option in the TCP option 2303 can be checked and compared to with 2304 this value. */ 2305 bcmSwitchDosAttackInnerTcpFirstOption = 1123, /* Configure Inner TCP option number for 2306 switch control 2307 bcmSwitchDosAttackTcpFlagsSynOption. 2308 Only first option in the TCP option 2309 can be checked and compared to with 2310 this value. */ 2311 bcmSwitchDosAttackTcpFlagsMask = 1124, /* Configure TCP control flags valid 2312 bits for Dos Attack. This value is 2313 used for generating Dos Attack for 2314 bcmSwitchDosAttackTcpFlagsZero and/or 2315 bcmSwitchDosAttackTcpFlagsResvdNonZero. */ 2316 bcmSwitchDosAttackInnerTcpFlagsMask = 1125, /* Configure Inner TCP control flags 2317 valid bits for Dos Attack. This value 2318 is used for generating Dos Attack for 2319 bcmSwitchDosAttackTcpFlagsZero and/or 2320 bcmSwitchDosAttackTcpFlagsResvdNonZero. */ 2321 bcmSwitchDosAttackTcpFlagsSR = 1126, /* Enable DOS attack checking for TCP 2322 packet with SYN and RST Flags set. */ 2323 bcmSwitchDosAttackTcpFlagsZero = 1127, /* Enable DOS attack checking for TCP 2324 packet in which TCP Control Flag is 2325 Zero. Switch Control 2326 bcmSwitchDosAttackTcpFlagsMask and/or 2327 bcmSwitchDosAttackInnerTcpFlagsMask 2328 must be configured to determine valid 2329 TCP Flag bits. */ 2330 bcmSwitchDosAttackTcpFlagsSynOption = 1128, /* Enable DOS attack checking for TCP 2331 packet with SYN Flag set and option 2332 number in payload. Switch Control 2333 bcmSwitchDosAttackTcpFirstOption 2334 and/or 2335 bcmSwitchDosAttackInnerTcpFirstOption 2336 must be set required option number 2337 for matching. */ 2338 bcmSwitchDosAttackTcpFlagsSynFirstFrag = 1129, /* Enable DOS attack checking for TCP 2339 packet with SYN Flags set in first 2340 fragment. */ 2341 bcmSwitchDosAttackTcpFlagsFinNoAck = 1130, /* Enable DOS attack checking for TCP 2342 packet with flags FIN set and ACK not 2343 set. */ 2344 bcmSwitchDosAttackTcpFlagsRstNoAck = 1131, /* Enable DOS attack checking for TCP 2345 packet with flags RST set and ACK not 2346 set. */ 2347 bcmSwitchDosAttackTcpFlagsNoSFRA = 1132, /* Enable DOS attack checking for TCP 2348 packet with no SYN, FIN, RST, ACK 2349 Flag set. */ 2350 bcmSwitchDosAttackTcpFlagsUrgNoUrgPtr = 1133, /* Enable DOS attack checking for TCP 2351 packet with URG flag set and Null 2352 Urgent Pointer. */ 2353 bcmSwitchDosAttackTcpFlagsNoUrgWithUrgPtr = 1134, /* Enable DOS attack checking for TCP 2354 packet with URG flag not set and 2355 non-null Urgent Pointer. */ 2356 bcmSwitchDosAttackTcpDstPortZero = 1135, /* Enable DOS attack checking for TCP 2357 packet with Destination port as zero. */ 2358 bcmSwitchDosAttackTcpSrcPortZero = 1136, /* Enable DOS attack checking for TCP 2359 packet with Source Port as zero. */ 2360 bcmSwitchDosAttackTcpFlagsResvdNonZero = 1137, /* Enable DOS attack checking for TCP 2361 packet with Reserved flags non-zero. 2362 Switch Control 2363 bcmSwitchDosAttackTcpFlagsMask and/or 2364 bcmSwitchDosAttackInnerTcpFlagsMask 2365 must be configured to determine 2366 reserved flag bits. */ 2367 bcmSwitchDosAttackTcpV4DstBcast = 1138, /* Enable DOS attack checking for TCP 2368 packet with Ipv4 Broadcast DIP 2369 address. */ 2370 bcmSwitchDosAttackTcpFlagsAck = 1139, /* Enable DOS attack checking for TCP 2371 packet with ACK flag set and 2372 Acknowledgement number is zero. */ 2373 bcmSwitchMirrorPsampFormat2Epoch = 1140, /* Set EPOCH value in PSAMP format2 2374 header */ 2375 bcmSwitchL2StationExtendedMode = 1141, /* Set L2 station extended memory global 2376 mode. */ 2377 bcmSwitchHashSeed = 1142, /* Set the seed of the selected hash 2378 function. */ 2379 bcmSwitchLayerRecordModeSelection = 1143, /* Select the working mode of the layer 2380 records. */ 2381 bcmSwitchECMPThirdHierHashConfig = 1144, /* Selects hashing polynomial for the 2382 third hierarchy of the ECMP. */ 2383 bcmSwitchNwkHashConfig = 1145, /* Selects hashing polynomial for the 2384 network load balancing key 2385 generation. */ 2386 bcmSwitchMplsStack0HashSeed = 1146, /* Set the seed of the first MPLS stack 2387 hash. */ 2388 bcmSwitchMplsStack1HashSeed = 1147, /* Set the seed of the second MPLS stack 2389 hash. */ 2390 bcmSwitchParserHashSeed = 1148, /* Set the seed of the parser stage 2391 hashing. */ 2392 bcmSwitchMplsSpeculativeParse = 1149, /* Enable/disable the MPLS speculative 2393 parsing. */ 2394 bcmSwitchExternalTcamSync = 1150, /* Enum for external TCAM sync. */ 2395 bcmSwitchArpMyIp1 = 1151, /* My-ARP trap configuration of IP 1. */ 2396 bcmSwitchArpMyIp2 = 1152, /* My-ARP trap configuration of IP 2. */ 2397 bcmSwitchArpIgnoreDa = 1153, /* ARP trap configuration of Ignore DA. */ 2398 bcmSwitchNdpMyIp1 = 1154, /* My-NDP trap configuration of IP 1. */ 2399 bcmSwitchNdpMyIp2 = 1155, /* My-NDP trap configuration of IP 2. */ 2400 bcmSwitchIcmpIgnoreDa = 1156, /* ICMP trap configuration of Ignore DA. */ 2401 bcmSwitchVxlanEvpnEnable = 1157, /* enable/disable VXLAN EVPN. */ 2402 bcmSwitchHashDualMoveDepthIngVpVlanMember = 1158, /* Maximum moves in dual hash mode for 2403 ING_VP_VLAN_MEMBERSHIP table. */ 2404 bcmSwitchHashDualMoveDepthEgrVpVlanMember = 1159, /* Maximum moves in dual hash mode for 2405 EGR_VP_VLAN_MEMBERSHIP table. */ 2406 bcmSwitchGpeEntropyEnable = 1160, /* Set UDP Source port for GPE Tunnel 2407 Entropy(Value = TRUE/FALSE). */ 2408 bcmSwitchGpeUdpDestPortSet = 1161, /* Set UDP Destination port for GPE. */ 2409 bcmSwitchGeneveEntropyEnable = 1162, /* Set UDP Source port for GENEVE Tunnel 2410 Entropy(Value = TRUE/FALSE). */ 2411 bcmSwitchGeneveUdpDestPortSet = 1163, /* Set UDP Destination port for GENEVE. */ 2412 bcmSwitchBfdRxDisable = 1164, /* Disable BFD Rx packet processing. */ 2413 bcmSwitchDescCommit = 1165, /* Commit descriptor DMA chain to HW. */ 2414 bcmSwitchDlbMonitorIngressRandomSeed = 1166, /* Set RNG seed for DLB flow monitoring */ 2415 bcmSwitchCounterAdjustEgressTm = 1167, /* Counter compensation specifically for 2416 ETM. */ 2417 bcmSwitchCounterAdjustEgressPp = 1168, /* Counter compensation specifically for 2418 ERPP. */ 2419 bcmSwitchTagPcpDeiSrc = 1169, /* Set Source of PCP_DEi for SIT */ 2420 bcmSwitchBfdMyDipDestination = 1170, /* Set destination for BFD IP address 2421 forwarding. */ 2422 bcmSwitchEndToEndLatencyPerDestinationPort = 1171, /* Define if end to end latency is made 2423 per destination port or not. */ 2424 bcmSwitchExternalTcamInit = 1172, /* Init/De-init External TCAM. */ 2425 bcmSwitchHashMultiMoveDepthL3Tunnel = 1173, /* Maximum moves in multi hash mode for 2426 L3 Tunnel tables. */ 2427 bcmSwitchGbpEtherType = 1174, /* Specify the ethertype to be used for 2428 GBP protocol */ 2429 bcmSwitchVxlanUdpSrcPortSelect = 1175, /* Select UDP source port for VxLAN 2430 tunnel */ 2431 bcmSwitchGpeUdpSrcPortSelect = 1176, /* Select UDP source port for GPE tunnel */ 2432 bcmSwitchGeneveUdpSrcPortSelect = 1177, /* Select UDP source port for GENEVE 2433 tunnel */ 2434 bcmSwitchPreserveOtagBeforeItag = 1178, /* Control for preserved OTAG order wrt. 2435 ITAG */ 2436 bcmSwitchMirrorCpuCosq = 1179, /* Mirror COS for CPU port as MTP */ 2437 bcmSwitchIntProbeMarkerEnable = 1180, /* INT packet ProbeMarker(UDF) parser 2438 Enable. */ 2439 bcmSwitchIntL4DestPortEnable = 1181, /* INT packet UDP destination port 2440 parser Enable. */ 2441 bcmSwitchFtmhEtherType = 1182, /* Set FTMH header Ethertype to match */ 2442 bcmSwitchGbpSidDidMcastLookupMissClassid = 1183, /* Default class id to be used when 2443 there is a miss in GBP SID_DID lookup 2444 for multicast flows. */ 2445 bcmSwitchCustomOuterEthertype1 = 1184, /* Outer Ethertype 1 used for extracting 2446 packet fields in custom applications. */ 2447 bcmSwitchCustomOuterEthertype2 = 1185, /* Outer Ethertype 2 used for extracting 2448 packet fields in custom applications. */ 2449 bcmSwitchCustomInnerEthertype1 = 1186, /* Inner Ethertype 1 used for extracting 2450 packet fields in custom applications. */ 2451 bcmSwitchCustomInnerEthertype2 = 1187, /* Inner Ethertype 2 used for extracting 2452 packet fields in custom applications. */ 2453 bcmSwitchCustomOuterProtocolId1 = 1188, /* Outer Protocol ID 1 used for 2454 extracting packet fields in custom 2455 applications. */ 2456 bcmSwitchCustomOuterProtocolId2 = 1189, /* Outer Protocol ID 2 used for 2457 extracting packet fields in custom 2458 applications. */ 2459 bcmSwitchCustomInnerProtocolId1 = 1190, /* Inner Protocol ID 1 used for 2460 extracting packet fields in custom 2461 applications. */ 2462 bcmSwitchCustomInnerProtocolId2 = 1191, /* Inner Protocol ID 2 used for 2463 extracting packet fields in custom 2464 applications. */ 2465 bcmSwitchCustomOuterUdpDstPort1 = 1192, /* Outer UDP Dest Port 1 used for 2466 extracting packet fields in custom 2467 applications. */ 2468 bcmSwitchCustomOuterUdpDstPort2 = 1193, /* Outer UDP Dest Port 2 used for 2469 extracting packet fields in custom 2470 applications. */ 2471 bcmSwitchCustomInnerUdpDstPort1 = 1194, /* Inner UDP Dest Port 1 used for 2472 extracting packet fields in custom 2473 applications. */ 2474 bcmSwitchCustomInnerUdpDstPort2 = 1195, /* Inner UDP Dest Port 2 used for 2475 extracting packet fields in custom 2476 applications. */ 2477 bcmSwitchReservedEgressNextHop = 1196, /* Set reserved egress next hop, which 2478 is used to generate L2 header for 2479 IPMC packet that does not have L2 2480 header after tunnel termination. */ 2481 bcmSwitchConcatAppHeader = 1197, /* Concat app header to master key in 2482 ELK. */ 2483 bcmSwitchVxlanGpeUdpDestPortSet = 1198, /* Set UDP Destination port for 2484 VXLAN-GPE. */ 2485 bcmSwitchSystemPortOverride = 1199, /* When set, port group id used for 2486 egress VLAN translation is replaced 2487 with destination global logical port 2488 (mod, port). */ 2489 bcmSwitchSRV6EgressPSPEnable = 1200, /* When set, device supports SRv6 Egress 2490 PSP mode. */ 2491 bcmSwitchSRV6ReducedModeEnable = 1201, /* When set, device supports SRv6 2492 Reduced encapsulation mode. */ 2493 bcmSwitchHashL4Field = 1202, /* Hash selections for L4 headers. */ 2494 bcmSwitchL3UcLargeNATEnable = 1203, /* Global enable for large scale L3 2495 unicast NAT updates. */ 2496 bcmSwitchL3UcLargeDNAT = 1204, /* Enable large scale DNAT update for 2497 the specified L3UC packet. */ 2498 bcmSwitchL3UcLargeSNAT = 1205, /* Enable large scale SNAT update for 2499 specified L3UC packet. */ 2500 bcmSwitchL3UcLargeDNATSNAT = 1206, /* Enable large scale DNAT and SNAT 2501 updates for specified L3UC packet. */ 2502 bcmSwitchL3UcLargeDNAPT = 1207, /* Enable large scale DNAPT update for 2503 specified L3UC packet. */ 2504 bcmSwitchL3UcLargeSNAPT = 1208, /* Enable large scale SNAPT update for 2505 specified L3UC packet. */ 2506 bcmSwitchL3UcLargeDNAPTSNAPT = 1209, /* Enable large scale DNAPT and SNAPT 2507 updates for specified L3UC packet 2508 type. */ 2509 bcmSwitchL3McLargeNATEnable = 1210, /* Global enable for large scale L3 2510 multicast NAT updates. */ 2511 bcmSwitchL3McLargeNATRewriteType0 = 1211, /* Specifies first of 3 rewrite types 2512 for large scale multicast NAT 2513 updates. */ 2514 bcmSwitchL3McLargeNATRewriteType1 = 1212, /* Specifies second of 3 rewrite types 2515 for large scale multicast NAT 2516 updates. */ 2517 bcmSwitchL3McLargeNATRewriteType2 = 1213, /* Specifies final rewrite type for 2518 large scale multicast NAT updates. */ 2519 bcmSwitchL2ChangeFieldsEnable = 1214, /* Enable L2 Change Fields for VFI 2520 switched packets. */ 2521 bcmSwitchPcieHotSwapDisable = 1215, /* When set value=1 PCIE Hot swap 2522 manager is disabled. Applicable for 2523 CMICX based devices only */ 2524 bcmSwitchIPv4DoNotVerifyIncomingChecksum = 1216, /* Allow incremental checksum update 2525 irrespective of the incoming value 2526 for IPv4 packets. */ 2527 bcmSwitch__Count = 1217 /* Must be last. Not a usable value. */ 2528 } bcm_switch_control_t; 2529 2530 #define BCM_SWITCH_CONTROL_STR \ 2531 "HgHdrErrToCpu", \ 2532 "ClassTagPacketsToCpu", \ 2533 "IpmcTunnelToCpu", \ 2534 "StationMoveOverLearnLimitToCpu", \ 2535 "McastUnknownErrToCpu", \ 2536 "LearnLimitPriority", \ 2537 "ControlOpcodePriority", \ 2538 "CpuProtoBpduPriority", \ 2539 "CpuProtoArpPriority", \ 2540 "CpuProtoIgmpPriority", \ 2541 "CpuProtoDhcpPriority", \ 2542 "CpuProtoIpmcReservedPriority", \ 2543 "CpuProtoIpOptionsPriority", \ 2544 "CpuProtoExceptionsPriority", \ 2545 "CpuProtocolPrio", \ 2546 "CpuUnknownPrio", \ 2547 "CpuSamplePrio", \ 2548 "CpuDefaultPrio", \ 2549 "L2StaticMoveToCpu", \ 2550 "UnknownIpmcToCpu", \ 2551 "UnknownMcastToCpu", \ 2552 "UnknownUcastToCpu", \ 2553 "NonIpL3ErrToCpu", \ 2554 "L3HeaderErrToCpu", \ 2555 "UnknownVlanToCpu", \ 2556 "UnknownL3SrcToCpu", \ 2557 "UnknownL3DestToCpu", \ 2558 "IpmcPortMissToCpu", \ 2559 "IpmcErrorToCpu", \ 2560 "VCLabelMissToCpu", \ 2561 "SourceRouteToCpu", \ 2562 "SampleIngressRandomSeed", \ 2563 "SampleEgressRandomSeed", \ 2564 "CpuFpCopyPrio", \ 2565 "CpuIcmpRedirectPrio", \ 2566 "CpuMtuFailPrio", \ 2567 "CpuMirrorPrio", \ 2568 "CpuLookupFpCopyPrio", \ 2569 "L2NonStaticMoveToCpu", \ 2570 "V6L3ErrToCpu", \ 2571 "V6L3DstMissToCpu", \ 2572 "V6L3LocalLinkDrop", \ 2573 "V4L3ErrToCpu", \ 2574 "V4L3DstMissToCpu", \ 2575 "TunnelErrToCpu", \ 2576 "MartianAddrToCpu", \ 2577 "MartianAddr", \ 2578 "L3UcTtlErrToCpu", \ 2579 "L3SlowpathToCpu", \ 2580 "IpmcTtlErrToCpu", \ 2581 "DosAttackToCpu", \ 2582 "DosAttackSipEqualDip", \ 2583 "DosAttackMinTcpHdrSize", \ 2584 "DosAttackV4FirstFrag", \ 2585 "DosAttackTcpFlags", \ 2586 "DosAttackL4Port", \ 2587 "DosAttackTcpFrag", \ 2588 "DosAttackIcmp", \ 2589 "DosAttackIcmpV4", \ 2590 "DosAttackIcmpV6", \ 2591 "DosAttackIcmpPktOversize", \ 2592 "DosAttackMACSAEqualMACDA", \ 2593 "DosAttackIcmpV6PingSize", \ 2594 "DosAttackIcmpFragments", \ 2595 "DosAttackTcpOffset", \ 2596 "DosAttackUdpPortsEqual", \ 2597 "DosAttackTcpPortsEqual", \ 2598 "DosAttackTcpFlagsSF", \ 2599 "DosAttackTcpFlagsFUP", \ 2600 "DosAttackTcpHdrPartial", \ 2601 "DosAttackPingFlood", \ 2602 "DosAttackSynFlood", \ 2603 "DosAttackTcpSmurf", \ 2604 "DosAttackTcpXMas", \ 2605 "DosAttackL3Header", \ 2606 "IcmpRedirectToCpu", \ 2607 "MplsSequenceErrToCpu", \ 2608 "MplsLabelMissToCpu", \ 2609 "MplsTtlErrToCpu", \ 2610 "MplsInvalidL3PayloadToCpu", \ 2611 "MplsInvalidActionToCpu", \ 2612 "SharedVlanMismatchToCpu", \ 2613 "L3SrcUrpfErrToCpu", \ 2614 "GreKeyToVlan", \ 2615 "ArpReplyToCpu", \ 2616 "ArpReplyDrop", \ 2617 "ArpRequestToCpu", \ 2618 "ArpRequestDrop", \ 2619 "ArpReplyMyStationL2ToCPU", \ 2620 "NdPktToCpu", \ 2621 "NdPktDrop", \ 2622 "McastFloodBlocking", \ 2623 "IgmpPktToCpu", \ 2624 "IgmpPktDrop", \ 2625 "DhcpPktToCpu", \ 2626 "DhcpPktDrop", \ 2627 "MldPktToCpu", \ 2628 "MldPktDrop", \ 2629 "V4ResvdMcPktToCpu", \ 2630 "V4ResvdMcPktDrop", \ 2631 "V4ResvdMcPktFlood", \ 2632 "V6ResvdMcPktToCpu", \ 2633 "V6ResvdMcPktDrop", \ 2634 "V6ResvdMcPktFlood", \ 2635 "IgmpReportLeaveToCpu", \ 2636 "IgmpReportLeaveDrop", \ 2637 "IgmpReportLeaveFlood", \ 2638 "IgmpQueryToCpu", \ 2639 "IgmpQueryDrop", \ 2640 "IgmpQueryFlood", \ 2641 "IgmpUnknownToCpu", \ 2642 "IgmpUnknownDrop", \ 2643 "IgmpUnknownFlood", \ 2644 "MldReportDoneToCpu", \ 2645 "MldReportDoneDrop", \ 2646 "MldReportDoneFlood", \ 2647 "MldQueryToCpu", \ 2648 "MldQueryDrop", \ 2649 "MldQueryFlood", \ 2650 "IpmcV4RouterDiscoveryToCpu", \ 2651 "IpmcV4RouterDiscoveryDrop", \ 2652 "IpmcV4RouterDiscoveryFlood", \ 2653 "IpmcV6RouterDiscoveryToCpu", \ 2654 "IpmcV6RouterDiscoveryDrop", \ 2655 "IpmcV6RouterDiscoveryFlood", \ 2656 "DirectedMirroring", \ 2657 "PktAge", \ 2658 "McastFloodDefault", \ 2659 "ParityErrorToCpu", \ 2660 "L3MtuFailToCpu", \ 2661 "MeterAdjust", \ 2662 "CounterAdjust", \ 2663 "MeterAdjustInterframeGap", \ 2664 "HashL2", \ 2665 "HashL3", \ 2666 "HashMultipath", \ 2667 "HashControl", \ 2668 "FieldMultipathHashSelect", \ 2669 "FieldMultipathHashSeed", \ 2670 "MirrorStackMode", \ 2671 "MirrorSrcModCheck", \ 2672 "MirrorUnmarked", \ 2673 "DestPortHGTrunk", \ 2674 "ColorSelect", \ 2675 "ModuleLoopback", \ 2676 "SrcModBlockMirrorCopy", \ 2677 "SrcModBlockMirrorOnly", \ 2678 "HashSeed0", \ 2679 "HashSeed1", \ 2680 "HashField0PreProcessEnable", \ 2681 "HashField1PreProcessEnable", \ 2682 "HashField0Config", \ 2683 "HashField0Config1", \ 2684 "HashField1Config", \ 2685 "HashField1Config1", \ 2686 "MacroFlowHashFieldConfig", \ 2687 "HashSelectControl", \ 2688 "HashIP4Field0", \ 2689 "HashIP4Field1", \ 2690 "HashIP4TcpUdpField0", \ 2691 "HashIP4TcpUdpField1", \ 2692 "HashIP4TcpUdpPortsEqualField0", \ 2693 "HashIP4TcpUdpPortsEqualField1", \ 2694 "HashIP6Field0", \ 2695 "HashIP6Field1", \ 2696 "HashIP6TcpUdpField0", \ 2697 "HashIP6TcpUdpField1", \ 2698 "HashIP6TcpUdpPortsEqualField0", \ 2699 "HashIP6TcpUdpPortsEqualField1", \ 2700 "HashL2Field0", \ 2701 "HashL2Field1", \ 2702 "HashMPLSField0", \ 2703 "HashMPLSField1", \ 2704 "HashFCOEField0", \ 2705 "HashFCOEField1", \ 2706 "HashL2TrillField0", \ 2707 "HashL2TrillField1", \ 2708 "HashL3TrillField0", \ 2709 "HashL3TrillField1", \ 2710 "HashTrillTunnelField0", \ 2711 "HashTrillTunnelField1", \ 2712 "HashHG2UnknownField0", \ 2713 "HashHG2UnknownField1", \ 2714 "HashField0OverlayCntagRpidEnable", \ 2715 "HashField1OverlayCntagRpidEnable", \ 2716 "HashHg2PktFieldsEnable", \ 2717 "HashField0Ip6FlowLabel", \ 2718 "HashField1Ip6FlowLabel", \ 2719 "HashUseFlowSelTrunkUc", \ 2720 "HashUseFlowSelEcmp", \ 2721 "TrunkHashSet0UnicastOffset", \ 2722 "TrunkHashSet1UnicastOffset", \ 2723 "TrunkHashSet0NonUnicastOffset", \ 2724 "TrunkHashSet1NonUnicastOffset", \ 2725 "TrunkFailoverHashOffset", \ 2726 "FabricTrunkHashSet0UnicastOffset", \ 2727 "FabricTrunkHashSet1UnicastOffset", \ 2728 "FabricTrunkHashSet0NonUnicastOffset", \ 2729 "FabricTrunkHashSet1NonUnicastOffset", \ 2730 "FabricTrunkFailoverHashOffset", \ 2731 "FabricTrunkDynamicHashOffset", \ 2732 "LoadBalanceHashSet0UnicastOffset", \ 2733 "LoadBalanceHashSet1UnicastOffset", \ 2734 "LoadBalanceHashSet0NonUnicastOffset", \ 2735 "LoadBalanceHashSet1NonUnicastOffset", \ 2736 "MacroFlowHashMinOffset", \ 2737 "MacroFlowHashMaxOffset", \ 2738 "MacroFlowHashStrideOffset", \ 2739 "UniformUcastTrunkDistribution", \ 2740 "UniformFabricTrunkDistribution", \ 2741 "ECMPHashSet0Offset", \ 2742 "ECMPHashSet1Offset", \ 2743 "CpuToCpuEnable", \ 2744 "IgmpUcastEnable", \ 2745 "MldUcastEnable", \ 2746 "IgmpReservedMcastEnable", \ 2747 "MldReservedMcastEnable", \ 2748 "MldDirectAttachedOnly", \ 2749 "PortEgressBlockL2", \ 2750 "PortEgressBlockL3", \ 2751 "BpduInvalidVlanDrop", \ 2752 "MirrorInvalidVlanDrop", \ 2753 "MirrorPktChecksEnable", \ 2754 "RemoteLearnTrust", \ 2755 "SourceMacZeroDrop", \ 2756 "IpmcGroupMtu", \ 2757 "ModuleType", \ 2758 "Deprecated227", \ 2759 "Deprecated228", \ 2760 "Deprecated229", \ 2761 "L3EgressMode", \ 2762 "L3DefipMultipathCountUpdate", \ 2763 "L3IngressMode", \ 2764 "L3HostAsRouteReturnValue", \ 2765 "SourceModBlockUcast", \ 2766 "SourceModBlockControlOpcode", \ 2767 "EgressBlockUcast", \ 2768 "AlternateStoreForward", \ 2769 "WarmBoot", \ 2770 "StableSelect", \ 2771 "StableSize", \ 2772 "StableUsed", \ 2773 "StableConsistent", \ 2774 "ControlSync", \ 2775 "ControlAutoSync", \ 2776 "CallbackAbortOnError", \ 2777 "UnknownIpmcAsMcast", \ 2778 "TunnelUnknownIpmcDrop", \ 2779 "DhcpLearn", \ 2780 "IpmcTtl1ToCpu", \ 2781 "L3UcastTtl1ToCpu", \ 2782 "DosAttackFlagZeroSeqZero", \ 2783 "HgHdrExtLengthEnable", \ 2784 "DosAttackSynFrag", \ 2785 "Ip4McastL2DestCheck", \ 2786 "Ip6McastL2DestCheck", \ 2787 "L3InterfaceUrpfEnable", \ 2788 "L3TunnelUrpfMode", \ 2789 "L3TunnelUrpfDefaultRoute", \ 2790 "L3UrpfFailToCpu", \ 2791 "L3UrpfRouteEnable", \ 2792 "L3UrpfRouteEnableExternal", \ 2793 "L3UrpfMode", \ 2794 "L3UrpfDefaultRoute", \ 2795 "IngressRateLimitIncludeIFG", \ 2796 "RateLimitLinear", \ 2797 "HashL2Dual", \ 2798 "HashL3Dual", \ 2799 "HashDualMoveDepth", \ 2800 "HashDualMoveDepthL2", \ 2801 "HashDualMoveDepthL3", \ 2802 "HashDualMoveDepthVlan", \ 2803 "HashDualMoveDepthMpls", \ 2804 "HashDualMoveDepthEgressVlan", \ 2805 "HashDualMoveDepthWlanPort", \ 2806 "HashDualMoveDepthWlanClient", \ 2807 "HashMultiMoveDepth", \ 2808 "HashMultiMoveDepthL2", \ 2809 "HashMultiMoveDepthL3", \ 2810 "HashMultiMoveDepthVlan", \ 2811 "HashMultiMoveDepthMpls", \ 2812 "HashMultiMoveDepthEgressVlan", \ 2813 "HashL2DualLeastFull", \ 2814 "HashL3DualLeastFull", \ 2815 "HashMPLSDualLeastFull", \ 2816 "SharedVlanEnable", \ 2817 "SharedVlanL2McastEnable", \ 2818 "IpmcReplicationSharing", \ 2819 "IpmcReplicationAvailabilityThreshold", \ 2820 "VrfMax", \ 2821 "FailoverStackTrunk", \ 2822 "FailoverEtherTrunk", \ 2823 "ClassBasedMoveFailPktToCpu", \ 2824 "ClassBasedMoveFailPktDrop", \ 2825 "HgHdrMcastFlood", \ 2826 "HgHdrMcastFloodOverride", \ 2827 "HgHdrIpMcastFlood", \ 2828 "HgHdrIpMcastFloodOverride", \ 2829 "STPBlockedFieldBypass", \ 2830 "L2PortBlocking", \ 2831 "HashIpfixIngress", \ 2832 "HashIpfixIngressDual", \ 2833 "HashIpfixEgress", \ 2834 "HashIpfixEgressDual", \ 2835 "HashMPLS", \ 2836 "HashMPLSDual", \ 2837 "ForceForwardFabricTrunk", \ 2838 "UseGport", \ 2839 "HgHdrMcastVlanRange", \ 2840 "HgHdrMcastL2Range", \ 2841 "HgHdrMcastL3Range", \ 2842 "McastL2Range", \ 2843 "McastL3Range", \ 2844 "HashWlanPort", \ 2845 "HashWlanPortDual", \ 2846 "HashWlanClient", \ 2847 "HashWlanClientDual", \ 2848 "WlanClientAuthorizeAll", \ 2849 "WlanClientUnauthToCpu", \ 2850 "WlanClientRoamedOutErrorToCpu", \ 2851 "WlanClientSrcMacMissToCpu", \ 2852 "WlanClientDstMacMissToCpu", \ 2853 "OamHeaderErrorToCpu", \ 2854 "OamUnknownVersionToCpu", \ 2855 "OamUnknownVersionDrop", \ 2856 "OamUnexpectedPktToCpu", \ 2857 "OamCcmToCpu", \ 2858 "OamXconCcmToCpu", \ 2859 "OamXconOtherToCpu", \ 2860 "L3SrcBindFailToCpu", \ 2861 "TunnelIp4IdShared", \ 2862 "HashRegexAction", \ 2863 "HashRegexActionDual", \ 2864 "Deprecated333", \ 2865 "CpuCopyDestination", \ 2866 "CpuProtoTimeSyncPrio", \ 2867 "CpuProtoMmrpPrio", \ 2868 "CpuProtoSrpPrio", \ 2869 "TimeSyncPktToCpu", \ 2870 "TimeSyncPktDrop", \ 2871 "TimeSyncPktFlood", \ 2872 "MmrpPktToCpu", \ 2873 "MmrpPktDrop", \ 2874 "MmrpPktFlood", \ 2875 "SrpPktToCpu", \ 2876 "SrpPktDrop", \ 2877 "SrpPktFlood", \ 2878 "SRPEthertype", \ 2879 "MMRPEthertype", \ 2880 "TimeSyncEthertype", \ 2881 "FcoeEtherType", \ 2882 "SRPDestMacOui", \ 2883 "MMRPDestMacOui", \ 2884 "TimeSyncDestMacOui", \ 2885 "SRPDestMacNonOui", \ 2886 "MMRPDestMacNonOui", \ 2887 "TimeSyncDestMacNonOui", \ 2888 "TimeSyncMessageTypeBitmap", \ 2889 "TimeSyncClassAPktPrio", \ 2890 "TimeSyncClassBPktPrio", \ 2891 "TimeSyncClassAExeptionPktPrio", \ 2892 "TimeSyncClassBExeptionPktPrio", \ 2893 "L2McastAllRouterPortsAddEnable", \ 2894 "BypassMode", \ 2895 "IpmcSameVlanL3Route", \ 2896 "Deprecated365", \ 2897 "FieldCache", \ 2898 "FieldCommit", \ 2899 "IpmcCache", \ 2900 "IpmcCommit", \ 2901 "L2Cache", \ 2902 "L2Commit", \ 2903 "L2AgeDelete", \ 2904 "L2AgeScan", \ 2905 "L3HostCache", \ 2906 "L3HostCommit", \ 2907 "L3RouteCache", \ 2908 "L3RouteCommit", \ 2909 "L2InvalidCtlToCpu", \ 2910 "InvalidGreToCpu", \ 2911 "HashL2MPLSField0", \ 2912 "HashL2MPLSField1", \ 2913 "HashL3MPLSField0", \ 2914 "HashL3MPLSField1", \ 2915 "HashMPLSTunnelField0", \ 2916 "HashMPLSTunnelField1", \ 2917 "HashMIMTunnelField0", \ 2918 "HashMIMTunnelField1", \ 2919 "HashMIMField0", \ 2920 "HashMIMField1", \ 2921 "StgInvalidToCpu", \ 2922 "VlanTranslateEgressMissToCpu", \ 2923 "L3PktErrToCpu", \ 2924 "MtuFailureToCpu", \ 2925 "SrcKnockoutToCpu", \ 2926 "WlanTunnelMismatchToCpu", \ 2927 "WlanTunnelMismatchDrop", \ 2928 "WlanPortMissToCpu", \ 2929 "UnknownVlanToCpuCosq", \ 2930 "StgInvalidToCpuCosq", \ 2931 "VlanTranslateEgressMissToCpuCosq", \ 2932 "TunnelErrToCpuCosq", \ 2933 "L3HeaderErrToCpuCosq", \ 2934 "L3PktErrToCpuCosq", \ 2935 "IpmcTtlErrToCpuCosq", \ 2936 "MtuFailureToCpuCosq", \ 2937 "HgHdrErrToCpuCosq", \ 2938 "SrcKnockoutToCpuCosq", \ 2939 "WlanTunnelMismatchToCpuCosq", \ 2940 "WlanPortMissToCpuCosq", \ 2941 "IpfixRateViolationDataInsert", \ 2942 "IpfixRateViolationPersistent", \ 2943 "HashVlanTranslate", \ 2944 "HashVlanTranslateDual", \ 2945 "HashEgressVlanTranslate", \ 2946 "HashEgressVlanTranslateDual", \ 2947 "LayeredQoSResolution", \ 2948 "CustomerQueuing", \ 2949 "CosqStatThreshold", \ 2950 "CosqStatInterval", \ 2951 "EncapErrorToCpu", \ 2952 "MplsPortIndependentLowerRange1", \ 2953 "MplsPortIndependentUpperRange1", \ 2954 "MplsPortIndependentLowerRange2", \ 2955 "MplsPortIndependentUpperRange2", \ 2956 "MirrorEgressTrueColorSelect", \ 2957 "MirrorEgressTruePriority", \ 2958 "PFCClass0Queue", \ 2959 "PFCClass1Queue", \ 2960 "PFCClass2Queue", \ 2961 "PFCClass3Queue", \ 2962 "PFCClass4Queue", \ 2963 "PFCClass5Queue", \ 2964 "PFCClass6Queue", \ 2965 "PFCClass7Queue", \ 2966 "PFCClass0McastQueue", \ 2967 "PFCClass1McastQueue", \ 2968 "PFCClass2McastQueue", \ 2969 "PFCClass3McastQueue", \ 2970 "PFCClass4McastQueue", \ 2971 "PFCClass5McastQueue", \ 2972 "PFCClass6McastQueue", \ 2973 "PFCClass7McastQueue", \ 2974 "PFCClass0DestmodQueue", \ 2975 "PFCClass1DestmodQueue", \ 2976 "PFCClass2DestmodQueue", \ 2977 "PFCClass3DestmodQueue", \ 2978 "PFCClass4DestmodQueue", \ 2979 "PFCClass5DestmodQueue", \ 2980 "PFCClass6DestmodQueue", \ 2981 "PFCClass7DestmodQueue", \ 2982 "PFCQueue0Class", \ 2983 "PFCQueue1Class", \ 2984 "PFCQueue2Class", \ 2985 "PFCQueue3Class", \ 2986 "PFCQueue4Class", \ 2987 "PFCQueue5Class", \ 2988 "PFCQueue6Class", \ 2989 "PFCQueue7Class", \ 2990 "ReserveLowL3InterfaceId", \ 2991 "ReserveHighL3InterfaceId", \ 2992 "ReserveLowL3EgressId", \ 2993 "ReserveHighL3EgressId", \ 2994 "ReserveLowVlanPort", \ 2995 "ReserveHighVlanPort", \ 2996 "ReserveLowMplsPort", \ 2997 "ReserveHighMplsPort", \ 2998 "ReserveLowMimPort", \ 2999 "ReserveHighMimPort", \ 3000 "ReserveLowEncap", \ 3001 "ReserveHighEncap", \ 3002 "ReserveLowL2Egress", \ 3003 "ReserveHighL2Egress", \ 3004 "ReserveLowVpn", \ 3005 "ReserveHighVpn", \ 3006 "ReserveLowFailoverId", \ 3007 "ReserveHighFailoverId", \ 3008 "ReserveLowOamEndPointId", \ 3009 "ReserveHighOamEndPointId", \ 3010 "ReserveLowOamGroupId", \ 3011 "ReserveHighOamGroupId", \ 3012 "SnapNonZeroOui", \ 3013 "SynchronousPortClockSource", \ 3014 "SynchronousPortClockSourceBkup", \ 3015 "SynchronousPortClockSourceDivCtrl", \ 3016 "SynchronousPortClockSourceBkupDivCtrl", \ 3017 "L2HitClear", \ 3018 "L2SrcHitClear", \ 3019 "L2DstHitClear", \ 3020 "L3HostHitClear", \ 3021 "L3RouteHitClear", \ 3022 "IpmcSameVlanPruning", \ 3023 "Deprecated492", \ 3024 "Deprecated493", \ 3025 "L2McIdxRetType", \ 3026 "L3McIdxRetType", \ 3027 "Deprecated496", \ 3028 "Deprecated497", \ 3029 "Deprecated498", \ 3030 "Deprecated499", \ 3031 "Deprecated500", \ 3032 "ArpDhcpToCpu", \ 3033 "IgmpMldToCpu", \ 3034 "LinkDownInfoSkip", \ 3035 "Deprecated504", \ 3036 "L2SourceDiscardMoveToCpu", \ 3037 "NivEthertype", \ 3038 "NivPrioDropToCpu", \ 3039 "NivInterfaceMissToCpu", \ 3040 "NivRpfFailToCpu", \ 3041 "NivTagInvalidToCpu", \ 3042 "NivTagDropToCpu", \ 3043 "NivUntagDropToCpu", \ 3044 "EEEPipelineTime", \ 3045 "EEEGlobalCongestionThreshold", \ 3046 "Deprecated515", \ 3047 "Deprecated516", \ 3048 "Deprecated517", \ 3049 "Deprecated518", \ 3050 "Deprecated519", \ 3051 "Deprecated520", \ 3052 "Deprecated521", \ 3053 "RemoteCpuSchanEnable", \ 3054 "RemoteCpuFromCpuEnable", \ 3055 "RemoteCpuToCpuEnable", \ 3056 "RemoteCpuCmicEnable", \ 3057 "RemoteCpuMatchLocalMac", \ 3058 "RemoteCpuMatchVlan", \ 3059 "RemoteCpuVlan", \ 3060 "RemoteCpuTpid", \ 3061 "RemoteCpuSignature", \ 3062 "RemoteCpuForceScheduling", \ 3063 "RemoteCpuToCpuDestPortAllReasons", \ 3064 "RemoteCpuToCpuDestMacAllReasons", \ 3065 "RxRedirectPktReasons", \ 3066 "RxRedirectPktReasonsExtended", \ 3067 "RxRedirectHigigPktReasons", \ 3068 "RxRedirectHigigPktReasonsExtended", \ 3069 "RxRedirectTruncatedPktReasons", \ 3070 "RxRedirectTruncatedPktReasonsExtended", \ 3071 "RxRedirectPktCos", \ 3072 "RxRedirectPktCosExtended", \ 3073 "RemoteCpuLocalMacOui", \ 3074 "RemoteCpuLocalMacNonOui", \ 3075 "RemoteCpuDestMacOui", \ 3076 "RemoteCpuDestMacNonOui", \ 3077 "RemoteCpuEthertype", \ 3078 "RemoteCpuDestPort", \ 3079 "RemoteCpuHigigDestPort", \ 3080 "RemoteCpuTcMappingMacOui", \ 3081 "RemoteCpuTcMappingMacNonOui", \ 3082 "RemoteCpuTcMappingEthertype", \ 3083 "ServiceTpidReplace", \ 3084 "EgressPktAge", \ 3085 "FabricTrunkDynamicSampleRate", \ 3086 "FabricTrunkDynamicEgressBytesExponent", \ 3087 "FabricTrunkDynamicQueuedBytesExponent", \ 3088 "FabricTrunkDynamicEgressBytesDecreaseReset", \ 3089 "FabricTrunkDynamicQueuedBytesDecreaseReset", \ 3090 "FabricTrunkDynamicEgressBytesMinThreshold", \ 3091 "FabricTrunkDynamicEgressBytesMaxThreshold", \ 3092 "FabricTrunkDynamicQueuedBytesMinThreshold", \ 3093 "FabricTrunkDynamicQueuedBytesMaxThreshold", \ 3094 "MacLowPower", \ 3095 "CongestionCntag", \ 3096 "CongestionCntagEthertype", \ 3097 "CongestionCnm", \ 3098 "CongestionCnmEthertype", \ 3099 "CongestionNotificationIdHigh", \ 3100 "CongestionNotificationIdLow", \ 3101 "CongestionNotificationIdQueue", \ 3102 "CongestionUseOuterTpid", \ 3103 "CongestionUseOuterVlan", \ 3104 "CongestionUseOuterPktPri", \ 3105 "CongestionUseOuterCfi", \ 3106 "CongestionUseInnerPktPri", \ 3107 "CongestionUseInnerCfi", \ 3108 "CongestionMissingCntag", \ 3109 "CongestionExcludeReplications", \ 3110 "MiMDefaultSVP", \ 3111 "MiMDefaultSVPValue", \ 3112 "EgressDroppedReportZeroLength", \ 3113 "LoadBalanceHashSelect", \ 3114 "TrillEthertype", \ 3115 "TrillISISEthertype", \ 3116 "TrillISISDestMacOui", \ 3117 "TrillBroadcastDestMacOui", \ 3118 "TrillEndStationDestMacOui", \ 3119 "TrillISISDestMacNonOui", \ 3120 "TrillBroadcastDestMacNonOui", \ 3121 "TrillEndStationDestMacNonOui", \ 3122 "TrillMinTtl", \ 3123 "TrillTtlCheckEnable", \ 3124 "TrillTtlErrToCpu", \ 3125 "TrillHeaderErrToCpu", \ 3126 "TrillMismatchToCpu", \ 3127 "TrillNameMissToCpu", \ 3128 "TrillRpfFailToCpu", \ 3129 "TrillOptionsToCpu", \ 3130 "TrillNameErrDrop", \ 3131 "TrillRpfFailDrop", \ 3132 "TrillHeaderVersionErrDrop", \ 3133 "TrillNameMissDrop", \ 3134 "TrillAdjacencyFailDrop", \ 3135 "TrillHeaderErrDrop", \ 3136 "UdpPktActionEnable", \ 3137 "UdpPktRedirectPbmp", \ 3138 "UdpPktCopyToPbmp", \ 3139 "UdpPktNewTc", \ 3140 "L3TunnelIpV4ModeOnly", \ 3141 "L3SrcHitEnable", \ 3142 "L2DstHitEnable", \ 3143 "WESPProtocolEnable", \ 3144 "WESPProtocol", \ 3145 "Deprecated614", \ 3146 "Ip6CompressEnable", \ 3147 "Ip6CompressDefaultOffset", \ 3148 "StableSaveLongIds", \ 3149 "GportAnyDefaultL2Learn", \ 3150 "GportAnyDefaultL2Move", \ 3151 "IngParseL2TunnelTermDipSipSelect", \ 3152 "IngParseL3L4IPv4", \ 3153 "IngParseL3L4IPv6", \ 3154 "L2LearnMode", \ 3155 "SetWredJitterMask", \ 3156 "SetMplsEntropyLabelTtl", \ 3157 "SetMplsEntropyLabelPri", \ 3158 "SetMplsEntropyLabelOffset", \ 3159 "PonOamFailsafeState", \ 3160 "EquipmentAlarmState", \ 3161 "PowerAlarmState", \ 3162 "BatteryMissingAlarmState", \ 3163 "BatteryFailureAlarmState", \ 3164 "BatteryVoltLowAlarmState", \ 3165 "BatteryVoltLowAlarmReportThreshold", \ 3166 "BatteryVoltLowAlarmClearThreshold", \ 3167 "PhysicalIntrusionAlarmState", \ 3168 "SelfTestFailureAlarmState", \ 3169 "PonIfSwitchAlarmState", \ 3170 "L3IngressInterfaceMapSet", \ 3171 "MplsPWControlWordToCpu", \ 3172 "MplsPWControlTypeToCpu", \ 3173 "MplsPWControlWord", \ 3174 "MplsPWCountPktsAll", \ 3175 "EntropyHashSet0Offset", \ 3176 "EntropyHashSet1Offset", \ 3177 "ArpRequestMyStationIPToCPU", \ 3178 "ArpRequestMyStationIPDrop", \ 3179 "ArpRequestMyStationIPFwd", \ 3180 "L3SIPMoveToCpu", \ 3181 "TrunkHashSrcPortEnable", \ 3182 "TrunkHashOffset", \ 3183 "TrunkHashMPLSLabelBOS", \ 3184 "TrunkHashMPLSPWControlWord", \ 3185 "TrunkHashSeed", \ 3186 "TrunkHashConfig", \ 3187 "TrunkHashPktHeaderCount", \ 3188 "TrunkHashPktHeaderSelect", \ 3189 "ECMPHashSrcPortEnable", \ 3190 "ECMPHashOffset", \ 3191 "ECMPHashSeed", \ 3192 "ECMPHashConfig", \ 3193 "ECMPHashPktHeaderCount", \ 3194 "TrunkDynamicHashOffset", \ 3195 "TrunkDynamicSampleRate", \ 3196 "TrunkDynamicAccountingSelect", \ 3197 "TrunkDynamicEgressBytesExponent", \ 3198 "TrunkDynamicQueuedBytesExponent", \ 3199 "TrunkDynamicEgressBytesDecreaseReset", \ 3200 "TrunkDynamicQueuedBytesDecreaseReset", \ 3201 "TrunkDynamicEgressBytesMinThreshold", \ 3202 "TrunkDynamicEgressBytesMaxThreshold", \ 3203 "TrunkDynamicQueuedBytesMinThreshold", \ 3204 "TrunkDynamicQueuedBytesMaxThreshold", \ 3205 "TrunkDynamicExpectedLoadMinThreshold", \ 3206 "TrunkDynamicExpectedLoadMaxThreshold", \ 3207 "TrunkDynamicImbalanceMinThreshold", \ 3208 "TrunkDynamicImbalanceMaxThreshold", \ 3209 "EcmpDynamicHashOffset", \ 3210 "EcmpDynamicSampleRate", \ 3211 "EcmpDynamicAccountingSelect", \ 3212 "EcmpDynamicEgressBytesExponent", \ 3213 "EcmpDynamicQueuedBytesExponent", \ 3214 "EcmpDynamicEgressBytesDecreaseReset", \ 3215 "EcmpDynamicQueuedBytesDecreaseReset", \ 3216 "EcmpDynamicEgressBytesMinThreshold", \ 3217 "EcmpDynamicEgressBytesMaxThreshold", \ 3218 "EcmpDynamicQueuedBytesMinThreshold", \ 3219 "EcmpDynamicQueuedBytesMaxThreshold", \ 3220 "EcmpDynamicExpectedLoadMinThreshold", \ 3221 "EcmpDynamicExpectedLoadMaxThreshold", \ 3222 "EcmpDynamicImbalanceMinThreshold", \ 3223 "EcmpDynamicImbalanceMaxThreshold", \ 3224 "FailoverDropToCpu", \ 3225 "MplsReservedEntropyLabelToCpu", \ 3226 "L3SrcBindMissToCpu", \ 3227 "MplsGalAlertLabelToCpu", \ 3228 "MplsRalAlertLabelToCpu", \ 3229 "MplsIllegalReservedLabelToCpu", \ 3230 "MplsLookupsExceededToCpu", \ 3231 "MplsUnknownAchTypeToCpu", \ 3232 "MplsUnknownAchVersionToCpu", \ 3233 "TimesyncIngressVersion", \ 3234 "TimesyncEgressVersion", \ 3235 "TimesyncUnknownVersionToCpu", \ 3236 "CongestionCnmToCpu", \ 3237 "bcmSwtichCongestionCnmProxyErrorToCpu", \ 3238 "bcmSwtichCongestionCnmProxyToCpu", \ 3239 "WlanTunnelErrorDrop", \ 3240 "MplsReservedEntropyLabelDrop", \ 3241 "RemoteProtectionTrust", \ 3242 "L2GreProtocolType", \ 3243 "L2GreVpnIdSizeSet", \ 3244 "L2GreVpnIdMissToCpu", \ 3245 "L2GreTunnelMissToCpu", \ 3246 "MultipathCompressBuffer", \ 3247 "MultipathCompress", \ 3248 "BstEnable", \ 3249 "BstTrackingMode", \ 3250 "L3McastL2", \ 3251 "MiMTeBvidLowerRange", \ 3252 "MiMTeBvidUpperRange", \ 3253 "RemoteEncapsulationMode", \ 3254 "FabricTrunkAutoIncludeDisable", \ 3255 "TrunkHashNormalize", \ 3256 "MplsLabelCache", \ 3257 "MplsLabelCommit", \ 3258 "TrillHopCount", \ 3259 "PolicerFairness", \ 3260 "VxlanUdpDestPortSet", \ 3261 "VxlanEntropyEnable", \ 3262 "VxlanVnIdMissToCpu", \ 3263 "VxlanTunnelMissToCpu", \ 3264 "ECMPVxlanHashOffset", \ 3265 "ECMPL2GreHashOffset", \ 3266 "ECMPTrillHashOffset", \ 3267 "ECMPMplsHashOffset", \ 3268 "VirtualPortDynamicHashOffset", \ 3269 "TMDomain", \ 3270 "PortHeaderType", \ 3271 "L2OverflowEvent", \ 3272 "LinkProvClear", \ 3273 "EtagEthertype", \ 3274 "EtagInvalidToCpu", \ 3275 "EtagDropToCpu", \ 3276 "NonEtagDropToCpu", \ 3277 "ExtenderRpfFailToCpu", \ 3278 "ExtenderInterfaceMissToCpu", \ 3279 "PrioDropToCpu", \ 3280 "ExtenderMulticastLowerThreshold", \ 3281 "ExtenderMulticastHigherThreshold", \ 3282 "L3NATEnable", \ 3283 "L3DNATHairpinToCpu", \ 3284 "L3DNATMissToCpu", \ 3285 "L3SNATMissToCpu", \ 3286 "L3NatOtherToCpu", \ 3287 "L3NatRealmCrossingIcmpToCpu", \ 3288 "L3NatFragmentsToCpu", \ 3289 "HashL3DNATPool", \ 3290 "HashL3DNATPoolDual", \ 3291 "McastTrunkHashMin", \ 3292 "McastTrunkHashMax", \ 3293 "Ip4Compress", \ 3294 "EcmpResilientHashOffset", \ 3295 "TrunkResilientHashOffset", \ 3296 "FabricTrunkResilientHashOffset", \ 3297 "ShaperAdjust", \ 3298 "HashVpVlanMemberIngress", \ 3299 "HashVpVlanMemberIngressDual", \ 3300 "HashVpVlanMemberEgress", \ 3301 "HashVpVlanMemberEgressDual", \ 3302 "HashL2Endpoint", \ 3303 "HashL2EndpointDual", \ 3304 "HashEndpointQueueMap", \ 3305 "HashEndpointQueueMapDual", \ 3306 "StackRouteHistoryBitmap1", \ 3307 "StackRouteHistoryBitmap2", \ 3308 "ArpIPcheck", \ 3309 "Deprecated778", \ 3310 "Deprecated779", \ 3311 "L2LearnLimitToCpu", \ 3312 "FlexibleMirrorDestinations", \ 3313 "EcmpMacroFlowHashEnable", \ 3314 "OamVersionCheckDisable", \ 3315 "OamOlpChipEtherType", \ 3316 "OamOlpChipTpid", \ 3317 "OamOlpChipVlan", \ 3318 "Deprecated787", \ 3319 "EgressKeepSystemHeader", \ 3320 "MacroFlowEcmpHashConcatEnable", \ 3321 "MacroFlowLoadBalanceHashConcatEnable", \ 3322 "MacroFlowTrunkHashConcatEnable", \ 3323 "MacroFlowHigigTrunkHashConcatEnable", \ 3324 "MacroFlowECMPHashSeed", \ 3325 "MacroFlowLoadBalanceHashSeed", \ 3326 "MacroFlowTrunkHashSeed", \ 3327 "MacroFlowHigigTrunkHashSeed", \ 3328 "HashTrillPayloadSelect0", \ 3329 "HashTrillPayloadSelect1", \ 3330 "HashTrillTunnelSelect0", \ 3331 "HashTrillTunnelSelect1", \ 3332 "HashIP6AddrCollapseSelect0", \ 3333 "HashIP6AddrCollapseSelect1", \ 3334 "PrependTagEnable", \ 3335 "HashL2VxlanField0", \ 3336 "HashL2VxlanField1", \ 3337 "HashL3VxlanField0", \ 3338 "HashL3VxlanField1", \ 3339 "HashL2L2GreField0", \ 3340 "HashL2L2GreField1", \ 3341 "HashL3L2GreField0", \ 3342 "HashL3L2GreField1", \ 3343 "McastTrunkIngressCommit", \ 3344 "McastTrunkEgressCommit", \ 3345 "MplsShortPipe", \ 3346 "TraverseMode", \ 3347 "TrunkResilientHashConfig", \ 3348 "TrunkResilientHashSeed", \ 3349 "ECMPResilientHashSeed", \ 3350 "ResilientHashAgeTimer", \ 3351 "FieldStageEgressToCpu", \ 3352 "HashOamEgress", \ 3353 "HashOamEgressDual", \ 3354 "ColorL3L2Marking", \ 3355 "WredForAllPkts", \ 3356 "FcoeNpvModeEnable", \ 3357 "FcoeDomainRoutePrefixLength", \ 3358 "FcoeCutThroughEnable", \ 3359 "FcoeSourceBindCheckAction", \ 3360 "FcoeSourceFpmaPrefixCheckAction", \ 3361 "FcoeVftHopCountExpiryToCpu", \ 3362 "FcoeVftHopCountExpiryAction", \ 3363 "FcoeFcEofT1Value", \ 3364 "FcoeFcEofT2Value", \ 3365 "FcoeFcEofA1Value", \ 3366 "FcoeFcEofA2Value", \ 3367 "FcoeFcEofN1Value", \ 3368 "FcoeFcEofN2Value", \ 3369 "FcoeFcEofNI1Value", \ 3370 "FcoeFcEofNI2Value", \ 3371 "FcoeZoneCheckFailToCpu", \ 3372 "FcoeZoneCheckMissDrop", \ 3373 "HashUseL2GreTunnelGreKey0", \ 3374 "HashUseL2GreTunnelGreKey1", \ 3375 "HashL2GrePayloadSelect0", \ 3376 "HashL2GrePayloadSelect1", \ 3377 "HashL2GreNetworkPortPayloadDisable0", \ 3378 "HashL2GreNetworkPortPayloadDisable1", \ 3379 "SystemReservedVlan", \ 3380 "ProxySrcKnockout", \ 3381 "NetworkGroupDepth", \ 3382 "UnknownSubportPktTagToCpu", \ 3383 "L3RoutedLearn", \ 3384 "SubportPktTagEthertype", \ 3385 "SubportPktTagToCpu", \ 3386 "NonSubportPktTagToCpu", \ 3387 "HashL2GreKeyMask0", \ 3388 "HashL2GreKeyMask1", \ 3389 "L3Max128BV6Entries", \ 3390 "EEEQueueThresholdProfile0", \ 3391 "EEEQueueThresholdProfile1", \ 3392 "EEEQueueThresholdProfile2", \ 3393 "EEEQueueThresholdProfile3", \ 3394 "EEEPacketLatencyProfile0", \ 3395 "EEEPacketLatencyProfile1", \ 3396 "EEEPacketLatencyProfile2", \ 3397 "EEEPacketLatencyProfile3", \ 3398 "DosAttackV6MinFragEnable", \ 3399 "DosAttackV6MinFragSize", \ 3400 "MirrorUnicastCosq", \ 3401 "MirrorMulticastCosq", \ 3402 "McQueueSchedMode", \ 3403 "Reserved872", \ 3404 "CacheTableUpdateAll", \ 3405 "HashNivSrcIfEtagSvidSelect0", \ 3406 "HashNivSrcIfEtagSvidSelect1", \ 3407 "HashNivDstIfEtagVidSelect0", \ 3408 "HashNivDstIfEtagVidSelect1", \ 3409 "BstSnapshotEnable", \ 3410 "SymmetricHashControl", \ 3411 "L2ExtLearn", \ 3412 "ReserveHighTunnelId", \ 3413 "ReserveLowTunnelId", \ 3414 "HigigCongestionClassEnable", \ 3415 "EcnNonIpResponsive", \ 3416 "EcnNonIpIntCongestionNotification", \ 3417 "MimPayloadTpidEnable", \ 3418 "HashMimUseTunnelHeader0", \ 3419 "HashMimUseTunnelHeader1", \ 3420 "MplsPipeTunnelLabelExpSet", \ 3421 "ControlPortConfigInstall", \ 3422 "LoopbackMtuSize", \ 3423 "HashVxlanPayloadSelect0", \ 3424 "HashVxlanPayloadSelect1", \ 3425 "CongestionCnmSrcMacNonOui", \ 3426 "CongestionCnmSrcMacOui", \ 3427 "HashL2MPLSPayloadSelect0", \ 3428 "HashL2MPLSPayloadSelect1", \ 3429 "HashL3L2MPLSField0", \ 3430 "HashL3L2MPLSField1", \ 3431 "HashIPSecSelect0", \ 3432 "HashIPSecSelect1", \ 3433 "ECMPLevel1RandomSeed", \ 3434 "ECMPLevel2RandomSeed", \ 3435 "TimesyncEgressTimestampingMode", \ 3436 "SubportCoEEtherType", \ 3437 "SubportEgressTpid", \ 3438 "SubportEgressWideTpid", \ 3439 "IpmcSameVlanPruningOverride", \ 3440 "SynchronousPortClockSourceValid", \ 3441 "SynchronousPortClockSourceBkupValid", \ 3442 "RemoteProtectionEnable", \ 3443 "MirrorExclusive", \ 3444 "EcnDelayMeasurementThreshold", \ 3445 "MacroFlowHashUseMSB", \ 3446 "MplsDefaultTtlCopy", \ 3447 "OamStackingSupport", \ 3448 "HashOam", \ 3449 "HashOamDual", \ 3450 "HashOamLeastFull", \ 3451 "HashDualMoveDepthOam", \ 3452 "PortVlanTranslationAdvanced", \ 3453 "ForwardingLayerMtuFilter", \ 3454 "LinkLayerMtuFilter", \ 3455 "ForwardingLayerMtuSize", \ 3456 "LinkLayerMtuSize", \ 3457 "MimBvidInsertionControl", \ 3458 "L2CpuDeleteEvent", \ 3459 "L2LearnEvent", \ 3460 "L2CpuAddEvent", \ 3461 "L2AgingEvent", \ 3462 "UdfHashEnable", \ 3463 "OlpMatchRule", \ 3464 "MplsExtendedLabelTtl", \ 3465 "MacroFlowHashOverlayMaxOffset", \ 3466 "MacroFlowHashOverlayStrideOffset", \ 3467 "MacroFlowHashOverlayMinOffset", \ 3468 "MacroFlowEcmpHashOverlayConcatEnable", \ 3469 "MacroFlowECMPOverlayHashSeed", \ 3470 "ECMPOverlayHashOffset", \ 3471 "MacroFlowEcmpUnderlayHashConcatEnable", \ 3472 "MacroFlowECMPUnderlayHashSeed", \ 3473 "ECMPUnderlayVxlanHashOffset", \ 3474 "ECMPUnderlayL2GreHashOffset", \ 3475 "ECMPUnderlayTrillHashOffset", \ 3476 "VirtualPortUnderlayDynamicHashOffset", \ 3477 "ECMPUnderlayHashSet0Offset", \ 3478 "SampleFlexRandomSeed", \ 3479 "NonUcVlanShapingEnable", \ 3480 "CustomHeaderEncapPriorityOffset", \ 3481 "IngCapwapEnable", \ 3482 "CapwapDataUdpDstPort", \ 3483 "CountCapwapPayloadBytesOnly", \ 3484 "OamOlpStationMacOui", \ 3485 "OamOlpStationMacNonOui", \ 3486 "Reserved955", \ 3487 "PFCDeadlockDetectionTimeInterval", \ 3488 "PFCDeadlockRecoveryAction", \ 3489 "RangeCheckersAPIType", \ 3490 "Reserved958", \ 3491 "EcmpGroupMemberMode", \ 3492 "MimlEncapInnerEthertype", \ 3493 "HashMiMPayloadSelect0", \ 3494 "HashMiMPayloadSelect1", \ 3495 "HashL3MiMField0", \ 3496 "HashL3MiMField1", \ 3497 "HashMPLSUseLabelStack", \ 3498 "HashMPLSExcludeGAL", \ 3499 "RedirectBufferThresholdPriorityLow", \ 3500 "RedirectBufferThresholdPriorityMedium", \ 3501 "RedirectBufferThresholdPriorityHigh", \ 3502 "FlexIP6ExtHdr", \ 3503 "FlexIP6ExtHdrEgress", \ 3504 "HashUseFlowSelMplsEcmp", \ 3505 "V6L3SrcDstLocalLinkDropCancel", \ 3506 "L3ClassIdForL2Enable", \ 3507 "DropSobmhOnLinkDown", \ 3508 "ResilientHashCRC0ByteMask", \ 3509 "ResilientHashCRC1ByteMask", \ 3510 "ResilientHashCRC2ByteMask", \ 3511 "ResilientHashCRC3ByteMask", \ 3512 "ResilientHashCRCSeed", \ 3513 "ECMPResilientHashKey0Shift", \ 3514 "ECMPResilientHashKey1Shift", \ 3515 "VpnDetachPorts", \ 3516 "ClassL3L2Marking", \ 3517 "L3L2MarkingMode", \ 3518 "STPDisabledFieldBypass", \ 3519 "HashSctpL4Port", \ 3520 "Reserved988", \ 3521 "GlobalTpidEnable", \ 3522 "ECMPResilientHashCombine", \ 3523 "HashSetTflowMode", \ 3524 "Downgrade", \ 3525 "HashELISearch", \ 3526 "CrashRecoveryMode", \ 3527 "CrCommit", \ 3528 "CrLastTransactionStatus", \ 3529 "CrCouldNotRecover", \ 3530 "HWL2Freeze", \ 3531 "HashIP6NextHeaderUseExtensionHeader0", \ 3532 "HashIP6NextHeaderUseExtensionHeader1", \ 3533 "HashUseFlowSelLbidNonUnicast", \ 3534 "HashUseFlowSelLbidUnicast", \ 3535 "HashUseFlowSelHigigTrunkNonUnicast", \ 3536 "HashUseFlowSelHigigTrunkUnicast", \ 3537 "HashUseFlowSelHigigTrunkFailover", \ 3538 "HashUseFlowSelTrunkNonUnicast", \ 3539 "HashUseFlowSelEntropy", \ 3540 "HashUseFlowSelVxlanEcmp", \ 3541 "DefaultNativeOutVlanPort", \ 3542 "DefaultEgressVlanEditClassId", \ 3543 "GtpDetectEnable", \ 3544 "GtpHdrFirstByte", \ 3545 "GtpHdrFirstByteMask", \ 3546 "HashGtpTeidEnable0", \ 3547 "HashGtpTeidEnable1", \ 3548 "EccSingleBitErrorEvent", \ 3549 "HeaderCompensationPerPacket", \ 3550 "3rdTagStampMode", \ 3551 "MacroFlowHigigTrunkHashMinOffset", \ 3552 "MacroFlowHigigTrunkHashMaxOffset", \ 3553 "MacroFlowHigigTrunkHashStrideOffset", \ 3554 "MacroFlowTrunkHashMinOffset", \ 3555 "MacroFlowTrunkHashMaxOffset", \ 3556 "MacroFlowTrunkHashStrideOffset", \ 3557 "MacroFlowLoadBalanceEntropyHashMinOffset", \ 3558 "MacroFlowLoadBalanceEntropyHashMaxOffset", \ 3559 "MacroFlowLoadBalanceEntropyHashStrideOffset", \ 3560 "CrTransactionStart", \ 3561 "UdpTunnelIPv4DstPort", \ 3562 "UdpTunnelIPv6DstPort", \ 3563 "UdpTunnelMplsDstPort", \ 3564 "ECMPSecondHierHashOffset", \ 3565 "ECMPSecondHierHashConfig", \ 3566 "IngressRateLimitMpps", \ 3567 "MirrorSnoopForwardOriginalWhenDropped", \ 3568 "FabricTrunkDynamicPhysicalQueuedBytesExponent", \ 3569 "FabricTrunkDynamicPhysicalQueuedBytesDecreaseReset", \ 3570 "FabricTrunkDynamicPhysicalQueuedBytesMinThreshold", \ 3571 "FabricTrunkDynamicPhysicalQueuedBytesMaxThreshold", \ 3572 "TrunkDynamicPhysicalQueuedBytesExponent", \ 3573 "TrunkDynamicPhysicalQueuedBytesDecreaseReset", \ 3574 "TrunkDynamicPhysicalQueuedBytesMinThreshold", \ 3575 "TrunkDynamicPhysicalQueuedBytesMaxThreshold", \ 3576 "EcmpDynamicPhysicalQueuedBytesExponent", \ 3577 "EcmpDynamicPhysicalQueuedBytesDecreaseReset", \ 3578 "EcmpDynamicPhysicalQueuedBytesMinThreshold", \ 3579 "EcmpDynamicPhysicalQueuedBytesMaxThreshold", \ 3580 "FabricTrunkDynamicRandomSeed", \ 3581 "TrunkDynamicRandomSeed", \ 3582 "EcmpDynamicRandomSeed", \ 3583 "HashMPLSExcludeReservedLabel", \ 3584 "MplsNonIpPayloadDefaultEcn", \ 3585 "ECMPHashBitCountSelect", \ 3586 "EcnIpPayloadResponsive", \ 3587 "HashMultiMoveDepthExactMatch", \ 3588 "CrAbort", \ 3589 "LIUdpSrcPortSet", \ 3590 "Roce1Ethertype", \ 3591 "Roce2UdpDstPort", \ 3592 "HashUseFlowSelRoce2Ecmp", \ 3593 "HashSelectControlExtended", \ 3594 "HashField0Roce1FlowLabel", \ 3595 "HashField1Roce1FlowLabel", \ 3596 "HashField0Roce2FlowLabel", \ 3597 "HashField1Roce2FlowLabel", \ 3598 "HashRoce1Field0", \ 3599 "HashRoce1Field1", \ 3600 "HashRoce2IP4Field0", \ 3601 "HashRoce2IP4Field1", \ 3602 "HashRoce2IP6Field0", \ 3603 "HashRoce2IP6Field1", \ 3604 "EcmpRoce2HashOffset", \ 3605 "VxlanUdpDestPortSet1", \ 3606 "VxlanEntropyEnableIP6", \ 3607 "E2EFCReceiveDestMacOui", \ 3608 "E2EFCReceiveDestMacNonOui", \ 3609 "E2EFCReceiveEtherType", \ 3610 "E2EFCReceiveOpcode", \ 3611 "HashUseFlowSelEcmpOverlay", \ 3612 "MplsSpeculativeNibbleMap", \ 3613 "IpmcSameFwdDmnThreshold", \ 3614 "HashUseFlowSelVpTrunk", \ 3615 "HashUseFlowSelTrunkResilientHash", \ 3616 "MeterMef10dot3Enable", \ 3617 "HashMultiMoveDepthVlanTranslate1", \ 3618 "HashMultiMoveDepthVlanTranslate2", \ 3619 "HashMultiMoveDepthEgressVlanTranslate1", \ 3620 "HashMultiMoveDepthEgressVlanTranslate2", \ 3621 "IntL4DestPort1", \ 3622 "IntL4DestPort2", \ 3623 "IntProbeMarker1", \ 3624 "IntProbeMarker2", \ 3625 "IntVersion", \ 3626 "IntRequestVectorValue", \ 3627 "IntRequestVectorMask", \ 3628 "IntSwitchId", \ 3629 "IntEgressTimeDelta", \ 3630 "IntHopLimitCpuEnable", \ 3631 "IntTurnAroundCpuEnable", \ 3632 "IntMaxPayloadLength", \ 3633 "ForwardLookupNotFoundTrap", \ 3634 "EtherTypeCustom1", \ 3635 "EtherTypeCustom2", \ 3636 "L3LpmHitbitEnable", \ 3637 "MplsCtrlPktToCpu", \ 3638 "InvalidTpidToCpu", \ 3639 "FlowSelectMissToCpu", \ 3640 "L3HdrMismatchToCpu", \ 3641 "MeterTrafficClass", \ 3642 "RoeEthertype", \ 3643 "RoeCustomEthertype", \ 3644 "RoeUdpDestPort", \ 3645 "RoeCustomUdpDestPort", \ 3646 "OamOlpHeaderAdd", \ 3647 "L2FreezeMode", \ 3648 "L3McRpfDefaultRoute", \ 3649 "IngParseL2TunnelTermArp", \ 3650 "IngParseL2TunnelTermRarp", \ 3651 "NoneEthernetPacketMeterPtr", \ 3652 "EtherDscpRemark", \ 3653 "DosAttackTcpFirstOption", \ 3654 "DosAttackInnerTcpFirstOption", \ 3655 "DosAttackTcpFlagsMask", \ 3656 "DosAttackInnerTcpFlagsMask", \ 3657 "DosAttackTcpFlagsSR", \ 3658 "DosAttackTcpFlagsZero", \ 3659 "DosAttackTcpFlagsSynOption", \ 3660 "DosAttackTcpFlagsSynFirstFrag", \ 3661 "DosAttackTcpFlagsFinNoAck", \ 3662 "DosAttackTcpFlagsRstNoAck", \ 3663 "DosAttackTcpFlagsNoSFRA", \ 3664 "DosAttackTcpFlagsUrgNoUrgPtr", \ 3665 "DosAttackTcpFlagsNoUrgWithUrgPtr", \ 3666 "DosAttackTcpDstPortZero", \ 3667 "DosAttackTcpSrcPortZero", \ 3668 "DosAttackTcpFlagsResvdNonZero", \ 3669 "DosAttackTcpV4DstBcast", \ 3670 "DosAttackTcpFlagsAck", \ 3671 "MirrorPsampFormat2Epoch", \ 3672 "L2StationExtendedMode", \ 3673 "HashSeed", \ 3674 "LayerRecordModeSelection", \ 3675 "ECMPThirdHierHashConfig", \ 3676 "NwkHashConfig", \ 3677 "MplsStack0HashSeed", \ 3678 "MplsStack1HashSeed", \ 3679 "ParserHashSeed", \ 3680 "MplsSpeculativeParse", \ 3681 "ExternalTcamSync", \ 3682 "ArpMyIp1", \ 3683 "ArpMyIp2", \ 3684 "ArpIgnoreDa", \ 3685 "NdpMyIp1", \ 3686 "NdpMyIp2", \ 3687 "IcmpIgnoreDa", \ 3688 "VxlanEvpnEnable", \ 3689 "HashDualMoveDepthIngVpVlanMember", \ 3690 "HashDualMoveDepthEgrVpVlanMember", \ 3691 "GpeEntropyEnable", \ 3692 "GpeUdpDestPortSet", \ 3693 "GeneveEntropyEnable", \ 3694 "GeneveUdpDestPortSet", \ 3695 "BfdRxDisable", \ 3696 "DescCommit", \ 3697 "DlbMonitorIngressRandomSeed", \ 3698 "CounterAdjustEgressTm", \ 3699 "CounterAdjustEgressPp", \ 3700 "TagPcpDeiSrc", \ 3701 "BfdMyDipDestination", \ 3702 "EndToEndLatencyPerDestinationPort", \ 3703 "ExternalTcamInit", \ 3704 "HashMultiMoveDepthL3Tunnel", \ 3705 "GbpEtherType", \ 3706 "VxlanUdpSrcPortSelect", \ 3707 "GpeUdpSrcPortSelect", \ 3708 "GeneveUdpSrcPortSelect", \ 3709 "PreserveOtagBeforeItag", \ 3710 "MirrorCpuCosq", \ 3711 "IntProbeMarkerEnable", \ 3712 "IntL4DestPortEnable", \ 3713 "FtmhEtherType", \ 3714 "GbpSidDidMcastLookupMissClassid", \ 3715 "CustomOuterEthertype1", \ 3716 "CustomOuterEthertype2", \ 3717 "CustomInnerEthertype1", \ 3718 "CustomInnerEthertype2", \ 3719 "CustomOuterProtocolId1", \ 3720 "CustomOuterProtocolId2", \ 3721 "CustomInnerProtocolId1", \ 3722 "CustomInnerProtocolId2", \ 3723 "CustomOuterUdpDstPort1", \ 3724 "CustomOuterUdpDstPort2", \ 3725 "CustomInnerUdpDstPort1", \ 3726 "CustomInnerUdpDstPort2", \ 3727 "ReservedEgressNextHop", \ 3728 "ConcatAppHeader", \ 3729 "VxlanGpeUdpDestPortSet", \ 3730 "SystemPortOverride", \ 3731 "SRV6EgressPSPEnable", \ 3732 "SRV6ReducedModeEnable", \ 3733 "HashL4Field", \ 3734 "L3UcLargeNATEnable", \ 3735 "L3UcLargeDNAT", \ 3736 "L3UcLargeSNAT", \ 3737 "L3UcLargeDNATSNAT", \ 3738 "L3UcLargeDNAPT", \ 3739 "L3UcLargeSNAPT", \ 3740 "L3UcLargeDNAPTSNAPT", \ 3741 "L3McLargeNATEnable", \ 3742 "L3McLargeNATRewriteType0", \ 3743 "L3McLargeNATRewriteType1", \ 3744 "L3McLargeNATRewriteType2", \ 3745 "L2ChangeFieldsEnable", \ 3746 "PcieHotSwapDisable", \ 3747 "IPv4DoNotVerifyIncomingChecksum" 3748 3749 /* ecmp hash bit count enums */ 3750 typedef enum bcm_switch_ecmp_hash_bit_count_e { 3751 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_10 = 0, 3752 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_11 = 1, 3753 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_12 = 2, 3754 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_13 = 3, 3755 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_14 = 4, 3756 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_15 = 5, 3757 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_16 = 6 3758 } bcm_switch_ecmp_hash_bit_count_t; 3759 3760 /* 3761 * Values passed for setting switch control 3762 * bcmSwitchPFCDeadlockRecoveryAction. 3763 */ 3764 typedef enum bcm_switch_pfc_deadlock_action_e { 3765 bcmSwitchPFCDeadlockActionTransmit = 0, /* Transmit packets in Recovery state 3766 (ignoring the PFC state)-Default 3767 Action */ 3768 bcmSwitchPFCDeadlockActionDrop = 1, /* Drop packets in Recovery state. */ 3769 bcmSwitchPFCDeadlockActionMaxCount = 2 /* Maximum PFC Deadlock Recovery action 3770 type count */ 3771 } bcm_switch_pfc_deadlock_action_t; 3772 3773 /* 3774 * Values passed for setting switch control 3775 * bcmSwitchPFCDeadlockDetectionTimeInterval.. 3776 */ 3777 typedef enum bcm_switch_pfc_deadlock_detection_interval_e { 3778 bcmSwitchPFCDeadlockDetectionInterval100MiliSecond = 0, /* 100 ms interval for Detection 3779 interval (default) */ 3780 bcmSwitchPFCDeadlockDetectionInterval10MiliSecond = 1, /* 10ms interval for Detection interval */ 3781 bcmSwitchPFCDeadlockDetectionIntervalCount = 2 /* Maximum PFC deadlock detecion type 3782 count */ 3783 } bcm_switch_pfc_deadlock_detection_interval_t; 3784 3785 /* Values passed for setting switch control bcmSwitchOamStackingSupport */ 3786 typedef enum bcm_switch_oam_stacking_support_e { 3787 bcmSwitchOamStackingSupportNone = 0, /* Do not carry OAM endpoint context in 3788 place of VC label in stacking header */ 3789 bcmSwitchOamStackingSupportOamContextInStackingHeader = 1 /* Carry OAM endpoint context in place 3790 of VC label in stacking header */ 3791 } bcm_switch_oam_stacking_support_t; 3792 3793 /* Large Scale UC NAT controls. */ 3794 #define BCM_L3UC_NAT_NONE 0 /* Disable the specified NAT update. */ 3795 #define BCM_L3UC_NAT_TCP 1 /* Enable Unicast NAT updates for TCP 3796 packets only. */ 3797 #define BCM_L3UC_NAT_UDP 2 /* Enable Unicast NAT updates for UDP 3798 packets only. */ 3799 #define BCM_L3UC_NAT 3 /* Enable Unicast NAT updates for any 3800 IPV4 packet. */ 3801 3802 /* Large Scale MC NAT controls. */ 3803 #define BCM_L3MC_NAT_NONE 0 /* Disable the specified 3804 NAT update. */ 3805 #define BCM_L3MC_DNAT 1 /* Enable Multicast DNAT 3806 updates. */ 3807 #define BCM_L3MC_DNAT_WITH_MACDA_UPDATE 2 /* Enable Multicast DNAT 3808 updates and MACDA 3809 update. */ 3810 #define BCM_L3MC_SNAT 3 /* Enable Multicast SNAT 3811 updates. */ 3812 #define BCM_L3MC_DNAT_SNAT 4 /* Enable both Multicast 3813 DNAT and SNAT updates. */ 3814 #define BCM_L3MC_DNAT_SNAT_WITH_MACDA_UPDATE 5 /* Enable both Multicast 3815 DNAT and SNAT updates 3816 and MACDA update. */ 3817 #define BCM_L3MC_DNAPT 6 /* Enable Multicast DNAPT 3818 updates. */ 3819 #define BCM_L3MC_DNAPT_WITH_MACDA_UPDATE 7 /* Enable Multicast DNAPT 3820 updates and MACDA 3821 update. */ 3822 #define BCM_L3MC_SNAPT 8 /* Enable Multicast SNAPT 3823 updates. */ 3824 #define BCM_L3MC_DNAPT_SNAPT 9 /* Enable both Multicast 3825 DNAPT and SNAPT 3826 updates. */ 3827 #define BCM_L3MC_DNAPT_SNAPT_WITH_MACDA_UPDATE 10 /* Enable both Multicast 3828 DNAPT and SNAPT 3829 updates and MACDA 3830 update. */ 3831 3832 #define BCM_SWITCH_CONTROL_L3_LEARN_NONE 0 /* Disable L2 learning 3833 for all routed 3834 packets. */ 3835 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV4_UC 0x1 /* Enable L2 learning for 3836 IPv4 Unicast packets. */ 3837 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV4_MC 0x2 /* Enable L2 learning for 3838 IPv4 Multicast 3839 packets. */ 3840 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV6_UC 0x4 /* Enable L2 learning for 3841 IPv6 Unicast packets. */ 3842 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV6_MC 0x8 /* Enable L2 learning for 3843 IPv6 Multicast 3844 packets. */ 3845 #define BCM_SWITCH_CONTROL_L3_LEARN_MPLS 0x10 /* Enable L2 learning for 3846 MPLS packets. */ 3847 #define BCM_SWITCH_CONTROL_L3_LEARN_ALL 0xffffffff /* Enable L2 learning for 3848 all routed packets. */ 3849 3850 /* Module types for bcmSwitchModuleType. */ 3851 #define BCM_SWITCH_MODULE_UNKNOWN 0 3852 #define BCM_SWITCH_MODULE_XGS1 1 3853 #define BCM_SWITCH_MODULE_XGS2 2 3854 #define BCM_SWITCH_MODULE_XGS3 3 3855 3856 /* Unicast RPF lookup modes. */ 3857 #define BCM_SWITCH_URPF_DISABLE (0) 3858 #define BCM_SWITCH_URPF_LOOSE (1) 3859 #define BCM_SWITCH_URPF_STRICT (2) 3860 3861 /* Port header type. */ 3862 #define BCM_SWITCH_PORT_HEADER_TYPE_NONE (0) 3863 #define BCM_SWITCH_PORT_HEADER_TYPE_ETH (1) 3864 #define BCM_SWITCH_PORT_HEADER_TYPE_RAW (2) 3865 #define BCM_SWITCH_PORT_HEADER_TYPE_TM (3) 3866 #define BCM_SWITCH_PORT_HEADER_TYPE_PROG (4) 3867 #define BCM_SWITCH_PORT_HEADER_TYPE_CPU (5) 3868 #define BCM_SWITCH_PORT_HEADER_TYPE_STACKING (6) 3869 #define BCM_SWITCH_PORT_HEADER_TYPE_TDM (7) 3870 #define BCM_SWITCH_PORT_HEADER_TYPE_TDM_RAW (8) 3871 #define BCM_SWITCH_PORT_HEADER_TYPE_MPLS_RAW (9) 3872 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_PP (10) 3873 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_SSP (11) 3874 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_ENCAP (12) 3875 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_SSP_ENCAP (13) 3876 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2 (14) 3877 #define BCM_SWITCH_PORT_HEADER_TYPE_RCH_0 (15) 3878 #define BCM_SWITCH_PORT_HEADER_TYPE_RCH_1 (16) 3879 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_PP_JR1_MODE (17) 3880 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_JR1_MODE (18) 3881 #define BCM_SWITCH_PORT_HEADER_TYPE_ENCAP_EXTERNAL_CPU (19) 3882 3883 /* ECMP group mode. */ 3884 #define BCM_SWITCH_ECMP_GROUP_MEMBER_MODE_256 (0) 3885 #define BCM_SWITCH_ECMP_GROUP_MEMBER_MODE_1K (1) 3886 3887 /* Argument formatting macro for bcmSwitchModuleType. */ 3888 #define BCM_SWITCH_CONTROL_MOD_TYPE_PACK(modid, mod_type) \ 3889 (((modid) << 16) | (mod_type & 0xFFFF)) 3890 #define BCM_SWITCH_CONTROL_MODID_UNPACK(arg) \ 3891 (((arg) >> 16) & 0xFFFF) 3892 #define BCM_SWITCH_CONTROL_MODTYPE_UNPACK(arg) \ 3893 (((arg) >> 0) & 0xFFFF) 3894 3895 /* Stable locations for bcmSwitchStableSelect */ 3896 #define BCM_SWITCH_STABLE_NONE (_SHR_SWITCH_STABLE_NONE) 3897 #define BCM_SWITCH_STABLE_DEVICE_NEXT_HOP (_SHR_SWITCH_STABLE_DEVICE_NEXT_HOP) 3898 #define BCM_SWITCH_STABLE_DEVICE_EXT_MEM (_SHR_SWITCH_STABLE_DEVICE_EXT_MEM) 3899 #define BCM_SWITCH_STABLE_APPLICATION (_SHR_SWITCH_STABLE_APPLICATION) 3900 #define BCM_SWITCH_STABLE_SHARED_MEM (_SHR_SWITCH_STABLE_SHARED_MEM) 3901 3902 /* Flags for automatic link provision clear. */ 3903 #define BCM_SWITCH_LINK_PROV_AUTO_CLEAR 0x00000001 /* Clear link provision 3904 automatically. */ 3905 #define BCM_SWITCH_LINK_PROV_ALLOW_LIST_EXCLUDE 0x00000002 /* Retain allow list when 3906 clearing link 3907 provision. */ 3908 #define BCM_SWITCH_LINK_PROV_BLOCK_LIST_EXCLUDE 0x00000004 /* Retain block list when 3909 clearing link 3910 provision. */ 3911 3912 #ifndef BCM_HIDE_DISPATCHABLE 3913 3914 /* Configure port-specific and device-wide operating modes. */ 3915 extern int bcm_switch_control_get( 3916 int unit, 3917 bcm_switch_control_t type, 3918 int *arg); 3919 3920 /* Configure port-specific and device-wide operating modes. */ 3921 extern int bcm_switch_control_set( 3922 int unit, 3923 bcm_switch_control_t type, 3924 int arg); 3925 3926 /* Configure port-specific and device-wide operating modes. */ 3927 extern int bcm_switch_control_port_get( 3928 int unit, 3929 bcm_port_t port, 3930 bcm_switch_control_t type, 3931 int *arg); 3932 3933 /* Configure port-specific and device-wide operating modes. */ 3934 extern int bcm_switch_control_port_set( 3935 int unit, 3936 bcm_port_t port, 3937 bcm_switch_control_t type, 3938 int arg); 3939 3940 /* Configure encapsulation priority for the internal priority queue. */ 3941 extern int bcm_switch_rcpu_encap_priority_map_set( 3942 int unit, 3943 uint32 flags, 3944 int internal_cpu_pri, 3945 int encap_pri); 3946 3947 /* Retrieve encapsulation priority of the internal priority queue. */ 3948 extern int bcm_switch_rcpu_encap_priority_map_get( 3949 int unit, 3950 uint32 flags, 3951 int internal_cpu_pri, 3952 int *encap_pri); 3953 3954 /* Configure decapsulation priority for the internal priority queue. */ 3955 extern int bcm_switch_rcpu_decap_priority_map_set( 3956 int unit, 3957 int decap_pri, 3958 int internal_cpu_pri); 3959 3960 /* Retrieve decapsulation priority of the internal priority queue. */ 3961 extern int bcm_switch_rcpu_decap_priority_map_get( 3962 int unit, 3963 int decap_pri, 3964 int *internal_cpu_pri); 3965 3966 #endif /* BCM_HIDE_DISPATCHABLE */ 3967 3968 /* Hash tables. */ 3969 typedef enum bcm_switch_hash_table_e { 3970 bcmHashTableL2 = 0, /* L2 hash table. */ 3971 bcmHashTableL3 = 1, /* L3 hash table. */ 3972 bcmHashTableVlanTranslate = 2, /* VLAN Translate hash table. */ 3973 bcmHashTableEgressVlanTranslate = 3, /* Egress VLAN Translate hash table. */ 3974 bcmHashTableMPLS = 4, /* MPLS hash table. */ 3975 bcmHashTableFlowtrackerEntry = 5, /* Flowtracker Entry hash table. */ 3976 bcmHashTable__Num = 6 3977 } bcm_switch_hash_table_t; 3978 3979 /* L2 address learning modes. */ 3980 typedef enum bcm_switch_l2_location_e { 3981 bcmSwitchL2LocInternal = 0, /* L2 addresses will be learnt on Internal TCAM */ 3982 bcmSwitchL2LocExternal = 1, /* L2 addresses will be learnt on External TCAM */ 3983 bcmSwitchL2LocIntAndExt = 2 /* L2 addresses are learnt either on internal or 3984 external Tcam */ 3985 } bcm_switch_l2_location_t; 3986 3987 /* Switch table update mode tables. */ 3988 typedef enum bcm_switch_table_update_mode_e { 3989 bcmSwitchTableUpdateNormal = 0, /* Calling traverse API e.g. 3990 l2_replace() will act in normal mode, 3991 i.e. set match rule and action and 3992 perform the replace */ 3993 bcmSwitchTableUpdateRuleAdd = 1, /* Calling traverse API e.g. 3994 l2_replace() will add rule without 3995 perform the replace */ 3996 bcmSwitchTableUpdateRuleClear = 2, /* clear all rules e.g. l2_replace() 3997 Calling traverse API */ 3998 bcmSwitchTableUpdateRuleCommit = 3 /* Run traverse API e.g. l2_replace() 3999 with configured rules */ 4000 } bcm_switch_table_update_mode_t; 4001 4002 /* Opaque handle to a hash entry. */ 4003 typedef int bcm_hash_entry_t; 4004 4005 /* Use config structure to setup the offset and mask. */ 4006 #define BCM_SWITCH_HASH_USE_CONFIG (~0U) 4007 4008 /* mask length in config struct. */ 4009 #define BCM_SWITCH_HASH_ENTRY_CONFIG_MASK_LENGTH 4 4010 4011 /* field selection in flexible hash RAM table */ 4012 typedef enum bcm_switch_hash_field_e { 4013 bcmSwitchFlexHashField0 = 0, /* field 0 in flexible hash RAM table */ 4014 bcmSwitchFlexHashField1 = 1, /* field 1 in flexible hash RAM table */ 4015 bcmSwitchFlexHashField2 = 2, /* field 2 in flexible hash RAM table, 4016 fed to RTAG7 bin 4, support only UDF 4017 type field */ 4018 bcmSwitchFlexHashField3 = 3, /* field 3 in flexible hash RAM table, 4019 fed to RTAG7 bin 5, support only UDF 4020 type field */ 4021 bcmSwitchFlexHashField4 = 4, /* field 4 in flexible hash RAM table, 4022 fed to RTAG7 bin 6, support only UDF 4023 type field */ 4024 bcmSwitchFlexHashField5 = 5, /* field 5 in flexible hash RAM table, 4025 fed to RTAG7 bin 7, support only UDF 4026 type field */ 4027 bcmSwitchFlexHashField6 = 6, /* field 6 in flexible hash RAM table, 4028 fed to RTAG7 bin 8, support only UDF 4029 type field */ 4030 bcmSwitchFlexHashField7 = 7, /* field 7 in flexible hash RAM table, 4031 fed to RTAG7 bin 9, support only UDF 4032 type field */ 4033 bcmSwitchFlexHashField8 = 8, /* field 8 in flexible hash RAM table, 4034 fed to RTAG7 bin 10, support only UDF 4035 type field */ 4036 bcmSwitchFlexHashField9 = 9, /* field 9 in flexible hash RAM table, 4037 fed to RTAG7 bin 11, support only UDF 4038 type field */ 4039 bcmSwitchFlexHashField10 = 10, /* field 10 in flexible hash RAM table, 4040 fed to RTAG7 bin 12, support only UDF 4041 type field */ 4042 bcmSwitchFlexHashField11 = 11, /* field 11 in flexible hash RAM table, 4043 fed to RTAG7 bin 13, support only UDF 4044 type field */ 4045 bcmSwitchFlexHashField12 = 12, /* field 12 in flexible hash RAM table, 4046 fed to RTAG7 bin 1, support only UDF 4047 type field */ 4048 bcmSwitchFlexHashFieldCount = 13 /* field count in flexible hash RAM 4049 table */ 4050 } bcm_switch_hash_field_t; 4051 4052 /* Flags for flex hash entry configration. */ 4053 #define BCM_SWITCH_HASH_FIELD_TYPE_UDF 1 4054 4055 /* flexible hash entry configuration struct. */ 4056 typedef struct bcm_switch_hash_entry_config_s { 4057 uint32 flags; /* control flags, default value 4058 indicates offset type flex hash */ 4059 bcm_switch_hash_field_t field; /* field selector, currently there are 4060 two fields in flex hash ram table */ 4061 uint32 offset; /* hash offset when field type is 4062 offset, relative offset in bits from 4063 start in udf_id_t when field type is 4064 udf. The value of (start + offset) 4065 should be a multiple of (8*2) to 4066 ensure the interested field starts at 4067 even byte in a packet */ 4068 int mask_length; /* number of bytes in the mask */ 4069 uint8 mask[BCM_SWITCH_HASH_ENTRY_CONFIG_MASK_LENGTH]; /* hash mask */ 4070 bcm_udf_layer_t base_layer; /* this is unsupported for now */ 4071 bcm_udf_id_t udf_id; /* udf id when field type is udf chunk */ 4072 } bcm_switch_hash_entry_config_t; 4073 4074 /* bcm_switch_hash_entry_config_t_init */ 4075 extern void bcm_switch_hash_entry_config_t_init( 4076 bcm_switch_hash_entry_config_t *config); 4077 4078 #ifndef BCM_HIDE_DISPATCHABLE 4079 4080 /* Setup the offset and mask in a flexible hash entry. */ 4081 extern int bcm_switch_hash_entry_set( 4082 int unit, 4083 bcm_hash_entry_t entry, 4084 bcm_switch_hash_entry_config_t *config); 4085 4086 /* Setup the offset and mask in a flexible hash entry. */ 4087 extern int bcm_switch_hash_entry_get( 4088 int unit, 4089 bcm_hash_entry_t entry, 4090 bcm_switch_hash_entry_config_t *config); 4091 4092 #endif /* BCM_HIDE_DISPATCHABLE */ 4093 4094 /* flexible hash CAM/RAM table traverse callback */ 4095 typedef int (*bcm_switch_hash_entry_traverse_cb)( 4096 int unit, 4097 int flags, 4098 bcm_hash_entry_t entry, 4099 void *user_data); 4100 4101 #ifndef BCM_HIDE_DISPATCHABLE 4102 4103 /* Traverse flexible hash CAM/RAM table */ 4104 extern int bcm_switch_hash_entry_traverse( 4105 int unit, 4106 int flags, 4107 bcm_switch_hash_entry_traverse_cb cb_fn, 4108 void *user_data); 4109 4110 /* 4111 * Set the qualifier data and mask with udf id to assigned flex hash 4112 * entry 4113 */ 4114 extern int bcm_switch_hash_qualify_udf( 4115 int unit, 4116 bcm_hash_entry_t entry, 4117 bcm_udf_id_t udf_id, 4118 int length, 4119 uint8 *data, 4120 uint8 *mask); 4121 4122 /* 4123 * Get the qualifier data and mask with udf id from assigned flex hash 4124 * enty 4125 */ 4126 extern int bcm_switch_hash_qualify_udf_get( 4127 int unit, 4128 bcm_hash_entry_t entry, 4129 bcm_udf_id_t udf_id, 4130 int max_length, 4131 uint8 *data, 4132 uint8 *mask, 4133 int *actual_length); 4134 4135 /* Install a flex hash entry into the hardware tables. */ 4136 extern int bcm_switch_hash_entry_install( 4137 int unit, 4138 bcm_hash_entry_t entry, 4139 uint32 offset); 4140 4141 /* Re-install a flex hash entry into the hardware tables. */ 4142 extern int bcm_switch_hash_entry_reinstall( 4143 int unit, 4144 bcm_hash_entry_t entry, 4145 uint32 offset); 4146 4147 /* Remove a flex hash entry from the hardware tables. */ 4148 extern int bcm_switch_hash_entry_remove( 4149 int unit, 4150 bcm_hash_entry_t entry); 4151 4152 /* Create a blank flex hash entry. */ 4153 extern int bcm_switch_hash_entry_create( 4154 int unit, 4155 bcm_field_group_t group, 4156 bcm_hash_entry_t *entry); 4157 4158 /* Create a blank flex hash entry. */ 4159 extern int bcm_switch_hash_entry_create_qset( 4160 int unit, 4161 bcm_field_qset_t qset, 4162 bcm_hash_entry_t *entry); 4163 4164 /* Destroy a flex hash field entry. */ 4165 extern int bcm_switch_hash_entry_destroy( 4166 int unit, 4167 bcm_hash_entry_t entry); 4168 4169 /* bcm_switch_hash_qualify_data */ 4170 extern int bcm_switch_hash_qualify_data( 4171 int unit, 4172 bcm_hash_entry_t entry, 4173 int qual_id, 4174 uint32 data, 4175 uint32 mask); 4176 4177 /* 4178 * Gets the maximum number of banks associated with a particular hash 4179 * memory. 4180 */ 4181 extern int bcm_switch_hash_banks_max_get( 4182 int unit, 4183 bcm_switch_hash_table_t hash_table, 4184 uint32 *bank_count); 4185 4186 /* Configure the hash type for a bank of the particular hash memory. */ 4187 extern int bcm_switch_hash_banks_config_set( 4188 int unit, 4189 bcm_switch_hash_table_t hash_table, 4190 uint32 bank_num, 4191 int hash_type, 4192 uint32 hash_offset); 4193 4194 /* 4195 * Gets the configured hash type for a bank of the particular hash 4196 * memory. 4197 */ 4198 extern int bcm_switch_hash_banks_config_get( 4199 int unit, 4200 bcm_switch_hash_table_t hash_table, 4201 uint32 bank_num, 4202 int *hash_type, 4203 uint32 *hash_offset); 4204 4205 #endif /* BCM_HIDE_DISPATCHABLE */ 4206 4207 /* Entry type for retrieving temperature values. */ 4208 typedef _shr_switch_temperature_monitor_t bcm_switch_temperature_monitor_t; 4209 4210 #ifndef BCM_HIDE_DISPATCHABLE 4211 4212 /* 4213 * Retrieve each temperature monitor's current value and peak value. The 4214 * unit is 0.1 celsius degree 4215 */ 4216 extern int bcm_switch_temperature_monitor_get( 4217 int unit, 4218 int temperature_max, 4219 bcm_switch_temperature_monitor_t *temperature_array, 4220 int *temperature_count); 4221 4222 #endif /* BCM_HIDE_DISPATCHABLE */ 4223 4224 /* Switch packet info flags. */ 4225 #define BCM_SWITCH_PKT_INFO_SRC_GPORT (1 << 0) /* Source gport (module, 4226 port) field valid. */ 4227 #define BCM_SWITCH_PKT_INFO_VLAN (1 << 1) /* VLAN identifier field 4228 valid. */ 4229 #define BCM_SWITCH_PKT_INFO_ETHERTYPE (1 << 2) /* Ethertype field valid. */ 4230 #define BCM_SWITCH_PKT_INFO_SRC_MAC (1 << 3) /* Source MAC address 4231 field valid. */ 4232 #define BCM_SWITCH_PKT_INFO_DST_MAC (1 << 4) /* Destination MAC 4233 address field valid. */ 4234 #define BCM_SWITCH_PKT_INFO_SRC_IP (1 << 5) /* Source IPv4 address 4235 field valid. */ 4236 #define BCM_SWITCH_PKT_INFO_DST_IP (1 << 6) /* Destination IPv4 4237 address field valid. */ 4238 #define BCM_SWITCH_PKT_INFO_SRC_IPV6 (1 << 7) /* Source IPv6 address 4239 field valid. */ 4240 #define BCM_SWITCH_PKT_INFO_DST_IPV6 (1 << 8) /* Destination IPv6 4241 address field valid. */ 4242 #define BCM_SWITCH_PKT_INFO_PROTOCOL (1 << 9) /* IP protocol field 4243 valid. */ 4244 #define BCM_SWITCH_PKT_INFO_SRC_L4_PORT (1 << 10) /* Source L4 port field 4245 valid. */ 4246 #define BCM_SWITCH_PKT_INFO_DST_L4_PORT (1 << 11) /* Destination L4 port 4247 field valid. */ 4248 #define BCM_SWITCH_PKT_INFO_HASH_TRUNK (1 << 12) /* Retrieve trunk hash 4249 result. */ 4250 #define BCM_SWITCH_PKT_INFO_HASH_MULTIPATH (1 << 13) /* Retrieve ECMP hash 4251 result. */ 4252 #define BCM_SWITCH_PKT_INFO_HASH_UDP_SOURCE_PORT (1 << 14) /* Retrieve Entropy Value 4253 of VXLan packet. */ 4254 #define BCM_SWITCH_PKT_INFO_HASH_LBID (1 << 15) /* Retrieve LBID. */ 4255 #define BCM_SWITCH_PKT_INFO_HASH_OVERLAY (1 << 16) /* Retrieve ECMP hash 4256 result for overlay 4257 layer. */ 4258 #define BCM_SWITCH_PKT_INFO_TOP_LABEL (1 << 17) /* First label in MPLS 4259 stack. */ 4260 #define BCM_SWITCH_PKT_INFO_2ND_LABEL (1 << 18) /* Secondt label in MPLS 4261 stack. */ 4262 #define BCM_SWITCH_PKT_INFO_3RD_LABEL (1 << 19) /* Third label in MPLS 4263 stack. */ 4264 #define BCM_SWITCH_PKT_INFO_LABELS_4MSB (1 << 20) /* 4MSB of top, second 4265 and third label in 4266 MPLS stack. */ 4267 4268 /* Packet forward reason for hash calculation. */ 4269 typedef enum bcm_switch_pkt_hash_info_fwd_reason_e { 4270 bcmSwitchPktHashInfoFwdReasonUnicast = 0, /* Known unicast packet */ 4271 bcmSwitchPktHashInfoFwdReasonIpmc = 1, /* L3 multicast packet */ 4272 bcmSwitchPktHashInfoFwdReasonL2mc = 2, /* L2 multicast packet */ 4273 bcmSwitchPktHashInfoFwdReasonBcast = 3, /* Broadcast packet */ 4274 bcmSwitchPktHashInfoFwdReasonDlf = 4 /* Destination lookup failed packet */ 4275 } bcm_switch_pkt_hash_info_fwd_reason_t; 4276 4277 #define BCM_SWITCH_PKT_HASH_INFO_FWD_REASON_STRINGS \ 4278 "Unicast", \ 4279 "Ipmc", \ 4280 "L2mc", \ 4281 "Bcast", \ 4282 "Dlf" 4283 4284 /* 4285 * Switch packet info structure. 4286 * 4287 * Contains packet fields for calculating aggregate link hash values. 4288 */ 4289 typedef struct bcm_switch_pkt_info_s { 4290 uint32 flags; /* BCM_SWITCH_PKT_INFO_xxx flags for 4291 packet parameter hashing. */ 4292 bcm_gport_t src_gport; /* Source module and port, 4293 BCM_GPORT_INVALID to wildcard. */ 4294 bcm_vlan_t vid; /* VLAN ID. */ 4295 bcm_ethertype_t ethertype; /* Ethertype */ 4296 bcm_mac_t src_mac; /* Source MAC address. */ 4297 bcm_mac_t dst_mac; /* Destination MAC address. */ 4298 bcm_ip_t sip; /* Source host IP address (IPv4). */ 4299 bcm_ip_t dip; /* Destination host IP address (IPv4). */ 4300 bcm_ip6_t sip6; /* Source host IP address (IPv6). */ 4301 bcm_ip6_t dip6; /* Destination host IP address (IPv6). */ 4302 uint8 protocol; /* IP protocol */ 4303 uint32 src_l4_port; /* Source L4 port */ 4304 uint32 dst_l4_port; /* Destination L4 port. */ 4305 bcm_gport_t trunk_gport; /* Gport of trunk type on which packet 4306 will egress. */ 4307 bcm_if_t mpintf; /* Multipath egress forwarding object. */ 4308 bcm_switch_pkt_hash_info_fwd_reason_t fwd_reason; /* Packet forward reason. */ 4309 bcm_mpls_label_t top_label; /* First label in MPLS stack. */ 4310 bcm_mpls_label_t second_label; /* Second label in MPLS stack. */ 4311 bcm_mpls_label_t third_label; /* Third label in MPLS stack. */ 4312 } bcm_switch_pkt_info_t; 4313 4314 /* Initialize a bcm_switch_pkt_info_t structure. */ 4315 extern void bcm_switch_pkt_info_t_init( 4316 bcm_switch_pkt_info_t *pkt_info); 4317 4318 #ifndef BCM_HIDE_DISPATCHABLE 4319 4320 /* 4321 * Gets the hash result for the specified link aggregation method using 4322 * provided packet parameters and device configuration. 4323 */ 4324 extern int bcm_switch_pkt_info_hash_get( 4325 int unit, 4326 bcm_switch_pkt_info_t *pkt_info, 4327 bcm_gport_t *dst_gport, 4328 bcm_if_t *dst_intf); 4329 4330 #endif /* BCM_HIDE_DISPATCHABLE */ 4331 4332 /* 4333 * Read function signature to register for the application provided 4334 * stable for Level 2 Warm Boot 4335 */ 4336 typedef int (*bcm_switch_read_func_t)( 4337 int unit, 4338 uint32 *buf, 4339 int offset, 4340 int nbytes); 4341 4342 /* 4343 * Write function signature to register for the application provided 4344 * stable for Level 2 Warm Boot 4345 */ 4346 typedef int (*bcm_switch_write_func_t)( 4347 int unit, 4348 uint32 *buf, 4349 int offset, 4350 int nbytes); 4351 4352 #ifndef BCM_HIDE_DISPATCHABLE 4353 4354 /* 4355 * Register read/write functions for the application provided stable for 4356 * Level 2 Warm Boot 4357 */ 4358 extern int bcm_switch_stable_register( 4359 int unit, 4360 bcm_switch_read_func_t rf, 4361 bcm_switch_write_func_t wf); 4362 4363 #endif /* BCM_HIDE_DISPATCHABLE */ 4364 4365 /* Call back function signature to register */ 4366 typedef void (*bcm_switch_event_cb_t)( 4367 int unit, 4368 bcm_switch_event_t event, 4369 uint32 arg1, 4370 uint32 arg2, 4371 uint32 arg3, 4372 void *userdata); 4373 4374 #ifndef BCM_HIDE_DISPATCHABLE 4375 4376 /* Register callback function for critical events. */ 4377 extern int bcm_switch_event_register( 4378 int unit, 4379 bcm_switch_event_cb_t cb, 4380 void *userdata); 4381 4382 /* Unregister callback function for critical events. */ 4383 extern int bcm_switch_event_unregister( 4384 int unit, 4385 bcm_switch_event_cb_t cb, 4386 void *userdata); 4387 4388 #endif /* BCM_HIDE_DISPATCHABLE */ 4389 4390 /* Backward compatibility. */ 4391 #define bcm_switch_port_control_get bcm_switch_control_port_set 4392 #define bcm_switch_port_control_set bcm_switch_control_port_set 4393 4394 #define BCM_HASH_ZERO 0x00000001 /* Always return 0 (debug only). */ 4395 #define BCM_HASH_LSB 0x00000002 /* Return LSB of key. */ 4396 #define BCM_HASH_CRC16L 0x00000003 /* Lower bits of CRC-16. */ 4397 #define BCM_HASH_CRC16U 0x00000004 /* Upper bits of CRC-16. */ 4398 #define BCM_HASH_CRC32L 0x00000005 /* Lower bits of CRC-32. */ 4399 #define BCM_HASH_CRC32U 0x00000006 /* Upper bits of CRC-32. */ 4400 #define BCM_HASH_XORU 0x00000007 /* Upper bits of byte by byte XOR. */ 4401 #define BCM_HASH_XORL 0x00000008 /* Lower bits of byte by byte XOR. */ 4402 #define BCM_HASH_OFFSET 0x10000000 /* Use supplied offset value into the 4403 hash value. */ 4404 4405 /* Multipath (ECMP/WCMP) hashing. */ 4406 #define BCM_HASH_CONTROL_MULTIPATH_L4PORTS 0x0001 /* Use TCP/UDP ports. */ 4407 #define BCM_HASH_CONTROL_MULTIPATH_DIP 0x0002 /* Use destination IP 4408 address. */ 4409 #define BCM_HASH_CONTROL_MULTIPATH_USERDEF(_val) \ 4410 (((_val) & 0xff) << 24) 4411 #define BCM_HASH_CONTROL_MULTIPATH_USERDEF_VAL(c) \ 4412 ((c) >> 24 & 0xff) 4413 4414 /* Unicast trunk hash controls. */ 4415 #define BCM_HASH_CONTROL_TRUNK_UC_XGS2 0x0004 /* 5695 compatible hash. */ 4416 #define BCM_HASH_CONTROL_TRUNK_UC_SRCPORT 0x0008 /* Use source port. */ 4417 4418 /* Non-unicast trunk block mask hash controls. */ 4419 #define BCM_HASH_CONTROL_TRUNK_NUC_DST 0x0010 /* Use destination MAC or 4420 IP address. */ 4421 #define BCM_HASH_CONTROL_TRUNK_NUC_SRC 0x0020 /* Use source MAC or IP 4422 address. */ 4423 #define BCM_HASH_CONTROL_TRUNK_NUC_MODPORT 0x0040 /* Use module ID and 4424 port. */ 4425 4426 /* Use enhanced (aka. RTAG7) hashing algorithm. */ 4427 #define BCM_HASH_CONTROL_ECMP_ENHANCE 0x0080 /* Use enhanced ECMP 4428 hashing. */ 4429 #define BCM_HASH_CONTROL_TRUNK_NUC_ENHANCE 0x0100 /* Use enhanced 4430 non-unicast trunk 4431 hashing. */ 4432 #define BCM_HASH_CONTROL_ECMP_OVERLAY_ENHANCE 0x0200 /* Use enhanced ECMP 4433 hashing for overlay 4434 layer. */ 4435 4436 /* Enhanced hash field config control. */ 4437 #define BCM_HASH_FIELD_CONFIG_CRC16XOR8 0x00000001 /* 8-bit CRC16 + 8-bit 4438 XOR8. */ 4439 #define BCM_HASH_FIELD_CONFIG_CRC16XOR4 0x00000002 /* 8-bit CRC16 + 8-bit 4440 XOR4. */ 4441 #define BCM_HASH_FIELD_CONFIG_CRC16XOR2 0x00000003 /* 8-bit CRC16 + 8-bit 4442 XOR2. */ 4443 #define BCM_HASH_FIELD_CONFIG_CRC16XOR1 0x00000004 /* 8-bit CRC16 + 8-bit 4444 XOR1. */ 4445 #define BCM_HASH_FIELD_CONFIG_CRC16 0x00000005 /* 16-bit CRC16. */ 4446 #define BCM_HASH_FIELD_CONFIG_XOR16 0x00000006 /* 16-bit XOR. */ 4447 #define BCM_HASH_FIELD_CONFIG_CRC16CCITT 0x00000007 /* 16-bit CRC using CCITT 4448 polynomial. */ 4449 #define BCM_HASH_FIELD_CONFIG_CRC32LO 0x00000008 /* Lower 16-bit of CRC32. */ 4450 #define BCM_HASH_FIELD_CONFIG_CRC32HI 0x00000009 /* Higher 16-bit of 4451 CRC32. */ 4452 #define BCM_HASH_FIELD_CONFIG_CRC32_ETH_LO 0x0000000a /* Lower 16-bit of 4453 Ethernet CRC32. */ 4454 #define BCM_HASH_FIELD_CONFIG_CRC32_ETH_HI 0x0000000b /* Higher 16-bit of 4455 Ethernet CRC32. */ 4456 #define BCM_HASH_FIELD_CONFIG_CRC32_KOOPMAN_LO 0x0000000c /* Lower 16-bit of 4457 Koopman CRC32. */ 4458 #define BCM_HASH_FIELD_CONFIG_CRC32_KOOPMAN_HI 0x0000000d /* Higher 16-bit of 4459 Koopman CRC32. */ 4460 4461 /* Enhanced hash field selection disable control. */ 4462 #define BCM_HASH_FIELD0_DISABLE_IP4 0x00000001 /* Selection 0 for IPv4 4463 packets. */ 4464 #define BCM_HASH_FIELD1_DISABLE_IP4 0x00000002 /* Selection 1 for IPv4 4465 packets. */ 4466 #define BCM_HASH_FIELD0_DISABLE_IP6 0x00000004 /* Selection 0 for IPv6 4467 packets. */ 4468 #define BCM_HASH_FIELD1_DISABLE_IP6 0x00000008 /* Selection 1 for IPv6 4469 packets. */ 4470 #define BCM_HASH_FIELD0_DISABLE_MPLS 0x00000010 /* Selection 0 for MPLS 4471 packets. */ 4472 #define BCM_HASH_FIELD1_DISABLE_MPLS 0x00000020 /* Selection 1 for MPLS 4473 packets. */ 4474 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP 0x00000040 /* Selection 0 for tunnel 4475 IPv4 over IPv4 4476 packets. */ 4477 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP 0x00000080 /* Selection 1 for tunnel 4478 IPv4 over IPv4 4479 packets. */ 4480 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP 0x00000100 /* Selection 0 for tunnel 4481 IPv6 over IPv4 4482 packets. */ 4483 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP 0x00000200 /* Selection 1 for tunnel 4484 IPv6 over IPv4 4485 packets. */ 4486 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE 0x00000400 /* Selection 0 for tunnel 4487 IPv4 over GRE packets. */ 4488 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE 0x00000800 /* Selection 1 for tunnel 4489 IPv4 over GRE packets. */ 4490 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE 0x00001000 /* Selection 0 for tunnel 4491 IPv6 over GRE packets. */ 4492 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE 0x00002000 /* Selection 1 for tunnel 4493 IPv6 over GRE packets. */ 4494 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP6 0x00004000 /* Selection 0 for tunnel 4495 IPv4 over IPv6 4496 packets. */ 4497 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP6 0x00008000 /* Selection 1 for tunnel 4498 IPv4 over IPv6 4499 packets. */ 4500 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP6 0x00010000 /* Selection 0 for tunnel 4501 IPv6 over IPv6 4502 packets. */ 4503 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP6 0x00020000 /* Selection 1 for tunnel 4504 IPv6 over IPv6 4505 packets. */ 4506 #define BCM_HASH_FIELD0_DISABLE_MIM 0x00040000 /* Selection 0 for MIM 4507 packets. */ 4508 #define BCM_HASH_FIELD1_DISABLE_MIM 0x00080000 /* Selection 1 for MIM 4509 packets. */ 4510 #define BCM_HASH_FIELD0_DISABLE_FCOE 0x00100000 /* Selection 0 for FCoE 4511 packets. */ 4512 #define BCM_HASH_FIELD1_DISABLE_FCOE 0x00200000 /* Selection 1 for FCoE 4513 packets. */ 4514 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE_IP4 0x00400000 /* Selection 0 for tunnel 4515 IPv4 over GRE IPv4 4516 packets. */ 4517 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE_IP6 0x00800000 /* Selection 0 for tunnel 4518 IPv4 over GRE IPv6 4519 packets. */ 4520 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE_IP4 0x01000000 /* Selection 1 for tunnel 4521 IPv4 over GRE IPv4 4522 packets. */ 4523 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE_IP6 0x02000000 /* Selection 1 for tunnel 4524 IPv4 over GRE IPv6 4525 packets. */ 4526 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE_IP4 0x04000000 /* Selection 0 for tunnel 4527 IPv6 over GRE IPv4 4528 packets. */ 4529 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE_IP6 0x08000000 /* Selection 0 for tunnel 4530 IPv6 over GRE IPv6 4531 packets. */ 4532 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE_IP4 0x10000000 /* Selection 1 for tunnel 4533 IPv6 over GRE IPv4 4534 packets. */ 4535 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE_IP6 0x20000000 /* Selection 1 for tunnel 4536 IPv6 over GRE IPv6 4537 packets. */ 4538 #define BCM_HASH_FIELD0_DISABLE_VXLAN 0x40000000 /* Selection 0 for tunnel 4539 VXLAN packets. */ 4540 #define BCM_HASH_FIELD1_DISABLE_VXLAN 0x80000000 /* Selection 1 for tunnel 4541 VXLAN packets. */ 4542 4543 /* 4544 * Extended flags for bcmSwitchHashSelectControlExtended switch control 4545 * type to disable enhanced hash field selection control. 4546 */ 4547 #define BCM_HASH_FIELD0_DISABLE_ROCE1 0x00000001 /* Hash block A field 4548 selection disable for 4549 RoCEv1 packet. */ 4550 #define BCM_HASH_FIELD1_DISABLE_ROCE1 0x00000002 /* Hash block B field 4551 selection disable for 4552 RoCEv1 packet. */ 4553 #define BCM_HASH_FIELD0_DISABLE_ROCE2_IP4 0x00000004 /* Hash block A field 4554 selection disable for 4555 RoCEv2 IPv4 packet. */ 4556 #define BCM_HASH_FIELD1_DISABLE_ROCE2_IP4 0x00000008 /* Hash block B field 4557 selection disable for 4558 RoCEv2 IPv4 packet. */ 4559 #define BCM_HASH_FIELD0_DISABLE_ROCE2_IP6 0x00000010 /* Hash block A field 4560 selection disable for 4561 RoCEv2 IPv6 packet. */ 4562 #define BCM_HASH_FIELD1_DISABLE_ROCE2_IP6 0x00000020 /* Hash block B field 4563 selection disable for 4564 RoCEv2 IPv6 packet. */ 4565 4566 /* UDF hashing select. */ 4567 #define BCM_HASH_FIELD0_ENABLE_UDFHASH 0x00000001 /* UDF hashing enable on 4568 engine 0. */ 4569 #define BCM_HASH_FIELD1_ENABLE_UDFHASH 0x00000002 /* UDF hashing enable on 4570 engine 1. */ 4571 4572 /* Enhanced hash field selection. */ 4573 #define BCM_HASH_FIELD_DSTMOD 0x00000001 /* Destination module ID. */ 4574 #define BCM_HASH_FIELD_DSTPORT 0x00000002 /* Destination port ID. */ 4575 #define BCM_HASH_FIELD_SRCMOD 0x00000004 /* Source modle ID. */ 4576 #define BCM_HASH_FIELD_SRCPORT 0x00000008 /* Souce port ID. */ 4577 #define BCM_HASH_FIELD_PROTOCOL 0x00000010 /* Protocol ID. */ 4578 #define BCM_HASH_FIELD_DSTL4 0x00000020 /* Destination L4 port. */ 4579 #define BCM_HASH_FIELD_SRCL4 0x00000040 /* Source L4 port. */ 4580 #define BCM_HASH_FIELD_L4 (BCM_HASH_FIELD_SRCL4 | BCM_HASH_FIELD_DSTL4) /* The entire L4 field. */ 4581 #define BCM_HASH_FIELD_VLAN 0x00000080 /* VLAN ID. */ 4582 #define BCM_HASH_FIELD_IP4DST_LO 0x00000100 /* IPv4 destination address 4583 lower 16 bits. */ 4584 #define BCM_HASH_FIELD_IP4DST_HI 0x00000200 /* IPv4 destination address 4585 upper 16 bits. */ 4586 #define BCM_HASH_FIELD_IP4SRC_LO 0x00000400 /* IPv4 source address lower 4587 16 bits. */ 4588 #define BCM_HASH_FIELD_IP4SRC_HI 0x00000800 /* IPv4 source address upper 4589 16 bits. */ 4590 #define BCM_HASH_FIELD_IP6DST_LO 0x00001000 /* IPv6 collapsed destination 4591 address lower 16 bits. */ 4592 #define BCM_HASH_FIELD_IP6DST_HI 0x00002000 /* IPv6 collapsed destination 4593 address upper 16 bits. */ 4594 #define BCM_HASH_FIELD_IP6SRC_LO 0x00004000 /* IPv6 collapsed source 4595 address lower 16 bits. */ 4596 #define BCM_HASH_FIELD_IP6SRC_HI 0x00008000 /* IPv6 collapsed source 4597 address upper 16 bits. */ 4598 #define BCM_HASH_FIELD_FLOWLABEL_LO BCM_HASH_FIELD_DSTMOD /* IPv6 flow label lower 16 4599 bits. */ 4600 #define BCM_HASH_FIELD_FLOWLABEL_HI BCM_HASH_FIELD_DSTPORT /* IPv6 flow label upper 4 4601 bits. */ 4602 #define BCM_HASH_FIELD_NXT_HDR 0x00010000 /* Next header. */ 4603 #define BCM_HASH_FIELD_ETHER_TYPE 0x00020000 /* Ether type. */ 4604 #define BCM_HASH_FIELD_MACDA_LO 0x00040000 /* MAC destination address 4605 lower 16 bits. */ 4606 #define BCM_HASH_FIELD_MACDA_MI 0x00080000 /* MAC destination address 4607 middle 16 bits. */ 4608 #define BCM_HASH_FIELD_MACDA_HI 0x00100000 /* MAC destination address 4609 upper 16 bits. */ 4610 #define BCM_HASH_FIELD_MACSA_LO 0x00200000 /* MAC source address lower 4611 16 bits. */ 4612 #define BCM_HASH_FIELD_MACSA_MI 0x00400000 /* MAC source address middle 4613 16 bits. */ 4614 #define BCM_HASH_FIELD_MACSA_HI 0x00800000 /* MAC source address upper 4615 16 bits. */ 4616 #define BCM_HASH_FIELD_LOAD_BALANCE 0x01000000 /* Load balance ID - HiGig2 4617 only. */ 4618 #define BCM_HASH_FIELD_RSVD_LABELS 0x02000000 /* Reserved second label, top 4619 label. */ 4620 #define BCM_HASH_FIELD_2ND_LABEL 0x04000000 /* Second label. */ 4621 #define BCM_HASH_FIELD_TOP_LABEL 0x08000000 /* Top label. */ 4622 #define BCM_HASH_FIELD_LOOKUP_ID_LO 0x10000000 /* Used for ISID[15:0]. */ 4623 #define BCM_HASH_FIELD_LOOKUP_ID_HI 0x20000000 /* Used for ISID[23:16]. */ 4624 #define BCM_HASH_FIELD_CNTAG_FLOW_ID 0x40000000 /* CNTAG flow ID. */ 4625 4626 /* Enhanced field selection bit map for RoCE hash field selection. */ 4627 #define BCM_HASH_ROCE_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 4628 #define BCM_HASH_ROCE_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 4629 #define BCM_HASH_ROCE_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 4630 #define BCM_HASH_ROCE_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 4631 #define BCM_HASH_ROCE_FIELD_FLOWLABEL_LO BCM_HASH_FIELD_DSTMOD /* RoCE flow label lower 4632 16 bits. */ 4633 #define BCM_HASH_ROCE_FIELD_FLOWLABEL_HI BCM_HASH_FIELD_DSTPORT /* RoCE flow label upper 4634 4 bits. */ 4635 #define BCM_HASH_ROCE_FIELD_DSTL4 BCM_HASH_FIELD_DSTL4 /* RoCEv2 L4 destination 4636 port. */ 4637 #define BCM_HASH_ROCE_FIELD_SRCL4 BCM_HASH_FIELD_SRCL4 /* RoCEv2 L4 source port. */ 4638 #define BCM_HASH_ROCE_FIELD_VLAN BCM_HASH_FIELD_VLAN /* VLAN ID. */ 4639 #define BCM_HASH_ROCE_FIELD_MACDA_LO BCM_HASH_FIELD_MACDA_LO /* RoCEv1 MAC destination 4640 address lower 16 bits. */ 4641 #define BCM_HASH_ROCE_FIELD_MACDA_MI BCM_HASH_FIELD_MACDA_MI /* RoCEv1 MAC destination 4642 address middle 16 4643 bits. */ 4644 #define BCM_HASH_ROCE_FIELD_MACDA_HI BCM_HASH_FIELD_MACDA_HI /* RoCEv1 MAC destination 4645 address upper 16 bits. */ 4646 #define BCM_HASH_ROCE_FIELD_MACSA_LO BCM_HASH_FIELD_MACSA_LO /* RoCEv1 MAC source 4647 address lower 16 bits. */ 4648 #define BCM_HASH_ROCE_FIELD_MACSA_MI BCM_HASH_FIELD_MACSA_MI /* RoCEv1 MAC source 4649 address middle 16 4650 bits. */ 4651 #define BCM_HASH_ROCE_FIELD_MACSA_HI BCM_HASH_FIELD_MACSA_HI /* RoCEv1 MAC source 4652 address upper16 bits. */ 4653 #define BCM_HASH_ROCE_FIELD_IP4DST_LO BCM_HASH_FIELD_IP4DST_LO /* RoCEv2 IPv4 4654 destination address 4655 lower 16 bits. */ 4656 #define BCM_HASH_ROCE_FIELD_IP4DST_HI BCM_HASH_FIELD_IP4DST_HI /* RoCEv2 IPv4 4657 destination address 4658 upper 16 bits. */ 4659 #define BCM_HASH_ROCE_FIELD_IP4SRC_LO BCM_HASH_FIELD_IP4SRC_LO /* RoCEv2 IPv4 source 4660 address lower 16 bits. */ 4661 #define BCM_HASH_ROCE_FIELD_IP4SRC_HI BCM_HASH_FIELD_IP4SRC_HI /* RoCEv2 IPv4 source 4662 address upper 16 bits. */ 4663 #define BCM_HASH_ROCE_FIELD_IP6DST_LO BCM_HASH_FIELD_IP6DST_LO /* RoCEv2 IPv6 collapsed 4664 destination address 4665 lower 16 bits. */ 4666 #define BCM_HASH_ROCE_FIELD_IP6DST_HI BCM_HASH_FIELD_IP6DST_HI /* RoCEv2 IPv6 collapsed 4667 destination address 4668 upper 16 bits. */ 4669 #define BCM_HASH_ROCE_FIELD_IP6SRC_LO BCM_HASH_FIELD_IP6SRC_LO /* RoCEv2 IPv6 collapsed 4670 source address lower 4671 16 bits. */ 4672 #define BCM_HASH_ROCE_FIELD_IP6SRC_HI BCM_HASH_FIELD_IP6SRC_HI /* RoCEv2 IPv6 collapsed 4673 source address upper 4674 16 bits. */ 4675 #define BCM_HASH_ROCE_FIELD_BTH_DSTQP_COLLAPSED 0x00010000 /* RoCE Collapsed 4676 Destination Queue Pair 4677 in BTH (Base Transport 4678 Header). */ 4679 #define BCM_HASH_ROCE_FIELD_BTH_PARTITION_KEY 0x00020000 /* RoCE Partition Key in 4680 BTH (Base Transport 4681 Header). */ 4682 4683 /* Enhanced hash MPLS field selection. */ 4684 #define BCM_HASH_MPLS_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 4685 #define BCM_HASH_MPLS_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 4686 #define BCM_HASH_MPLS_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 4687 #define BCM_HASH_MPLS_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 4688 #define BCM_HASH_MPLS_FIELD_3RD_LABEL 0x00000010 /* Third label. */ 4689 #define BCM_HASH_MPLS_FIELD_LABELS_4MSB 0x00000020 /* Most significant 4 4690 bits of top, second, 4691 and third label. */ 4692 #define BCM_HASH_MPLS_FIELD_IP4DST_LO BCM_HASH_FIELD_IP4DST_LO /* IPv4 destination 4693 address lower 16 bits. */ 4694 #define BCM_HASH_MPLS_FIELD_IP4DST_HI BCM_HASH_FIELD_IP4DST_HI /* IPv4 destination 4695 address upper 16 bits. */ 4696 #define BCM_HASH_MPLS_FIELD_IP4SRC_LO BCM_HASH_FIELD_IP4SRC_LO /* IPv4 source address 4697 lower 16 bits. */ 4698 #define BCM_HASH_MPLS_FIELD_IP4SRC_HI BCM_HASH_FIELD_IP4SRC_HI /* IPv4 source address 4699 upper 16 bits. */ 4700 #define BCM_HASH_MPLS_FIELD_3RD_LABEL_4MSB_5TH_LABEL BCM_HASH_FIELD_IP6DST_LO /* Third label or 4 most 4701 significant bits of 4702 5th label. */ 4703 #define BCM_HASH_MPLS_FIELD_LABELS_4MSB_3RD_LABEL BCM_HASH_FIELD_IP6DST_HI /* Most significant 4 4704 bits of top, second, 4705 and third label or 3rd 4706 label alone. */ 4707 #define BCM_HASH_MPLS_FIELD_IP4DST_IP6DST_LO_5TH_LABEL BCM_HASH_FIELD_IP6SRC_LO /* IPv4 destination 4708 address lower 16 bits 4709 or IPv6 collapsed 4710 destination address 4711 lower 16 bits or 5th 4712 label. */ 4713 #define BCM_HASH_MPLS_FIELD_IP4DST_IP6DST_HI_4TH_LABEL BCM_HASH_FIELD_IP6SRC_HI /* IPv4 destination 4714 address upper 16 bits 4715 or IPv6 collapsed 4716 destination address 4717 upper 16 bits or 4th 4718 label. */ 4719 #define BCM_HASH_MPLS_FIELD_IP4SRC_IP6SRC_LO_4MSB_4TH_LABEL BCM_HASH_FIELD_NXT_HDR /* IPv4 source address 4720 lower 16 bits or IPv6 4721 collapsed source 4722 address lower 16 bits 4723 or 4 most significant 4724 bits of 4th label. */ 4725 #define BCM_HASH_MPLS_FIELD_IP4SRC_IP6SRC_HI_4MSB BCM_HASH_FIELD_ETHER_TYPE /* IPv4 source address 4726 upper 16 bits or IPv6 4727 collapsed source 4728 address upper 16 bits 4729 or 4 most significant 4730 bits of 1st,2nd,3rd 4731 labels. */ 4732 #define BCM_HASH_MPLS_FIELD_2ND_LABEL BCM_HASH_FIELD_2ND_LABEL /* Second label. */ 4733 #define BCM_HASH_MPLS_FIELD_TOP_LABEL BCM_HASH_FIELD_TOP_LABEL /* Top label. */ 4734 #define BCM_HASH_MPLS_FIELD_CNTAG_FLOW_ID BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */ 4735 4736 /* Enhanced hash FCOE field selection. */ 4737 #define BCM_HASH_FCOE_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 4738 #define BCM_HASH_FCOE_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 4739 #define BCM_HASH_FCOE_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 4740 #define BCM_HASH_FCOE_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 4741 #define BCM_HASH_FCOE_FIELD_VLAN 0x00000010 /* VLAN ID. */ 4742 #define BCM_HASH_FCOE_FIELD_VIRTUAL_FABRIC_ID 0x00000020 /* Virtual Fabric ID. */ 4743 #define BCM_HASH_FCOE_FIELD_RESPONDER_EXCHANGE_ID 0x00000040 /* Responder Exchange_ID. */ 4744 #define BCM_HASH_FCOE_FIELD_ORIGINATOR_EXCHANGE_ID 0x00000080 /* Originator 4745 Exchange_ID. */ 4746 #define BCM_HASH_FCOE_FIELD_DST_ID_LO 0x00000100 /* Destination_ID lower 4747 16 bits. */ 4748 #define BCM_HASH_FCOE_FIELD_DST_ID_HI 0x00000200 /* Destination_ID upper 4749 16 bits. */ 4750 #define BCM_HASH_FCOE_FIELD_SRC_ID_LO 0x00000400 /* Source_ID lower 16 4751 bits. */ 4752 #define BCM_HASH_FCOE_FIELD_SRC_ID_HI 0x00000800 /* Source_ID upper 16 4753 bits. */ 4754 #define BCM_HASH_FCOE_FIELD_CNTAG_FLOW_ID BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */ 4755 4756 /* Enhanced hash Trill field selection. */ 4757 #define BCM_HASH_TRILL_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 4758 #define BCM_HASH_TRILL_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 4759 #define BCM_HASH_TRILL_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 4760 #define BCM_HASH_TRILL_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 4761 #define BCM_HASH_TRILL_FIELD_VLAN 0x00000010 /* VLAN ID. */ 4762 #define BCM_HASH_TRILL_FIELD_ETHER_TYPE 0x00000020 /* Ether type. */ 4763 #define BCM_HASH_TRILL_FIELD_MACDA_LO 0x00000040 /* MAC destination 4764 address lower 16 bits. */ 4765 #define BCM_HASH_TRILL_FIELD_MACDA_MI 0x00000080 /* MAC destination 4766 address middle 16 4767 bits. */ 4768 #define BCM_HASH_TRILL_FIELD_MACSA_LO 0x00000100 /* MAC source address 4769 lower 16 bits. */ 4770 #define BCM_HASH_TRILL_FIELD_MACSA_MI 0x00000200 /* MAC source address 4771 middle 16 bits. */ 4772 #define BCM_HASH_TRILL_FIELD_ING_RBRIDGE_NAME 0x00000400 /* Ingress RBridge 4773 Nickname. */ 4774 #define BCM_HASH_TRILL_FIELD_EGR_RBRIDGE_NAME 0x00000800 /* Egress RBridge 4775 Nickname. */ 4776 4777 /* Stacking mode select. */ 4778 #define BCM_MIRROR_STACK_MODE_XGS3 0 /* Stacking with BCM5650x 4779 (BCM5610x, BCM5630x). */ 4780 #define BCM_MIRROR_STACK_MODE_XGS1 1 /* Stacking with BCM5670. */ 4781 #define BCM_MIRROR_STACK_MODE_XGS2 2 /* Stacking with BCM5675-A0. */ 4782 4783 #define BCM_COLOR_PRIORITY 0 /* Priority->COLOR mapping. */ 4784 #define BCM_COLOR_OUTER_CFI 1 /* SPVLAN CFI->COLOR mapping. */ 4785 #define BCM_COLOR_INNER_CFI 2 /* CVLAN CFI->COLOR mapping. */ 4786 4787 #define BCM_HASH_MPLS_LABEL_NONE 0 /* Normal processing for MPLS 4788 label stack, i.e. hash 4789 according to forwarding 4790 header configuration. */ 4791 #define BCM_HASH_MPLS_LABEL_BOS_START 1 /* Hashing from BOS label, 4792 skipping all other label. */ 4793 #define BCM_HASH_MPLS_LABEL_BOS_SKIP 2 /* Hashing from header next 4794 to BOS label, skipping all 4795 MPLS labels. */ 4796 4797 /* IGM/MLD Action select. */ 4798 #define BCM_SWITCH_FORWARD 0x00000001 4799 #define BCM_SWITCH_FLOOD 0x00000002 4800 #define BCM_SWITCH_DROP 0x00000004 4801 #define BCM_SWITCH_CPU 0x00000008 4802 4803 /* Switch features bypass mode */ 4804 #define BCM_SWITCH_BYPASS_NONE 0 /* No switch logic bypassed. */ 4805 #define BCM_SWITCH_BYPASS_L3_ONLY 1 /* L3 switch logic bypassed. */ 4806 #define BCM_SWITCH_BYPASS_L3_AND_FP 2 /* L3 and FP switch logic 4807 bypassed. */ 4808 4809 /* Switch Remote CPU packet encapsulation priority mapping options. */ 4810 #define BCM_SWITCH_REMOTE_CPU_ENCAP_IEEE 0x00000001 /* Use 802.1P Priority 4811 mapping for Remote CPU 4812 packet encapsulation. */ 4813 #define BCM_SWITCH_REMOTE_CPU_ENCAP_HIGIG2 0x00000002 /* Use module header 4814 traffic class mapping 4815 for Remote CPU packet 4816 encapsulation. */ 4817 #define BCM_SWITCH_REMOTE_CPU_ENCAP_IEEE_CPU_TC 0x00000004 /* Use status header 4818 traffic class mapping 4819 for Remote CPU packet 4820 encapsulation. */ 4821 4822 /* Switch features filter bypass control modes */ 4823 #define BCM_FILTER_NONE _SHR_SWITCH_FILTER_NONE /* No switch filter bypass. */ 4824 #define BCM_FILTER_RX_CRCCHK _SHR_SWITCH_FILTER_RX_CRCCHK /* RX filter bypass CRC check. */ 4825 #define BCM_FILTER_DOS_TOCPU _SHR_SWITCH_FILTER_DOS_TOCPU /* DOS filter bypass at the frame 4826 to CPU. */ 4827 #define BCM_FILTER_STP_USERADDR _SHR_SWITCH_FILTER_STP_USERADDR /* STP filter bypass L2 User 4828 address. */ 4829 #define BCM_FILTER_STP_MAC0X _SHR_SWITCH_FILTER_STP_MAC0X /* STP filter bypass the frame at 4830 MAC=0180c2-00000x. */ 4831 #define BCM_FILTER_VLAN_IGMP_MLD _SHR_SWITCH_FILTER_VLAN_IGMP_MLD /* VLAN filter bypass IGMP and 4832 MLD. */ 4833 #define BCM_FILTER_VLAN_ARP_DHCP _SHR_SWITCH_FILTER_VLAN_ARP_DHCP /* VLAN filter bypass ARP and 4834 DHCP */ 4835 #define BCM_FILTER_VLAN_MIIM _SHR_SWITCH_FILTER_VLAN_MIIM /* VLAN filter bypass IMP ingress 4836 frame. */ 4837 #define BCM_FILTER_VLAN_MCAST _SHR_SWITCH_FILTER_VLAN_MCAST /* VLAN filter bypass MCAST 4838 frame. */ 4839 #define BCM_FILTER_VLAN_RSV_MCAST _SHR_SWITCH_FILTER_VLAN_RSV_MCAST /* VLAN filter bypass Reserved 4840 MCAST frame. */ 4841 #define BCM_FILTER_VLAN_USERADDR _SHR_SWITCH_FILTER_VLAN_USERADDR /* VLAN filter bypass L2 User 4842 address. */ 4843 #define BCM_FILTER_EAP_USERADDR _SHR_SWITCH_FILTER_EAP_USERADDR /* EAP filter bypass L2 User 4844 address. */ 4845 #define BCM_FILTER_EAP_DHCP _SHR_SWITCH_FILTER_EAP_DHCP /* EAP filter bypass DHCP. */ 4846 #define BCM_FILTER_EAP_ARP _SHR_SWITCH_FILTER_EAP_ARP /* EAP filter bypass EAP and ARP. */ 4847 #define BCM_FILTER_EAP_MAC_22_2F _SHR_SWITCH_FILTER_EAP_MAC_22_2F /* EAP filter bypass the frame at 4848 MAC=0180c2-000021 to 4849 0180c2-00002F. */ 4850 #define BCM_FILTER_EAP_MAC_21 _SHR_SWITCH_FILTER_EAP_MAC_21 /* EAP filter bypass the frame at 4851 MAC=0180c2-000021. */ 4852 #define BCM_FILTER_EAP_MAC_20 _SHR_SWITCH_FILTER_EAP_MAC_20 /* EAP filter bypass the frame at 4853 MAC=0180c2-000020. */ 4854 #define BCM_FILTER_EAP_MAC_11_1F _SHR_SWITCH_FILTER_EAP_MAC_11_1F /* EAP filter bypass the frame at 4855 MAC=0180c2-000011 to 4856 0180c2-00001F. */ 4857 #define BCM_FILTER_EAP_MAC_10 _SHR_SWITCH_FILTER_EAP_MAC_10 /* EAP filter bypass the frame at 4858 MAC=0180c2-000010. */ 4859 #define BCM_FILTER_EAP_MAC_0X _SHR_SWITCH_FILTER_EAP_MAC_0X /* EAP filter bypass the frame at 4860 MAC=0180c2-00000x. */ 4861 #define BCM_FILTER_EAP_BPDU _SHR_SWITCH_FILTER_EAP_BPDU /* EAP filter bypass BPDU frame. */ 4862 #define BCM_FILTER_CONTROL_COUNT _SHR_SWITCH_FILTER_CONTROL_COUNT /* The count of filter bypass 4863 control items. */ 4864 4865 /* LED functions group */ 4866 #define BCM_LED_FUNCGRP_0 _SHR_SWITCH_LED_FUNCGRP_0 4867 #define BCM_LED_FUNCGRP_1 _SHR_SWITCH_LED_FUNCGRP_1 4868 4869 /* LED function items */ 4870 #define BCM_LED_FUNC_NONE _SHR_SWITCH_LED_FUNC_NONE 4871 #define BCM_LED_FUNC_PHYLED4 _SHR_SWITCH_LED_FUNC_PHYLED4 4872 #define BCM_LED_FUNC_LNK _SHR_SWITCH_LED_FUNC_LNK 4873 #define BCM_LED_FUNC_DPX _SHR_SWITCH_LED_FUNC_DPX 4874 #define BCM_LED_FUNC_ACT _SHR_SWITCH_LED_FUNC_ACT 4875 #define BCM_LED_FUNC_COL _SHR_SWITCH_LED_FUNC_COL 4876 #define BCM_LED_FUNC_LINK_ACT _SHR_SWITCH_LED_FUNC_LINK_ACT 4877 #define BCM_LED_FUNC_DPX_COL _SHR_SWITCH_LED_FUNC_DPX_COL 4878 #define BCM_LED_FUNC_SP_10 _SHR_SWITCH_LED_FUNC_SP_10 4879 #define BCM_LED_FUNC_SP_100 _SHR_SWITCH_LED_FUNC_SP_100 4880 #define BCM_LED_FUNC_SP_1G _SHR_SWITCH_LED_FUNC_SP_1G 4881 #define BCM_LED_FUNC_10_ACT _SHR_SWITCH_LED_FUNC_10_ACT 4882 #define BCM_LED_FUNC_100_ACT _SHR_SWITCH_FILTER_EAP_DHCP 4883 #define BCM_LED_FUNC_10_100_ACT _SHR_SWITCH_LED_FUNC_10_100_ACT 4884 #define BCM_LED_FUNC_1G_ACT _SHR_SWITCH_LED_FUNC_1G_ACT 4885 #define BCM_LED_FUNC_EAV_LINK _SHR_SWITCH_LED_FUNC_EAV_LINK 4886 #define BCM_LED_FUNC_PHYLED3 _SHR_SWITCH_LED_FUNC_PHYLED3 4887 #define BCM_LED_FUNC_SP_100_200 _SHR_SWITCH_LED_FUNC_SP_100_200 4888 #define BCM_LED_FUNC_100_200_ACT _SHR_SWITCH_LED_FUNC_100_200_ACT 4889 #define BCM_LED_FUNC_SP_LNK_ACT_SP _SHR_SWITCH_LED_FUNC_LNK_ACT_SP 4890 4891 /* LED working mode */ 4892 #define BCM_LED_MODE_OFF _SHR_SWITCH_LED_MODE_OFF 4893 #define BCM_LED_MODE_ON _SHR_SWITCH_LED_MODE_ON 4894 #define BCM_LED_MODE_BLINK _SHR_SWITCH_LED_MODE_BLINK 4895 #define BCM_LED_MODE_AUTO _SHR_SWITCH_LED_MODE_AUTO 4896 4897 /* types for bcmSwitchL2LearnMode */ 4898 #define BCM_L2_INGRESS_CENT 0x1 /* Ingress and Centralized 4899 Learning */ 4900 #define BCM_L2_INGRESS_DIST 0x2 /* Ingress and Centralized 4901 Learning */ 4902 #define BCM_L2_EGRESS_DIST 0x4 /* Egress and Distributed 4903 Learning */ 4904 #define BCM_L2_EGRESS_CENT 0x8 /* Egress and Centralized 4905 Learning */ 4906 #define BCM_L2_EGRESS_INDEPENDENT 0x10 /* Egress and Independent 4907 Learning */ 4908 #define BCM_L2_LEARN_CPU 0x20 /* Learning events handled by CPU */ 4909 #define BCM_L2_LEARN_DISABLE 0x40 /* Disabled learning */ 4910 4911 /* Hashing function enumeration. */ 4912 typedef enum bcm_switch_hash_config_e { 4913 BCM_HASH_CONFIG_NONE = 1, /* Indication to not hash */ 4914 BCM_HASH_CONFIG_CRC8_0x14D = 2, /* CRC8 with 0x14D polynomial */ 4915 BCM_HASH_CONFIG_CRC8_0x1C3 = 3, /* CRC8 with 0x1C3 polynomial */ 4916 BCM_HASH_CONFIG_CRC8_0x1CF = 4, /* CRC8 with 0x1CF polynomial */ 4917 BCM_HASH_CONFIG_CRC16_0x17111 = 5, /* CRC16 with 0x17111 polynomial */ 4918 BCM_HASH_CONFIG_CRC16_0x10491 = 6, /* CRC16 with 0x10491 polynomial */ 4919 BCM_HASH_CONFIG_CRC16_0x155F5 = 7, /* CRC16 with 0x155F5 polynomial */ 4920 BCM_HASH_CONFIG_CRC16_0x1013D = 8, /* CRC16 with 0x1013D polynomial */ 4921 BCM_HASH_CONFIG_CRC16_0x13965 = 9, /* CRC16 with 0x13965 polynomial */ 4922 BCM_HASH_CONFIG_CRC16_0x1698D = 10, /* CRC16 with 0x1698D polynomial */ 4923 BCM_HASH_CONFIG_CRC16_0x1105D = 11, /* CRC16 with 0x1105D polynomial */ 4924 BCM_HASH_CONFIG_CRC16_0x10861 = 12, /* CRC16 with 0x10861 polynomial */ 4925 BCM_HASH_CONFIG_CRC16_0x10285 = 13, /* CRC16 with 0x10285 polynomial */ 4926 BCM_HASH_CONFIG_CRC16_0x101a1 = 14, /* CRC16 with 0x101a1 polynomial */ 4927 BCM_HASH_CONFIG_CRC16_0x12499 = 15, /* CRC16 with 0x12499 polynomial */ 4928 BCM_HASH_CONFIG_CRC16_0x1f801 = 16, /* CRC16 with 0x1f801 polynomial */ 4929 BCM_HASH_CONFIG_CRC16_0x172e1 = 17, /* CRC16 with 0x172e1 polynomial */ 4930 BCM_HASH_CONFIG_CRC16_0x1eb21 = 18, /* CRC16 with 0x1eb21 polynomial */ 4931 BCM_HASH_CONFIG_FP_DATA = 19, /* Use only data calculated by FP */ 4932 BCM_HASH_CONFIG_ROUND_ROBIN = 20, /* Round robin between ports per packet */ 4933 BCM_HASH_CONFIG_CLOCK_BASED = 21, /* Result based in clock (random) */ 4934 BCM_HASH_CONFIG_CRC16_0x8003 = 22, /* CRC16 with 0x8003 polynomial */ 4935 BCM_HASH_CONFIG_CRC16_0x8011 = 23, /* CRC16 with 0x8011 polynomial */ 4936 BCM_HASH_CONFIG_CRC16_0x8423 = 24, /* CRC16 with 0x8423 polynomial */ 4937 BCM_HASH_CONFIG_CRC16_0x8101 = 25, /* CRC16 with 0x8101 polynomial */ 4938 BCM_HASH_CONFIG_CRC16_0x84a1 = 26, /* CRC16 with 0x84a1 polynomial */ 4939 BCM_HASH_CONFIG_CRC16_0x9019 = 27, /* CRC16 with 0x9019 polynomial */ 4940 BCM_HASH_CONFIG_COUNT /* Must be last */ 4941 } bcm_switch_hash_config_t; 4942 4943 /* RTAG7 Hash Field Control selection of payload and tunnel fields. */ 4944 #define BCM_HASH_SELECT_INNER_L2 0x1 /* Select the inner L2 fields 4945 for hash fields selection. */ 4946 #define BCM_HASH_SELECT_OUTER_L2 0x2 /* Select the outer L2 fields 4947 for hash fields selection. */ 4948 #define BCM_HASH_SELECT_INNER_L3 0x3 /* Select the inner L3 fields 4949 for hash fields selection. */ 4950 #define BCM_HASH_SELECT_OUTER_L3 0x4 /* Select the outer L3 fields 4951 for hash fields selection. */ 4952 #define BCM_HASH_SELECT_TUNNEL_INNER_L2 0x5 /* Select tunnel header and 4953 inner L2 fields for hash 4954 fields selection. */ 4955 4956 /* IPv6 Collapse Methods for RTAG7 Hashing */ 4957 #define BCM_HASH_IP6_COLLAPSE_XOR 0x1 /* Select XOR method to collapse 4958 IPv6 Addresses for RTAG7 4959 hashing in field selection 4960 block */ 4961 #define BCM_HASH_IP6_COLLAPSE_LSB 0x2 /* Select LSB method to collapse 4962 IPv6 Addresses for RTAG7 4963 hashing in field selection 4964 block */ 4965 4966 /* IPSec selection for RTAG7 Hashing */ 4967 #define BCM_HASH_IPSEC_SELECT_OUTER_L4_PORT 0x1 /* Select OUTER 4968 L4_SRC/DST_PORT for 4969 RTAG7 hashing in field 4970 selection block */ 4971 #define BCM_HASH_IPSEC_SELECT_SPI 0x2 /* Select IPv6 SPI for 4972 RTAG7 hashing in field 4973 selection block */ 4974 4975 /* header selection for trunk hashing */ 4976 #define BCM_HASH_HEADER_FORWARD 0x00000001 /* Select the forward header as 4977 starting header for hashing */ 4978 #define BCM_HASH_HEADER_TERMINATED 0x00000002 /* Select the last terminated 4979 header as starting header for 4980 hashing */ 4981 4982 /* Symmetric hash field selection. */ 4983 #define BCM_SYMMETRIC_HASH_0_IP4_ENABLE 0x00000001 /* Enable symmetric key 4984 hashing on Hash A for 4985 IPV4 packets. */ 4986 #define BCM_SYMMETRIC_HASH_1_IP4_ENABLE 0x00000002 /* Enable symmetric key 4987 hashing on Hash B for 4988 IPV4 packets. */ 4989 #define BCM_SYMMETRIC_HASH_0_IP6_ENABLE 0x00000004 /* Enable symmetric key 4990 hashing on Hash A for 4991 IPV6 packets. */ 4992 #define BCM_SYMMETRIC_HASH_1_IP6_ENABLE 0x00000008 /* Enable symmetric key 4993 hashing on Hash B for 4994 IPV6 packets. */ 4995 #define BCM_SYMMETRIC_HASH_0_SUPPRESS_UNIDIR_FIELD_ENABLE 0x00000010 /* Enable setting SPI, 4996 TEID, L2 GRE Key to 4997 zero for Hash A 4998 calculation. */ 4999 #define BCM_SYMMETRIC_HASH_1_SUPPRESS_UNIDIR_FIELD_ENABLE 0x00000020 /* Enable setting SPI, 5000 TEID, L2 GRE Key to 5001 zero for Hash B 5002 calculation. */ 5003 #define BCM_SYMMETRIC_HASH_0_FCOE_ENABLE 0x00000040 /* Enable symmetric key 5004 hashing on Hash A for 5005 FCoE packets. */ 5006 #define BCM_SYMMETRIC_HASH_1_FCOE_ENABLE 0x00000080 /* Enable symmetric key 5007 hashing on Hash B for 5008 FCoE packets. */ 5009 5010 /* Switch Event Control for event selection */ 5011 #define BCM_SWITCH_EVENT_CONTROL_ALL (-1) /* Selects All 5012 interrupts-causes. */ 5013 5014 /* Switch event action controls. */ 5015 typedef enum bcm_switch_event_control_action_e { 5016 bcmSwitchEventMask = _SHR_SWITCH_EVENT_MASK, /* Mask (disable) or unmask (enable) the 5017 event */ 5018 bcmSwitchEventClear = _SHR_SWITCH_EVENT_CLEAR, /* Clear the event */ 5019 bcmSwitchEventRead = _SHR_SWITCH_EVENT_READ, /* read the event */ 5020 bcmSwitchEventForce = _SHR_SWITCH_EVENT_FORCE, /* Activate/diactivate forcing the event */ 5021 bcmSwitchEventStormTimedCount = _SHR_SWITCH_EVENT_STORM_TIMED_COUNT, /* If more then 5022 bcmSwitchEventStormTimedCount 5023 interrupts occur in 5024 bcmSwitchEventStormTimedPeriod 5025 period, an interrupt storm is 5026 indicated (default hanling same as 5027 for bcmSwitchEventStormNominal 5028 threshold) */ 5029 bcmSwitchEventStormTimedPeriod = _SHR_SWITCH_EVENT_STORM_TIMED_PERIOD, /* If more then 5030 bcmSwitchEventStormTimedCount 5031 interrupts occur in 5032 bcmSwitchEventStormTimedPeriod 5033 period, an interrupt storm is 5034 indicated (default hanling same as 5035 for bcmSwitchEventStormNominal 5036 threshold) */ 5037 bcmSwitchEventStormNominal = _SHR_SWITCH_EVENT_STORM_NOMINAL, /* Nominal threshold for interrupt storm 5038 detection. If an interrupt occurs 5039 more times then the threshold, an 5040 interrupt storm is indicated. The 5041 default handling for such an 5042 interrupt is holding it in masked 5043 condition */ 5044 bcmSwitchEventPriority = _SHR_SWITCH_EVENT_PRIORITY, /* Change handling priority in case of 5045 multiple interrupts */ 5046 bcmSwitchEventLog = _SHR_SWITCH_EVENT_LOG, /* Activate/Diactivate log prints on 5047 event */ 5048 bcmSwitchEventStat = _SHR_SWITCH_EVENT_STAT, /* Enable to Clear/Read event statistics */ 5049 bcmSwitchEventCorrActOverride = _SHR_SWITCH_EVENT_CORR_ACT_OVERRIDE, /* Enable to override application 5050 callback */ 5051 bcmSwitchEventUnmaskAndClearDisable = _SHR_SWITCH_EVENT_UNMASK_AND_CLEAR_DISABLE, /* Skip clearing and enabling the 5052 asserted interrupt at the end of 5053 event corrective action */ 5054 bcmSwitchEventForceUnmask = _SHR_SWITCH_EVENT_FORCE_UNMASK /* Skip enable interrupt action for 5055 asserted interrupt at the end of 5056 event corrective action, if the 5057 interrupt is not cleared */ 5058 } bcm_switch_event_control_action_t; 5059 5060 /* Interrupt event operation */ 5061 typedef struct bcm_switch_event_control_s { 5062 int event_id; /* Event identifier, e.g. for interrupt 5063 event, device-specific enumerator per 5064 interrupt-cause. */ 5065 int index; /* If multi-instance blocks represent 5066 the specific block index. */ 5067 bcm_switch_event_control_action_t action; /* The action to perform on the 5068 indicated event. */ 5069 } bcm_switch_event_control_t; 5070 5071 #ifndef BCM_HIDE_DISPATCHABLE 5072 5073 /* Set event control. */ 5074 extern int bcm_switch_event_control_set( 5075 int unit, 5076 bcm_switch_event_t event, 5077 bcm_switch_event_control_t type, 5078 uint32 value); 5079 5080 /* Get event control. */ 5081 extern int bcm_switch_event_control_get( 5082 int unit, 5083 bcm_switch_event_t event, 5084 bcm_switch_event_control_t type, 5085 uint32 *value); 5086 5087 #endif /* BCM_HIDE_DISPATCHABLE */ 5088 5089 typedef enum bcm_switch_bst_tracking_mode_e { 5090 bcmSwitchBstTrackCurrent = 0, /* Track the current usage. */ 5091 bcmSwitchBstTrackPeak = 1 /* Track the peak usage. */ 5092 } bcm_switch_bst_tracking_mode_t; 5093 5094 /* Split Horizon network group configuration flags */ 5095 #define BCM_SWITCH_NETWORK_GROUP_MCAST_REMAP_ENABLE 0x00000001 5096 #define BCM_SWITCH_NETWORK_GROUP_INGRESS_PRUNE_ENABLE 0x00000002 5097 #define BCM_SWITCH_NETWORK_GROUP_EGRESS_PRUNE_ENABLE 0x00000004 5098 5099 /* Split Horizon destination network group configuration information */ 5100 typedef struct bcm_switch_network_group_config_s { 5101 bcm_switch_network_group_t dest_network_group_id; /* Split Horizon Destination Network 5102 Group Identifier */ 5103 uint32 config_flags; /* BCM_SWITCH_NETWORK_GROUP_XXX flags */ 5104 } bcm_switch_network_group_config_t; 5105 5106 /* Initialize a bcm_switch_network_group_config_t structure. */ 5107 extern void bcm_switch_network_group_config_t_init( 5108 bcm_switch_network_group_config_t *config); 5109 5110 #ifndef BCM_HIDE_DISPATCHABLE 5111 5112 /* 5113 * Enable/Disable ingress pruning, egress pruning and ingress IPMC group 5114 * remap for a given pair of split horizon source network group and 5115 * destination network group. 5116 * BCM5645x family of devices support 8 split horizon network 5117 * group. Split horizon network group id 0 is reserved. 5118 */ 5119 extern int bcm_switch_network_group_config_set( 5120 int unit, 5121 bcm_switch_network_group_t source_network_group_id, 5122 bcm_switch_network_group_config_t *config); 5123 5124 /* 5125 * Get the enable/disable status of ingress pruning, egress pruning and 5126 * ingress IPMC group remap for a given pair of split horizon source 5127 * network group and destination network group. 5128 * BCM5645x family of devices support 8 split horizon network 5129 * group. Split horizon network group id 0 is reserved. 5130 */ 5131 extern int bcm_switch_network_group_config_get( 5132 int unit, 5133 bcm_switch_network_group_t source_network_group_id, 5134 bcm_switch_network_group_config_t *config); 5135 5136 #endif /* BCM_HIDE_DISPATCHABLE */ 5137 5138 /* User buffer type. */ 5139 typedef enum bcm_switch_user_buffer_type_e { 5140 bcmSwitchUserBufferTypeDram = 0 /* Dram User Buffer. */ 5141 } bcm_switch_user_buffer_type_t; 5142 5143 #ifndef BCM_HIDE_DISPATCHABLE 5144 5145 /* Write to the user buffer. */ 5146 extern int bcm_switch_user_buffer_write( 5147 int unit, 5148 uint32 flags, 5149 bcm_switch_user_buffer_type_t buff_type, 5150 uint8 *buf, 5151 int offset, 5152 int nbytes); 5153 5154 /* Read from the user buffer. */ 5155 extern int bcm_switch_user_buffer_read( 5156 int unit, 5157 uint32 flags, 5158 bcm_switch_user_buffer_type_t buff_type, 5159 uint8 *buf, 5160 int offset, 5161 int nbytes); 5162 5163 #endif /* BCM_HIDE_DISPATCHABLE */ 5164 5165 /* header selection for trunk hashing */ 5166 #define BCM_SWITCH_USER_BUFFER_LOGICAL2PHY_TRANS 0x00000001 /* User buffer flag for 5167 using logical to 5168 physical translation, 5169 instead of using 5170 logical adresses */ 5171 5172 #ifndef BCM_HIDE_DISPATCHABLE 5173 5174 /* Sets Ipv6 address and mask in reserved multicast address memory. */ 5175 extern int bcm_switch_ipv6_reserved_multicast_addr_set( 5176 int unit, 5177 bcm_ip6_t ip6_addr, 5178 bcm_ip6_t ip6_mask); 5179 5180 /* Gets Ipv6 address and mask from reserved multicast address memory. */ 5181 extern int bcm_switch_ipv6_reserved_multicast_addr_get( 5182 int unit, 5183 bcm_ip6_t *ip6_addr, 5184 bcm_ip6_t *ip6_mask); 5185 5186 /* 5187 * Sets multiple Ipv6 address and mask in reserved multicast address 5188 * memory. 5189 */ 5190 extern int bcm_switch_ipv6_reserved_multicast_addr_multi_set( 5191 int unit, 5192 int inner, 5193 int num, 5194 bcm_ip6_t *ip6_addr, 5195 bcm_ip6_t *ip6_mask); 5196 5197 /* 5198 * Gets multiple Ipv6 address and mask from reserved multicast address 5199 * memory. 5200 */ 5201 extern int bcm_switch_ipv6_reserved_multicast_addr_multi_get( 5202 int unit, 5203 int inner, 5204 int num, 5205 bcm_ip6_t *ip6_addr, 5206 bcm_ip6_t *ip6_mask); 5207 5208 #endif /* BCM_HIDE_DISPATCHABLE */ 5209 5210 typedef enum bcm_switch_object_e { 5211 bcmSwitchObjectL2EntryCurrent = 0, /* Statistics of current L2 Entry. */ 5212 bcmSwitchObjectVlanCurrent = 1, /* Statistics of current Vlan Entry. */ 5213 bcmSwitchObjectL3HostCurrent = 2, /* Statistics of current L3 Hosts. */ 5214 bcmSwitchObjectL3RouteCurrent = 3, /* Statistics of current L3 Routes. */ 5215 bcmSwitchObjectL3EgressCurrent = 4, /* Statistics of current L3 Egress 5216 objects. */ 5217 bcmSwitchObjectIpmcCurrent = 5, /* Statistics of current IP Multicast 5218 Objects. */ 5219 bcmSwitchObjectEcmpCurrent = 6, /* Statistics of current ECMP objects. */ 5220 bcmSwitchObjectL3RouteV4RoutesMax = 7, /* Maximum number of v4 routes possible */ 5221 bcmSwitchObjectL3RouteV4RoutesFree = 8, /* Maximum number of v4 routes that can 5222 be added in current state */ 5223 bcmSwitchObjectL3RouteV4RoutesUsed = 9, /* Used count of v4 routes */ 5224 bcmSwitchObjectL3RouteV6Routes64bMax = 10, /* Maximum number of 64bv6 routes 5225 possible */ 5226 bcmSwitchObjectL3RouteV6Routes64bFree = 11, /* Maximum number of 64bV6 routes that 5227 can be added in current state */ 5228 bcmSwitchObjectL3RouteV6Routes64bUsed = 12, /* Used count of 64bv6 routes */ 5229 bcmSwitchObjectL3RouteV6Routes128bMax = 13, /* Maximum number of 128bV6 routes 5230 possible */ 5231 bcmSwitchObjectL3RouteV6Routes128bFree = 14, /* Maximum number of 128bV6 routes that 5232 can be added in current state */ 5233 bcmSwitchObjectL3RouteV6Routes128bUsed = 15, /* Used count of 128bv6 routes */ 5234 bcmSwitchObjectL3RouteTotalUsedRoutes = 16, /* Sum of 44 + 64bv6 + 128bv6 routes */ 5235 bcmSwitchObjectIpmcHeadTableFree = 17, /* Number of free entries in the 5236 replication head table */ 5237 bcmSwitchObjectL3HostV4Used = 18, /* Statistics of L3 Hosts used by IPv4 */ 5238 bcmSwitchObjectL3HostV6Used = 19, /* Statistics of L3 Hosts used by IPv6 */ 5239 bcmSwitchObjectEcmpMax = 20, /* Maximum number of Ecmp groups 5240 possible */ 5241 bcmSwitchObjectPFCDeadlockCosMax = 21, /* Get the Max COS supported for PFC 5242 Deadlock detection and recovery. */ 5243 bcmSwitchObjectL3HostV4Max = 22, /* Maximum number of IPv4 routes 5244 possible in L3 host table. */ 5245 bcmSwitchObjectL3HostV6Max = 23, /* Maximum number of IPv6 routes 5246 possible in L3 host table. */ 5247 bcmSwitchObjectL3RouteV4RoutesMinGuaranteed = 24, /* Guaranteed number of IPv4 routes in 5248 ALPM mode. */ 5249 bcmSwitchObjectL3RouteV6Routes64bMinGuaranteed = 25, /* Guaranteed number of IPv6 64bits 5250 routes in ALPM mode. */ 5251 bcmSwitchObjectL3RouteV6Routes128bMinGuaranteed = 26, /* Guaranteed number of IPv6 128bits 5252 routes in ALPM mode. */ 5253 bcmSwitchObjectL3EgressMax = 27, /* Maximum number of L3 Egress objects 5254 possible. */ 5255 bcmSwitchObjectIpmcV4Used = 28, /* Statistics of used IPv4 Multicast 5256 entries. */ 5257 bcmSwitchObjectIpmcV6Used = 29, /* Statistics of used IPv6 Multicast 5258 entries. */ 5259 bcmSwitchObjectIpmcV4Max = 30, /* Maximum number of IPv4 Multicast 5260 entries possible. */ 5261 bcmSwitchObjectIpmcV6Max = 31, /* Maximum number of IPv6 Multicast 5262 entries possible. */ 5263 bcmSwitchObjectL2EntryMax = 32, /* Maximum number of L2 entries 5264 possible. */ 5265 bcmSwitchObjectCount /* Maximum object count. This is not an 5266 object and should always be in the 5267 last */ 5268 } bcm_switch_object_t; 5269 5270 #ifndef BCM_HIDE_DISPATCHABLE 5271 5272 /* Retrieving the statistics on the number of API objects. */ 5273 extern int bcm_switch_object_count_get( 5274 int unit, 5275 bcm_switch_object_t object, 5276 int *entries); 5277 5278 /* 5279 * Retrieving the statistics on the number of API objects. This retrieves 5280 * for multiple objects. 5281 */ 5282 extern int bcm_switch_object_count_multi_get( 5283 int unit, 5284 int object_size, 5285 bcm_switch_object_t *object_array, 5286 int *entries); 5287 5288 #endif /* BCM_HIDE_DISPATCHABLE */ 5289 5290 /* Services types. */ 5291 typedef enum bcm_switch_service_e { 5292 bcmServiceCounterCollection = 0, /* Counters collection service. */ 5293 bcmServiceRxLOS = 1, /* RX LOS service. */ 5294 bcmServiceCount /* Maximum object count. This is not an 5295 object and should always be in the 5296 last */ 5297 } bcm_switch_service_t; 5298 5299 /* Service enable configuration options. */ 5300 typedef enum bcm_switch_service_enabled_e { 5301 bcmServiceStateDisabled = 0, /* Service disabled. */ 5302 bcmServiceStateEnabled = 1, /* Service enabled. */ 5303 bcmServiceEnabledCount /* Maximum object count. This is not an 5304 object and should always be in the last */ 5305 } bcm_switch_service_enabled_t; 5306 5307 /* Service configuration structure. */ 5308 typedef struct bcm_switch_service_config_s { 5309 uint32 flags; /* Option flags. */ 5310 bcm_switch_service_enabled_t enabled; /* Service enable configuration. */ 5311 } bcm_switch_service_config_t; 5312 5313 /* Initialize a bcm_switch_service_config_t structure. */ 5314 extern void bcm_switch_service_config_t_init( 5315 bcm_switch_service_config_t *config); 5316 5317 #ifndef BCM_HIDE_DISPATCHABLE 5318 5319 /* Config an operation on specific service */ 5320 extern int bcm_switch_service_set( 5321 int unit, 5322 bcm_switch_service_t service, 5323 bcm_switch_service_config_t *config); 5324 5325 /* Get configuration status of specific service */ 5326 extern int bcm_switch_service_get( 5327 int unit, 5328 bcm_switch_service_t service, 5329 bcm_switch_service_config_t *config); 5330 5331 #endif /* BCM_HIDE_DISPATCHABLE */ 5332 5333 /* MC queue group mode. */ 5334 typedef enum bcm_switch_control_mc_queue_config_mode_e { 5335 bcmSwitchMcUcPairGroupMode = 0, /* Each MC queue is paired with one UC queue */ 5336 bcmSwitchAllMcGroupMode = 1 /* All MC queues are grouped together */ 5337 } bcm_switch_control_mc_queue_config_mode_t; 5338 5339 /* Flags for bcm_switch_l3_protocol_group_set / get */ 5340 #define BCM_SWITCH_L3_PROTOCOL_GROUP_NONE 0x0000 /* No protocols in this 5341 group */ 5342 #define BCM_SWITCH_L3_PROTOCOL_GROUP_IPV4 0x0001 /* Add IPv4 to the group. */ 5343 #define BCM_SWITCH_L3_PROTOCOL_GROUP_IPV6 0x0002 /* Add IPv6 to the group. */ 5344 #define BCM_SWITCH_L3_PROTOCOL_GROUP_ARP 0x0004 /* Add ARP to the group. */ 5345 #define BCM_SWITCH_L3_PROTOCOL_GROUP_MPLS 0x0008 /* Add MPLS to the group. */ 5346 #define BCM_SWITCH_L3_PROTOCOL_GROUP_MIM 0x0010 /* Add MiM to the group. */ 5347 #define BCM_SWITCH_L3_PROTOCOL_GROUP_TRILL 0x0020 /* Add trill to the 5348 group. */ 5349 #define BCM_SWITCH_L3_PROTOCOL_GROUP_FCOE 0x0040 /* Add FCOE to the group. */ 5350 5351 /* 5352 * Protocol group to which l3 protocols will be mapped for multiple mymac 5353 * termination 5354 */ 5355 typedef uint32 bcm_l3_protocol_group_id_t; 5356 5357 #ifndef BCM_HIDE_DISPATCHABLE 5358 5359 /* Assign protocol groups for multiple mymac termination. */ 5360 extern int bcm_switch_l3_protocol_group_set( 5361 int unit, 5362 uint32 group_members, 5363 bcm_l3_protocol_group_id_t group_id); 5364 5365 /* Assign protocol groups for multiple mymac termination. */ 5366 extern int bcm_switch_l3_protocol_group_get( 5367 int unit, 5368 uint32 *group_members, 5369 bcm_l3_protocol_group_id_t *group_id); 5370 5371 #endif /* BCM_HIDE_DISPATCHABLE */ 5372 5373 /* profile mapping type. */ 5374 typedef enum bcm_switch_profile_mapping_type_e { 5375 bcmCosqIngressQueueToRateClass = 0, /* ingress queue to rate class mapping */ 5376 bcmCosqIngressQueuesToLatencyProfile = 1, /* ingress queues to ingress latency 5377 profile mapping */ 5378 bcmCosqPortToEndToEndLatencyProfile = 2 /* destination local port to end to end 5379 latency profile mapping */ 5380 } bcm_switch_profile_mapping_type_t; 5381 5382 /* profile mapping struct. */ 5383 typedef struct bcm_switch_profile_mapping_s { 5384 bcm_switch_profile_mapping_type_t profile_type; /* The type of profile to be mapped to. */ 5385 bcm_gport_t mapped_profile; /* mapped profile handle */ 5386 } bcm_switch_profile_mapping_t; 5387 5388 /* Initialize a profile mapping structure. */ 5389 extern void bcm_switch_profile_mapping_t_init( 5390 bcm_switch_profile_mapping_t *profile_mapping); 5391 5392 /* Global TPID type. */ 5393 typedef enum bcm_switch_tpid_type_e { 5394 bcmTpidTypeOuter = 0, /* Global Outer TPID */ 5395 bcmTpidTypeInner = 1, /* Global Inner TPID */ 5396 bcmTpidTypeVntag = 2, /* Global TPID for Vntag */ 5397 bcmTpidTypeEtag = 3, /* Global TPID for Etag */ 5398 bcmTpidTypeCapwapPayloadOuter = 4, /* Global Outer TPID of CAPWAP wireless 5399 payload */ 5400 bcmTpidTypeCapwapPayloadInner = 5, /* Global Inner TPID of CAPWAP wireless 5401 payload */ 5402 bcmTpidTypeL2TunnelPayloadInner = 6, /* Global Inner TPID of L2 Tunnel 5403 payload */ 5404 bcmTpidTypeMimPayloadOuter = 7, /* Matched TPID of Transit MIM Payload 5405 for Parser */ 5406 bcmTpidTypeVxlanPayloadOuter = 8, /* Matched TPID of Transit VXLAN Payload 5407 for Parser */ 5408 bcmTpidTypeL2grePayloadOuter = 9, /* Matched TPID of Transit L2GRE Payload 5409 for Parser */ 5410 bcmTpidTypeVxlanPayloadInner = 10, /* Matched inner TPID of Transit VXLAN 5411 Payload for Parser */ 5412 bcmTpidTypeItag = 11, /* Global TPID value for I-Tag */ 5413 bcmTpidTypeCount = 12 /* Always Last, not a usable value */ 5414 } bcm_switch_tpid_type_t; 5415 5416 /* Global TPID information */ 5417 typedef struct bcm_switch_tpid_info_s { 5418 bcm_switch_tpid_type_t tpid_type; /* The type of TPID to be set */ 5419 uint16 tpid_value; /* The value of TPID to be set */ 5420 uint32 flags; /* Future expansion, BCM_SWITCH_TPID_XXX 5421 flags */ 5422 int color; /* Color mode for TPID */ 5423 } bcm_switch_tpid_info_t; 5424 5425 /* Global TPID information flags */ 5426 #define BCM_SWITCH_TPID_VALUE_INVALID 0x0000 /* TPID value 0x0000 is not 5427 valid. See the Programming 5428 Guide PP document for full 5429 details */ 5430 5431 #ifndef BCM_HIDE_DISPATCHABLE 5432 5433 /* 5434 * Add a global TPID. 5435 * BCM8865x and BCM8866x family of devices support 1 global 5436 * TPID, which is different from port TPIDs. The global TPID is 5437 * initialized to 0. When the global TPID is added via bcmTpidTypeOuter, 5438 * ingress parser uses it as an additional TPID to parse tag format of 5439 * packets. 5440 * BCM8867x family of devices support 4 global TPIDs, which 5441 * are different from port TPIDs. Two global TPIDs are used or outer TPID 5442 * parsing. Two are used for inner TPID parsing. All 4 global TPIDs are 5443 * initialized to 0. Outer TPID can be configured same as inner TPID. 5444 * When a global outer TPID is added via bcmTpidTypeOuter, ingress parser 5445 * uses it as an additional outer TPID to parse tag format of 5446 * packets.When a global inner TPID is added via bcmTpidTypeInner, 5447 * ingress parser uses it as an additional inner TPID to parse tag format 5448 * of packets. 5449 * BCM5616x family of devices support 5 global TPIDs for 5450 * identifying the outer and inner tags in CAPWAP wirless payload. Four 5451 * global TPIDs are for outer TPID parsing and one global TPID for inner 5452 * TPID parsing in CAPWAP wireless payload. 5453 * The device supports only one global TPID which is from the 5454 * ingress inner TPID matching register for identifying the inner tag in 5455 * L2 Tunnel payload. The global TPID is initialized to 0x8100 by 5456 * default. Old global TPID must be deleted before adding a new one. 5457 */ 5458 extern int bcm_switch_tpid_add( 5459 int unit, 5460 uint32 options, 5461 bcm_switch_tpid_info_t *tpid_info); 5462 5463 /* 5464 * Delete a global TPID. 5465 * BCM8865x and BCM8866x family of devices support deleting 5466 * the global TPID via bcmTpidTypeOuter. 5467 * BCM8867x family of devices support deleting an outer 5468 * global TPID via bcmTpidTypeOuter or an inner global TPID via 5469 * bcmTpidTypeInner. 5470 * BCM5616x family of devices support deleting global TPID 5471 * via bcmTpidTypeCapwapPayloadOuter and bcmTpidTypeCapwapPayloadInner. 5472 * The device supports deleting global L2 Tunnel TPID from 5473 * the ingress inner TPID matching register via 5474 * bcmTpidTypeL2TunnelPayloadInner. 5475 */ 5476 extern int bcm_switch_tpid_delete( 5477 int unit, 5478 bcm_switch_tpid_info_t *tpid_info); 5479 5480 /* Delete all global TPIDs. */ 5481 extern int bcm_switch_tpid_delete_all( 5482 int unit); 5483 5484 /* 5485 * Get a global TPID. 5486 * BCM8865x and BCM8866x family of devices support getting 5487 * the global TPID via bcmTpidTypeOuter. 5488 * BCM8867x family of devices support getting an outer global 5489 * TPIDs via bcmTpidTypeOuter and an inner global TPIDs via 5490 * bcmTpidTypeInner. 5491 * BCM5616x family of devices support 5 global TPIDs for 5492 * identifying the outer and inner tags in CAPWAP wirless payload. 5493 * The device supports getting one global L2 Tunnel TPID for 5494 * identifying the outer and inner tags in L2 Tunnel payload from the 5495 * ingress inner TPID matching register. 5496 */ 5497 extern int bcm_switch_tpid_get( 5498 int unit, 5499 bcm_switch_tpid_info_t *tpid_info); 5500 5501 /* 5502 * Get global TPID count or TPIDs. if (size==0), get TPID count of all 5503 * global TPIDs, else, get global TPIDs based on size. 5504 * BCM8865x and BCM8866x family of devices support getting 5505 * the global TPID. 5506 * BCM8867x family of devices support getting all 4 global 5507 * TPIDs. 5508 * BCM5616x family of device support getting the global 5509 * TPIDs. 5510 * The device supports getting only one global L2 Tunnel 5511 * inner TPID from the ingress inner TPID matching register. 5512 */ 5513 extern int bcm_switch_tpid_get_all( 5514 int unit, 5515 int size, 5516 bcm_switch_tpid_info_t *tpid_info_array, 5517 int *count); 5518 5519 #endif /* BCM_HIDE_DISPATCHABLE */ 5520 5521 /* TPID class match type. */ 5522 typedef enum bcm_switch_tpid_class_match_e { 5523 bcmSwitchTpidClassMatchPort = 0, /* tpid_class_id from port. */ 5524 bcmSwitchTpidClassMatchIngVlanActionId = 1, /* tpid_class_id from Ingress vlan 5525 translation action id */ 5526 bcmSwitchTpidClassMatch_Count = 2 /* Number of match criterion */ 5527 } bcm_switch_tpid_class_match_t; 5528 5529 /* TPID class retrieval information */ 5530 typedef struct bcm_switch_tpid_class_s { 5531 uint32 flags; /* BCM_SWITCH_TPID_CLASS_XXX, unused 5532 now. */ 5533 bcm_switch_tpid_class_match_t match; /* Match criteria for tpid_class_id */ 5534 bcm_gport_t port; /* Port ID */ 5535 int vlan_translation_action_id; /* Vlan Translation action ID */ 5536 uint32 tpid_class_id; /* TPID-profile */ 5537 } bcm_switch_tpid_class_t; 5538 5539 /* Initialize tpid class retrival information. */ 5540 extern void bcm_switch_tpid_class_t_init( 5541 bcm_switch_tpid_class_t *tpid_class); 5542 5543 #ifndef BCM_HIDE_DISPATCHABLE 5544 5545 /* 5546 * Get the tpid profile from a given port or given ingress vlan 5547 * translation action_id. 5548 */ 5549 extern int bcm_switch_tpid_class_get( 5550 int unit, 5551 bcm_switch_tpid_class_t *tpid_class); 5552 5553 #endif /* BCM_HIDE_DISPATCHABLE */ 5554 5555 /* packet trace lookup result enums */ 5556 typedef enum bcm_switch_pkt_trace_lookup_e { 5557 bcmSwitchPktTraceLookupInvalid = 0, 5558 bcmSwitchPktTraceLookupFirstVlanTranslationHit = 1, 5559 bcmSwitchPktTraceLookupSecondVlanTranslationHit = 2, 5560 bcmSwitchPktTraceLookupForwardingVlanValid = 3, 5561 bcmSwitchPktTraceLookupL2SrcHit = 6, 5562 bcmSwitchPktTraceLookupL2SrcStatic = 7, 5563 bcmSwitchPktTraceLookupL2DstHit = 8, 5564 bcmSwitchPktTraceLookupL2CacheHit = 9, 5565 bcmSwitchPktTraceLookupL3SrcHostHit = 10, 5566 bcmSwitchPktTraceLookupL3DestHostHit = 11, 5567 bcmSwitchPktTraceLookupL3DestRouteHit = 12, 5568 bcmSwitchPktTraceLookupL2SrcMiss = 13, 5569 bcmSwitchPktTraceLookupDosAttack = 14, 5570 bcmSwitchPktTraceLookupIpTunnelHit = 15, 5571 bcmSwitchPktTraceLookupMplsLabel1Hit = 16, 5572 bcmSwitchPktTraceLookupMplsLabel2Hit = 17, 5573 bcmSwitchPktTraceLookupMplsTerminated = 18, 5574 bcmSwitchPktTraceLookupMystationHit = 19, 5575 bcmSwitchPktTraceLookupCount = 20 5576 } bcm_switch_pkt_trace_lookup_t; 5577 5578 /* lookup result set bit map */ 5579 typedef struct bcm_switch_pkt_trace_lookup_result_s { 5580 SHR_BITDCL pkt_trace_status_bitmap[_SHR_BITDCLSIZE(bcmSwitchPktTraceLookupCount)]; /* bit map for packet trace lookup 5581 result set */ 5582 } bcm_switch_pkt_trace_lookup_result_t; 5583 5584 /* packet trace resolution enums */ 5585 typedef enum bcm_switch_pkt_trace_resolution_e { 5586 bcmSwitchPktTraceResolutionUnkown = 0, 5587 bcmSwitchPktTraceResolutionControlPkt = 1, /* 1 */ 5588 bcmSwitchPktTraceResolutionOamPkt = 2, 5589 bcmSwitchPktTraceResolutionBfdPkt = 3, 5590 bcmSwitchPktTraceResolutionBpduPkt = 4, 5591 bcmSwitchPktTraceResolution1588Pkt = 6, 5592 bcmSwitchPktTraceResolutionKnownL2UcPkt = 8, 5593 bcmSwitchPktTraceResolutionUnknownL2UcPkt = 9, 5594 bcmSwitchPktTraceResolutionKnownL2McPkt = 10, 5595 bcmSwitchPktTraceResolutionUnknownL2McPkt = 11, 5596 bcmSwitchPktTraceResolutionL2BcPkt = 12, 5597 bcmSwitchPktTraceResolutionKnownL3UcPkt = 16, 5598 bcmSwitchPktTraceResolutionUnknownL3UcPkt = 17, 5599 bcmSwitchPktTraceResolutionKnownIpmcPkt = 18, 5600 bcmSwitchPktTraceResolutionUnknownIpmcPkt = 19, 5601 bcmSwitchPktTraceResolutionKnownMplsL2Pkt = 24, 5602 bcmSwitchPktTraceResolutionUnknownMplsPkt = 25, 5603 bcmSwitchPktTraceResolutionKnownMplsL3Pkt = 26, 5604 bcmSwitchPktTraceResolutionKnownMplsPkt = 28, 5605 bcmSwitchPktTraceResolutionKnownMimPkt = 32, 5606 bcmSwitchPktTraceResolutionUnknownMimPkt = 33, 5607 bcmSwitchPktTraceResolutionKnownTrillPkt = 40, 5608 bcmSwitchPktTraceResolutionUnknownTrillPkt = 41, 5609 bcmSwitchPktTraceResolutionKnownNivPkt = 48, 5610 bcmSwitchPktTraceResolutionUnknownNivPkt = 49, 5611 bcmSwitchPktTraceResolutionKnownL2GrePkt = 50, 5612 bcmSwitchPktTraceResolutionKnownVxlanPkt = 51, 5613 bcmSwitchPktTraceResolutionKnownFCOEPkt = 52, 5614 bcmSwitchPktTraceResolutionUnknownFCOEPkt = 53, 5615 bcmSwitchPktTraceResolutionCount = 54 5616 } bcm_switch_pkt_trace_resolution_t; 5617 5618 #define BCM_SWITCH_PKT_TRACE_ECMP_1 0x0001 /* level 1 ecmp hashing 5619 resolution done */ 5620 #define BCM_SWITCH_PKT_TRACE_ECMP_2 0x0002 /* level 2 ecmp hashing 5621 resolution done */ 5622 #define BCM_SWITCH_PKT_TRACE_TRUNK 0x0004 /* trunk hashing 5623 resolution done */ 5624 #define BCM_SWITCH_PKT_TRACE_FABRIC_TRUNK 0x0008 /* hg trunk hashing 5625 resolution done */ 5626 5627 /* packet hashing resolution information */ 5628 typedef struct bcm_switch_pkt_trace_hashing_info_s { 5629 uint32 flags; /* flag containing 5630 BCM_SWITCH_PKT_TRACE_ECMP/TRUNK/FABRIC_TRUNK, 5631 0 == no hashing resolution done */ 5632 bcm_if_t ecmp_1_group; /* multipath egress forwarding object. */ 5633 bcm_if_t ecmp_1_egress; /* ecmp destination interface */ 5634 bcm_if_t ecmp_2_group; /* multipath egress forwarding object. */ 5635 bcm_if_t ecmp_2_egress; /* ecmp destination interface */ 5636 bcm_gport_t trunk; /* destination trunk group */ 5637 bcm_gport_t trunk_member; /* destination member port which packet 5638 egress. */ 5639 bcm_gport_t fabric_trunk; /* destination hg trunk group */ 5640 bcm_gport_t fabric_trunk_member; /* destination member hg port which 5641 packet will egress. */ 5642 } bcm_switch_pkt_trace_hashing_info_t; 5643 5644 /* packet forward destination enums */ 5645 #define BCM_SWITCH_PKT_TRACE_FWD_DST_INVALID 0 /* Forward destination 5646 invalid. */ 5647 #define BCM_SWITCH_PKT_TRACE_FWD_DST_NH 0x0001 /* Forward destination 5648 Next hop egress 5649 object. */ 5650 #define BCM_SWITCH_PKT_TRACE_FWD_DST_L2MC 0x0002 /* Forward destination 5651 L2MC. */ 5652 #define BCM_SWITCH_PKT_TRACE_FWD_DST_IPMC 0x0004 /* Forward destination 5653 IPMC. */ 5654 #define BCM_SWITCH_PKT_TRACE_FWD_DST_DGPP 0x0008 /* Forward destination 5655 DGPP */ 5656 #define BCM_SWITCH_PKT_TRACE_FWD_DST_VLAN 0x0010 /* Forward destination 5657 VLAN */ 5658 #define BCM_SWITCH_PKT_TRACE_FWD_DST_DVP 0x0020 /* Forward destination 5659 DVP */ 5660 5661 /* packet forward destination information */ 5662 typedef struct bcm_switch_pkt_trace_fwd_dst_info_s { 5663 uint32 flags; /* flag containing 5664 BCM_SWITCH_PKT_TRACE_FWD_DST_NH/L2MC/IPMC/DGPP/DVP/VLAN/INVALID, 5665 0 == no forward destination resolution done */ 5666 bcm_if_t egress_intf; /* egress forwarding destination interface. */ 5667 bcm_multicast_t mc_group; /* Multicast group. */ 5668 bcm_gport_t port; /* DGPP - destination port. */ 5669 bcm_gport_t dvp; /* DVP - destination virtual port. */ 5670 bcm_vlan_t fwd_vlan; /* Destination forward vlan. */ 5671 } bcm_switch_pkt_trace_fwd_dst_info_t; 5672 5673 #define BCM_SWITCH_PKT_TRACE_DROP_REASON_MAX 4 /* drop reason bitmap 5674 length */ 5675 5676 /* packet trace drop reason enums */ 5677 typedef enum bcm_switch_pkt_trace_drop_reason_e { 5678 bcmSwitchPktTraceNoDrop = 0, /* No packet drop */ 5679 bcmSwitchPktTraceDropReasonInternal = 1, /* Packet dropped due to internal reason */ 5680 bcmSwitchPktTraceDropReasonMplsLabelLookupMiss = 2, /* Packet dropped due to MPLS label 5681 lookup miss */ 5682 bcmSwitchPktTraceDropReasonMplsInvalidAction = 3, /* Packet dropped due to MPLS invalid 5683 action */ 5684 bcmSwitchPktTraceDropReasonMplsInvalidPayload = 4, /* Packet dropped due to MPLS invalid 5685 payload */ 5686 bcmSwitchPktTraceDropReasonMplsTtlCheckFail = 5, /* Packet dropped due to MPLS TTL check 5687 fail */ 5688 bcmSwitchPktTraceDropReasonMplsInvalidControlWord = 6, /* Packet dropped due to MPLS invalid 5689 control word */ 5690 bcmSwitchPktTraceDropReasonL2greSipLookupMiss = 7, /* Packet dropped due to L2GRE SIP 5691 lookup miss */ 5692 bcmSwitchPktTraceDropReasonL2greVpnLookupMiss = 8, /* Packet dropped due to L2GRE VPNID 5693 lookup miss */ 5694 bcmSwitchPktTraceDropReasonL2greTunnelError = 9, /* Packet dropped due to L2GRE Tunnel 5695 Error */ 5696 bcmSwitchPktTraceDropReasonVxlanSipLookupMiss = 10, /* Packet dropped due to VXLAN SIP 5697 lookup miss */ 5698 bcmSwitchPktTraceDropReasonVxlanVnidLookupMiss = 11, /* Packet dropped due to VXLAN VN_ID 5699 lookup miss */ 5700 bcmSwitchPktTraceDropReasonVxlanTunnelError = 12, /* Packet dropped due to VXLAN Tunnel 5701 Error */ 5702 bcmSwitchPktTraceDropReasonVlanNotValid = 13, /* Packet dropped due to VLAN not valid */ 5703 bcmSwitchPktTraceDropReasonIngressPortNotInVlanMember = 14, /* Packet dropped due to ingress port 5704 not in VLAN member */ 5705 bcmSwitchPktTraceDropReasonTpidMismatch = 15, /* Packet dropped due to TPID mismatch */ 5706 bcmSwitchPktTraceDropReasonIpv4ProtocolError = 16, /* IPV4 protocol error drop */ 5707 bcmSwitchPktTraceDropReasonHigigLoopback = 17, /* Higig loopback drop */ 5708 bcmSwitchPktTraceDropReasonHigigMirrorOnly = 18, /* Higig mirror only drop */ 5709 bcmSwitchPktTraceDropReasonHigigUnknownHeader = 19, /* Higig unknown header drop */ 5710 bcmSwitchPktTraceDropReasonHigigUnknownOpcode = 20, /* Higig unknown opcode drop */ 5711 bcmSwitchPktTraceDropReasonLagFailLoopback = 21, /* LAG fail loopback drop */ 5712 bcmSwitchPktTraceDropReasonL2SrcEqualL2Dst = 22, /* Src MAC equals Dst MAC drop */ 5713 bcmSwitchPktTraceDropReasonIpv6ProtocolError = 23, /* IPV6 protocol error drop */ 5714 bcmSwitchPktTraceDropReasonNivVntagPresent = 24, /* NIV VNTAG present drop */ 5715 bcmSwitchPktTraceDropReasonNivVntagNotPresent = 25, /* NIV VNTAG not present drop */ 5716 bcmSwitchPktTraceDropReasonNivVntagFormat = 26, /* NIV VNTAG format drop */ 5717 bcmSwitchPktTraceDropReasonTrillErrorFrame = 27, /* Trill error frame drop */ 5718 bcmSwitchPktTraceDropReasonBpdu = 28, /* BPDU drop */ 5719 bcmSwitchPktTraceDropReasonBadUdpChecksum = 29, /* Bad udp checksum drop */ 5720 bcmSwitchPktTraceDropReasonTunnlDecapEcnError = 30, /* Tunnel Decap ECN error drop */ 5721 bcmSwitchPktTraceDropReasonIpv4HeaderError = 31, /* Packet dropped due to IPv4 Header 5722 error */ 5723 bcmSwitchPktTraceDropReasonIpv6HeaderError = 32, /* Packet dropped due to IPv6 Header 5724 error */ 5725 bcmSwitchPktTraceDropReasonParityError = 33, /* Packet dropped due to parity error */ 5726 bcmSwitchPktTraceDropReasonRpfCheckFail = 34, /* Packet dropped due to unicast RPF 5727 check fail */ 5728 bcmSwitchPktTraceDropReasonStageLookup = 35, /* Packet dropped on field lookup stage */ 5729 bcmSwitchPktTraceDropReasonStageIngress = 36, /* Packet dropped on field ingress stage */ 5730 bcmSwitchPktTraceDropReasonTunnelObjectValidationFail = 37, /* Packet dropped due to Tunnel 5731 termination can't be done as not all 5732 packet forwarding objects got 5733 assigned. */ 5734 bcmSwitchPktTraceDropReasonTunnelShimHeaderError = 38, /* Packet dropped due to tunnel shim 5735 header error. */ 5736 bcmSwitchPktTraceDropReasonTunnelTTLError = 39, /* Packet dropped due to tunnel TTL 5737 check fail. */ 5738 bcmSwitchPktTraceDropReasonTunnelInterfaceCheckFail = 40, /* Packet dropped due to tunnel 5739 interface check failure. */ 5740 bcmSwitchPktTraceDropReasonTunnelError = 41, /* Packet dropped due to tunnel error. */ 5741 bcmSwitchPktTraceDropReasonTunnelAdapt1LookupMiss = 42, /* Packcet dropped due to tunnel 5742 adaptation table 1 lookup miss. */ 5743 bcmSwitchPktTraceDropReasonTunnelAdapt2LookupMiss = 43, /* Packcet dropped due to tunnel 5744 adaptation table 2 lookup miss. */ 5745 bcmSwitchPktTraceDropReasonTunnelAdapt3LookupMiss = 44, /* Packcet dropped due to tunnel 5746 adaptation table 3 lookup miss. */ 5747 bcmSwitchPktTraceDropReasonTunnelAdapt4LookupMiss = 45, /* Packcet dropped due to tunnel 5748 adaptation table 4 lookup miss. */ 5749 bcmSwitchPktTraceDropReasonControlFrame = 46, /* Packcet dropped due to control frame 5750 drop. */ 5751 bcmSwitchPktTraceDropReasonHigigHdrError = 47, /* Packcet dropped due to higig header 5752 error. */ 5753 bcmSwitchPktTraceDropReasonNivDot1p = 48, /* Packcet dropped due to niv dot1p. */ 5754 bcmSwitchPktTraceDropReasonMplsGalLabel = 49, /* Packcet dropped due to mpls gal 5755 label. */ 5756 bcmSwitchPktTraceDropReasonStpNotForwarding = 50, /* Packcet dropped due to stp not 5757 forwarding. */ 5758 bcmSwitchPktTraceDropReasonMcastIndexError = 51, /* Packcet dropped due to multicast 5759 index error. */ 5760 bcmSwitchPktTraceDropReasonProtocolPkt = 52, /* Packcet dropped due to protocol pkt 5761 drop. */ 5762 bcmSwitchPktTraceDropReasonUnknownSrcMac = 53, /* Packcet dropped due to unknown src 5763 mac. */ 5764 bcmSwitchPktTraceDropReasonSrcRoute = 54, /* Packcet dropped due to source route. */ 5765 bcmSwitchPktTraceDropReasonL2SrcDiscard = 55, /* Packcet dropped due to L2 source 5766 discard. */ 5767 bcmSwitchPktTraceDropReasonL2SrcStaticMove = 56, /* Packcet dropped due to L2 source 5768 static move. */ 5769 bcmSwitchPktTraceDropReasonL2DstDiscard = 57, /* Packcet dropped due to L2 dest 5770 discard. */ 5771 bcmSwitchPktTraceDropReasonSrcMacZero = 58, /* Packcet dropped due to source mac 5772 zero. */ 5773 bcmSwitchPktTraceDropReasonL2DstMissOrPbt = 59, /* Packcet dropped due to L2 dest miss 5774 or pbt. */ 5775 bcmSwitchPktTraceDropReasonClassBasedStationMove = 60, /* Packcet dropped due to class based 5776 station move. */ 5777 bcmSwitchPktTraceDropReasonTimeSyncPkt = 61, /* Packcet dropped due to time sync pkt 5778 drop. */ 5779 bcmSwitchPktTraceDropReasonMyStation = 62, /* Packcet dropped due to my station 5780 drop. */ 5781 bcmSwitchPktTraceDropReasonL3DstDiscard = 63, /* Packcet dropped due to L3 dest 5782 discard. */ 5783 bcmSwitchPktTraceDropReasonMcastLookupMiss = 64, /* Packcet dropped due to multicast 5784 lookup miss. */ 5785 bcmSwitchPktTraceDropReasonPortTagPresentError = 65, /* Packcet dropped due to port tag 5786 present error. */ 5787 bcmSwitchPktTraceDropReasonPVlanVpEgressFilter = 66, /* Packcet dropped due to pvlan vp 5788 egress filter. */ 5789 bcmSwitchPktTraceDropReasonPortBitmapZero = 67, /* Packcet dropped due to port bitmap 5790 zero. */ 5791 bcmSwitchPktTraceDropReasonCount = 68 5792 } bcm_switch_pkt_trace_drop_reason_t; 5793 5794 #define BCM_SWITCH_PKT_TRACE_RAW_DATA_MAX 112 /* max bytes of 5795 pkt_trace_info.raw_data */ 5796 5797 /* packet trace ingress process data */ 5798 typedef struct bcm_switch_pkt_trace_info_s { 5799 bcm_switch_pkt_trace_lookup_result_t pkt_trace_lookup_status; /* packet trace lookup status set */ 5800 bcm_switch_pkt_trace_resolution_t pkt_trace_resolution; /* packet trace resolution result */ 5801 bcm_switch_pkt_trace_hashing_info_t pkt_trace_hash_info; /* packet trace hashing information */ 5802 bcm_stg_stp_t pkt_trace_stp_state; /* packet trace ingress stp state */ 5803 uint32 pkt_trace_drop_reason[BCM_SWITCH_PKT_TRACE_DROP_REASON_MAX]; /* packet trace drop reason */ 5804 uint32 dest_pipe_num; /* ingress pipeline number of the pkt 5805 trace packet */ 5806 uint32 raw_data_length; /* number of bytes returned as raw_data */ 5807 uint8 raw_data[BCM_SWITCH_PKT_TRACE_RAW_DATA_MAX]; /* packet trace process result data in 5808 raw format */ 5809 bcm_switch_pkt_trace_fwd_dst_info_t pkt_trace_fwd_dst_info; /* packet trace forward destination 5810 information */ 5811 } bcm_switch_pkt_trace_info_t; 5812 5813 #ifndef BCM_HIDE_DISPATCHABLE 5814 5815 /* Clear the SW and HW states for the packet trace */ 5816 extern int bcm_switch_pkt_trace_info_clear( 5817 int unit, 5818 bcm_port_t port); 5819 5820 /* Obtain switch results of packet inserted on the given port */ 5821 extern int bcm_switch_pkt_trace_info_get( 5822 int unit, 5823 uint32 options, 5824 uint8 port, 5825 int len, 5826 uint8 *data, 5827 bcm_switch_pkt_trace_info_t *pkt_trace_info); 5828 5829 /* Obtain switch packet trace raw data on the given port */ 5830 extern int bcm_switch_pkt_trace_raw_data_get( 5831 int unit, 5832 uint32 options, 5833 uint8 port, 5834 int len, 5835 uint8 *data, 5836 uint32 raw_data_buf_size, 5837 uint8 *raw_data, 5838 uint32 *raw_data_size); 5839 5840 #endif /* BCM_HIDE_DISPATCHABLE */ 5841 5842 /* 32bit or 48bit timestamping mode for 1588 packets */ 5843 typedef enum bcm_switch_timesync_timestamping_mode_e { 5844 bcmTimesyncTimestampingMode32bit = 0, /* 32bit timestamping mode for 1588 5845 packets */ 5846 bcmTimesyncTimestampingMode48bit = 1 /* 48bit timestamping mode for 1588 5847 packets. */ 5848 } bcm_switch_timesync_timestamping_mode_t; 5849 5850 /* 5851 * Flags for bcm_switch_lif_property_set / get - Correlates with 5852 * bcmLifPropertyOutGlobalLifRangeType 5853 */ 5854 #define BCM_SWITCH_LIF_PROPERTY_ID_RANGE_TYPE_MAPPED 0x0 /* global outlif mapped. */ 5855 #define BCM_SWITCH_LIF_PROPERTY_ID_RANGE_TYPE_DIRECT 0x1 /* global outlif direct. */ 5856 5857 /* 5858 * Flags for bcm_switch_lif_property_set / get - Correlates with 5859 * bcmLifPropertyEEDBBankPhase 5860 */ 5861 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_DYNAMIC 0x0 /* EEDB bank dynamic 5862 phase. */ 5863 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_1 0x1 /* EEDB bank phase 1. */ 5864 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_2 0x2 /* EEDB bank phase 2. */ 5865 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_3 0x4 /* EEDB bank phase 3. */ 5866 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_4 0x8 /* EEDB bank phase 4. */ 5867 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_5 0x10 /* EEDB bank phase 5. */ 5868 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_6 0x20 /* EEDB bank phase 6. */ 5869 5870 /* 5871 * Flags for bcm_switch_lif_property_set / get - Correlates with 5872 * bcmLifPropertyEEDBBankExtension 5873 */ 5874 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_ENABLE 0x0 /* EEDB bank has 5875 extension. */ 5876 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_DISABLE 0x1 /* EEDB bank doesn't have 5877 extension. */ 5878 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_DYNAMIC 0x2 /* EEDB bank extension 5879 dynamic. */ 5880 5881 /* 5882 * Flags for bcm_switch_lif_property_set / get - Correlates with 5883 * bcmLifPropertyEEDBBankExtensionType 5884 */ 5885 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_TYPE_PROTECTION 0x0 /* EEDB bank extension 5886 type protection 5887 pointer. */ 5888 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_TYPE_DATA 0x1 /* EEDB bank extension 5889 type Data. */ 5890 5891 /* 5892 * lif property configuration parameters for 5893 * bcm_switch_lif_property_set/get. 5894 */ 5895 typedef enum bcm_switch_lif_property_e { 5896 bcmLifPropertyOutGlobalLifRangeType = 0, /* per LIF range of 4K entries, specify 5897 if it's Direct or Mapped. */ 5898 bcmLifPropertyEEDBBankPhase = 1, /* per EEDB bank (0-23), specify if it's 5899 Phase. */ 5900 bcmLifPropertyEEDBBankExtension = 2, /* per EEDB bank (0-21), specify if it 5901 has an extension */ 5902 bcmLifPropertyEEDBBankExtensionType = 3 /* per EEDB bank (0-21), specify its 5903 extension type: protection-ptr or 5904 Data */ 5905 } bcm_switch_lif_property_t; 5906 5907 /* 5908 * This structure describes the fields that need to be supplies for the 5909 * configuration along with the property type. 5910 */ 5911 typedef struct bcm_switch_lif_property_config_s { 5912 uint32 key; /* property key : 0-47 in case of 5913 bcmLifPropertyOutGlobalLifRangeType or 0-23 in case of 5914 bcmLifPropertyEEDBBankPhase and 5915 bcmLifPropertyEEDBBankExtension */ 5916 uint32 value; /* property value */ 5917 } bcm_switch_lif_property_config_t; 5918 5919 #ifndef BCM_HIDE_DISPATCHABLE 5920 5921 /* 5922 * Setup the LIF property along with the desired property and the 5923 * configuration values 5924 */ 5925 extern int bcm_switch_lif_property_set( 5926 int unit, 5927 bcm_switch_lif_property_t lif_property, 5928 bcm_switch_lif_property_config_t *lif_config); 5929 5930 /* 5931 * Get the LIF property along with the desired property and the 5932 * configuration values. 5933 */ 5934 extern int bcm_switch_lif_property_get( 5935 int unit, 5936 bcm_switch_lif_property_t lif_property, 5937 bcm_switch_lif_property_config_t *lif_config); 5938 5939 #endif /* BCM_HIDE_DISPATCHABLE */ 5940 5941 /* Key to be used for switch control indexed setget. */ 5942 typedef struct bcm_switch_control_key_s { 5943 bcm_switch_control_t type; /* Switch control type */ 5944 int index; /* Switch control index */ 5945 } bcm_switch_control_key_t; 5946 5947 /* Info to be used for switch control indexed setget. */ 5948 typedef struct bcm_switch_control_info_s { 5949 int value; /* Switch control value */ 5950 } bcm_switch_control_info_t; 5951 5952 #ifndef BCM_HIDE_DISPATCHABLE 5953 5954 /* Configure device-wide operating modes according to type and index. */ 5955 extern int bcm_switch_control_indexed_set( 5956 int unit, 5957 bcm_switch_control_key_t key, 5958 bcm_switch_control_info_t value); 5959 5960 /* Configure device-wide operating modes according to type and index. */ 5961 extern int bcm_switch_control_indexed_get( 5962 int unit, 5963 bcm_switch_control_key_t key, 5964 bcm_switch_control_info_t *value); 5965 5966 #endif /* BCM_HIDE_DISPATCHABLE */ 5967 5968 /* 5969 * Specified MAC address is used as destination MAC address when BCM 5970 * SWITCH device sends OLP encapsulated pkt from specified port towards 5971 * offload processor 5972 */ 5973 typedef struct bcm_switch_olp_l2_addr_s { 5974 bcm_port_t port; /* ingress port for this entry */ 5975 bcm_mac_t mac; /* MAC address for this entry */ 5976 } bcm_switch_olp_l2_addr_t; 5977 5978 /* Initialize the structure bcm_switch_olp_l2_addr_t to default values */ 5979 extern void bcm_switch_olp_l2_addr_t_init( 5980 bcm_switch_olp_l2_addr_t *l2_addr); 5981 5982 /* Replace the matching entry */ 5983 #define BCM_SWITCH_OLP_L2_ADDR_REPLACE 0x1 5984 5985 #ifndef BCM_HIDE_DISPATCHABLE 5986 5987 /* 5988 * This API configures MAC address which is used by BCM device as 5989 * destination MAC address 5990 * of L2 header sent towards OLP from BCM device 5991 */ 5992 extern int bcm_switch_olp_l2_addr_add( 5993 int unit, 5994 uint32 options, 5995 bcm_switch_olp_l2_addr_t *l2_addr); 5996 5997 /* 5998 * This API deletes previously configured MAC address by 5999 * bcm_switch_olp_l2_addr_add 6000 */ 6001 extern int bcm_switch_olp_l2_addr_delete( 6002 int unit, 6003 bcm_switch_olp_l2_addr_t *l2_addr); 6004 6005 /* 6006 * Delete ALL previously configured MAC address of OLP by 6007 * bcm_switch_olp_l2_addr_add() API 6008 */ 6009 extern int bcm_switch_olp_l2_addr_delete_all( 6010 int unit); 6011 6012 /* 6013 * Get previously configured MAC address of OLP connected to the BCM 6014 * device port 6015 */ 6016 extern int bcm_switch_olp_l2_addr_get( 6017 int unit, 6018 bcm_switch_olp_l2_addr_t *l2_addr); 6019 6020 #endif /* BCM_HIDE_DISPATCHABLE */ 6021 6022 /* OLP MAC address traverse callback */ 6023 typedef int (*bcm_switch_olp_l2_addr_traverse_cb)( 6024 int unit, 6025 bcm_switch_olp_l2_addr_t *l2_addr, 6026 void *user_data); 6027 6028 #ifndef BCM_HIDE_DISPATCHABLE 6029 6030 /* Traverse configured OLP MAC address database */ 6031 extern int bcm_switch_olp_l2_addr_traverse( 6032 int unit, 6033 bcm_switch_olp_l2_addr_traverse_cb cb_fn, 6034 void *user_data); 6035 6036 #endif /* BCM_HIDE_DISPATCHABLE */ 6037 6038 /* AGM Forwarding group type */ 6039 typedef enum bcm_switch_agm_type_e { 6040 bcmSwitchAgmTypeTrunk = 0, /* Forwarding group is a Trunk group */ 6041 bcmSwitchAgmTypeFabricTrunk = 1, /* Forwarding group is a Higig Trunk 6042 group */ 6043 bcmSwitchAgmTypeL3Ecmp = 2, /* Forwarding group is an Ecmp Trunk 6044 group */ 6045 bcmSwitchAgmTypeL3EcmpOverlay = 3, /* Forwarding group is an Overlay Ecmp 6046 Trunk group */ 6047 bcmSwitchAgmTypeCount = 4 /* Maximum AGM type count */ 6048 } bcm_switch_agm_type_t; 6049 6050 /* AGM period interval type */ 6051 typedef enum bcm_switch_agm_period_interval_e { 6052 bcmSwitchAgmInterval1Second = 0, /* 1s interval for each monitor period */ 6053 bcmSwitchAgmInterval100MiliSecond = 1, /* 100 ms interval for each monitor 6054 period */ 6055 bcmSwtichAgmInterval10MiliSecond = 2, /* 10ms interval for each monitor period */ 6056 bcmSwitchAgmInterval1MiliSecond = 3, /* 1ms interval for each monitor period */ 6057 bcmSwitchAgmInterval100MacroSecond = 4, /* 100us interval for each monitor 6058 period */ 6059 bcmSwitchAgmIntervalCount = 5 /* Maximum AGM period interval type 6060 count */ 6061 } bcm_switch_agm_period_interval_t; 6062 6063 /* AGM monitor info */ 6064 typedef struct bcm_switch_agm_info_s { 6065 bcm_switch_agm_id_t agm_id; /* AGM monitor id */ 6066 bcm_switch_agm_type_t agm_type; /* Indicates forwarding group type using 6067 this monitor */ 6068 int num_members; /* number of members for the forwarding 6069 group */ 6070 int period_num; /* AGM period number to be monitored, 0 6071 means continue counting traffic 6072 indefinitely */ 6073 bcm_switch_agm_period_interval_t period_interval; /* interval for each period */ 6074 } bcm_switch_agm_info_t; 6075 6076 /* AGM stat info */ 6077 typedef struct bcm_switch_agm_stat_s { 6078 uint64 packets; /* accumulated packets value */ 6079 uint64 bytes; /* accumulated bytes value */ 6080 int period; /* period number used by current stat */ 6081 bcm_gport_t gport_id; /* If this AGM is for a Trunk/HigigTrunk, indicates 6082 which trunk member using the counter */ 6083 bcm_if_t intf_id; /* If this AGM is for an ECMP group, indicates which 6084 group member using the counter */ 6085 } bcm_switch_agm_stat_t; 6086 6087 /* bcm_switch_agm_traverse_cb */ 6088 typedef int (*bcm_switch_agm_traverse_cb)( 6089 int unit, 6090 bcm_switch_agm_info_t *agm_info, 6091 void *user_data); 6092 6093 /* Initialize a bcm_switch_agm_info_t structure. */ 6094 extern void bcm_switch_agm_info_t_init( 6095 bcm_switch_agm_info_t *agm_info); 6096 6097 /* Initialize a bcm_switch_agm_stat_t structure. */ 6098 extern void bcm_switch_agm_stat_t_init( 6099 bcm_switch_agm_stat_t *agm_stat); 6100 6101 #ifndef BCM_HIDE_DISPATCHABLE 6102 6103 /* Create an AGM monitor entry. */ 6104 extern int bcm_switch_agm_create( 6105 int unit, 6106 uint32 options, 6107 bcm_switch_agm_info_t *agm_info); 6108 6109 /* Enable/Disable an existing AGM monitor. */ 6110 extern int bcm_switch_agm_enable_set( 6111 int unit, 6112 bcm_switch_agm_id_t agm_id, 6113 int enable); 6114 6115 /* 6116 * Retrieve bandwidth and packet distribution information that were 6117 * collected via AGM monitor. 6118 */ 6119 extern int bcm_switch_agm_stat_get( 6120 int unit, 6121 bcm_switch_agm_id_t agm_id, 6122 int nstat, 6123 bcm_switch_agm_stat_t *stat_arr); 6124 6125 /* Clear stats of counter entries attached to the AGM monitor. */ 6126 extern int bcm_switch_agm_stat_clear( 6127 int unit, 6128 bcm_switch_agm_id_t agm_id); 6129 6130 /* Destroy an existing AGM entry. */ 6131 extern int bcm_switch_agm_destroy( 6132 int unit, 6133 bcm_switch_agm_id_t agm_id); 6134 6135 /* Retrieve a (fabric) trunk_id where the AGM entry is attached. */ 6136 extern int bcm_switch_agm_trunk_attach_get( 6137 int unit, 6138 bcm_switch_agm_id_t agm_id, 6139 bcm_trunk_t *trunk_id); 6140 6141 /* Retrieve a L3 ECMP group id where the AGM entry is attached. */ 6142 extern int bcm_switch_agm_l3_ecmp_attach_get( 6143 int unit, 6144 bcm_switch_agm_id_t agm_id, 6145 bcm_if_t *l3_ecmp_id); 6146 6147 /* Retrieve an AGM info on which the AGM entry is attached. */ 6148 extern int bcm_switch_agm_get( 6149 int unit, 6150 bcm_switch_agm_info_t *agm_info); 6151 6152 /* Enable/Disable an existing AGM monitor. */ 6153 extern int bcm_switch_agm_enable_get( 6154 int unit, 6155 bcm_switch_agm_id_t agm_id, 6156 int *enable); 6157 6158 /* 6159 * Traverse through the AGM monitor table and run callback at each valid 6160 * entry. 6161 */ 6162 extern int bcm_switch_agm_traverse( 6163 int unit, 6164 int flags, 6165 bcm_switch_agm_traverse_cb trav_fn, 6166 void *user_data); 6167 6168 #endif /* BCM_HIDE_DISPATCHABLE */ 6169 6170 /* Service type for Match */ 6171 typedef enum bcm_switch_match_service_e { 6172 bcmSwitchMatchServiceMiml = 0, /* Mac-in-Mac Lite(MiML). Required 6173 fields: inner_ethtype, outer_ethtype. */ 6174 bcmSwitchMatchServiceCustomHeader = 1, /* Custom Header. Required fields: 6175 value32, int_pri, color. */ 6176 bcmSwitchMatchServiceGtp = 2, /* GPRS Tunnel Protocol packets. 6177 Required fields: match_criteria, 6178 src_port, dst_port. */ 6179 bcmSwitchMatchServicePrpHsrSupervision = 3, /* Seamless Redundancy PRP/HSR 6180 supervision protocol. Required 6181 fields: ethtype1 (for PRP), ethtype2 6182 (for HSR), dst_mac, dst_mac_mask */ 6183 bcmSwitchMatchServiceDot1cbSupervision = 4, /* Seamless Redundancy 802.1CB 6184 supervision protocol. Required 6185 fields: ethtype1, dst_mac, 6186 dst_mac_mask */ 6187 bcmSwitchMatchServiceLinkLocal = 5, /* Link-local MAC addresses. Required 6188 fields: dst_mac, dst_mac_mask */ 6189 bcmSwitchMatchService__Count = 6 /* Must be last. */ 6190 } bcm_switch_match_service_t; 6191 6192 /* Types for bcm_switch_match_config_info_t. */ 6193 #define BCM_SWITCH_GTP_MATCH_DST_PORT 0x1 /* Match only destination 6194 port of GTP packets */ 6195 #define BCM_SWITCH_GTP_MATCH_SRC_PORT 0x2 /* Match only source port 6196 of GTP packets */ 6197 #define BCM_SWITCH_GTP_MATCH_SRC_OR_DST_PORT 0x3 /* Match source port or 6198 destination port of 6199 GTP packets */ 6200 #define BCM_SWITCH_GTP_MATCH_SRC_AND_DST_PORT 0x4 /* Match source port and 6201 destination port of 6202 GTP packets */ 6203 6204 /* 6205 * This structure describes the fields that need to be supplies for the 6206 * configuration along with the property type. 6207 */ 6208 typedef struct bcm_switch_match_config_info_s { 6209 uint32 value32; /* 32-bit data value to match */ 6210 uint16 inner_ethtype; /* 16-bit Inner Ethertype to match */ 6211 uint16 outer_ethtype; /* 16-bit Outer Ethertype to match */ 6212 uint8 int_pri; /* Internal packet priority to set when matched */ 6213 bcm_color_t color; /* Packet Color to set when matched */ 6214 uint8 match_criteria; /* Match criteria for GPRS Tunnel Protocol packets */ 6215 uint16 dst_port; /* Matched destination port */ 6216 uint16 src_port; /* Matched source port */ 6217 uint16 ethtype1; /* 16-bit Ethertype to match */ 6218 uint16 ethtype2; /* 16-bit Ethertype (alternate) to match */ 6219 bcm_mac_t dst_mac; /* Destination MAC address to match */ 6220 bcm_mac_t dst_mac_mask; /* Mask for destination MAC address */ 6221 } bcm_switch_match_config_info_t; 6222 6223 /* bcm_switch_match_config_info_t initialization */ 6224 extern void bcm_switch_match_config_info_t_init( 6225 bcm_switch_match_config_info_t *config_info); 6226 6227 #ifndef BCM_HIDE_DISPATCHABLE 6228 6229 /* 6230 * Add a match config, match_id will be returned after match config 6231 * created. 6232 */ 6233 extern int bcm_switch_match_config_add( 6234 int unit, 6235 bcm_switch_match_service_t match_service, 6236 bcm_switch_match_config_info_t *config_info, 6237 int *match_id); 6238 6239 /* Delete the match config with the given match_id. */ 6240 extern int bcm_switch_match_config_delete( 6241 int unit, 6242 bcm_switch_match_service_t match_service, 6243 int match_id); 6244 6245 /* Delete all created match config with the given match_service. */ 6246 extern int bcm_switch_match_config_delete_all( 6247 int unit, 6248 bcm_switch_match_service_t match_service); 6249 6250 /* Modify the configuration of the match with the given match_id. */ 6251 extern int bcm_switch_match_config_set( 6252 int unit, 6253 bcm_switch_match_service_t match_service, 6254 int match_id, 6255 bcm_switch_match_config_info_t *config_info); 6256 6257 /* Get the configuration of the match with the given match_id. */ 6258 extern int bcm_switch_match_config_get( 6259 int unit, 6260 bcm_switch_match_service_t match_service, 6261 int match_id, 6262 bcm_switch_match_config_info_t *config_info); 6263 6264 #endif /* BCM_HIDE_DISPATCHABLE */ 6265 6266 /* match table traverse callback. */ 6267 typedef int (*bcm_switch_match_config_traverse_cb)( 6268 int unit, 6269 int match_id, 6270 bcm_switch_match_config_info_t *config_info, 6271 void *user_data); 6272 6273 #ifndef BCM_HIDE_DISPATCHABLE 6274 6275 /* Traverse all created match config. */ 6276 extern int bcm_switch_match_config_traverse( 6277 int unit, 6278 bcm_switch_match_service_t match_service, 6279 bcm_switch_match_config_traverse_cb cb_fn, 6280 void *user_data); 6281 6282 #endif /* BCM_HIDE_DISPATCHABLE */ 6283 6284 /* Control type for match */ 6285 typedef enum bcm_switch_match_control_type_e { 6286 bcmSwitchMatchControlPortEnable = 0, /* Enable/disable the capability for 6287 match detection on a port. */ 6288 bcmSwitchMatchControlMatchMask = 1, /* Setup the mask for matching lookup. */ 6289 bcmSwitchMatchControl__Count /* Must be last. */ 6290 } bcm_switch_match_control_type_t; 6291 6292 /* 6293 * This structure describes the fields that need to be supplies for the 6294 * configuration along with the property type. 6295 */ 6296 typedef struct bcm_switch_match_control_info_s { 6297 int port_enable; /* Enable or disable (per-port) */ 6298 uint32 mask32; /* Mask value for matching (32 bits) */ 6299 } bcm_switch_match_control_info_t; 6300 6301 /* bcm_switch_match_control_info_t initialization */ 6302 extern void bcm_switch_match_control_info_t_init( 6303 bcm_switch_match_control_info_t *control_info); 6304 6305 #ifndef BCM_HIDE_DISPATCHABLE 6306 6307 /* Modify the match control information with the given control type. */ 6308 extern int bcm_switch_match_control_set( 6309 int unit, 6310 bcm_switch_match_service_t match_service, 6311 bcm_switch_match_control_type_t control_type, 6312 bcm_gport_t gport, 6313 bcm_switch_match_control_info_t *control_info); 6314 6315 /* Get the match control information with the given control type. */ 6316 extern int bcm_switch_match_control_get( 6317 int unit, 6318 bcm_switch_match_service_t match_service, 6319 bcm_switch_match_control_type_t control_type, 6320 bcm_gport_t gport, 6321 bcm_switch_match_control_info_t *control_info); 6322 6323 #endif /* BCM_HIDE_DISPATCHABLE */ 6324 6325 /* match control traverse callback. */ 6326 typedef int (*bcm_switch_match_control_traverse_cb)( 6327 int unit, 6328 bcm_switch_match_control_type_t control_type, 6329 bcm_gport_t gport, 6330 bcm_switch_match_control_info_t *control_info, 6331 void *user_data); 6332 6333 #ifndef BCM_HIDE_DISPATCHABLE 6334 6335 /* Traverse all match control information. */ 6336 extern int bcm_switch_match_control_traverse( 6337 int unit, 6338 bcm_switch_match_service_t match_service, 6339 bcm_switch_match_control_traverse_cb cb_fn, 6340 void *user_data); 6341 6342 #endif /* BCM_HIDE_DISPATCHABLE */ 6343 6344 /* Encap service type. */ 6345 typedef enum bcm_switch_encap_service_e { 6346 BCM_SWITCH_ENCAP_SERVICE_MIML = 0, /* Mac-in-Mac Lite(MiML). Required 6347 fields: egress_vlan, egress_srcmac, 6348 egress_dstmac, pkt_pri, pkt_cfi, 6349 pkt_type, iid and length. */ 6350 BCM_SWITCH_ENCAP_SERVICE_CUSTOM_HEADER = 1, /* Custom Header. Required fields: 6351 value32. */ 6352 BCM_SWITCH_ENCAP_SERVICE_COUNT /* Must be last */ 6353 } bcm_switch_encap_service_t; 6354 6355 /* 6356 * Encap info structure. 6357 * 6358 * The following parameters are required when the encap type is MIML: 6359 * egress_vlan, egress_srcmac, egress_dstmac, pkt_pri, pkt_cfi, pkt_type, 6360 * iid, length and port. 6361 * 6362 * The following parameters are required when the encap type is 6363 * CUSTOM_HEADER: value32. 6364 * 6365 * The other optional configurations depend on "flags" definition per 6366 * service: e.g. qos_map_id , higig_vlan. 6367 */ 6368 typedef struct bcm_switch_encap_info_s { 6369 bcm_switch_encap_service_t encap_service; /* Encapsulation Service Type. */ 6370 uint32 flags; /* Configuration flags. */ 6371 uint32 value32; /* 32-bit data value for encapsulation. */ 6372 int qos_map_id; /* QoS Mapped priority. */ 6373 bcm_gport_t port; /* Physical port/trunk, which is must 6374 set for MiML to indicate the 6375 destination port. */ 6376 bcm_vlan_t egress_vlan; /* VID. */ 6377 bcm_mac_t egress_srcmac; /* Source MAC address. */ 6378 bcm_mac_t egress_dstmac; /* Dest MAC address. */ 6379 uint8 pkt_pri; /* Packet priority. */ 6380 uint8 pkt_cfi; /* Packet cfi. */ 6381 uint8 pkt_type; /* MiML Packet Type. */ 6382 uint16 iid; /* MiML IID. */ 6383 uint16 length; /* MiML Length. */ 6384 bcm_vlan_t higig_vlan; /* MiML HiGig header OVID. */ 6385 } bcm_switch_encap_info_t; 6386 6387 /* Switch encap flags for Custom Header. */ 6388 #define BCM_SWITCH_ENCAP_CUSTOM_HEADER_QOS_MAP_INT_PRI (1 << 0) /* Encapsulation priority 6389 control per entry, map 6390 priority. Required 6391 fields: qos_map_id. */ 6392 6393 /* Switch encap flags for MiML. */ 6394 #define BCM_SWITCH_ENCAP_MIML_QOS_MAP_INT_PRI (1 << 0) /* Encapsulation priority 6395 control per entry, map 6396 priority. Required 6397 fields: qos_map_id. */ 6398 #define BCM_SWITCH_ENCAP_MIML_OVERRIDE_HG_HEADER_VID (1 << 1) /* Use higig_vlan value 6399 to override OVID field 6400 in HiGig header. 6401 Required fields: 6402 higig_vlan. */ 6403 6404 /* Initialize a bcm_switch_encap_info_t structure */ 6405 extern void bcm_switch_encap_info_t_init( 6406 bcm_switch_encap_info_t *encap_info); 6407 6408 #ifndef BCM_HIDE_DISPATCHABLE 6409 6410 /* 6411 * Create an encapuslation object, encap_id will be returned after encap 6412 * created. The encap_id will be used by FP. 6413 */ 6414 extern int bcm_switch_encap_create( 6415 int unit, 6416 bcm_switch_encap_info_t *encap_info, 6417 bcm_if_t *encap_id); 6418 6419 /* Destroy the encap object with the given encap_id. */ 6420 extern int bcm_switch_encap_destroy( 6421 int unit, 6422 bcm_if_t encap_id); 6423 6424 /* Destroy all encap objects. */ 6425 extern int bcm_switch_encap_destroy_all( 6426 int unit); 6427 6428 /* Modify the configuration of the encap object with the given encap_id. */ 6429 extern int bcm_switch_encap_set( 6430 int unit, 6431 bcm_if_t encap_id, 6432 bcm_switch_encap_info_t *encap_info); 6433 6434 /* Get the configuration of the encap object with the given encap_id. */ 6435 extern int bcm_switch_encap_get( 6436 int unit, 6437 bcm_if_t encap_id, 6438 bcm_switch_encap_info_t *encap_info); 6439 6440 #endif /* BCM_HIDE_DISPATCHABLE */ 6441 6442 /* Switch encap traverse callback. */ 6443 typedef int (*bcm_switch_encap_traverse_cb)( 6444 int unit, 6445 bcm_if_t encap_id, 6446 bcm_switch_encap_info_t *encap_info, 6447 void *user_data); 6448 6449 #ifndef BCM_HIDE_DISPATCHABLE 6450 6451 /* Traverse the all created encapsulation entries. */ 6452 extern int bcm_switch_encap_traverse( 6453 int unit, 6454 bcm_switch_encap_traverse_cb cb_fn, 6455 void *user_data); 6456 6457 #endif /* BCM_HIDE_DISPATCHABLE */ 6458 6459 /* Vendor Info Struct */ 6460 typedef struct bcm_switch_dram_vendor_info_s { 6461 uint32 dram_density; /* Dram Density */ 6462 uint32 fifo_depth; /* Fifo Depth */ 6463 uint32 revision_id; /* Revision Id */ 6464 uint32 manufacture_id; /* Manufacture Id */ 6465 } bcm_switch_dram_vendor_info_t; 6466 6467 #ifndef BCM_HIDE_DISPATCHABLE 6468 6469 /* Get dram vendor info */ 6470 extern int bcm_switch_dram_vendor_info_get( 6471 int unit, 6472 bcm_switch_dram_vendor_info_t *info); 6473 6474 #endif /* BCM_HIDE_DISPATCHABLE */ 6475 6476 /* Thermo sensors enum */ 6477 typedef enum bcm_switch_thermo_sensor_type_e { 6478 bcmSwitchThermoSensorInvalid = 0, 6479 bcmSwitchThermoSensorDram = 1, 6480 bcmSwitchThermoSensorSpare1 = 2, 6481 bcmSwitchThermoSensorSpare2 = 3, 6482 bcmSwitchThermoSensorCount = 4 6483 } bcm_switch_thermo_sensor_type_t; 6484 6485 /* Thermo Sensor Struct */ 6486 typedef struct bcm_switch_thermo_sensor_s { 6487 int thermo_sensor_min; /* thermo sensor minimal read */ 6488 int thermo_sensor_max; /* thermo sensor maximal read */ 6489 int thermo_sensor_current; /* thermo sensor current read */ 6490 } bcm_switch_thermo_sensor_t; 6491 6492 #ifndef BCM_HIDE_DISPATCHABLE 6493 6494 /* Get thermo sensor data */ 6495 extern int bcm_switch_thermo_sensor_read( 6496 int unit, 6497 bcm_switch_thermo_sensor_type_t sensor_type, 6498 int interface_id, 6499 bcm_switch_thermo_sensor_t *sensor_data); 6500 6501 /* 6502 * An API to get the Recommended Operational Value for all FAPs and FEs 6503 * by reading it from a register field and returning it as is. 6504 */ 6505 extern int bcm_switch_rov_get( 6506 int unit, 6507 uint32 flags, 6508 uint32 *rov); 6509 6510 #endif /* BCM_HIDE_DISPATCHABLE */ 6511 6512 #define BCM_SWITCH_SDK_TO_WARMBOOT_VERSION_GET(_major_release, _minor_release, _patch_level, _warmboot_ver) \ 6513 (_warmboot_ver) = ((((_major_release) & 0xFF) << 16 ) | (((_minor_release) & 0xFF) << 8 ) | (((_patch_level) & 0xFF))) 6514 6515 /* 6516 * Enumeration values that can be passed to API in order to set expected 6517 * protocol after MPLS bos label based on nibble value. 6518 */ 6519 typedef enum bcm_switch_mpls_next_protocol_e { 6520 bcmSwitchMplsNextProtocolNone = 0, /* Do not speculate any protocol. */ 6521 bcmSwitchMplsNextProtocolEthernet = 1, /* Speculate Ethernet after the MPLS 6522 stack. */ 6523 bcmSwitchMplsNextProtocolIpv4 = 2, /* Speculate IPv4 protocol after the 6524 MPLS stack. */ 6525 bcmSwitchMplsNextProtocolIpv6 = 3, /* Speculate IPv6 protocol after the 6526 MPLS stack. */ 6527 bcmSwitchMplsNextProtocolControlWord = 4, /* Speculate CW protocol aftre the MPLS 6528 stack. */ 6529 bcmSwitchMplsNextProtocolBierMpls = 5, /* Speculate BIER MPLS protocol after 6530 the MPLS stack */ 6531 bcmSwitchMplsNextProtocolBierTi = 6, /* Speculate TI MPLS protocol after the 6532 MPLS stack */ 6533 bcmSwitchMplsNextProtocolCount = 7 /* Should be last element in enum. */ 6534 } bcm_switch_mpls_next_protocol_t; 6535 6536 /* 6537 * LPM hit bit table ids to be used with 6538 * bcmSwitchL3LpmHitbitEnable/Disable. 6539 */ 6540 typedef enum bcm_switch_l3_lpm_hitbit_tables_e { 6541 bcmL3LpmHitbitTableIPv4UC = 0, /* IPv4 UC table */ 6542 bcmL3LpmHitbitTableIPv4MC = 1, /* IPv4 MC table. */ 6543 bcmL3LpmHitbitTableIPv6UC = 2, /* IPv6 UC table */ 6544 bcmL3LpmHitbitTableIPv6MC = 3, /* IPv6 MC table */ 6545 bcmL3LpmHitbitTableIPv4UCScale = 4, /* IPv4 UC scale table */ 6546 bcmL3LpmHitbitTableIPv6UCScale = 5, /* IPv6 UC scale table */ 6547 bcmL3LpmHitbitTableCount = 6 /* Always Last, not a usable value */ 6548 } bcm_switch_l3_lpm_hitbit_tables_t; 6549 6550 #define BCM_SWITCH_L2_FREEZE_MODE_PORT 0 /* Reconfigure CML for 6551 each port to stop 6552 hardware learning. */ 6553 #define BCM_SWITCH_L2_FREEZE_MODE_GLOBAL 0x1 /* Use global CML 6554 override setting to 6555 put all ports in 6556 forward. */ 6557 6558 /* Chip info types */ 6559 typedef enum bcm_switch_chip_info_e { 6560 bcmSwitchChipInfoIcid = 0, /* ICID - IC identification number. */ 6561 bcmSwitchChipInfoCount /* Must be last. Not a usable value. */ 6562 } bcm_switch_chip_info_t; 6563 6564 #ifndef BCM_HIDE_DISPATCHABLE 6565 6566 /* 6567 * Get the chip info of the specified type defined in the 6568 * bcm_switch_chip_info_t. If the caller-allocated data_buf is non NULL 6569 * with size specified in max_size (in bytes), the chip info will be 6570 * filled in the data_buf. If data_buf is NULL, the API returns the 6571 * required size for the chip info (in bytes) in actual_size. 6572 */ 6573 extern int bcm_switch_chip_info_get( 6574 int unit, 6575 bcm_switch_chip_info_t info_type, 6576 int max_size, 6577 void *data_buf, 6578 int *actual_size); 6579 6580 #endif /* BCM_HIDE_DISPATCHABLE */ 6581 6582 /* Block type */ 6583 typedef enum bcm_switch_block_type_e { 6584 bcmSwitchBlockTypeAll = -1, /* All block types */ 6585 bcmSwitchBlockTypeMmu = 0, /* Memory Management Unit */ 6586 bcmSwitchBlockTypeMmuGlb = 1, /* MMU(Global) */ 6587 bcmSwitchBlockTypeMmuXpe = 2, /* MMU(Crosspoint Element) */ 6588 bcmSwitchBlockTypeMmuSc = 3, /* MMU(Slice Control) */ 6589 bcmSwitchBlockTypeMmuSed = 4, /* MMU(Slice Enqueue Dequeue) */ 6590 bcmSwitchBlockTypeIpipe = 5, /* Ingress pipeline */ 6591 bcmSwitchBlockTypeEpipe = 6, /* Egress pipeline */ 6592 bcmSwitchBlockTypePgw = 7, /* Packet GateWay */ 6593 bcmSwitchBlockTypeClport = 8, /* CLPORT */ 6594 bcmSwitchBlockTypeXlport = 9, /* XLPORT */ 6595 bcmSwitchBlockTypeMacsec = 10, /* MACSEC */ 6596 bcmSwitchBlockTypeCount = 11 /* Must be last. */ 6597 } bcm_switch_block_type_t; 6598 6599 /* SER error type */ 6600 typedef enum bcm_switch_error_type_e { 6601 bcmSwitchErrorTypeAll = -1, /* All error types */ 6602 bcmSwitchErrorTypeUnknown = 0, /* Unknown error type */ 6603 bcmSwitchErrorTypeParity = 1, /* Parity error */ 6604 bcmSwitchErrorTypeEccSingleBit = 2, /* Ecc single bit error */ 6605 bcmSwitchErrorTypeEccDoubleBit = 3, /* Ecc double bit error */ 6606 bcmSwitchErrorTypeCount = 4 /* Must be last. */ 6607 } bcm_switch_error_type_t; 6608 6609 /* SER error correction type */ 6610 typedef enum bcm_switch_correction_type_e { 6611 bcmSwitchCorrectTypeAll = -1, /* All correction types */ 6612 bcmSwitchCorrectTypeNoAction = 0, /* S/W takes no action when error 6613 happens (Like some working memories) */ 6614 bcmSwitchCorrectTypeFailToCorrect = 1, /* S/W tries to correct error but fails */ 6615 bcmSwitchCorrectTypeEntryClear = 2, /* S/W writes NULL entry to clear the 6616 error */ 6617 bcmSwitchCorrectTypeCacheRestore = 3, /* Restore entry from a valid S/W cache */ 6618 bcmSwitchCorrectTypeHwCacheRestore = 4, /* Restore entry from another pipe */ 6619 bcmSwitchCorrectTypeSpecial = 5, /* Memory needs special correction 6620 handling */ 6621 bcmSwitchCorrectTypeCount = 6 /* Must be last. */ 6622 } bcm_switch_correction_type_t; 6623 6624 /* SER log info flags */ 6625 #define BCM_SWITCH_SER_LOG_MEM 0x00000001 /* Error happens on memory */ 6626 #define BCM_SWITCH_SER_LOG_REG 0x00000002 /* Error happens on register */ 6627 #define BCM_SWITCH_SER_LOG_MULTI 0x00000004 /* Parity errors detected 6628 more than once */ 6629 #define BCM_SWITCH_SER_LOG_CORRECTED 0x00000008 /* Error be corrected by S/W */ 6630 #define BCM_SWITCH_SER_LOG_ENTRY 0x00000010 /* Corrupt entry data is 6631 valid */ 6632 #define BCM_SWITCH_SER_LOG_CACHE 0x00000020 /* Cache data is valid */ 6633 6634 /* This structure describes SER log info. */ 6635 typedef struct bcm_switch_ser_log_info_s { 6636 uint32 time; /* Error detected time */ 6637 uint32 addr; /* Error happened address */ 6638 uint32 flags; /* SER log info flags */ 6639 int mem_reg; /* Error happened memory or register id */ 6640 uint8 name[BCM_MAX_MEM_REG_NAME]; /* Error happened memory or register 6641 name */ 6642 int index; /* Error happened memory/register index */ 6643 int port; /* Error happened port id */ 6644 int pipe; /* Pipe num */ 6645 int instance; /* Instance id (MMU) */ 6646 bcm_switch_block_type_t block_type; /* Block type */ 6647 bcm_switch_error_type_t error_type; /* Error type */ 6648 bcm_switch_correction_type_t correction_type; /* Correction type */ 6649 uint32 entry_data[BCM_MAX_MEM_WORDS]; /* Corrupted entry data */ 6650 uint32 cache_data[BCM_MAX_MEM_WORDS]; /* Cache entry data */ 6651 } bcm_switch_ser_log_info_t; 6652 6653 /* Initialize a bcm_switch_ser_log_info_t structure */ 6654 extern void bcm_switch_ser_log_info_t_init( 6655 bcm_switch_ser_log_info_t *info); 6656 6657 #ifndef BCM_HIDE_DISPATCHABLE 6658 6659 /* API to get SER log info. */ 6660 extern int bcm_switch_ser_log_info_get( 6661 int unit, 6662 int id, 6663 bcm_switch_ser_log_info_t *info); 6664 6665 extern int bcm_switch_control_indexed_port_set( 6666 int unit, 6667 bcm_port_t port, 6668 bcm_switch_control_key_t key, 6669 bcm_switch_control_info_t value); 6670 6671 extern int bcm_switch_control_indexed_port_get( 6672 int unit, 6673 bcm_port_t port, 6674 bcm_switch_control_key_t key, 6675 bcm_switch_control_info_t *value); 6676 6677 #endif /* BCM_HIDE_DISPATCHABLE */ 6678 6679 #define BCM_SWITCH_CONTROL_SYNC_FULL 0xFFFFFFFF /* Used as arg value in API 6680 bcm_switch_control_set, 6681 type=bcmSwitchControlSync. 6682 indicates of doing full 6683 sequence of sw state sync. 6684 meaning stop activities 6685 that may write into the sw 6686 state before the sync is 6687 made */ 6688 6689 /* SER error statistics flags */ 6690 #define BCM_SWITCH_SER_STAT_TCAM 0x00000001 /* Error happens on TCAM memories */ 6691 6692 /* This structure describes SER error statistics type. */ 6693 typedef struct bcm_switch_ser_error_stat_type_s { 6694 uint32 flags; /* SER error statistics flags */ 6695 bcm_switch_block_type_t block_type; /* Block type */ 6696 bcm_switch_error_type_t error_type; /* SER error type */ 6697 bcm_switch_correction_type_t correction_type; /* SER error correction type */ 6698 } bcm_switch_ser_error_stat_type_t; 6699 6700 /* Initialize a bcm_switch_ser_error_stat_type_t structure */ 6701 extern void bcm_switch_ser_error_stat_type_t_init( 6702 bcm_switch_ser_error_stat_type_t *stat_type); 6703 6704 #ifndef BCM_HIDE_DISPATCHABLE 6705 6706 /* API to get SER error statistics for specified statistics type. */ 6707 extern int bcm_switch_ser_error_stat_get( 6708 int unit, 6709 bcm_switch_ser_error_stat_type_t stat_type, 6710 uint32 *value); 6711 6712 /* API to clear SER error statistics for specified statistics type. */ 6713 extern int bcm_switch_ser_error_stat_clear( 6714 int unit, 6715 bcm_switch_ser_error_stat_type_t stat_type); 6716 6717 #endif /* BCM_HIDE_DISPATCHABLE */ 6718 6719 #define BCM_SWITCH_MAX_NUM_OPAQUE_TAGS 2 /* Maximum number of 6720 opaque tags supported 6721 by the device. */ 6722 #define BCM_SWITCH_OPAQUE_TAG_SIZE_4_BYTES 0x1 /* Tag size of 4 bytes */ 6723 #define BCM_SWITCH_OPAQUE_TAG_SIZE_8_BYTES 0x2 /* Tag size of 8 bytes */ 6724 6725 /* Opaque tag parameters. */ 6726 typedef struct bcm_switch_opaque_tag_params_s { 6727 uint16 ethertype; /* Ethertype to match when parsing for opaque tag */ 6728 uint8 tag_size; /* Size of opaque tag (Only 1, 2 are valid values) */ 6729 uint8 tag_type; /* User specified 2-bit value (0 is invalid value) */ 6730 uint8 valid; /* Make config active(1) or not actrive in h/w(0) */ 6731 } bcm_switch_opaque_tag_params_t; 6732 6733 /* Initialize bcm_switch_opaque_tag_params_t structure */ 6734 extern void bcm_switch_opaque_tag_config_t_init( 6735 bcm_switch_opaque_tag_params_t *info); 6736 6737 #ifndef BCM_HIDE_DISPATCHABLE 6738 6739 /* Program either one of the two set of opaque tag registers. */ 6740 extern int bcm_switch_opaque_tag_config_set( 6741 int unit, 6742 int index, 6743 bcm_switch_opaque_tag_params_t *opaque_tag_config); 6744 6745 /* Read opaque tag parameters programmed for a given set. */ 6746 extern int bcm_switch_opaque_tag_config_get( 6747 int unit, 6748 int index, 6749 bcm_switch_opaque_tag_params_t *opaque_tag_config); 6750 6751 #endif /* BCM_HIDE_DISPATCHABLE */ 6752 6753 #define BCM_SWITCH_OBM_PRIORITY_LOSSY_LOW 0 /* This obm_priority is 6754 mapped to OBM buffer 6755 partition Lossy Low */ 6756 #define BCM_SWITCH_OBM_PRIORITY_LOSSY_HIGH 1 /* This obm_priority is 6757 mapped to OBM buffer 6758 partition Lossy High */ 6759 #define BCM_SWITCH_OBM_PRIORITY_LOSSLESS0 2 /* This obm_priority is 6760 mapped to OBM buffer 6761 partition Lossless0 */ 6762 #define BCM_SWITCH_OBM_PRIORITY_LOSSLESS1 3 /* This obm_priority is 6763 mapped to OBM buffer 6764 partition Lossless1 */ 6765 #define BCM_SWITCH_OBM_PRIORITY_EXPRESS 4 /* This obm_priority is 6766 mapped to OBM buffer 6767 partition Express */ 6768 6769 /* OBM classifier code point */ 6770 typedef int bcm_switch_obm_code_point_t; 6771 6772 /* OBM classifier ob_priority */ 6773 typedef int bcm_switch_obm_priority_t; 6774 6775 /* OBM classifier types */ 6776 typedef enum bcm_switch_obm_classifier_type_e { 6777 bcmSwitchObmClassifierDscp = 0, /* OBM classifier of type DSCP */ 6778 bcmSwitchObmClassifierMpls = 1, /* OBM classifier of type MPLS */ 6779 bcmSwitchObmClassifierEtag = 2, /* OBM classifier of type ETAG */ 6780 bcmSwitchObmClassifierVlan = 3, /* OBM classifier of type VLAN */ 6781 bcmSwitchObmClassifierHigig2 = 4, /* OBM classifier of type Higig2 */ 6782 bcmSwitchObmClassifierField = 5 /* OBM classifier of type FIELD */ 6783 } bcm_switch_obm_classifier_type_t; 6784 6785 /* OBM classifier parameters */ 6786 typedef struct bcm_switch_obm_classifier_s { 6787 uint32 flags; /* For future use */ 6788 bcm_mac_t obm_destination_mac; /* Destination MAC address */ 6789 bcm_mac_t obm_destination_mac_mask; /* Destination MAC address mask */ 6790 uint16 obm_ethertype; /* Ethertype to be matched */ 6791 uint16 obm_ethertype_mask; /* Mask used in matching Ethertype */ 6792 bcm_switch_obm_code_point_t obm_code_point; /* Oversubscription Buffer Manager 6793 classifier's code point.This field if 6794 overloaded for providing DSCP, MPLS 6795 traffic class, ETAG priority code 6796 point, VLAN priority code point or 6797 Higig2 traffic class depending on the 6798 type of classifier. This will be 6799 mapped to obm_priority value. */ 6800 bcm_switch_obm_priority_t obm_priority; /* Oversubscription Buffer Manager 6801 classifier's priority for given 6802 obm_code_point. */ 6803 } bcm_switch_obm_classifier_t; 6804 6805 /* Initialize an OBM classifier structure. */ 6806 extern void bcm_switch_obm_classifier_t_init( 6807 bcm_switch_obm_classifier_t *switch_obm_classifier); 6808 6809 #ifndef BCM_HIDE_DISPATCHABLE 6810 6811 /* 6812 * Set the mapping from code_point, Dest MAC and Ethertype to a 6813 * obm_priority based on OBM classifier type.For FIELD classifier always 6814 * first entry is used. 6815 */ 6816 extern int bcm_switch_obm_classifier_mapping_set( 6817 int unit, 6818 bcm_gport_t gport, 6819 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 6820 bcm_switch_obm_classifier_t *switch_obm_classifier); 6821 6822 /* 6823 * Get the mapping from code_point, Dest MAC and Ethertype to a 6824 * obm_priority based on OBM classifier type. 6825 */ 6826 extern int bcm_switch_obm_classifier_mapping_get( 6827 int unit, 6828 bcm_gport_t gport, 6829 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 6830 bcm_switch_obm_classifier_t *switch_obm_classifier); 6831 6832 /* 6833 * Set multiple mapping from code_point, Dest MAC and Ethertype to a 6834 * obm_priority based on OBM classifier type. 6835 */ 6836 extern int bcm_switch_obm_classifier_mapping_multi_set( 6837 int unit, 6838 bcm_gport_t gport, 6839 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 6840 int array_count, 6841 bcm_switch_obm_classifier_t *switch_obm_classifier); 6842 6843 /* 6844 * Get multiple mapping from port, Dest MAC and Ethertype to a 6845 * obm_priority based on OBM classifier type. 6846 */ 6847 extern int bcm_switch_obm_classifier_mapping_multi_get( 6848 int unit, 6849 bcm_gport_t port, 6850 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 6851 int array_max, 6852 bcm_switch_obm_classifier_t *switch_obm_classifier, 6853 int *array_count); 6854 6855 #endif /* BCM_HIDE_DISPATCHABLE */ 6856 6857 /* Switch Dos Attack Events. */ 6858 typedef enum bcm_switch_dosattack_event_e { 6859 bcmSwitchDosAttackEventMACSAEqualMACDA = 0, /* Dos Attack Event when Source MAC is 6860 same as Destination MAC. */ 6861 bcmSwitchDosAttackEventIpFragOffset = 1, /* Dos Attack Event when Protocol field 6862 Offset in IPv4 or IPv6 header is 6863 equal to 1. */ 6864 bcmSwitchDosAttackEventV6Type0RoutingHdr = 2, /* Dos Attack Event when Type0 Routing 6865 Extension header is present in IPv6. */ 6866 bcmSwitchDosAttackEventV6NonLastFragLT1280 = 3, /* Dos Attack Event when non-last 6867 fragment of IPv6 Packet is less than 6868 1280 bytes. */ 6869 bcmSwitchDosAttackEventTcpIpFirstFragSmall = 4, /* Dos Attack Event when First Fragment 6870 of IP payload with TCP is smaller 6871 than configured value. */ 6872 bcmSwitchDosAttackEventTcpOffset = 5, /* Dos Attack Event when L4 is TCP and 6873 IP protocol offset is equal to 1. */ 6874 bcmSwitchDosAttackEventSynFrag = 6, /* Dos Attack Event when TCP SYN Packet 6875 with Source Port 0-1023 for non-first 6876 fragments tcp/udp port values are 6877 always zero. */ 6878 bcmSwitchDosAttackEventFlagZeroSeqZero = 7, /* Dos Attack Event when TCP Packets 6879 with control flags == 0 and sequence 6880 number == 0. */ 6881 bcmSwitchDosAttackEventTcpFlagsFUP = 8, /* Dos Attack Event when TCP Packets 6882 with FIN,URG & PSH bits set & 6883 sequence number == 0. */ 6884 bcmSwitchDosAttackEventTcpFlagsSF = 9, /* Dos Attack Event when TCP packets 6885 with SYN and FIN set. */ 6886 bcmSwitchDosAttackEventTcpPortsEqual = 10, /* Dos Attack Event when TCP Source and 6887 Destination ports are same. */ 6888 bcmSwitchDosAttackEventUdpPortsEqual = 11, /* Dos Attack Event when UDP Source and 6889 Destination ports are same. */ 6890 bcmSwitchDosAttackEventIcmp = 12, /* Dos Attack Event when ICMP V4 and V6 6891 ping packet with payload bigger than 6892 configured value. */ 6893 bcmSwitchDosAttackEventIcmpFragments = 13, /* Dos Attack Event when IPv4/IPv6 6894 fragmented ICMP packets. */ 6895 bcmSwitchDosAttackEventTcpFlagsSR = 14, /* Dos Attack Event when TCP packets 6896 with SYN and RST set. */ 6897 bcmSwitchDosAttackEventTcpFlagsSynFirstFrag = 15, /* Dos Attack Event when TCP with SYN 6898 set and first fragment of fragmented 6899 IP packet. */ 6900 bcmSwitchDosAttackEventTcpFlagsFinNoAck = 16, /* Dos Attack Event when TCP packet with 6901 FIN set but ACK not set. */ 6902 bcmSwitchDosAttackEventTcpFlagsRstNoAck = 17, /* Dos Attack Event when TCP packet with 6903 RST set but ACK not set. */ 6904 bcmSwitchDosAttackEventTcpFlagsNoSFRA = 18, /* Dos Attack Event when TCP packet with 6905 SYN, FIN, RST and ACK not set. */ 6906 bcmSwitchDosAttackEventTcpDstPortZero = 19, /* Dos Attack Event when TCP packet with 6907 Destination port equals to 0. */ 6908 bcmSwitchDosAttackEventTcpSrcPortZero = 20, /* Dos Attack Event when TCP packet with 6909 Source port equals to 0. */ 6910 bcmSwitchDosAttackEventTcpIpDstBcast = 21, /* Dos Attack Event when TCP Packet with 6911 Destination IP Broadcast. */ 6912 bcmSwitchDosAttackEventTcpFlagsZero = 22, /* Dos Attack Event when configured TCP 6913 flags is zero. */ 6914 bcmSwitchDosAttackEventTcpFlagsResvdNonZero = 23, /* Dos Attack Event when configured 6915 Reserved flags is non-zero. */ 6916 bcmSwitchDosAttackEventTcpFlagsAck = 24, /* Dos Attack Event when TCP flag ACK is 6917 set and Acknowledge number is zero. */ 6918 bcmSwitchDosAttackEventTcpFlagsUrgNoUrgPtr = 25, /* Dos Attack Event when TCP Flag URG 6919 set and Urgent pointer is zero. */ 6920 bcmSwitchDosAttackEventTcpFlagsNoUrgWithUrgPtr = 26, /* Dos Attack Event when TCP Flag URG 6921 not set and Urgent pointer is not 6922 zero. */ 6923 bcmSwitchDosAttackEventTcpFlagsSynOption = 27, /* Dos Attack Event when TCP Flag SYN 6924 set and Option same as configured 6925 value. */ 6926 bcmSwitchDosAttackEventCount = 28 /* Must be last. Not a usable value. */ 6927 } bcm_switch_dosattack_event_t; 6928 6929 #define BCM_SWITCH_DOSATTACK_EVENT_STR \ 6930 { \ 6931 "MACSAEqualMACDA", \ 6932 "IpFragOffset", \ 6933 "V6Type0RoutingHdr", \ 6934 "V6NonLastFragLT1280", \ 6935 "TcpIpFirstFragSmall", \ 6936 "TcpOffset", \ 6937 "SynFrag", \ 6938 "FlagZeroSeqZero", \ 6939 "TcpFlagsFUP", \ 6940 "TcpFlagsSF", \ 6941 "TcpPortsEqual", \ 6942 "UdpPortsEqual", \ 6943 "Icmp", \ 6944 "IcmpFragments", \ 6945 "TcpFlagsSR", \ 6946 "TcpFlagsSynFirstFrag", \ 6947 "TcpFlagsFinNoAck", \ 6948 "TcpFlagsRstNoAck", \ 6949 "TcpFlagsNoSFRA", \ 6950 "TcpDstPortZero", \ 6951 "TcpSrcPortZero", \ 6952 "TcpIpDstBcast", \ 6953 "TcpFlagsZero", \ 6954 "TcpFlagsResvdNonZero", \ 6955 "TcpFlagsAck", \ 6956 "TcpFlagsUrgNoUrgPtr", \ 6957 "TcpFlagsNoUrgWithUrgPtr", \ 6958 "TcpFlagsSynOption" \ 6959 } 6960 6961 /* Switch Dos Attack Events Flags. */ 6962 #define BCM_SWITCH_DOSATTACK_OUTER_HDR (1 << 0) /* Dos Attack events 6963 origin in outer header 6964 of packet. */ 6965 #define BCM_SWITCH_DOSATTACK_INNER_HDR (1 << 1) /* Dos Attack events 6966 origin in inner header 6967 of packet. */ 6968 #define BCM_SWITCH_DOSATTACK_FLOWTRACKER_PRESEL (1 << 2) /* Dos Attack events used 6969 for qualifying in 6970 presel of flowtracker 6971 FP stage. */ 6972 6973 #ifndef BCM_HIDE_DISPATCHABLE 6974 6975 /* Get Switch dos attack events configured for tracking purpose. */ 6976 extern int bcm_switch_dosattack_event_get( 6977 int unit, 6978 uint32 flags, 6979 bcm_switch_dosattack_event_t event, 6980 int *arg); 6981 6982 /* Configure Switch dos attack events for tracking purpose. */ 6983 extern int bcm_switch_dosattack_event_set( 6984 int unit, 6985 uint32 flags, 6986 bcm_switch_dosattack_event_t event, 6987 int arg); 6988 6989 #endif /* BCM_HIDE_DISPATCHABLE */ 6990 6991 /* Tunnel UDP src port select */ 6992 typedef enum bcm_switch_tunnel_udp_src_port_select_e { 6993 bcmSwitchTunnelUdpSrcPortStatic = 0, /* Use static value configured in tunnel 6994 initiator */ 6995 bcmSwitchTunnelUdpSrcPortHashEntropy = 1, /* Calculate hash entropy to range [0, 6996 65535] as src port */ 6997 bcmSwitchTunnelUdpSrcPortHashEntropyPrivate = 2, /* Calculate hash entropy to private 6998 range [49152, 65535] as src port */ 6999 bcmSwitchTunnelUdpSrcPortCount = 3 /* Must be last */ 7000 } bcm_switch_tunnel_udp_src_port_select_t; 7001 7002 #define BCM_MAX_NOF_SEGMENTS 16 /* Max number of segment for kbp 7003 master key. */ 7004 #define BCM_ALIGN_MASTER_KEY 80 /* Align kbp master key to 80b. */ 7005 #define BCM_SEGMENT_NAME_SIZE 20 /* Segment name size. */ 7006 7007 /* Kbp master key segment info. */ 7008 typedef struct bcm_switch_kbp_master_key_segment_info_s { 7009 uint8 *segment_name; /* segment name */ 7010 int segment_size_bits; /* segment size in bits */ 7011 int segment_type; /* segment type */ 7012 } bcm_switch_kbp_master_key_segment_info_t; 7013 7014 /* Switch kbp app type info structure. */ 7015 typedef struct bcm_switch_kbp_apptype_info_s { 7016 int *inst_p; /* kbp_instruction_t* instruction 7017 pointer */ 7018 int *fwd_db; /* struct kbp_db* fwd db */ 7019 int *rpf_db; /* struct kbp_db* rpf db */ 7020 int *dummy_db; /* struct kbp_db* dummy db */ 7021 int *fwd_ad_db; /* struct kbp_ad_db* ad fwd db */ 7022 int *rpf_ad_db; /* struct kbp_ad_db* ad rpf db */ 7023 int *dummy_ad_db; /* struct kbp_ad_db* ad dummy db */ 7024 bcm_switch_kbp_master_key_segment_info_t master_key_segment[BCM_MAX_NOF_SEGMENTS]; /* master key fields segments */ 7025 int total_segments_size; /* total segments size in bits */ 7026 int opcode; /* opcode */ 7027 int ltr_index; /* ltr_index */ 7028 int master_key_nof_segments; /* master key fields number of segments */ 7029 int is_valid; /* is apptype valid */ 7030 } bcm_switch_kbp_apptype_info_t; 7031 7032 #define BCM_KBP_MAX_NOF_THREADS 2 /* KBP MAX NOF threads. */ 7033 7034 /* Switch kbp info structure. */ 7035 typedef struct bcm_switch_kbp_info_s { 7036 int *device_p; /* struct kbp_device* device_p */ 7037 int *thread_p[BCM_KBP_MAX_NOF_THREADS]; /* kbp thread pointers */ 7038 } bcm_switch_kbp_info_t; 7039 7040 #ifndef BCM_HIDE_DISPATCHABLE 7041 7042 /* Get kbp pointer from SDK. */ 7043 extern int bcm_switch_kbp_info_get( 7044 int unit, 7045 bcm_core_t core, 7046 bcm_switch_kbp_info_t *kbp_info); 7047 7048 /* Get apptype info per apptype. */ 7049 extern int bcm_switch_kbp_apptype_info_get( 7050 int unit, 7051 bcm_core_t core, 7052 bcm_field_AppType_t apptype, 7053 bcm_switch_kbp_apptype_info_t *apptype_info); 7054 7055 #endif /* BCM_HIDE_DISPATCHABLE */ 7056 7057 #define BCM_SWITCH_RECORD_MODE_LSB 0 /* Use the LSB bits of the layer 7058 record for load balancing key 7059 generation. */ 7060 #define BCM_SWITCH_RECORD_MODE_MSB 1 /* Use the MSB bits of the layer 7061 record for load balancing key 7062 generation. */ 7063 7064 /* Callback function used to power down the DRAM */ 7065 typedef void (*bcm_switch_dram_power_down_callback_t)( 7066 int unit, 7067 uint32 flags, 7068 void *userdata); 7069 7070 #ifndef BCM_HIDE_DISPATCHABLE 7071 7072 /* Register a DRAM power down callback routine */ 7073 extern int bcm_switch_dram_power_down_cb_register( 7074 int unit, 7075 uint32 flags, 7076 bcm_switch_dram_power_down_callback_t callback, 7077 void *userdata); 7078 7079 /* Unregister a DRAM power down callback routine */ 7080 extern int bcm_switch_dram_power_down_cb_unregister( 7081 int unit, 7082 bcm_switch_dram_power_down_callback_t callback, 7083 void *userdata); 7084 7085 /* API activates DRAM power down procedure */ 7086 extern int bcm_switch_dram_power_down( 7087 int unit, 7088 uint32 flags); 7089 7090 /* 7091 * DRAM partial init (after device power up) when powering back up the 7092 * DRAM after it was powered down 7093 */ 7094 extern int bcm_switch_dram_init( 7095 int unit, 7096 uint32 flags); 7097 7098 /* API enable/disable redirecting traffic to DRAM */ 7099 extern int bcm_switch_dram_traffic_enable_set( 7100 int unit, 7101 uint32 flags, 7102 uint32 enable); 7103 7104 #endif /* BCM_HIDE_DISPATCHABLE */ 7105 7106 /* Allocate encap for reflector with ID */ 7107 #define BCM_SWITCH_REFELCTOR_WITH_ID 0x1 7108 7109 /* Replace reflector encap data */ 7110 #define BCM_SWITCH_REFELCTOR_REPLACE 0x2 7111 7112 /* Reflector types */ 7113 typedef enum bcm_switch_reflector_type_e { 7114 bcmSwitchReflectorUc = 0, /* L2 or L3 unicast reflector */ 7115 bcmSwitchReflectorL2McExternal = 1, /* L2 external multicast reflector */ 7116 bcmSwitchReflectorL2McInternal = 2, /* L2 external multicast reflector */ 7117 bcmSwitchReflectorTwampIp4 = 4, /* TWAMP reflector over IPv4 */ 7118 bcmSwitchReflectorTwampIp6 = 8 /* TWAMP reflector over IPv6 */ 7119 } bcm_switch_reflector_type_t; 7120 7121 /* Reflector encap data */ 7122 typedef struct bcm_switch_reflector_data_s { 7123 bcm_switch_reflector_type_t type; /* reflector type */ 7124 bcm_mac_t mc_reflector_my_mac; /* Source MAC address stamped on the 7125 response packet. Relevant for MC 7126 reflector only. */ 7127 uint32 error_estimate; /* ERROR_ESTIMATE */ 7128 bcm_if_t next_encap_id; /* Next pointer encap id for the RCH 7129 Ethernet encapsulation */ 7130 } bcm_switch_reflector_data_t; 7131 7132 /* data bcm_switch_reflector_data_t initialization */ 7133 extern void bcm_switch_reflector_data_t_init( 7134 bcm_switch_reflector_data_t *data); 7135 7136 /* Callback function for reflector traverse */ 7137 typedef void (*bcm_switch_reflector_traverse_cb)( 7138 int unit, 7139 bcm_if_t encap_id, 7140 void *user_data); 7141 7142 #ifndef BCM_HIDE_DISPATCHABLE 7143 7144 /* Create encap for reflector */ 7145 extern int bcm_switch_reflector_create( 7146 int unit, 7147 uint32 flags, 7148 bcm_if_t *encap_id, 7149 bcm_switch_reflector_data_t *data); 7150 7151 /* Get reflector data */ 7152 extern int bcm_switch_reflector_get( 7153 int unit, 7154 uint32 flags, 7155 bcm_if_t encap_id, 7156 bcm_switch_reflector_data_t *data); 7157 7158 /* Destroy reflector encap */ 7159 extern int bcm_switch_reflector_destroy( 7160 int unit, 7161 uint32 flags, 7162 bcm_if_t encap_id); 7163 7164 /* Traverse reflector encap */ 7165 extern int bcm_switch_reflector_traverse( 7166 int unit, 7167 uint32 flags, 7168 bcm_switch_reflector_traverse_cb traverse_cb, 7169 void *user_data); 7170 7171 #endif /* BCM_HIDE_DISPATCHABLE */ 7172 7173 /* Concat header type to master key in ELK */ 7174 typedef enum bcm_switch_concat_header_e { 7175 bcmSwitchConcatHeaderNone = 0, /* No extra header concate to master key 7176 in ELK. */ 7177 bcmSwitchConcatHeaderForwarding = 1, /* Concate forwarding header to master 7178 key in ELK. */ 7179 bcmSwitchConcatHeaderNextForwarding = 2, /* Concate header following the 7180 forwarding header to master key in 7181 ELK. */ 7182 bcmSwitchConcatHeader__Count /* Must be last. */ 7183 } bcm_switch_concat_header_t; 7184 7185 /* Callback function used for device hard reset */ 7186 typedef void (*bcm_switch_hard_reset_callback_t)( 7187 int unit, 7188 uint32 flags, 7189 void *userdata); 7190 7191 #ifndef BCM_HIDE_DISPATCHABLE 7192 7193 /* Register a device hard reset callback routine */ 7194 extern int bcm_switch_hard_reset_cb_register( 7195 int unit, 7196 uint32 flags, 7197 bcm_switch_hard_reset_callback_t callback, 7198 void *userdata); 7199 7200 /* Unregister a device hard reset callback routine */ 7201 extern int bcm_switch_hard_reset_cb_unregister( 7202 int unit, 7203 bcm_switch_hard_reset_callback_t callback, 7204 void *userdata); 7205 7206 #endif /* BCM_HIDE_DISPATCHABLE */ 7207 7208 #define BCM_SWITCH_FEC_PROPERTY_1ST_HIERARCHY 0x1 /* First FEC Hierarchy. */ 7209 #define BCM_SWITCH_FEC_PROPERTY_2ND_HIERARCHY 0x2 /* Second FEC Hierarchy. */ 7210 #define BCM_SWITCH_FEC_PROPERTY_3RD_HIERARCHY 0x4 /* Third FEC Hierarchy. */ 7211 7212 /* 7213 * This structure contains the first and last FEC ID in the FEC IDs range 7214 * of the given hierarchy. 7215 */ 7216 typedef struct bcm_switch_fec_property_config_s { 7217 uint32 flags; /* BCM_SWITCH_FEC_PROPERTY_XXX */ 7218 int start; /* Start ID */ 7219 int end; /* End ID */ 7220 } bcm_switch_fec_property_config_t; 7221 7222 #ifndef BCM_HIDE_DISPATCHABLE 7223 7224 /* Get the available FEC IDs for each FEC hierarchy. */ 7225 extern int bcm_switch_fec_property_get( 7226 int unit, 7227 bcm_switch_fec_property_config_t *fec_config); 7228 7229 #endif /* BCM_HIDE_DISPATCHABLE */ 7230 7231 #endif /* __BCM_SWITCH_H__ */