switch.h (504572B)
1 /* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 7 * 8 */ 9 10 #ifndef __BCM_SWITCH_H__ 11 #define __BCM_SWITCH_H__ 12 13 #include <bcm/port.h> 14 #include <bcm/error.h> 15 #include <bcm/udf.h> 16 #include <bcm/field.h> 17 #include <bcm/stg.h> 18 #include <bcm/types.h> 19 #include <shared/switch.h> 20 21 /* Switch controls. */ 22 typedef enum bcm_switch_control_e { 23 bcmSwitchHgHdrErrToCpu = 0, /* HiGig Header Error to CPU. */ 24 bcmSwitchClassTagPacketsToCpu = 1, /* HG2 packets with a PPD header of 1. */ 25 bcmSwitchIpmcTunnelToCpu = 2, /* IPMC tunnel packet to CPU. */ 26 bcmSwitchStationMoveOverLearnLimitToCpu = 3, /* Station movement over MAC learn limit 27 to CPU. */ 28 bcmSwitchMcastUnknownErrToCpu = 4, /* MC unknown Index Error to CPU. */ 29 bcmSwitchLearnLimitPriority = 5, /* Priority for MAC limit exceeds to 30 CPU. */ 31 bcmSwitchControlOpcodePriority = 6, /* Control Op Code priority. */ 32 bcmSwitchCpuProtoBpduPriority = 7, /* Priority for BPDUs to CPU. */ 33 bcmSwitchCpuProtoArpPriority = 8, /* Priority for ARP/ND packets to CPU. */ 34 bcmSwitchCpuProtoIgmpPriority = 9, /* Priority for IGMP/MLD packets to CPU. */ 35 bcmSwitchCpuProtoDhcpPriority = 10, /* Priority for DHCP packets to CPU. */ 36 bcmSwitchCpuProtoIpmcReservedPriority = 11, /* Priority for IPv4/IPv6 multicast 37 packets to CPU. */ 38 bcmSwitchCpuProtoIpOptionsPriority = 12, /* Priority for IPv4/IPv6 packets with 39 options or IPv6 packets with 0 len. 40 Payload/jumbo option to CPU. */ 41 bcmSwitchCpuProtoExceptionsPriority = 13, /* Priority for IPv4/IPv6 packets with 42 TTL=1 to CPU. */ 43 bcmSwitchCpuProtocolPrio = 14, /* Priority used for BPDUs to CPU. */ 44 bcmSwitchCpuUnknownPrio = 15, /* Priority for unknown SA or DA to CPU. */ 45 bcmSwitchCpuSamplePrio = 16, /* Priority for sFlow sample to CPU. */ 46 bcmSwitchCpuDefaultPrio = 17, /* Priority for all other packets to 47 CPU. */ 48 bcmSwitchL2StaticMoveToCpu = 18, /* Port movement of static L2 addr. */ 49 bcmSwitchUnknownIpmcToCpu = 19, /* Send unknown IP multicasts to CPU. */ 50 bcmSwitchUnknownMcastToCpu = 20, /* Send unknown multicasts to CPU. */ 51 bcmSwitchUnknownUcastToCpu = 21, /* Send DLF packets to CPU. */ 52 bcmSwitchNonIpL3ErrToCpu = 22, /* Non-IP packets w/DA of my router MAC 53 to CPU. */ 54 bcmSwitchL3HeaderErrToCpu = 23, /* Invalid checksum, TTL 0, etc. */ 55 bcmSwitchUnknownVlanToCpu = 24, /* Packet VLAN not in VLAN table. */ 56 bcmSwitchUnknownL3SrcToCpu = 25, /* SIP not found in L3 table. */ 57 bcmSwitchUnknownL3DestToCpu = 26, /* DIP not found in L3/LPM tables. */ 58 bcmSwitchIpmcPortMissToCpu = 27, /* Incoming port not in IPMC entry. */ 59 bcmSwitchIpmcErrorToCpu = 28, /* IPMC pkt has header err or TTL=0. */ 60 bcmSwitchVCLabelMissToCpu = 29, /* Send VC mismatch packet to CPU. */ 61 bcmSwitchSourceRouteToCpu = 30, /* Send multicast SA packet to CPU. */ 62 bcmSwitchSampleIngressRandomSeed = 31, /* SFlow ingress RNG seed. */ 63 bcmSwitchSampleEgressRandomSeed = 32, /* SFlow egress RNG seed. */ 64 bcmSwitchCpuFpCopyPrio = 33, /* Priority used for FP copy to CPU. */ 65 bcmSwitchCpuIcmpRedirectPrio = 34, /* Priority for ICMP to CPU. */ 66 bcmSwitchCpuMtuFailPrio = 35, /* Priority for MTU failure to CPU. */ 67 bcmSwitchCpuMirrorPrio = 36, /* Priority for packets mirrored to CPU. */ 68 bcmSwitchCpuLookupFpCopyPrio = 37, /* Priority for Lookup FP copy to CPU. */ 69 bcmSwitchL2NonStaticMoveToCpu = 38, /* L2 w/non-static addr to CPU. */ 70 bcmSwitchV6L3ErrToCpu = 39, /* Invalid IPv6 packets to CPU. */ 71 bcmSwitchV6L3DstMissToCpu = 40, /* IPv6 unknown dest packets to CPU. */ 72 bcmSwitchV6L3LocalLinkDrop = 41, /* Drop IPv6 with link local sources. */ 73 bcmSwitchV4L3ErrToCpu = 42, /* Invalid IPv6 packets to CPU. */ 74 bcmSwitchV4L3DstMissToCpu = 43, /* IPv6 unknown dest packets to CPU. */ 75 bcmSwitchTunnelErrToCpu = 44, /* Invalid tunnel packets to CPU. */ 76 bcmSwitchMartianAddrToCpu = 45, /* Martian packets to CPU. */ 77 bcmSwitchMartianAddr = 46, /* Enable/Disable Martian packet check. */ 78 bcmSwitchL3UcTtlErrToCpu = 47, /* L3 unicast w/invalid TTL to CPU. */ 79 bcmSwitchL3SlowpathToCpu = 48, /* Slowpath packets to CPU. */ 80 bcmSwitchIpmcTtlErrToCpu = 49, /* IPMC packets w/invalid TTL to CPU. */ 81 bcmSwitchDosAttackToCpu = 50, /* Denial of Service attacks to CPU. */ 82 bcmSwitchDosAttackSipEqualDip = 51, /* Enable SIP=DIP checking. */ 83 bcmSwitchDosAttackMinTcpHdrSize = 52, /* Header length for min TCP header 84 checking. */ 85 bcmSwitchDosAttackV4FirstFrag = 53, /* Enable IPv4 First Frag checking. */ 86 bcmSwitchDosAttackTcpFlags = 54, /* Enable TCP flag checking. */ 87 bcmSwitchDosAttackL4Port = 55, /* Enable L4 port number checking. */ 88 bcmSwitchDosAttackTcpFrag = 56, /* Enable TCP fragment checking. */ 89 bcmSwitchDosAttackIcmp = 57, /* Enable ICMP size checK for v4 and v6. */ 90 bcmSwitchDosAttackIcmpV4 = 58, /* Enable ICMPv4 size check. */ 91 bcmSwitchDosAttackIcmpV6 = 59, /* Enable ICMPv6 size check. */ 92 bcmSwitchDosAttackIcmpPktOversize = 60, /* Max pkt size for ICMP size check. */ 93 bcmSwitchDosAttackMACSAEqualMACDA = 61, /* MACSA == MACDA check. */ 94 bcmSwitchDosAttackIcmpV6PingSize = 62, /* Max pkt size for v6 ping check. */ 95 bcmSwitchDosAttackIcmpFragments = 63, /* Fragmented ICMP packets check. */ 96 bcmSwitchDosAttackTcpOffset = 64, /* TCP Header offset equals to 1 check. */ 97 bcmSwitchDosAttackUdpPortsEqual = 65, /* UDP packets where SPORT = DROP. */ 98 bcmSwitchDosAttackTcpPortsEqual = 66, /* TCP packets where SPORT = DROP. */ 99 bcmSwitchDosAttackTcpFlagsSF = 67, /* TCP packets with SYN & FIN bits 100 enabled. */ 101 bcmSwitchDosAttackTcpFlagsFUP = 68, /* TCP packets with FIN, URG, PSH bits 102 set and sequence number equals 0. */ 103 bcmSwitchDosAttackTcpHdrPartial = 69, /* TCP packets with not full TCP header. */ 104 bcmSwitchDosAttackPingFlood = 70, /* Enable ping flood checking. */ 105 bcmSwitchDosAttackSynFlood = 71, /* Enable SYN flood checking. */ 106 bcmSwitchDosAttackTcpSmurf = 72, /* Enable TCP smurf checking. */ 107 bcmSwitchDosAttackTcpXMas = 73, /* SeqNum, Fin,Urg,Psh equal 0. */ 108 bcmSwitchDosAttackL3Header = 74, /* Ipv4/6 header length checks. */ 109 bcmSwitchIcmpRedirectToCpu = 75, /* ICMP redirect To CPU. */ 110 bcmSwitchMplsSequenceErrToCpu = 76, /* MPLS Sequence number check failure to 111 CPU. */ 112 bcmSwitchMplsLabelMissToCpu = 77, /* MPLS label lookup miss to CPU. */ 113 bcmSwitchMplsTtlErrToCpu = 78, /* MPLS Header TTL used value is 0 or 1. */ 114 bcmSwitchMplsInvalidL3PayloadToCpu = 79, /* MPLS L3 payload invalid. */ 115 bcmSwitchMplsInvalidActionToCpu = 80, /* Invalid action / comnination of 116 actions. */ 117 bcmSwitchSharedVlanMismatchToCpu = 81, /* Private VLAN VID mismatch. */ 118 bcmSwitchL3SrcUrpfErrToCpu = 82, /* Invalid L3 uRPF SIP to CPU. */ 119 bcmSwitchGreKeyToVlan = 83, /* Enable system configuration for GRE 120 enhancement (including GRE.key). */ 121 bcmSwitchArpReplyToCpu = 84, /* ARP replies to CPU. */ 122 bcmSwitchArpReplyDrop = 85, /* ARP replies dropped. */ 123 bcmSwitchArpRequestToCpu = 86, /* ARP requests to CPU. */ 124 bcmSwitchArpRequestDrop = 87, /* ARP requests dropped. */ 125 bcmSwitchArpReplyMyStationL2ToCPU = 88, /* Only APR reply packets with My MAC 126 should be sent to CPU */ 127 bcmSwitchNdPktToCpu = 89, /* ND packets to CPU. */ 128 bcmSwitchNdPktDrop = 90, /* ND packets dropped. */ 129 bcmSwitchMcastFloodBlocking = 91, /* Current PFM rule is applied when 130 IGMP/MLD/MC/ReservedMC packet flooded 131 to VLAN. */ 132 bcmSwitchIgmpPktToCpu = 92, /* IGMP packets to CPU. */ 133 bcmSwitchIgmpPktDrop = 93, /* IGMP packets dropped. */ 134 bcmSwitchDhcpPktToCpu = 94, /* DHCP packets to CPU. */ 135 bcmSwitchDhcpPktDrop = 95, /* DHCP packets dropped. */ 136 bcmSwitchMldPktToCpu = 96, /* MLD packets to CPU. */ 137 bcmSwitchMldPktDrop = 97, /* MLD packets dropped. */ 138 bcmSwitchV4ResvdMcPktToCpu = 98, /* IPv4 reserved MC packets to CPU. */ 139 bcmSwitchV4ResvdMcPktDrop = 99, /* IPv4 reserved MC packets dropped. */ 140 bcmSwitchV4ResvdMcPktFlood = 100, /* IPv4 reserved MC packets flooded to 141 VLAN. */ 142 bcmSwitchV6ResvdMcPktToCpu = 101, /* IPv6 reserved MC packets to CPU. */ 143 bcmSwitchV6ResvdMcPktDrop = 102, /* IPv6 reserved MC packets dropped. */ 144 bcmSwitchV6ResvdMcPktFlood = 103, /* IPv6 reserved MC packets flooded to 145 VLAN. */ 146 bcmSwitchIgmpReportLeaveToCpu = 104, /* IGMP report/leave messages to CPU. */ 147 bcmSwitchIgmpReportLeaveDrop = 105, /* IGMP report/leave messages dropped. */ 148 bcmSwitchIgmpReportLeaveFlood = 106, /* IGMP report/leave messages flooded to 149 VLAN. */ 150 bcmSwitchIgmpQueryToCpu = 107, /* IGMP query messages to CPU. */ 151 bcmSwitchIgmpQueryDrop = 108, /* IGMP query messages dropped. */ 152 bcmSwitchIgmpQueryFlood = 109, /* IGMP query messages flooded to VLAN. */ 153 bcmSwitchIgmpUnknownToCpu = 110, /* IGMP unknown messages to CPU. */ 154 bcmSwitchIgmpUnknownDrop = 111, /* IGMP unknown messages dropped. */ 155 bcmSwitchIgmpUnknownFlood = 112, /* IGMP unknown messages flooded to 156 VLAN. */ 157 bcmSwitchMldReportDoneToCpu = 113, /* MLD report/done messages to CPU. */ 158 bcmSwitchMldReportDoneDrop = 114, /* MLD report/done messages dropped. */ 159 bcmSwitchMldReportDoneFlood = 115, /* MLD report/done messages flooded to 160 VLAN. */ 161 bcmSwitchMldQueryToCpu = 116, /* MLD query messages to CPU. */ 162 bcmSwitchMldQueryDrop = 117, /* MLD query messages dropped. */ 163 bcmSwitchMldQueryFlood = 118, /* MLD query messages flooded to VLAN. */ 164 bcmSwitchIpmcV4RouterDiscoveryToCpu = 119, /* IPv4 Router discovery messages to 165 CPU. */ 166 bcmSwitchIpmcV4RouterDiscoveryDrop = 120, /* IPv4 Router discovery messages 167 dropped. */ 168 bcmSwitchIpmcV4RouterDiscoveryFlood = 121, /* IPv4 Router discovery messages 169 flooded to VLAN. */ 170 bcmSwitchIpmcV6RouterDiscoveryToCpu = 122, /* IPv6 Router discovery messages to 171 CPU. */ 172 bcmSwitchIpmcV6RouterDiscoveryDrop = 123, /* IPv6 Router discovery messages 173 dropped. */ 174 bcmSwitchIpmcV6RouterDiscoveryFlood = 124, /* IPv6 Router discovery messages 175 flooded to VLAN. */ 176 bcmSwitchDirectedMirroring = 125, /* Enable directed mirroring mode. */ 177 bcmSwitchPktAge = 126, /* Chip-wide packet age time, msec. */ 178 bcmSwitchMcastFloodDefault = 127, /* VLAN Multicast flood control. */ 179 bcmSwitchParityErrorToCpu = 128, /* Lookup parity error. */ 180 bcmSwitchL3MtuFailToCpu = 129, /* L3 MTU check failure. */ 181 bcmSwitchMeterAdjust = 130, /* Meter/Rate control with overhead on 182 wire accounted for per packet. */ 183 bcmSwitchCounterAdjust = 131, /* Counter compensation. */ 184 bcmSwitchMeterAdjustInterframeGap = 132, /* Indicate the size in Bytes of the IFG 185 in Header-compensation for policer. */ 186 bcmSwitchHashL2 = 133, /* Hash Select for L2. */ 187 bcmSwitchHashL3 = 134, /* Hash Select for L3. */ 188 bcmSwitchHashMultipath = 135, /* Hash Select for Multipath. */ 189 bcmSwitchHashControl = 136, /* Hash Control of fields. */ 190 bcmSwitchFieldMultipathHashSelect = 137, /* Hash Select for FP 191 bcmFieldActionL3Switch. */ 192 bcmSwitchFieldMultipathHashSeed = 138, /* Hash Seed for FP 193 bcmFieldActionL3Switch. */ 194 bcmSwitchMirrorStackMode = 139, /* Select BCM56504, 5670 or 5675-A0 195 style stacking. */ 196 bcmSwitchMirrorSrcModCheck = 140, /* Source modid check in BCM56504 style 197 of mirroring. */ 198 bcmSwitchMirrorUnmarked = 141, /* Send mirror packets as simple 199 unicast. */ 200 bcmSwitchDestPortHGTrunk = 142, /* Enable to use dest port in HiGig 201 trunking. */ 202 bcmSwitchColorSelect = 143, /* Choose color selection source. */ 203 bcmSwitchModuleLoopback = 144, /* Allow local module ingress. */ 204 bcmSwitchSrcModBlockMirrorCopy = 145, /* Source modid blocking for BCM5670 205 compatibility. */ 206 bcmSwitchSrcModBlockMirrorOnly = 146, /* Source modid blocking for BCM5675-A0 207 compatibility. */ 208 bcmSwitchHashSeed0 = 147, /* BCM56700/56800/56580 hash seeds. */ 209 bcmSwitchHashSeed1 = 148, /* For enhanced hashing algoithm. */ 210 bcmSwitchHashField0PreProcessEnable = 149, /* Enable pre-processing for enhanced 211 hash mode 0. */ 212 bcmSwitchHashField1PreProcessEnable = 150, /* Enable pre-processing for enhanced 213 hash mode 1. */ 214 bcmSwitchHashField0Config = 151, /* BCM56700/56800/56580 enhanced hash 215 mode 0 config. */ 216 bcmSwitchHashField0Config1 = 152, /* BCM56840 enhanced hash mode 0 config 217 1. */ 218 bcmSwitchHashField1Config = 153, /* BCM56700/56800/56580 enhanced hash 219 mode 1 config. */ 220 bcmSwitchHashField1Config1 = 154, /* BCM56840 enhanced hash mode 1 config 221 1. */ 222 bcmSwitchMacroFlowHashFieldConfig = 155, /* Enhanced hash macro flow mode config. */ 223 bcmSwitchHashSelectControl = 156, /* BCM56700/56800/56580 field selection 224 control. */ 225 bcmSwitchHashIP4Field0 = 157, /* BCM56700/56800/56580 enhanced hash 226 field. */ 227 bcmSwitchHashIP4Field1 = 158, /* Selections for IPv4 packets. */ 228 bcmSwitchHashIP4TcpUdpField0 = 159, /* BCM56840 enhanced hash field. */ 229 bcmSwitchHashIP4TcpUdpField1 = 160, /* Selections for IPv4 TCP/UDP packets. */ 230 bcmSwitchHashIP4TcpUdpPortsEqualField0 = 161, /* BCM56840 enhanced hash field. */ 231 bcmSwitchHashIP4TcpUdpPortsEqualField1 = 162, /* Selections for IPv4 TCP/UDP packets 232 with source L4 port equals to 233 destination L4 port. */ 234 bcmSwitchHashIP6Field0 = 163, /* BCM56700/56800/56580 enhanced hash 235 field. */ 236 bcmSwitchHashIP6Field1 = 164, /* Selections for IPv6 packets. */ 237 bcmSwitchHashIP6TcpUdpField0 = 165, /* BCM56840 enhanced hash field. */ 238 bcmSwitchHashIP6TcpUdpField1 = 166, /* Selections for IPv6 TCP/UDP packets. */ 239 bcmSwitchHashIP6TcpUdpPortsEqualField0 = 167, /* BCM56840 enhanced hash field. */ 240 bcmSwitchHashIP6TcpUdpPortsEqualField1 = 168, /* Selections for IPv6 TCP/UDP packets 241 with source L4 port equals to 242 destination L4 port. */ 243 bcmSwitchHashL2Field0 = 169, /* BCM56700/56800/56580 enhanced hash 244 field. */ 245 bcmSwitchHashL2Field1 = 170, /* Selections for L2 packets. */ 246 bcmSwitchHashMPLSField0 = 171, /* BCM56700/56800/56580 enhanced hash 247 field. */ 248 bcmSwitchHashMPLSField1 = 172, /* Selections for MPLS packets. */ 249 bcmSwitchHashFCOEField0 = 173, /* BCM56840 enhanced hash field. */ 250 bcmSwitchHashFCOEField1 = 174, /* Selections for FCOE packets. */ 251 bcmSwitchHashL2TrillField0 = 175, /* BCM56840 enhanced hash field. */ 252 bcmSwitchHashL2TrillField1 = 176, /* Selections for L2 payload Trill 253 packets. */ 254 bcmSwitchHashL3TrillField0 = 177, /* BCM56840 enhanced hash field. */ 255 bcmSwitchHashL3TrillField1 = 178, /* Selections for L3 payload Trill 256 packets. */ 257 bcmSwitchHashTrillTunnelField0 = 179, /* BCM56840 enhanced hash field. */ 258 bcmSwitchHashTrillTunnelField1 = 180, /* Selections Trill tunnel packets. */ 259 bcmSwitchHashHG2UnknownField0 = 181, /* BCM56700/56800/56580 enhanced hash 260 field. */ 261 bcmSwitchHashHG2UnknownField1 = 182, /* Selections for HiGig2 packets. */ 262 bcmSwitchHashField0OverlayCntagRpidEnable = 183, /* Selections for CNTAG, RPID fields. */ 263 bcmSwitchHashField1OverlayCntagRpidEnable = 184, /* Selections for CNTAG, RPID fields. */ 264 bcmSwitchHashHg2PktFieldsEnable = 185, /* Selections for HiGig2 packets. */ 265 bcmSwitchHashField0Ip6FlowLabel = 186, /* Selections for IPV6 packets. */ 266 bcmSwitchHashField1Ip6FlowLabel = 187, /* Selections for IPV6 packets. */ 267 bcmSwitchHashUseFlowSelTrunkUc = 188, /* Enable/Disable flow based hashing for 268 Trunk. */ 269 bcmSwitchHashUseFlowSelEcmp = 189, /* Enable/Disable flow based hashing for 270 ECMP. */ 271 bcmSwitchTrunkHashSet0UnicastOffset = 190, /* BCM56700/56800/56580 enhanced hash 272 bits. */ 273 bcmSwitchTrunkHashSet1UnicastOffset = 191, /* Selections for unicast trunking. */ 274 bcmSwitchTrunkHashSet0NonUnicastOffset = 192, /* BCM56700/56800/56580 enhanced hash 275 bits. */ 276 bcmSwitchTrunkHashSet1NonUnicastOffset = 193, /* Selections for non-unicast trunking. */ 277 bcmSwitchTrunkFailoverHashOffset = 194, /* Enhanced hash selections for trunk 278 failover. */ 279 bcmSwitchFabricTrunkHashSet0UnicastOffset = 195, /* BCM56700/56800/56580 enhanced hash 280 bits. */ 281 bcmSwitchFabricTrunkHashSet1UnicastOffset = 196, /* Selections for unicast fabric 282 trunking. */ 283 bcmSwitchFabricTrunkHashSet0NonUnicastOffset = 197, /* BCM56700/56800/56580 enhanced hash 284 bits. */ 285 bcmSwitchFabricTrunkHashSet1NonUnicastOffset = 198, /* Selections for non-unicast fabric 286 trunking. */ 287 bcmSwitchFabricTrunkFailoverHashOffset = 199, /* Enhanced hash selections for fabric 288 trunk failover. */ 289 bcmSwitchFabricTrunkDynamicHashOffset = 200, /* Enhanced hash selections for fabric 290 trunk dynamic load balancing. */ 291 bcmSwitchLoadBalanceHashSet0UnicastOffset = 201, /* BCM56700/56800/56580 enhanced hash 292 bits. */ 293 bcmSwitchLoadBalanceHashSet1UnicastOffset = 202, /* Selections for unicast load 294 balancing. */ 295 bcmSwitchLoadBalanceHashSet0NonUnicastOffset = 203, /* BCM56700/56800/56580 enhanced hash 296 bits. */ 297 bcmSwitchLoadBalanceHashSet1NonUnicastOffset = 204, /* Selections for non-unicast load 298 balancing. */ 299 bcmSwitchMacroFlowHashMinOffset = 205, /* Minimum offset value to be used in 300 offset table. */ 301 bcmSwitchMacroFlowHashMaxOffset = 206, /* Maximum offset value to be used in 302 offset table. */ 303 bcmSwitchMacroFlowHashStrideOffset = 207, /* Offset increment to be used for 304 populating offset table. */ 305 bcmSwitchUniformUcastTrunkDistribution = 208, /* Uniform unicast trunk distribution on 306 trunk with non power of 2 trunk 307 ports. */ 308 bcmSwitchUniformFabricTrunkDistribution = 209, /* Uniform HiGig trunk distribution on 309 trunk with non power of 2 trunk 310 ports. */ 311 bcmSwitchECMPHashSet0Offset = 210, /* BCM56700/56800/56580 enhanced hash 312 bits. */ 313 bcmSwitchECMPHashSet1Offset = 211, /* Selections for ECMP. */ 314 bcmSwitchCpuToCpuEnable = 212, /* Enable copying packets from CMIC to 315 CPU. */ 316 bcmSwitchIgmpUcastEnable = 213, /* Enable unicast packets with IGMP 317 payload. */ 318 bcmSwitchMldUcastEnable = 214, /* Enable unicast packets with MLD 319 payload. */ 320 bcmSwitchIgmpReservedMcastEnable = 215, /* IGMP packets with reserved MC address 321 threated as IGMP. */ 322 bcmSwitchMldReservedMcastEnable = 216, /* MLD packets with reserved MC address 323 threated as MLD. */ 324 bcmSwitchMldDirectAttachedOnly = 217, /* Stricter checks for MLD packets are 325 enable. */ 326 bcmSwitchPortEgressBlockL2 = 218, /* Apply egress mask port blocking on L2 327 traffic. */ 328 bcmSwitchPortEgressBlockL3 = 219, /* Apply egress mask port blocking on L3 329 traffic. */ 330 bcmSwitchBpduInvalidVlanDrop = 220, /* BPDU packets are dropped upon invalid 331 VLAN. */ 332 bcmSwitchMirrorInvalidVlanDrop = 221, /* Mirror-to-port packets are dropped 333 upon invalid VLAN. */ 334 bcmSwitchMirrorPktChecksEnable = 222, /* Enable/Disable all packet checks for 335 mirror packets. */ 336 bcmSwitchRemoteLearnTrust = 223, /* Honor the DONOT_LEARN bit in HiGig 337 header. */ 338 bcmSwitchSourceMacZeroDrop = 224, /* Packets with MACSA of all zeros are 339 dropped. */ 340 bcmSwitchIpmcGroupMtu = 225, /* For ingress MTU check for all IPMC 341 groups. */ 342 bcmSwitchModuleType = 226, /* Set Switch module type. */ 343 bcmSwitchDeprecated227 = 227, /* Deprecated. Do not use. */ 344 bcmSwitchDeprecated228 = 228, /* Deprecated. Do not use. */ 345 bcmSwitchDeprecated229 = 229, /* Deprecated. Do not use. */ 346 bcmSwitchL3EgressMode = 230, /* Enable advanced egress management. */ 347 bcmSwitchL3DefipMultipathCountUpdate = 231, /* Enable control to update L3-DEFIP 348 ECMP-COUNT */ 349 bcmSwitchL3IngressMode = 232, /* Enable advanced Ingress-interface 350 management. */ 351 bcmSwitchL3HostAsRouteReturnValue = 233, /* Enable control to return value, when 352 prefix added to Route table during 353 L3HostAdd. */ 354 bcmSwitchSourceModBlockUcast = 234, /* Apply source modid block on unicast 355 packets only. */ 356 bcmSwitchSourceModBlockControlOpcode = 235, /* Apply source modid block on system 357 control packets. */ 358 bcmSwitchEgressBlockUcast = 236, /* Apply egress mask on unicast packets 359 only. */ 360 bcmSwitchAlternateStoreForward = 237, /* Alternate Store and Forward. */ 361 bcmSwitchWarmBoot = 238, /* Set Warm boot state. */ 362 bcmSwitchStableSelect = 239, /* Select the storage (or stable) 363 location for Level 2 Warm Boot. */ 364 bcmSwitchStableSize = 240, /* Select the storage (or stable) size 365 (bytes) for Level 2 Warm Boot. */ 366 bcmSwitchStableUsed = 241, /* Query the storage (or stable) usage 367 (bytes) for Level 2 Warm Boot. */ 368 bcmSwitchStableConsistent = 242, /* Query the storage (or stable) for 369 whether state is believed consistent 370 with hardware (API completed prior to 371 warmboot). */ 372 bcmSwitchControlSync = 243, /* Force a sync of the Level 2 warm boot 373 state on demand. */ 374 bcmSwitchControlAutoSync = 244, /* Perform a sync of the Level 2 warm 375 boot state after every API. */ 376 bcmSwitchCallbackAbortOnError = 245, /* Abort if a callback returns an error 377 code. */ 378 bcmSwitchUnknownIpmcAsMcast = 246, /* Threat unknown IPMC as L2 Mcast. */ 379 bcmSwitchTunnelUnknownIpmcDrop = 247, /* Drop unknown IPMC for incomming 380 tunnel. */ 381 bcmSwitchDhcpLearn = 248, /* Do not learn MACSA of DHCP packet. */ 382 bcmSwitchIpmcTtl1ToCpu = 249, /* Copy L3 Mcast with TTL 1 to CPU. */ 383 bcmSwitchL3UcastTtl1ToCpu = 250, /* Copy L3 Ucast with TTL 1 to CPU. */ 384 bcmSwitchDosAttackFlagZeroSeqZero = 251, /* Null scan. */ 385 bcmSwitchHgHdrExtLengthEnable = 252, /* Use HiGig+ HDR_EXT_LEN field. */ 386 bcmSwitchDosAttackSynFrag = 253, /* Drop TCP SYN packet with source port 387 0-1023 for the first segment. */ 388 bcmSwitchIp4McastL2DestCheck = 254, /* Check MACDA and IPv4 DIP address 389 match. */ 390 bcmSwitchIp6McastL2DestCheck = 255, /* Check MACDA and IPv6 DIP address 391 match. */ 392 bcmSwitchL3InterfaceUrpfEnable = 256, /* Enable URPF per VLAN/L3-IIF for 393 unicast packets. */ 394 bcmSwitchL3TunnelUrpfMode = 257, /* RPF mode for unicast tunneled 395 packets. */ 396 bcmSwitchL3TunnelUrpfDefaultRoute = 258, /* Enable URPF default gateway check for 397 unicast tunneled packets. */ 398 bcmSwitchL3UrpfFailToCpu = 259, /* Enable trap URPF fail packets to CPU. */ 399 bcmSwitchL3UrpfRouteEnable = 260, /* Enable route lookup for URPF check. */ 400 bcmSwitchL3UrpfRouteEnableExternal = 261, /* Enable External(only) route lookup 401 for URPF check. */ 402 bcmSwitchL3UrpfMode = 262, /* Port rpf mode for unicast packets. */ 403 bcmSwitchL3UrpfDefaultRoute = 263, /* Enable URPF default gateway check. */ 404 bcmSwitchIngressRateLimitIncludeIFG = 264, /* Add bytes to ingress rate limiting 405 for IFG. */ 406 bcmSwitchRateLimitLinear = 265, /* Use linear limits for shaping and 407 egress metering. */ 408 bcmSwitchHashL2Dual = 266, /* Secondary Hash Select for L2. */ 409 bcmSwitchHashL3Dual = 267, /* Secondary Hash Select for L3. */ 410 bcmSwitchHashDualMoveDepth = 268, /* Maximum moves in dual hash mode. */ 411 bcmSwitchHashDualMoveDepthL2 = 269, /* Maximum moves in dual hash mode for 412 L2 tables. */ 413 bcmSwitchHashDualMoveDepthL3 = 270, /* Maximum moves in dual hash mode for 414 L3 tables. */ 415 bcmSwitchHashDualMoveDepthVlan = 271, /* Maximum moves in dual hash mode for 416 vlan tables. */ 417 bcmSwitchHashDualMoveDepthMpls = 272, /* Maximum moves in dual hash mode for 418 mpls tables. */ 419 bcmSwitchHashDualMoveDepthEgressVlan = 273, /* Maximum moves in dual hash mode for 420 egress vlan tables. */ 421 bcmSwitchHashDualMoveDepthWlanPort = 274, /* Maximum moves in dual hash mode for 422 WLAN port table. */ 423 bcmSwitchHashDualMoveDepthWlanClient = 275, /* Maximum moves in dual hash mode for 424 WLAN client table. */ 425 bcmSwitchHashMultiMoveDepth = 276, /* Maximum moves in multi hash mode. */ 426 bcmSwitchHashMultiMoveDepthL2 = 277, /* Maximum moves in multi hash mode for 427 L2 tables. */ 428 bcmSwitchHashMultiMoveDepthL3 = 278, /* Maximum moves in multi hash mode for 429 L3 tables. */ 430 bcmSwitchHashMultiMoveDepthVlan = 279, /* Maximum moves in multi hash mode for 431 vlan tables. */ 432 bcmSwitchHashMultiMoveDepthMpls = 280, /* Maximum moves in multi hash mode for 433 mpls tables. */ 434 bcmSwitchHashMultiMoveDepthEgressVlan = 281, /* Maximum moves in multi hash mode for 435 egress vlan tables. */ 436 bcmSwitchHashL2DualLeastFull = 282, /* Use least full bank in dual hash L2 437 tables. */ 438 bcmSwitchHashL3DualLeastFull = 283, /* Use least full bank in dual hash L3 439 tables. */ 440 bcmSwitchHashMPLSDualLeastFull = 284, /* Use least full bank in dual hash MPLS 441 tables. */ 442 bcmSwitchSharedVlanEnable = 285, /* Enable shared vlan. */ 443 bcmSwitchSharedVlanL2McastEnable = 286, /* Use shared vlan for L2 mcast pkt. */ 444 bcmSwitchIpmcReplicationSharing = 287, /* IPMC replication uses lists. */ 445 bcmSwitchIpmcReplicationAvailabilityThreshold = 288, /* IPMC replication table available 446 space threshold. */ 447 bcmSwitchVrfMax = 289, /* Maximum VRF ID for the device. */ 448 bcmSwitchFailoverStackTrunk = 290, /* Trunk failover support for Stack 449 ports. */ 450 bcmSwitchFailoverEtherTrunk = 291, /* Trunk failover support for Ether 451 ports. */ 452 bcmSwitchClassBasedMoveFailPktToCpu = 292, /* Class based check fail pkt to CPU. */ 453 bcmSwitchClassBasedMoveFailPktDrop = 293, /* Drop class based check fail pkt. */ 454 bcmSwitchHgHdrMcastFlood = 294, /* Flood control value in HiGig Header. */ 455 bcmSwitchHgHdrMcastFloodOverride = 295, /* Use flood control value in HiGig 456 header. */ 457 bcmSwitchHgHdrIpMcastFlood = 296, /* IPMC flood control value in HiGig 458 header. */ 459 bcmSwitchHgHdrIpMcastFloodOverride = 297, /* Use IPMC flood ctrl value in HiGig 460 header. */ 461 bcmSwitchSTPBlockedFieldBypass = 298, /* Disable FP when STP state is blocked. */ 462 bcmSwitchL2PortBlocking = 299, /* Enable selective port blocking per 463 MAC address. */ 464 bcmSwitchHashIpfixIngress = 300, /* Hash Select for Ingress IPFIX. */ 465 bcmSwitchHashIpfixIngressDual = 301, /* Secondary Hash Select for Ingress 466 IPFIX. */ 467 bcmSwitchHashIpfixEgress = 302, /* Hash Select for Egress IPFIX. */ 468 bcmSwitchHashIpfixEgressDual = 303, /* Secondary Hash Select for Egress 469 IPFIX. */ 470 bcmSwitchHashMPLS = 304, /* Hash Select for MPLS entry. */ 471 bcmSwitchHashMPLSDual = 305, /* Secondary Hash Select for MPLS entry. */ 472 bcmSwitchForceForwardFabricTrunk = 306, /* Fabric trunk resolution in force 473 forward mode. */ 474 bcmSwitchUseGport = 307, /* Enable GPORT format for 475 destination/source representation. */ 476 bcmSwitchHgHdrMcastVlanRange = 308, /* HIGIG2 broadcast index range */ 477 bcmSwitchHgHdrMcastL2Range = 309, /* HIGIG2 multicast index range */ 478 bcmSwitchHgHdrMcastL3Range = 310, /* HIGIG2 IPMC index range */ 479 bcmSwitchMcastL2Range = 311, /* Multicast index range */ 480 bcmSwitchMcastL3Range = 312, /* IPMC index range */ 481 bcmSwitchHashWlanPort = 313, /* Hash Select for Wlan SVP entry. */ 482 bcmSwitchHashWlanPortDual = 314, /* Secondary hash Select for Wlan SVP 483 entry. */ 484 bcmSwitchHashWlanClient = 315, /* Hash select for Wlan client database 485 entry */ 486 bcmSwitchHashWlanClientDual = 316, /* Secondary hash select for Wlan client 487 database entry */ 488 bcmSwitchWlanClientAuthorizeAll = 317, /* Authorize all wlan clients, disable 489 wlan client lookup */ 490 bcmSwitchWlanClientUnauthToCpu = 318, /* Unauthorized WLAN client's packets to 491 CPU. */ 492 bcmSwitchWlanClientRoamedOutErrorToCpu = 319, /* Roamed out WLAN client's packets to 493 CPU. */ 494 bcmSwitchWlanClientSrcMacMissToCpu = 320, /* WLAN client with source MAC miss: 495 packets to CPU. */ 496 bcmSwitchWlanClientDstMacMissToCpu = 321, /* WLAN client with destination MAC 497 miss: packets to CPU. */ 498 bcmSwitchOamHeaderErrorToCpu = 322, /* Packets with error in the OAM header 499 to CPU. */ 500 bcmSwitchOamUnknownVersionToCpu = 323, /* Packets with unknown OAM version to 501 CPU. */ 502 bcmSwitchOamUnknownVersionDrop = 324, /* Packets with unknown OAM version 503 Dropped. */ 504 bcmSwitchOamUnexpectedPktToCpu = 325, /* OAM Packets with unexpected MDL to 505 CPU. */ 506 bcmSwitchOamCcmToCpu = 326, /* CCM with unexpected MEPID or Interval 507 to CPU. */ 508 bcmSwitchOamXconCcmToCpu = 327, /* CCM with low MDL or unexpected MAID 509 to CPU. */ 510 bcmSwitchOamXconOtherToCpu = 328, /* Other than CCM OAM PDUs with low MDL 511 to CPU. */ 512 bcmSwitchL3SrcBindFailToCpu = 329, /* Packets with L3 source bind table 513 miss to CPU. */ 514 bcmSwitchTunnelIp4IdShared = 330, /* Share the IPv4 ID space across 515 tunnels. */ 516 bcmSwitchHashRegexAction = 331, /* Hash Select for Regex Action entries. */ 517 bcmSwitchHashRegexActionDual = 332, /* Secondary hash Select for Regex 518 Action entries. */ 519 bcmSwitchDeprecated333 = 333, /* Deprecated. Do not use. */ 520 bcmSwitchCpuCopyDestination = 334, /* Destination for CPU bound packets. */ 521 bcmSwitchCpuProtoTimeSyncPrio = 335, /* Priority for Time-Sync packets to 522 CPU. */ 523 bcmSwitchCpuProtoMmrpPrio = 336, /* Priority for MMRP packets to CPU. */ 524 bcmSwitchCpuProtoSrpPrio = 337, /* Priority for SRP packets to CPU. */ 525 bcmSwitchTimeSyncPktToCpu = 338, /* Time-Sync protocol packets to CPU. */ 526 bcmSwitchTimeSyncPktDrop = 339, /* Time-Sync protocol packets dropped. */ 527 bcmSwitchTimeSyncPktFlood = 340, /* Time-Sync protocol packets flooded to 528 VLAN. */ 529 bcmSwitchMmrpPktToCpu = 341, /* MMRP protocol packets to CPU. */ 530 bcmSwitchMmrpPktDrop = 342, /* MMRP protocol packets dropped. */ 531 bcmSwitchMmrpPktFlood = 343, /* MMRP protocol packets flooded to 532 VLAN. */ 533 bcmSwitchSrpPktToCpu = 344, /* SRP protocol packets to CPU. */ 534 bcmSwitchSrpPktDrop = 345, /* SRP protocol packets dropped. */ 535 bcmSwitchSrpPktFlood = 346, /* SRP protocol packets flooded to VLAN. */ 536 bcmSwitchSRPEthertype = 347, /* Set SRP protocol EtherType to match. */ 537 bcmSwitchMMRPEthertype = 348, /* Set MMRP EtherType to match. */ 538 bcmSwitchTimeSyncEthertype = 349, /* Set Timing and Sync protocol 539 EtherType to match. */ 540 bcmSwitchFcoeEtherType = 350, /* Set FCOE protocol EtherType to match. */ 541 bcmSwitchSRPDestMacOui = 351, /* Set SRP protocol MAC upper 3 bytes to 542 match. */ 543 bcmSwitchMMRPDestMacOui = 352, /* Set MMRP protocol MAC upper 3 bytes 544 to match. */ 545 bcmSwitchTimeSyncDestMacOui = 353, /* Set Timnig and Sync protocol MAC 546 upper 3 bytes to match. */ 547 bcmSwitchSRPDestMacNonOui = 354, /* Set SRP protocol MAC lower 3 bytes to 548 match. */ 549 bcmSwitchMMRPDestMacNonOui = 355, /* Set MMRP protocol MAC lower 3 bytes 550 to match. */ 551 bcmSwitchTimeSyncDestMacNonOui = 356, /* Set Timnig and Sync protocol MAC lowe 552 3 bytes to match. */ 553 bcmSwitchTimeSyncMessageTypeBitmap = 357, /* Set Timnig and Sync protocol message 554 bitmap to match. */ 555 bcmSwitchTimeSyncClassAPktPrio = 358, /* Set Priority for the Class A. */ 556 bcmSwitchTimeSyncClassBPktPrio = 359, /* Set Priority for the Class B. */ 557 bcmSwitchTimeSyncClassAExeptionPktPrio = 360, /* Set Remapping Priority for exeption 558 packets in the Class 559 A. */ 560 bcmSwitchTimeSyncClassBExeptionPktPrio = 361, /* Set Remapping Priority for exeption 561 packets in the Class B. */ 562 bcmSwitchL2McastAllRouterPortsAddEnable = 362, /* Add all-router ports to every L2 563 multicast entry. */ 564 bcmSwitchBypassMode = 363, /* Omit some switching features to 565 decrease traffic latency. */ 566 bcmSwitchIpmcSameVlanL3Route = 364, /* Enable forwarding of known IPMC 567 packets to the incoming vlan . */ 568 bcmSwitchDeprecated365 = 365, /* Deprecated. Do not use. */ 569 bcmSwitchFieldCache = 366, /* Enable caching of Rule table or field 570 entries */ 571 bcmSwitchFieldCommit = 367, /* Flush the cached Rule table or field 572 entries to hardware */ 573 bcmSwitchIpmcCache = 368, /* Enable caching of IP Multicast S/G 574 entries */ 575 bcmSwitchIpmcCommit = 369, /* Flush the cached IP Multicast table 576 entries to hardware */ 577 bcmSwitchL2Cache = 370, /* Enable caching of MAC address entries */ 578 bcmSwitchL2Commit = 371, /* Flush the cached MAC address table to 579 hardware */ 580 bcmSwitchL2AgeDelete = 372, /* Enables deletition of MAC addresses 581 during aging scan */ 582 bcmSwitchL2AgeScan = 373, /* Scan all MAC addresses and decrement 583 age-status */ 584 bcmSwitchL3HostCache = 374, /* Enable caching of L3 Host table 585 entries */ 586 bcmSwitchL3HostCommit = 375, /* Flush the cached L3 Host table to 587 hardware */ 588 bcmSwitchL3RouteCache = 376, /* Enable caching of L3 Route table 589 entries */ 590 bcmSwitchL3RouteCommit = 377, /* Flush the cached L3 Route table to 591 hardware */ 592 bcmSwitchL2InvalidCtlToCpu = 378, /* Packets with invalid L2 control 593 fields to CPU. */ 594 bcmSwitchInvalidGreToCpu = 379, /* Packets with invalid GRE fields to 595 CPU */ 596 bcmSwitchHashL2MPLSField0 = 380, /* L2 MPLS enhanced hash field */ 597 bcmSwitchHashL2MPLSField1 = 381, /* L2 MPLS enhanced hash field */ 598 bcmSwitchHashL3MPLSField0 = 382, /* L3 MPLS enhanced hash field */ 599 bcmSwitchHashL3MPLSField1 = 383, /* L3 MPLS enhanced hash field */ 600 bcmSwitchHashMPLSTunnelField0 = 384, /* MPLS tunnel enhanced hash field */ 601 bcmSwitchHashMPLSTunnelField1 = 385, /* MPLS tunnel enhanced hash field */ 602 bcmSwitchHashMIMTunnelField0 = 386, /* MIM tunnel enhanced hash field */ 603 bcmSwitchHashMIMTunnelField1 = 387, /* MIM tunnel enhanced hash field */ 604 bcmSwitchHashMIMField0 = 388, /* MIM enhanced hash field */ 605 bcmSwitchHashMIMField1 = 389, /* MIM enhanced hash field */ 606 bcmSwitchStgInvalidToCpu = 390, /* Packets with STG state of egress port 607 is not in forwarding state to CPU */ 608 bcmSwitchVlanTranslateEgressMissToCpu = 391, /* Packets with VLAN translation talbe 609 missed when it is expected to hit to 610 CPU. */ 611 bcmSwitchL3PktErrToCpu = 392, /* Packets with IP length field is 612 longer than the actual packet length 613 to CPU. */ 614 bcmSwitchMtuFailureToCpu = 393, /* Packets with L2 MTU Failure to CPU. */ 615 bcmSwitchSrcKnockoutToCpu = 394, /* Packets with Split horizon or SVP 616 pruning (SVP==DVP) failure to CPU. */ 617 bcmSwitchWlanTunnelMismatchToCpu = 395, /* Packets with incoming WLAN SVP did 618 not arrive on the expected tunnel to 619 CPU. */ 620 bcmSwitchWlanTunnelMismatchDrop = 396, /* Drop packets with incoming WLAN SVP 621 did not arrive on the expected 622 tunnel. */ 623 bcmSwitchWlanPortMissToCpu = 397, /* WLAN packets that have a SVP miss to 624 CPU. */ 625 bcmSwitchUnknownVlanToCpuCosq = 398, /* VLAN copy to CPU COS. */ 626 bcmSwitchStgInvalidToCpuCosq = 399, /* STG copy to CPU COS. */ 627 bcmSwitchVlanTranslateEgressMissToCpuCosq = 400, /* VLAN translate miss copy to CPU COS. */ 628 bcmSwitchTunnelErrToCpuCosq = 401, /* Tunnel Error to CPU COS. */ 629 bcmSwitchL3HeaderErrToCpuCosq = 402, /* L3 Header Error to CPU COS. */ 630 bcmSwitchL3PktErrToCpuCosq = 403, /* L3 Pkt Error to CPU COS. */ 631 bcmSwitchIpmcTtlErrToCpuCosq = 404, /* TTL drop copy to CPU COS. */ 632 bcmSwitchMtuFailureToCpuCosq = 405, /* MTU failure copy to CPU COS. */ 633 bcmSwitchHgHdrErrToCpuCosq = 406, /* HIGIG error copy to CPU COS. */ 634 bcmSwitchSrcKnockoutToCpuCosq = 407, /* Split horizon or SVP failure to CPU 635 COS. */ 636 bcmSwitchWlanTunnelMismatchToCpuCosq = 408, /* WLAN move to CPU COS. */ 637 bcmSwitchWlanPortMissToCpuCosq = 409, /* WLAN SVP miss to CPU COS. */ 638 bcmSwitchIpfixRateViolationDataInsert = 410, /* Allow insert when rate violation is 639 detected. */ 640 bcmSwitchIpfixRateViolationPersistent = 411, /* Keep rate violation status 641 persistent. */ 642 bcmSwitchHashVlanTranslate = 412, /* Hash Select for VLAN translate. */ 643 bcmSwitchHashVlanTranslateDual = 413, /* Secondary Hash Select for VLAN 644 translate. */ 645 bcmSwitchHashEgressVlanTranslate = 414, /* Hash Select for Egress VLAN 646 translate. */ 647 bcmSwitchHashEgressVlanTranslateDual = 415, /* Secondary Hash Select for Egress VLAN 648 translate. */ 649 bcmSwitchLayeredQoSResolution = 416, /* Enable layered QoS resolution mode. */ 650 bcmSwitchCustomerQueuing = 417, /* Enable customer domain queuing. */ 651 bcmSwitchCosqStatThreshold = 418, /* Sets Statistics Threshold to ACE-TCE 652 Mode */ 653 bcmSwitchCosqStatInterval = 419, /* Sets background ejection Statistics 654 Interval */ 655 bcmSwitchEncapErrorToCpu = 420, /* Encapsulation Error to CPU */ 656 bcmSwitchMplsPortIndependentLowerRange1 = 421, /* Port Independent Lower MPLS Label for 657 Range-1 */ 658 bcmSwitchMplsPortIndependentUpperRange1 = 422, /* Port Independent Upper MPLS Label for 659 Range-1 */ 660 bcmSwitchMplsPortIndependentLowerRange2 = 423, /* Port Independent Lower MPLS Label for 661 Range-2 */ 662 bcmSwitchMplsPortIndependentUpperRange2 = 424, /* Port Independent Upper MPLS Label for 663 Range-2 */ 664 bcmSwitchMirrorEgressTrueColorSelect = 425, /* Color override selection for egress 665 true mirroring */ 666 bcmSwitchMirrorEgressTruePriority = 426, /* Priority override selection for 667 egress true mirroring */ 668 bcmSwitchPFCClass0Queue = 427, /* Queue to suspend when a Priority Flow 669 Control class 0 packet is received. */ 670 bcmSwitchPFCClass1Queue = 428, /* Queue to suspend when a Priority Flow 671 Control class 1 packet is received. */ 672 bcmSwitchPFCClass2Queue = 429, /* Queue to suspend when a Priority Flow 673 Control class 2 packet is received. */ 674 bcmSwitchPFCClass3Queue = 430, /* Queue to suspend when a Priority Flow 675 Control class 3 packet is received. */ 676 bcmSwitchPFCClass4Queue = 431, /* Queue to suspend when a Priority Flow 677 Control class 4 packet is received. */ 678 bcmSwitchPFCClass5Queue = 432, /* Queue to suspend when a Priority Flow 679 Control class 5 packet is received. */ 680 bcmSwitchPFCClass6Queue = 433, /* Queue to suspend when a Priority Flow 681 Control class 6 packet is received. */ 682 bcmSwitchPFCClass7Queue = 434, /* Queue to suspend when a Priority Flow 683 Control class 7 packet is received. */ 684 bcmSwitchPFCClass0McastQueue = 435, /* Multicast queue to suspend when a 685 Priority Flow Control class 0 packet 686 is received. */ 687 bcmSwitchPFCClass1McastQueue = 436, /* Multicast queue to suspend when a 688 Priority Flow Control class 1 packet 689 is received. */ 690 bcmSwitchPFCClass2McastQueue = 437, /* Multicast queue to suspend when a 691 Priority Flow Control class 2 packet 692 is received. */ 693 bcmSwitchPFCClass3McastQueue = 438, /* Multicast queue to suspend when a 694 Priority Flow Control class 3 packet 695 is received. */ 696 bcmSwitchPFCClass4McastQueue = 439, /* Multicast queue to suspend when a 697 Priority Flow Control class 4 packet 698 is received. */ 699 bcmSwitchPFCClass5McastQueue = 440, /* Multicast queue to suspend when a 700 Priority Flow Control class 5 packet 701 is received. */ 702 bcmSwitchPFCClass6McastQueue = 441, /* Multicast queue to suspend when a 703 Priority Flow Control class 6 packet 704 is received. */ 705 bcmSwitchPFCClass7McastQueue = 442, /* Multicast queue to suspend when a 706 Priority Flow Control class 7 packet 707 is received. */ 708 bcmSwitchPFCClass0DestmodQueue = 443, /* Destination module queue to suspend 709 when a Priority Flow Control class 0 710 packet is received. */ 711 bcmSwitchPFCClass1DestmodQueue = 444, /* Destination module queue to suspend 712 when a Priority Flow Control class 1 713 packet is received. */ 714 bcmSwitchPFCClass2DestmodQueue = 445, /* Destination module queue to suspend 715 when a Priority Flow Control class 2 716 packet is received. */ 717 bcmSwitchPFCClass3DestmodQueue = 446, /* Destination module queue to suspend 718 when a Priority Flow Control class 3 719 packet is received. */ 720 bcmSwitchPFCClass4DestmodQueue = 447, /* Destination module queue to suspend 721 when a Priority Flow Control class 4 722 packet is received. */ 723 bcmSwitchPFCClass5DestmodQueue = 448, /* Destination module queue to suspend 724 when a Priority Flow Control class 5 725 packet is received. */ 726 bcmSwitchPFCClass6DestmodQueue = 449, /* Destination module queue to suspend 727 when a Priority Flow Control class 6 728 packet is received. */ 729 bcmSwitchPFCClass7DestmodQueue = 450, /* Destination module queue to suspend 730 when a Priority Flow Control class 7 731 packet is received. */ 732 bcmSwitchPFCQueue0Class = 451, /* Priority Flow Control class for COS 733 queue 0. */ 734 bcmSwitchPFCQueue1Class = 452, /* Priority Flow Control class for COS 735 queue 1. */ 736 bcmSwitchPFCQueue2Class = 453, /* Priority Flow Control class for COS 737 queue 2. */ 738 bcmSwitchPFCQueue3Class = 454, /* Priority Flow Control class for COS 739 queue 3. */ 740 bcmSwitchPFCQueue4Class = 455, /* Priority Flow Control class for COS 741 queue 4. */ 742 bcmSwitchPFCQueue5Class = 456, /* Priority Flow Control class for COS 743 queue 5. */ 744 bcmSwitchPFCQueue6Class = 457, /* Priority Flow Control class for COS 745 queue 6. */ 746 bcmSwitchPFCQueue7Class = 458, /* Priority Flow Control class for COS 747 queue 7. */ 748 bcmSwitchReserveLowL3InterfaceId = 459, /* Set the lower inclusive bounds of the 749 L3 Interfaces. Get will return the 750 lowest value supported by the device. 751 Setting 0 will remove the reserved 752 range. */ 753 bcmSwitchReserveHighL3InterfaceId = 460, /* Set the higher inclusive bounds of 754 the L3 Interfaces. Get will return 755 the lowest value supported by the 756 device. Setting 0 will remove the 757 reserved range. */ 758 bcmSwitchReserveLowL3EgressId = 461, /* Set the lower inclusive bounds of the 759 L3 Egress object. Get will return 760 the lowest value supported by the 761 device. Setting 0 will remove the 762 reserved range. */ 763 bcmSwitchReserveHighL3EgressId = 462, /* Set the higher inclusive bounds of 764 the L3 Egress object. Get will 765 return the lowest value supported by 766 the device. Setting 0 will remove 767 the reserved range. */ 768 bcmSwitchReserveLowVlanPort = 463, /* Set the lower inclusive bounds of the 769 vlan gport resources. Get will 770 return the lowest value supported by 771 the device. Setting 0 will remove 772 the reserved range */ 773 bcmSwitchReserveHighVlanPort = 464, /* Set the highest inclusive bounds of 774 the vlan gport resources. Get will 775 return the highest value supported by 776 the device. Setting 0 will remove 777 the reserved range */ 778 bcmSwitchReserveLowMplsPort = 465, /* Set the lower inclusive bounds of the 779 mpls gport resources. Get will 780 return the lowest value supported by 781 the device. Setting 0 will remove 782 the reserved range */ 783 bcmSwitchReserveHighMplsPort = 466, /* Set the highest inclusive bounds of 784 the mpls gport resources. Get will 785 return the highest value supported by 786 the device. Setting 0 will remove 787 the reserved range */ 788 bcmSwitchReserveLowMimPort = 467, /* Set the lower inclusive bounds of the 789 mim gport resources. Get will return 790 the lowest value supported by the 791 device. Setting 0 will remove the 792 reserved range */ 793 bcmSwitchReserveHighMimPort = 468, /* Set the highest inclusive bounds of 794 the mim gport resources. Get will 795 return the highest value supported by 796 the device. Setting 0 will remove 797 the reserved range */ 798 bcmSwitchReserveLowEncap = 469, /* Set the lower inclusive bounds of the 799 Encap ID resources used internally by 800 gports. Get will return the lowest 801 value supported by the device. 802 Setting 0 will remove the reserved 803 range */ 804 bcmSwitchReserveHighEncap = 470, /* Set the highest inclusive bounds of 805 the Encap ID resources used 806 internally by gports. Get will 807 return the highest value supported by 808 the device. Setting 0 will remove 809 the reserved range */ 810 bcmSwitchReserveLowL2Egress = 471, /* Set the lower inclusive bounds of the 811 L2 Encap ID resources. Get will 812 return the lowest value supported by 813 the device. Setting 0 will remove 814 the reserved range */ 815 bcmSwitchReserveHighL2Egress = 472, /* Set the highest inclusive bounds of 816 the L2 Encap ID resources. Get will 817 return the highest value supported by 818 the device. Setting 0 will remove 819 the reserved range */ 820 bcmSwitchReserveLowVpn = 473, /* Set the lower inclusive bounds of the 821 VPN ID resources. Get will return 822 the lowest value supported by the 823 device. Setting 0 will remove the 824 reserved range */ 825 bcmSwitchReserveHighVpn = 474, /* Set the highest inclusive bounds of 826 the VPN ID resources. Get will 827 return the highest value supported by 828 the device. Setting 0 will remove 829 the reserved range */ 830 bcmSwitchReserveLowFailoverId = 475, /* Set the lower inclusive bounds of 831 failover object. Get will return the 832 lowest value supported by the device. 833 Setting 0 will remove the reserved 834 range */ 835 bcmSwitchReserveHighFailoverId = 476, /* Set the higher inclusive bounds of 836 failover object. Get will return the 837 lowest value supported by the device. 838 Setting 0 will remove the reserved 839 range */ 840 bcmSwitchReserveLowOamEndPointId = 477, /* Set the lower inclusive bounds of OAM 841 endpoint. Get will return the lowest 842 value supported by the device. 843 Setting 0 will remove the reserved 844 range */ 845 bcmSwitchReserveHighOamEndPointId = 478, /* Set the higher inclusive bounds of 846 OAM endpoin. Get will return the 847 lowest value supported by the device. 848 Setting 0 will remove the reserved 849 range */ 850 bcmSwitchReserveLowOamGroupId = 479, /* Set the lower inclusive bounds of OAM 851 Group. Get will return the lowest 852 value supported by the device. 853 Setting 0 will remove the reserved 854 range */ 855 bcmSwitchReserveHighOamGroupId = 480, /* Set the higher inclusive bounds of 856 OAM Group. Get will return the 857 lowest value supported by the device. 858 Setting 0 will remove the reserved 859 range */ 860 bcmSwitchSnapNonZeroOui = 481, /* Decode SNAP packets with non-zero OUI 861 for protocol-based VLAN */ 862 bcmSwitchSynchronousPortClockSource = 482, /* Set ITU-T G.8261/8262 synchronous 863 Ethernet recovered clock source. 864 Setting -1 selects in free-run mode 865 (no recovered clock). Get returns the 866 current value. */ 867 bcmSwitchSynchronousPortClockSourceBkup = 483, /* Set ITU-T G.8261/8262 synchronous 868 Ethernet recovered backup clock 869 source. Get returns the current 870 value. */ 871 bcmSwitchSynchronousPortClockSourceDivCtrl = 484, /* Set ITU-T G.8261/8262 synchronous 872 Ethernet recovered clock source. 873 Setting -1 selects the divide by five 874 logic. Get returns the current value. */ 875 bcmSwitchSynchronousPortClockSourceBkupDivCtrl = 485, /* Set ITU-T G.8261/8262 synchronous 876 Ethernet recovered backup clock 877 source. Setting -1 selects the 878 divide by five logic. Get returns the 879 current value. */ 880 bcmSwitchL2HitClear = 486, /* Clear L2 source and destination hit 881 bits when set to 1 */ 882 bcmSwitchL2SrcHitClear = 487, /* Clear L2 source hit bits when set to 883 1 */ 884 bcmSwitchL2DstHitClear = 488, /* Clear L2 destination hit bits when 885 set to 1 */ 886 bcmSwitchL3HostHitClear = 489, /* Clear L3 host hit bits when set to 1 */ 887 bcmSwitchL3RouteHitClear = 490, /* Clear L3 route hit bits when set to 1 */ 888 bcmSwitchIpmcSameVlanPruning = 491, /* Allow both L2 and L3 copies of a 889 packet to go out on a physical port 890 if it happens to be a member of both 891 the L2 and L3 bitmaps of the 892 replication group. */ 893 bcmSwitchDeprecated492 = 492, /* Deprecated. Do not use. */ 894 bcmSwitchDeprecated493 = 493, /* Deprecated. Do not use. */ 895 bcmSwitchL2McIdxRetType = 494, /* When set to 1, L2 multicast API will 896 return multicast index as 897 bcm_multicast_t instead of hardware 898 multicast index. */ 899 bcmSwitchL3McIdxRetType = 495, /* When set to 1, IP multicast API will 900 return multicast index as 901 bcm_multicast_t instead of hardware 902 multicast index. */ 903 bcmSwitchDeprecated496 = 496, /* Deprecated. Do not use. */ 904 bcmSwitchDeprecated497 = 497, /* Deprecated. Do not use. */ 905 bcmSwitchDeprecated498 = 498, /* Deprecated. Do not use. */ 906 bcmSwitchDeprecated499 = 499, /* Deprecated. Do not use. */ 907 bcmSwitchDeprecated500 = 500, /* Deprecated. Do not use. */ 908 bcmSwitchArpDhcpToCpu = 501, /* Set both ARP and DHCP to CPU. */ 909 bcmSwitchIgmpMldToCpu = 502, /* Set the snooping mode on both IGMP 910 and MLD together. */ 911 bcmSwitchLinkDownInfoSkip = 503, /* Skip port information gathering 912 during linkdown event 913 notification */ 914 bcmSwitchDeprecated504 = 504, /* Deprecated. Do not use. */ 915 bcmSwitchL2SourceDiscardMoveToCpu = 505, /* SRC MAC discard configuration to CPU */ 916 bcmSwitchNivEthertype = 506, /* Set EtherType field in VNTAG */ 917 bcmSwitchNivPrioDropToCpu = 507, /* NIV priority admittance drop to CPU */ 918 bcmSwitchNivInterfaceMissToCpu = 508, /* NIV forwarding lookup miss to CPU */ 919 bcmSwitchNivRpfFailToCpu = 509, /* NIV RPF check fail to CPU */ 920 bcmSwitchNivTagInvalidToCpu = 510, /* Invalid VNTAG to CPU */ 921 bcmSwitchNivTagDropToCpu = 511, /* VNTAG present to CPU */ 922 bcmSwitchNivUntagDropToCpu = 512, /* VNTAG not present to CPU */ 923 bcmSwitchEEEPipelineTime = 513, /* Time (in system clock cycles) for MAC 924 to ensure that the egress pipeline is 925 empty prior to the assertion of the 926 LPI control signal. */ 927 bcmSwitchEEEGlobalCongestionThreshold = 514, /* If this threshold is exceeded, EEE is 928 disabled for all ports. */ 929 bcmSwitchDeprecated515 = 515, /* Deprecated. Do not use. */ 930 bcmSwitchDeprecated516 = 516, /* Deprecated. Do not use. */ 931 bcmSwitchDeprecated517 = 517, /* Deprecated. Do not use. */ 932 bcmSwitchDeprecated518 = 518, /* Deprecated. Do not use. */ 933 bcmSwitchDeprecated519 = 519, /* Deprecated. Do not use. */ 934 bcmSwitchDeprecated520 = 520, /* Deprecated. Do not use. */ 935 bcmSwitchDeprecated521 = 521, /* Deprecated. Do not use. */ 936 bcmSwitchRemoteCpuSchanEnable = 522, /* Enables SCHAN requests for Remote CPU 937 feature */ 938 bcmSwitchRemoteCpuFromCpuEnable = 523, /* Enables recieving packets from CPU 939 for Remote CPU feature */ 940 bcmSwitchRemoteCpuToCpuEnable = 524, /* Enables sending packet to CPU for 941 Remote CPU feature */ 942 bcmSwitchRemoteCpuCmicEnable = 525, /* Enables CMIC requests for Remote CPU 943 feature */ 944 bcmSwitchRemoteCpuMatchLocalMac = 526, /* Local MAC addresses matching for 945 Remote CPU feature */ 946 bcmSwitchRemoteCpuMatchVlan = 527, /* VLAN matching for Remote CPU feature */ 947 bcmSwitchRemoteCpuVlan = 528, /* VLAN tag to be inserted into Remote 948 CPU packets */ 949 bcmSwitchRemoteCpuTpid = 529, /* TPID tag to be inserted into Remote 950 CPU packets */ 951 bcmSwitchRemoteCpuSignature = 530, /* Unique Signature for Remote CPU 952 packets */ 953 bcmSwitchRemoteCpuForceScheduling = 531, /* Remote CPU packets are forced to have 954 COS value */ 955 bcmSwitchRemoteCpuToCpuDestPortAllReasons = 532, /* Remote CPU packets to be forwarded 956 for all directed reasons */ 957 bcmSwitchRemoteCpuToCpuDestMacAllReasons = 533, /* Remote CPU packets to be forwarded 958 for all reasons */ 959 bcmSwitchRxRedirectPktReasons = 534, /* All forwarding reasons for normal 960 packets */ 961 bcmSwitchRxRedirectPktReasonsExtended = 535, /* All extended forwarding reasons for 962 normal packets */ 963 bcmSwitchRxRedirectHigigPktReasons = 536, /* All forwarding reasons for higig 964 packets */ 965 bcmSwitchRxRedirectHigigPktReasonsExtended = 537, /* All extended forwarding reasons for 966 higig packets */ 967 bcmSwitchRxRedirectTruncatedPktReasons = 538, /* All forwarding reasons for truncated 968 packets */ 969 bcmSwitchRxRedirectTruncatedPktReasonsExtended = 539, /* All extended forwarding reasons for 970 truncated packets */ 971 bcmSwitchRxRedirectPktCos = 540, /* All forwarding COS queue bitmap for 972 normal packets */ 973 bcmSwitchRxRedirectPktCosExtended = 541, /* All extended forwarding COS queue 974 bitmap for normal packets */ 975 bcmSwitchRemoteCpuLocalMacOui = 542, /* Higher 3 bytes of Local MAC address 976 used for Remote CPU */ 977 bcmSwitchRemoteCpuLocalMacNonOui = 543, /* Lower 3 bytes of Local MAC address 978 used for Remote CPU */ 979 bcmSwitchRemoteCpuDestMacOui = 544, /* Higher 3 bytes of Destination MAC 980 address used for Remote CPU */ 981 bcmSwitchRemoteCpuDestMacNonOui = 545, /* Lower 3 bytes of Destination MAC 982 address used for Remote CPU */ 983 bcmSwitchRemoteCpuEthertype = 546, /* Remote CPU EtherType */ 984 bcmSwitchRemoteCpuDestPort = 547, /* Remote CPU will direct raw data 985 packets with SOBMH header to a given 986 port */ 987 bcmSwitchRemoteCpuHigigDestPort = 548, /* Remote CPU will direct raw data 988 packets with HiGig header to a given 989 port */ 990 bcmSwitchRemoteCpuTcMappingMacOui = 549, /* Higher 3 bytes of Destination MAC 991 address used to match received ToCPU 992 packets */ 993 bcmSwitchRemoteCpuTcMappingMacNonOui = 550, /* Lower 3 bytes of Destination MAC 994 address used to match received ToCPU 995 packets */ 996 bcmSwitchRemoteCpuTcMappingEthertype = 551, /* EtherType used to match received 997 ToCPU packets */ 998 bcmSwitchServiceTpidReplace = 552, /* Replace TPID in Service Delimiting 999 SD-TAG */ 1000 bcmSwitchEgressPktAge = 553, /* Chip-wide egress packet age time, 1001 msec. */ 1002 bcmSwitchFabricTrunkDynamicSampleRate = 554, /* Number of times average port egressed 1003 bytes and queued bytes are computed 1004 in a second */ 1005 bcmSwitchFabricTrunkDynamicEgressBytesExponent = 555, /* The exponent used in the calculation 1006 of exponentially weighted moving 1007 average of port egressed bytes */ 1008 bcmSwitchFabricTrunkDynamicQueuedBytesExponent = 556, /* The exponent used in the calculation 1009 of exponentially weighted moving 1010 average of port queued bytes */ 1011 bcmSwitchFabricTrunkDynamicEgressBytesDecreaseReset = 557, /* If set, the average port egressed 1012 bytes is updated with the sampled 1013 value if the sampled value is less 1014 than the average */ 1015 bcmSwitchFabricTrunkDynamicQueuedBytesDecreaseReset = 558, /* If set, the average port queued bytes 1016 is updated with the sampled value if 1017 the sampled value is less than the 1018 average */ 1019 bcmSwitchFabricTrunkDynamicEgressBytesMinThreshold = 559, /* The minimum threshold, in mbps, used 1020 to quantize average port egressed 1021 bytes */ 1022 bcmSwitchFabricTrunkDynamicEgressBytesMaxThreshold = 560, /* The maximum threshold, in mbps, used 1023 to quantize average port egressed 1024 bytes */ 1025 bcmSwitchFabricTrunkDynamicQueuedBytesMinThreshold = 561, /* The minimum threshold, in bytes, used 1026 to quantize average port queued bytes */ 1027 bcmSwitchFabricTrunkDynamicQueuedBytesMaxThreshold = 562, /* The maximum threshold, in bytes, used 1028 to quantize average port queued bytes */ 1029 bcmSwitchMacLowPower = 563, /* Enable switch low power mode and set 1030 the low power frequency, Khz */ 1031 bcmSwitchCongestionCntag = 564, /* Enable/Disable CN-TAG processing */ 1032 bcmSwitchCongestionCntagEthertype = 565, /* EtherType for CN-TAG */ 1033 bcmSwitchCongestionCnm = 566, /* Enable/Disable congestion 1034 notification message handling */ 1035 bcmSwitchCongestionCnmEthertype = 567, /* EtherType for congestion notification 1036 message */ 1037 bcmSwitchCongestionNotificationIdHigh = 568, /* Device identifier for contructing 1038 congestion point identifier */ 1039 bcmSwitchCongestionNotificationIdLow = 569, /* Port identifier for constructing 1040 congestion point identifier */ 1041 bcmSwitchCongestionNotificationIdQueue = 570, /* Queue mode of the congestion point 1042 identifier. When set to 0 use 1043 congestion managed queue id, 1044 otherwise use queue number */ 1045 bcmSwitchCongestionUseOuterTpid = 571, /* Outer TPID to be used for congestion 1046 notification message */ 1047 bcmSwitchCongestionUseOuterVlan = 572, /* Outer vlan to be used for congestion 1048 notification message */ 1049 bcmSwitchCongestionUseOuterPktPri = 573, /* Outer priority to be used for 1050 congestion notification message */ 1051 bcmSwitchCongestionUseOuterCfi = 574, /* Outer CFI to be used for congestion 1052 notification message */ 1053 bcmSwitchCongestionUseInnerPktPri = 575, /* Inner priority to be used for 1054 congestion notification message */ 1055 bcmSwitchCongestionUseInnerCfi = 576, /* Inner CFI to be used for congestion 1056 notification message */ 1057 bcmSwitchCongestionMissingCntag = 577, /* Choose the CNM generation behavior 1058 when congestion notification 1059 threshold is reached but the incoming 1060 sampled packet does not have CN-TAG */ 1061 bcmSwitchCongestionExcludeReplications = 578, /* Take the replicated packets in 1062 account during the congestion test */ 1063 bcmSwitchMiMDefaultSVP = 579, /* Enable MiM termination lookup miss 1064 packets to be forwarded using default 1065 SVP */ 1066 bcmSwitchMiMDefaultSVPValue = 580, /* Default SVP for Mac-in-Mac */ 1067 bcmSwitchEgressDroppedReportZeroLength = 581, /* Enable egress pipeline to report zero 1068 length for dropped packets */ 1069 bcmSwitchLoadBalanceHashSelect = 582, /* Selects which hash function to use 1070 for Load Balance computation */ 1071 bcmSwitchTrillEthertype = 583, /* Set TRILL EtherType field. Value of 1072 uint16 type */ 1073 bcmSwitchTrillISISEthertype = 584, /* Set TRILL ISIS EtherType field. Value 1074 of uint16 type */ 1075 bcmSwitchTrillISISDestMacOui = 585, /* Set TRILL All_ISIS_Rbridge MAC upper 1076 3 bytes to match. */ 1077 bcmSwitchTrillBroadcastDestMacOui = 586, /* Set TRILL ALL_Rbridge MAC upper 3 1078 bytes to match. */ 1079 bcmSwitchTrillEndStationDestMacOui = 587, /* Set TRILL ALL_ESADI MAC upper 3 bytes 1080 to match. */ 1081 bcmSwitchTrillISISDestMacNonOui = 588, /* Set TRILL ALL_ISIS_Rbridge MAC lower 1082 3 bytes to match. */ 1083 bcmSwitchTrillBroadcastDestMacNonOui = 589, /* Set TRILL ALL_Rbridge MAC lower 3 1084 bytes to match. */ 1085 bcmSwitchTrillEndStationDestMacNonOui = 590, /* Set TRILL ALL_ESADI MAC lower 3 bytes 1086 to match. */ 1087 bcmSwitchTrillMinTtl = 591, /* Set minimum TTL for Egress and 1088 Transit TRILL Rbridge. */ 1089 bcmSwitchTrillTtlCheckEnable = 592, /* Enable TTL check for Egress TRILL 1090 Rbridge. */ 1091 bcmSwitchTrillTtlErrToCpu = 593, /* Copy TRILL TTL failure packets to 1092 CPU. */ 1093 bcmSwitchTrillHeaderErrToCpu = 594, /* Copy TRILL Header Error frame to CPU. */ 1094 bcmSwitchTrillMismatchToCpu = 595, /* Copy TRILL mismatch error frame to 1095 CPU. */ 1096 bcmSwitchTrillNameMissToCpu = 596, /* Copy TRILL Rbridge lookup failure to 1097 CPU. */ 1098 bcmSwitchTrillRpfFailToCpu = 597, /* Copy TRILL RPF check fail to CPU. */ 1099 bcmSwitchTrillOptionsToCpu = 598, /* Copy header Options to CPU. */ 1100 bcmSwitchTrillNameErrDrop = 599, /* Set Drop setting for TRILL packets 1101 with Ingress-name equal to 1102 Egress-name. */ 1103 bcmSwitchTrillRpfFailDrop = 600, /* Set Drop setting for TRILL multicast 1104 packets that fail RPF check. */ 1105 bcmSwitchTrillHeaderVersionErrDrop = 601, /* Set Drop Setting for TRILL frames 1106 received with a non-zero Version 1107 field. */ 1108 bcmSwitchTrillNameMissDrop = 602, /* Set Drop setting for TRILL Ingress 1109 RBridge nickname lookup failure. */ 1110 bcmSwitchTrillAdjacencyFailDrop = 603, /* Set Drop setting for TRILL adjacency 1111 failure. */ 1112 bcmSwitchTrillHeaderErrDrop = 604, /* Set Drop Setting for TRILL header 1113 error. */ 1114 bcmSwitchUdpPktActionEnable = 605, /* Enable additional actions for UDP 1115 packets */ 1116 bcmSwitchUdpPktRedirectPbmp = 606, /* Replace the destination port bitmap 1117 of UDP packets */ 1118 bcmSwitchUdpPktCopyToPbmp = 607, /* Add the destination port bitmap of 1119 UDP packets */ 1120 bcmSwitchUdpPktNewTc = 608, /* Change the Traffic Class value of UDP 1121 packets */ 1122 bcmSwitchL3TunnelIpV4ModeOnly = 609, /* Set L3 Tunnel to IPV4 mode only */ 1123 bcmSwitchL3SrcHitEnable = 610, /* Enables/Disables source hit bit 1124 lookup update in the L3 table */ 1125 bcmSwitchL2DstHitEnable = 611, /* Enables/Disables destination hit bit 1126 lookup update in the L2 table */ 1127 bcmSwitchWESPProtocolEnable = 612, /* Enables/Disables parsing into WESP 1128 payload */ 1129 bcmSwitchWESPProtocol = 613, /* WESP protocol number */ 1130 bcmSwitchDeprecated614 = 614, /* Deprecated. Do not use. */ 1131 bcmSwitchIp6CompressEnable = 615, /* Enables/Disables IPv6 compression 1132 support in the VFP table */ 1133 bcmSwitchIp6CompressDefaultOffset = 616, /* Set the offset value used to extract 1134 26-bits from the IPv6 address field 1135 of IPv6 packet */ 1136 bcmSwitchStableSaveLongIds = 617, /* When saving FP information to storage 1137 for level-2 warm boot, save full 1138 entity ids (i.e. not compact) */ 1139 bcmSwitchGportAnyDefaultL2Learn = 618, /* Set default cml_value for Any Gport 1140 type. */ 1141 bcmSwitchGportAnyDefaultL2Move = 619, /* Set default cml_station_move value 1142 for Any Gport type */ 1143 bcmSwitchIngParseL2TunnelTermDipSipSelect = 620, /* Controls the values used to populate 1144 the DIP+SIP containers for 1145 L2-tunnel-terminated packets */ 1146 bcmSwitchIngParseL3L4IPv4 = 621, /* Enable parsing of IPv4 L3/L4 headers */ 1147 bcmSwitchIngParseL3L4IPv6 = 622, /* Enable parsing of IPv6 L3/L4 headers */ 1148 bcmSwitchL2LearnMode = 623, /* Learning Mode */ 1149 bcmSwitchSetWredJitterMask = 624, /* Set WRED Jitter value */ 1150 bcmSwitchSetMplsEntropyLabelTtl = 625, /* Set MPLS Entropy-Label TTL value */ 1151 bcmSwitchSetMplsEntropyLabelPri = 626, /* Set MPLS Entropy-Label PRI value */ 1152 bcmSwitchSetMplsEntropyLabelOffset = 627, /* Set MPLS Entropy-Label Hash Offset */ 1153 bcmSwitchPonOamFailsafeState = 628, /* Enables/Disables MPCP fail safe */ 1154 bcmSwitchEquipmentAlarmState = 629, /* Set equipment alarm report state */ 1155 bcmSwitchPowerAlarmState = 630, /* Set power alarm report state */ 1156 bcmSwitchBatteryMissingAlarmState = 631, /* Set battery missing alarm report 1157 state */ 1158 bcmSwitchBatteryFailureAlarmState = 632, /* Set battery failure alarm report 1159 state */ 1160 bcmSwitchBatteryVoltLowAlarmState = 633, /* Set battery volt low alarm report 1161 state */ 1162 bcmSwitchBatteryVoltLowAlarmReportThreshold = 634, /* Set battery volt low alarm report 1163 threshold */ 1164 bcmSwitchBatteryVoltLowAlarmClearThreshold = 635, /* Set battery volt low alarm clear 1165 threshold */ 1166 bcmSwitchPhysicalIntrusionAlarmState = 636, /* Set physical instrusion alarm report 1167 state */ 1168 bcmSwitchSelfTestFailureAlarmState = 637, /* Set self test failure alarm report 1169 state */ 1170 bcmSwitchPonIfSwitchAlarmState = 638, /* Set PON switchover alarm report state */ 1171 bcmSwitchL3IngressInterfaceMapSet = 639, /* Enable mode to configure 1172 ingress-mapping of Vlan and L3 1173 Ingress Interface */ 1174 bcmSwitchMplsPWControlWordToCpu = 640, /* Enable MPLS packets with PWACH 1175 control word, to be copied to CPU */ 1176 bcmSwitchMplsPWControlTypeToCpu = 641, /* Enable MPLS packets with other 1177 control word, to be copied to CPU */ 1178 bcmSwitchMplsPWControlWord = 642, /* Set Control Word value */ 1179 bcmSwitchMplsPWCountPktsAll = 643, /* Enable count-all MPLS packets 1180 arriving on PWs */ 1181 bcmSwitchEntropyHashSet0Offset = 644, /* Selection for MPLS-Entropy-Label hash 1182 bits. */ 1183 bcmSwitchEntropyHashSet1Offset = 645, /* Selection for MPLS-Entropy-Label hash 1184 bits. */ 1185 bcmSwitchArpRequestMyStationIPToCPU = 646, /* APR reply packets with My IP address 1186 should be sent to CPU. */ 1187 bcmSwitchArpRequestMyStationIPDrop = 647, /* APR reply packets with My IP address 1188 should be dropped. */ 1189 bcmSwitchArpRequestMyStationIPFwd = 648, /* APR reply packets with given IP 1190 address should not trapped/dropped. */ 1191 bcmSwitchL3SIPMoveToCpu = 649, 1192 bcmSwitchTrunkHashSrcPortEnable = 650, /* BCM886XX: Make Source port part of 1193 the hash. */ 1194 bcmSwitchTrunkHashOffset = 651, /* BCM886XX: Hash key is barrel shifted 1195 by this value */ 1196 bcmSwitchTrunkHashMPLSLabelBOS = 652, /* In an mpls label stack, look for 1197 label with bottom of stack bit set. 1198 Valid values see 1199 BCM_HASH_MPLS_LABEL_BOS_ */ 1200 bcmSwitchTrunkHashMPLSPWControlWord = 653, /* BCM886XX: Indicates control word is 1201 present at end of MPLS headers. */ 1202 bcmSwitchTrunkHashSeed = 654, /* BCM886XX: Initial seed value for 1203 trunk hashing. */ 1204 bcmSwitchTrunkHashConfig = 655, /* BCM886XX: Selects hashing polynomial. */ 1205 bcmSwitchTrunkHashPktHeaderCount = 656, /* BCM886XX: Number of headers to 1206 consider in hashing. */ 1207 bcmSwitchTrunkHashPktHeaderSelect = 657, /* BCM886XX: Selects which starting 1208 header to use for hashing. */ 1209 bcmSwitchECMPHashSrcPortEnable = 658, /* BCM886XX: Make Source port part of 1210 the ECMP hash. */ 1211 bcmSwitchECMPHashOffset = 659, /* BCM886XX: ECMP Hash key is barrel 1212 shifted by this value. */ 1213 bcmSwitchECMPHashSeed = 660, /* BCM886XX: Initial seed value for ECMP 1214 hashing. */ 1215 bcmSwitchECMPHashConfig = 661, /* BCM886XX: Selects hashing polynomial 1216 for ECMP. */ 1217 bcmSwitchECMPHashPktHeaderCount = 662, /* BCM886XX: Number of headers to 1218 consider in ECMP hashing. */ 1219 bcmSwitchTrunkDynamicHashOffset = 663, /* Enhanced hash selections for trunk 1220 dynamic load balancing. */ 1221 bcmSwitchTrunkDynamicSampleRate = 664, /* Number of times historical member 1222 load and queued bytes are computed in 1223 a second */ 1224 bcmSwitchTrunkDynamicAccountingSelect = 665, /* 0 = physical link accounting, 1 = 1225 virtual link accounting */ 1226 bcmSwitchTrunkDynamicEgressBytesExponent = 666, /* The exponent used in the calculation 1227 of exponentially weighted moving 1228 average of historical member load. 1229 Applicable to physical link 1230 accounting. */ 1231 bcmSwitchTrunkDynamicQueuedBytesExponent = 667, /* The exponent used in the calculation 1232 of exponentially weighted moving 1233 average of historical member queued 1234 bytes. Applicable to physical link 1235 accounting. */ 1236 bcmSwitchTrunkDynamicEgressBytesDecreaseReset = 668, /* If set, the historical member load is 1237 reset to the instantaneous value if 1238 the latter is smaller. Applicable to 1239 physical link accounting. */ 1240 bcmSwitchTrunkDynamicQueuedBytesDecreaseReset = 669, /* If set, the historical member queued 1241 bytes is updated with the 1242 instantaneous value if the latter is 1243 smaller. Applicable to physical link 1244 accounting. */ 1245 bcmSwitchTrunkDynamicEgressBytesMinThreshold = 670, /* The minimum threshold, in mbps, used 1246 to quantize historical member load. 1247 Applicable to physical link 1248 accounting. */ 1249 bcmSwitchTrunkDynamicEgressBytesMaxThreshold = 671, /* The maximum threshold, in mbps, used 1250 to quantize historical member load. 1251 Applicable to physical link 1252 accounting. */ 1253 bcmSwitchTrunkDynamicQueuedBytesMinThreshold = 672, /* The minimum threshold, in bytes, used 1254 to quantize historical member queued 1255 bytes. Applicable to physical link 1256 accounting. */ 1257 bcmSwitchTrunkDynamicQueuedBytesMaxThreshold = 673, /* The maximum threshold, in bytes, used 1258 to quantize historical member queued 1259 bytes. Applicable to physical link 1260 accounting. */ 1261 bcmSwitchTrunkDynamicExpectedLoadMinThreshold = 674, /* The minimum threshold, in mbps, used 1262 to quantize historical and 1263 instantaneous expected member load. 1264 Applicable to virtual link 1265 accounting. */ 1266 bcmSwitchTrunkDynamicExpectedLoadMaxThreshold = 675, /* The maximum threshold, in mbps, used 1267 to quantize historical and 1268 instantaneous expected member load. 1269 Applicable to virtual link 1270 accounting. */ 1271 bcmSwitchTrunkDynamicImbalanceMinThreshold = 676, /* The minimum threshold, in percentage, 1272 used to quantize historical and 1273 instantaneous member load imbalance. 1274 Applicable to virtual link 1275 accounting. */ 1276 bcmSwitchTrunkDynamicImbalanceMaxThreshold = 677, /* The maximum threshold, in percentage, 1277 used to quantize historical and 1278 instantaneous member load imbalance. 1279 Applicable to virtual link 1280 accounting. */ 1281 bcmSwitchEcmpDynamicHashOffset = 678, /* Enhanced hash selections for L3 ECMP 1282 dynamic load balancing. */ 1283 bcmSwitchEcmpDynamicSampleRate = 679, /* Number of times historical member 1284 load and queued bytes are computed in 1285 a second */ 1286 bcmSwitchEcmpDynamicAccountingSelect = 680, /* 0 = physical link accounting, 1 = 1287 virtual link accounting */ 1288 bcmSwitchEcmpDynamicEgressBytesExponent = 681, /* The exponent used in the calculation 1289 of exponentially weighted moving 1290 average of historical member load. 1291 Applicable to physical link 1292 accounting. */ 1293 bcmSwitchEcmpDynamicQueuedBytesExponent = 682, /* The exponent used in the calculation 1294 of exponentially weighted moving 1295 average of historical member queued 1296 bytes. Applicable to physical link 1297 accounting. */ 1298 bcmSwitchEcmpDynamicEgressBytesDecreaseReset = 683, /* If set, the historical member load is 1299 reset to the instantaneous value if 1300 the latter is smaller. Applicable to 1301 physical link accounting. */ 1302 bcmSwitchEcmpDynamicQueuedBytesDecreaseReset = 684, /* If set, the historical member queued 1303 bytes is updated with the 1304 instantaneous value if the latter is 1305 smaller. Applicable to physical link 1306 accounting. */ 1307 bcmSwitchEcmpDynamicEgressBytesMinThreshold = 685, /* The minimum threshold, in mbps, used 1308 to quantize historical member load. 1309 Applicable to physical link 1310 accounting. */ 1311 bcmSwitchEcmpDynamicEgressBytesMaxThreshold = 686, /* The maximum threshold, in mbps, used 1312 to quantize historical member load. 1313 Applicable to physical link 1314 accounting. */ 1315 bcmSwitchEcmpDynamicQueuedBytesMinThreshold = 687, /* The minimum threshold, in bytes, used 1316 to quantize historical member queued 1317 bytes. Applicable to physical link 1318 accounting. */ 1319 bcmSwitchEcmpDynamicQueuedBytesMaxThreshold = 688, /* The maximum threshold, in bytes, used 1320 to quantize historical member queued 1321 bytes. Applicable to physical link 1322 accounting. */ 1323 bcmSwitchEcmpDynamicExpectedLoadMinThreshold = 689, /* The minimum threshold, in mbps, used 1324 to quantize historical and 1325 instantaneous expected member load. 1326 Applicable to virtual link 1327 accounting. */ 1328 bcmSwitchEcmpDynamicExpectedLoadMaxThreshold = 690, /* The maximum threshold, in mbps, used 1329 to quantize historical and 1330 instantaneous expected member load. 1331 Applicable to virtual link 1332 accounting. */ 1333 bcmSwitchEcmpDynamicImbalanceMinThreshold = 691, /* The minimum threshold, in percentage, 1334 used to quantize historical and 1335 instantaneous member load imbalance. 1336 Applicable to virtual link 1337 accounting. */ 1338 bcmSwitchEcmpDynamicImbalanceMaxThreshold = 692, /* The maximum threshold, in percentage, 1339 used to quantize historical and 1340 instantaneous member load imbalance. 1341 Applicable to virtual link 1342 accounting. */ 1343 bcmSwitchFailoverDropToCpu = 693, /* Protection data drop to CPU enable. */ 1344 bcmSwitchMplsReservedEntropyLabelToCpu = 694, /* Packet is copied to the CPU if the 1345 entropy label falls between the 1346 reserved range (0-15). */ 1347 bcmSwitchL3SrcBindMissToCpu = 695, /* Send a copy of L3 packet to CPU if 1348 SIP lookup fails in HPAE mode. */ 1349 bcmSwitchMplsGalAlertLabelToCpu = 696, /* When a GAL label is exposed in a 1350 packet, such a packet will be 1351 dropped. This control determines 1352 whether such a packet gets copied to 1353 CPU. */ 1354 bcmSwitchMplsRalAlertLabelToCpu = 697, /* When a RAL label is exposed in a 1355 packet, such a packet will be 1356 dropped. This control determines 1357 whether such a packet gets copied to 1358 CPU. */ 1359 bcmSwitchMplsIllegalReservedLabelToCpu = 698, /* Exposed an illegal reserved label to 1360 CPU. For example, exposed GAL Label 1361 has BOS=0. */ 1362 bcmSwitchMplsLookupsExceededToCpu = 699, /* Expose out of lookups to CPU */ 1363 bcmSwitchMplsUnknownAchTypeToCpu = 700, /* Packet has an unknown ACH Type. */ 1364 bcmSwitchMplsUnknownAchVersionToCpu = 701, /* The version number of ACH is not 1. */ 1365 bcmSwitchTimesyncIngressVersion = 702, /* Ingress 1588 version 0:V2 1:>V2. */ 1366 bcmSwitchTimesyncEgressVersion = 703, /* Egress 1588 version 0:V2 1:>V2. */ 1367 bcmSwitchTimesyncUnknownVersionToCpu = 704, /* The version number is not recognized. */ 1368 bcmSwitchCongestionCnmToCpu = 705, /* Send ICNM packets to the CPU. 1369 (Deprecated) */ 1370 bcmSwtichCongestionCnmProxyErrorToCpu = 706, /* Enable forwarding to CPU. */ 1371 bcmSwtichCongestionCnmProxyToCpu = 707, /* This is to copy the dropped CNM 1372 packet to CPU if a network 1373 administrator needs to look at them. */ 1374 bcmSwitchWlanTunnelErrorDrop = 708, /* WLAN Decryption offload enable. */ 1375 bcmSwitchMplsReservedEntropyLabelDrop = 709, /* When the value of the received 1376 entropy label falls in the reserved 1377 range(0-15), this control will 1378 determine if the packet is dropped or 1379 not. */ 1380 bcmSwitchRemoteProtectionTrust = 710, /* If set, use the Protection Status bit 1381 in the received HiGig Header. */ 1382 bcmSwitchL2GreProtocolType = 711, /* Set protocol-type for L2-GRE */ 1383 bcmSwitchL2GreVpnIdSizeSet = 712, /* Set bit-size of VPNID within L2-GRE 1384 key */ 1385 bcmSwitchL2GreVpnIdMissToCpu = 713, /* If set, send a copy of L2GRE packet 1386 to CPU if VPNID lookup fails. */ 1387 bcmSwitchL2GreTunnelMissToCpu = 714, /* If set, send a copy of L2GRE packet 1388 to CPU if SIP lookup fails. */ 1389 bcmSwitchMultipathCompressBuffer = 715, /* Set the size of the L3 ECMP table 1390 defragmentation buffer. */ 1391 bcmSwitchMultipathCompress = 716, /* Defragment L3 ECMP table. */ 1392 bcmSwitchBstEnable = 717, /* Enable BST tracking. */ 1393 bcmSwitchBstTrackingMode = 718, /* BST resource usage tracking mode. */ 1394 bcmSwitchL3McastL2 = 719, /* if set to 0 then l2 key is <VID, DA>, 1395 if set to 1 then l2 key is <RIF/VID, 1396 DIP>. */ 1397 bcmSwitchMiMTeBvidLowerRange = 720, /* Configure the lower limit for Traffic 1398 engineered BVID */ 1399 bcmSwitchMiMTeBvidUpperRange = 721, /* Configure the upper limit for Traffic 1400 engineered BVID */ 1401 bcmSwitchRemoteEncapsulationMode = 722, /* If set, all packet replication is 1402 performed on a remote device. 1403 Required egress encapsulation is 1404 indicated by the HiGig2 header. */ 1405 bcmSwitchFabricTrunkAutoIncludeDisable = 723, /* If set, disable automatic inclusion 1406 of other members of a HiGig trunk 1407 group when one member is specified as 1408 the steering destination for a remote 1409 module. */ 1410 bcmSwitchTrunkHashNormalize = 724, /* Enables using same hash in both 1411 directions of a flow. Applies to both 1412 MAC/IP addresses */ 1413 bcmSwitchMplsLabelCache = 725, /* Enable Mpls Label Cache */ 1414 bcmSwitchMplsLabelCommit = 726, /* Commit the MPLS Label Database to 1415 hardware */ 1416 bcmSwitchTrillHopCount = 727, /* Trill hop count */ 1417 bcmSwitchPolicerFairness = 728, /* if set, packet is considered in 1418 profile if bucket-level plus random 1419 value are above packet-size. If not 1420 set, packet is considered in profile 1421 if bucket-level is above packet-size. */ 1422 bcmSwitchVxlanUdpDestPortSet = 729, /* Set UDP Destination port for VXLAN */ 1423 bcmSwitchVxlanEntropyEnable = 730, /* Set UDP Source port for VXLAN Tunnel 1424 Entropy(Value = TRUE/FALSE) */ 1425 bcmSwitchVxlanVnIdMissToCpu = 731, /* Set VXLAN VN_ID lookup failure Copy 1426 to CPU */ 1427 bcmSwitchVxlanTunnelMissToCpu = 732, /* If set, send a copy of VXLAN packet 1428 to CPU if VXLAN Tunnel lookup fails. */ 1429 bcmSwitchECMPVxlanHashOffset = 733, /* Enhanced hash select for VxLAN ECMP 1430 hashing . */ 1431 bcmSwitchECMPL2GreHashOffset = 734, /* Enhanced hash select for L2Gre ECMP 1432 hashing . */ 1433 bcmSwitchECMPTrillHashOffset = 735, /* Enhanced hash select for Trill ECMP 1434 hashing . */ 1435 bcmSwitchECMPMplsHashOffset = 736, /* Enhanced hash select for Mpls ECMP 1436 hashing . */ 1437 bcmSwitchVirtualPortDynamicHashOffset = 737, /* Enhanced hash select for Virtual Port 1438 Aggregation. */ 1439 bcmSwitchTMDomain = 738, /* Device TM-Domain. */ 1440 bcmSwitchPortHeaderType = 739, /* Sets TM Port header type. */ 1441 bcmSwitchL2OverflowEvent = 740, /* Enable/Disable L2 overflow event 1442 processing. */ 1443 bcmSwitchLinkProvClear = 741, /* Automatically clear provision for a 1444 link when it is de-registered. */ 1445 bcmSwitchEtagEthertype = 742, /* Set EtherType field in ETAG */ 1446 bcmSwitchEtagInvalidToCpu = 743, /* Invalid ETAG to CPU */ 1447 bcmSwitchEtagDropToCpu = 744, /* Packets dropped due to ETAG present 1448 to CPU. Enable/disable or set 1449 specific system port gport. */ 1450 bcmSwitchNonEtagDropToCpu = 745, /* Packets dropped due to ETAG not 1451 present to CPU */ 1452 bcmSwitchExtenderRpfFailToCpu = 746, /* Extender RPF check fail to CPU */ 1453 bcmSwitchExtenderInterfaceMissToCpu = 747, /* Extender forwarding lookup miss to 1454 CPU */ 1455 bcmSwitchPrioDropToCpu = 748, /* Priority admittance drop to CPU */ 1456 bcmSwitchExtenderMulticastLowerThreshold = 749, /* Lower threshold of multicast extended 1457 port VID */ 1458 bcmSwitchExtenderMulticastHigherThreshold = 750, /* Higher threshold of multicast 1459 extended port VID */ 1460 bcmSwitchL3NATEnable = 751, /* Enable/Disable NAT on the switch. */ 1461 bcmSwitchL3DNATHairpinToCpu = 752, /* If set send copy of DNAT hairpin 1462 packets to CPU. */ 1463 bcmSwitchL3DNATMissToCpu = 753, /* If set send copy of DNAT lookup miss 1464 packets to CPU. */ 1465 bcmSwitchL3SNATMissToCpu = 754, /* If set send copy of SNAT lookup miss 1466 packets to CPU. */ 1467 bcmSwitchL3NatOtherToCpu = 755, /* If set send copy of realm crossing 1468 non-TCP, UDP or ICMP packets to CPU. */ 1469 bcmSwitchL3NatRealmCrossingIcmpToCpu = 756, /* If set send copy of realm crossing 1470 ICMP packets to CPU. */ 1471 bcmSwitchL3NatFragmentsToCpu = 757, /* If set send copy of NAT fragment 1472 packets to CPU. */ 1473 bcmSwitchHashL3DNATPool = 758, /* Hash Select for DNAT address type 1474 entry. */ 1475 bcmSwitchHashL3DNATPoolDual = 759, /* Secondary Hash Select for DNAT 1476 address type entry. */ 1477 bcmSwitchMcastTrunkHashMin = 760, /* Minimal hushing value for a copy with 1478 a given port as destination. Copies 1479 with lower Hash values will be 1480 dropped. */ 1481 bcmSwitchMcastTrunkHashMax = 761, /* Maximal hushing value for a copy with 1482 a given port as destination. Copies 1483 with higher Hash values will be 1484 dropped. */ 1485 bcmSwitchIp4Compress = 762, /* compress IPv4 routing table. */ 1486 bcmSwitchEcmpResilientHashOffset = 763, /* Enhanced hash select for ECMP 1487 resilient hashing . */ 1488 bcmSwitchTrunkResilientHashOffset = 764, /* Barrel shift the resilient hashing 1489 LAG key. */ 1490 bcmSwitchFabricTrunkResilientHashOffset = 765, /* Enhanced hash select for HiGig trunk 1491 resilient hashing . */ 1492 bcmSwitchShaperAdjust = 766, /* Meter/Rate control with overhead on 1493 wire accounted for per packet for 1494 EFP. */ 1495 bcmSwitchHashVpVlanMemberIngress = 767, /* Select Hash algorithm for ingress vp 1496 vlan membership check. */ 1497 bcmSwitchHashVpVlanMemberIngressDual = 768, /* Select secondary Hash algorithm for 1498 ingress vp vlan membership check. */ 1499 bcmSwitchHashVpVlanMemberEgress = 769, /* Select Hash algorithm for Egress vp 1500 vlan membership check. */ 1501 bcmSwitchHashVpVlanMemberEgressDual = 770, /* Select secondary Hash algorithm for 1502 Egress vp vlan membership check. */ 1503 bcmSwitchHashL2Endpoint = 771, /* Select hash algorithm for L2 Endpoint 1504 table. */ 1505 bcmSwitchHashL2EndpointDual = 772, /* Select secondary hash algorithm for 1506 L2 Endpoint table. */ 1507 bcmSwitchHashEndpointQueueMap = 773, /* Select hash algorithm for Endpoint 1508 Queue Map table. */ 1509 bcmSwitchHashEndpointQueueMapDual = 774, /* Select secondary hash algorithm for 1510 Endpoint Queue Map table. */ 1511 bcmSwitchStackRouteHistoryBitmap1 = 775, /* Configures Stacking route history 1512 bitmap stamping according to port 1513 profile number 1. Uses for packet 1514 pruning in Stacking system. */ 1515 bcmSwitchStackRouteHistoryBitmap2 = 776, /* Configures Stacking route history 1516 bitmap stamping according to port 1517 profile number 2. Uses for packet 1518 pruning in Stacking system. */ 1519 bcmSwitchArpIPcheck = 777, /* For ARP request, check if TPA is 1520 known. */ 1521 bcmSwitchDeprecated778 = 778, /* Deprecated. Do not use. */ 1522 bcmSwitchDeprecated779 = 779, /* Deprecated. Do not use. */ 1523 bcmSwitchL2LearnLimitToCpu = 780, /* Copy the frame to CPU once the learn 1524 limitation occurred due to the hash 1525 is full in L2 Table. */ 1526 bcmSwitchFlexibleMirrorDestinations = 781, /* Enable configuration of the maximum 1527 number of mirror destinations. */ 1528 bcmSwitchEcmpMacroFlowHashEnable = 782, /* Enable ECMP macro-flow hashing. */ 1529 bcmSwitchOamVersionCheckDisable = 783, /* Disable version check for OAM packets 1530 in pipeline. */ 1531 bcmSwitchOamOlpChipEtherType = 784, /* Ether Type to be used for OLP Chip 1532 communication. */ 1533 bcmSwitchOamOlpChipTpid = 785, /* TPID to be used for OLP Chip 1534 communication. */ 1535 bcmSwitchOamOlpChipVlan = 786, /* VLAN ID to be used for OLP Chip 1536 communication. */ 1537 bcmSwitchDeprecated787 = 787, /* Deprecated. Do not use. */ 1538 bcmSwitchEgressKeepSystemHeader = 788, /* Keep system headers on Tx packets for 1539 a given port. */ 1540 bcmSwitchMacroFlowEcmpHashConcatEnable = 789, /* Enable hash concatenation for ecmp 1541 macro flow. */ 1542 bcmSwitchMacroFlowLoadBalanceHashConcatEnable = 790, /* Enable hash concatenation for Load 1543 balance macro flow. */ 1544 bcmSwitchMacroFlowTrunkHashConcatEnable = 791, /* Enable hash concatenation for Trunk 1545 macro flow. */ 1546 bcmSwitchMacroFlowHigigTrunkHashConcatEnable = 792, /* Enable hash concatenation for HiGig 1547 Trunk macro flow. */ 1548 bcmSwitchMacroFlowECMPHashSeed = 793, /* Set Hash seed for ecmp macro flow. */ 1549 bcmSwitchMacroFlowLoadBalanceHashSeed = 794, /* Set Hash Seed for Load balance macro 1550 flow. */ 1551 bcmSwitchMacroFlowTrunkHashSeed = 795, /* Set Hash Seed for Trunk macro flow. */ 1552 bcmSwitchMacroFlowHigigTrunkHashSeed = 796, /* Set Hash Seed for HiGig Trunk macro 1553 flow. */ 1554 bcmSwitchHashTrillPayloadSelect0 = 797, /* Set hash control to select TRILL 1555 payload L2/L3 fields for Hash Block 1556 A. */ 1557 bcmSwitchHashTrillPayloadSelect1 = 798, /* Set hash control to select TRILL 1558 payload L2/L3 fields for Hash Block 1559 B. */ 1560 bcmSwitchHashTrillTunnelSelect0 = 799, /* Set hash control to select TRILL 1561 Tunnel L2/L3 fields for Hash Block A. */ 1562 bcmSwitchHashTrillTunnelSelect1 = 800, /* Set hash control to select TRILL 1563 Tunnel L2/L3 fields for Hash Block B. */ 1564 bcmSwitchHashIP6AddrCollapseSelect0 = 801, /* Hash Control to collapse IPV6 1565 addresses for hash block A. */ 1566 bcmSwitchHashIP6AddrCollapseSelect1 = 802, /* Hash Control to collapse IPV6 1567 addresses for hash block B. */ 1568 bcmSwitchPrependTagEnable = 803, /* Enable Prepend tag per Port. */ 1569 bcmSwitchHashL2VxlanField0 = 804, /* Hash A Selection of L2 Payload for 1570 Vxlan Packets */ 1571 bcmSwitchHashL2VxlanField1 = 805, /* Hash B Selection of L2 Payload for 1572 Vxlan Packets */ 1573 bcmSwitchHashL3VxlanField0 = 806, /* Hash A Selection of L3 Payload for 1574 Vxlan Packets */ 1575 bcmSwitchHashL3VxlanField1 = 807, /* Hash B Selection of L3 Payload for 1576 Vxlan Packets */ 1577 bcmSwitchHashL2L2GreField0 = 808, /* Hash A Selection of L2 Payload for 1578 L2Gre Packets */ 1579 bcmSwitchHashL2L2GreField1 = 809, /* Hash B Selection of L2 Payload for 1580 L2Gre Packets */ 1581 bcmSwitchHashL3L2GreField0 = 810, /* Hash A Selection of L3 Payload for 1582 L2Gre Packets */ 1583 bcmSwitchHashL3L2GreField1 = 811, /* Hash B Selection of L3 Payload for 1584 L2Gre Packets */ 1585 bcmSwitchMcastTrunkIngressCommit = 812, /* If set, the Multicast LAG packets use 1586 the new LAG table definition for the 1587 member resolution. */ 1588 bcmSwitchMcastTrunkEgressCommit = 813, /* If set, the new Multicast LAG table 1589 is copied to the old one. It assumes 1590 that all the devices are using the 1591 new LAG table, after calling 1592 bcmSwitchMcastTrunkIngressCommit. */ 1593 bcmSwitchMplsShortPipe = 814, /* If Set device supports Short pipe 1594 only. Otherwise Pipe only. */ 1595 bcmSwitchTraverseMode = 815, /* Control the traverse mode, choose 1596 mode from 1597 bcm_switch_table_update_mode_t */ 1598 bcmSwitchTrunkResilientHashConfig = 816, /* Stateful LAG hashing function */ 1599 bcmSwitchTrunkResilientHashSeed = 817, /* Stateful LAG hashing seed */ 1600 bcmSwitchECMPResilientHashSeed = 818, /* Stateful ECMP hashing seed */ 1601 bcmSwitchResilientHashAgeTimer = 819, /* Resilient hash entry deletion time. 1602 Units: seconds */ 1603 bcmSwitchFieldStageEgressToCpu = 820, /* Control to enable egress copy to CPU 1604 action */ 1605 bcmSwitchHashOamEgress = 821, /* Hash Select for egress OAM. */ 1606 bcmSwitchHashOamEgressDual = 822, /* Secondary Hash Select for egress OAM. */ 1607 bcmSwitchColorL3L2Marking = 823, /* Set the DP->Resolved-DP map (COS 1608 marking) */ 1609 bcmSwitchWredForAllPkts = 824, /* Apply WRED per color profiles on all 1610 packets */ 1611 bcmSwitchFcoeNpvModeEnable = 825, /* NPV mode */ 1612 bcmSwitchFcoeDomainRoutePrefixLength = 826, /* D-ID Bits to use for domain route 1613 search */ 1614 bcmSwitchFcoeCutThroughEnable = 827, /* Enables Cut-Through mode for FCOE 1615 packets */ 1616 bcmSwitchFcoeSourceBindCheckAction = 828, /* Sets the action to take when 1617 Source-bind-check fails */ 1618 bcmSwitchFcoeSourceFpmaPrefixCheckAction = 829, /* Sets the action to take when 1619 Source-fpma-prefix-check fails */ 1620 bcmSwitchFcoeVftHopCountExpiryToCpu = 830, /* If set, copy hopcount expired packets 1621 to CPU */ 1622 bcmSwitchFcoeVftHopCountExpiryAction = 831, /* If set, send hopcount expired packets 1623 with EOFni in FC trailer. Applicable 1624 at egress. */ 1625 bcmSwitchFcoeFcEofT1Value = 832, /* Sets the numerical value for EOFt */ 1626 bcmSwitchFcoeFcEofT2Value = 833, /* Sets the numerical value for EOFt 1627 (alternate) */ 1628 bcmSwitchFcoeFcEofA1Value = 834, /* Sets the numerical value for EOFa */ 1629 bcmSwitchFcoeFcEofA2Value = 835, /* Sets the numerical value for EOFa 1630 (alternate) */ 1631 bcmSwitchFcoeFcEofN1Value = 836, /* Sets the numerical value for EOFn */ 1632 bcmSwitchFcoeFcEofN2Value = 837, /* Sets the numerical value for EOFn 1633 (alternate) */ 1634 bcmSwitchFcoeFcEofNI1Value = 838, /* Sets the numerical value for EOFni */ 1635 bcmSwitchFcoeFcEofNI2Value = 839, /* Sets the numerical value for EOFni 1636 (alternate) */ 1637 bcmSwitchFcoeZoneCheckFailToCpu = 840, /* Action to take when FCOE zone check 1638 fails, 0 : no-op(default), 1 : 1639 Copy-to-CPU */ 1640 bcmSwitchFcoeZoneCheckMissDrop = 841, /* Action to take when FCOE zone check 1641 is a miss, 0 : no-op, 1 : 1642 Drop(default) */ 1643 bcmSwitchHashUseL2GreTunnelGreKey0 = 842, /* Place the GRE key extracted from 1644 L2GRE pkt header in Hash A buckets */ 1645 bcmSwitchHashUseL2GreTunnelGreKey1 = 843, /* Place the GRE key extracted from 1646 L2GRE pkt header in Hash B buckets */ 1647 bcmSwitchHashL2GrePayloadSelect0 = 844, /* Select inner L2/L3 fields to derive 1648 the Hash A buckets when an L2GRE pkt 1649 is received and the L2GRE tunnel is 1650 being terminated */ 1651 bcmSwitchHashL2GrePayloadSelect1 = 845, /* Select inner L2/L3 fields to derive 1652 the Hash B buckets when an L2GRE pkt 1653 is received and the L2GRE tunnel is 1654 being terminated */ 1655 bcmSwitchHashL2GreNetworkPortPayloadDisable0 = 846, /* Disable using the l2gre payload for 1656 hashing, for L2Gre pkts */ 1657 bcmSwitchHashL2GreNetworkPortPayloadDisable1 = 847, /* Disable using the l2gre payload for 1658 hashing, for L2Gre pkts */ 1659 bcmSwitchSystemReservedVlan = 848, /* System Reserved VLAN */ 1660 bcmSwitchProxySrcKnockout = 849, /* If set, remove the source port during 1661 a proxy lookup operation of a packet 1662 which originated on this module. */ 1663 bcmSwitchNetworkGroupDepth = 850, /* Number of split horizon groups 1664 supported by the device */ 1665 bcmSwitchUnknownSubportPktTagToCpu = 851, /* If set, send packet to CPU on 1666 following error conditions a. missing 1667 subport pkt tag and b. unknown 1668 subport pkt tag (lookup miss). */ 1669 bcmSwitchL3RoutedLearn = 852, /* enable L2 learning for routed 1670 packets. */ 1671 bcmSwitchSubportPktTagEthertype = 853, /* Set EtherType field in LLTAG */ 1672 bcmSwitchSubportPktTagToCpu = 854, /* LLTAG present to CPU */ 1673 bcmSwitchNonSubportPktTagToCpu = 855, /* LLTAG not present to CPU */ 1674 bcmSwitchHashL2GreKeyMask0 = 856, /* Set the mask which is AND-ed with 1675 hash L2GRE key before hash generation 1676 for hash A */ 1677 bcmSwitchHashL2GreKeyMask1 = 857, /* Set the mask which is AND-ed with 1678 hash L2GRE key before hash generation 1679 for hash B */ 1680 bcmSwitchL3Max128BV6Entries = 858, /* Max number of Number of 128B LPM 1681 entries. */ 1682 bcmSwitchEEEQueueThresholdProfile0 = 859, /* Set EEE BB mode queue depth threshold 1683 Profile 0 */ 1684 bcmSwitchEEEQueueThresholdProfile1 = 860, /* Set EEE BB mode queue depth threshold 1685 Profile 1 */ 1686 bcmSwitchEEEQueueThresholdProfile2 = 861, /* Set EEE BB mode queue depth threshold 1687 Profile 2 */ 1688 bcmSwitchEEEQueueThresholdProfile3 = 862, /* Set EEE BB mode queue depth threshold 1689 Profile 3 */ 1690 bcmSwitchEEEPacketLatencyProfile0 = 863, /* Set EEE BB mode packet max latency 1691 Profile 0 */ 1692 bcmSwitchEEEPacketLatencyProfile1 = 864, /* Set EEE BB mode packet max latency 1693 Profile 1 */ 1694 bcmSwitchEEEPacketLatencyProfile2 = 865, /* Set EEE BB mode packet max latency 1695 Profile 2 */ 1696 bcmSwitchEEEPacketLatencyProfile3 = 866, /* Set EEE BB mode packet max latency 1697 Profile 3 */ 1698 bcmSwitchDosAttackV6MinFragEnable = 867, /* Enable Min pkt size check for 1699 fragmented IPv6. */ 1700 bcmSwitchDosAttackV6MinFragSize = 868, /* Min pkt size for fragmented IPv6 1701 check. */ 1702 bcmSwitchMirrorUnicastCosq = 869, /* Unicast mirror COS. */ 1703 bcmSwitchMirrorMulticastCosq = 870, /* Multicast mirror COS. */ 1704 bcmSwitchMcQueueSchedMode = 871, /* Schedule mode select for multicast 1705 queues. */ 1706 bcmSwitchReserved872 = 872, /* Reserved. */ 1707 bcmSwitchCacheTableUpdateAll = 873, /* Update all cached memories. */ 1708 bcmSwitchHashNivSrcIfEtagSvidSelect0 = 874, /* Select VN-TAG.src_vif or E-Tag.svid 1709 for hashing computation in Hash A 1710 buckets. */ 1711 bcmSwitchHashNivSrcIfEtagSvidSelect1 = 875, /* Select VN-TAG.src_vif or E-Tag.svid 1712 for hashing computation in Hash B 1713 buckets. */ 1714 bcmSwitchHashNivDstIfEtagVidSelect0 = 876, /* Select VN-TAG.dst_vif or E-Tag.vid 1715 for hashing computation in Hash A 1716 buckets. */ 1717 bcmSwitchHashNivDstIfEtagVidSelect1 = 877, /* Select VN-TAG.dst_vif or E-Tag.vid 1718 for hashing computation in Hash B 1719 buckets. */ 1720 bcmSwitchBstSnapshotEnable = 878, /* BST resource usage SnapShot mode. */ 1721 bcmSwitchSymmetricHashControl = 879, /* Enable/Disable symmetric hash, for 1722 Ip4, Ip6, FCoE packet, etc. */ 1723 bcmSwitchL2ExtLearn = 880, /* Learn L2 addresses on EXT_L2_ENTRY */ 1724 bcmSwitchReserveHighTunnelId = 881, /* Set the highest inclusive bounds of 1725 the Tunnel ID resources. Get will 1726 return the highest value supported by 1727 the device. Setting 0 will remove 1728 the reserved range */ 1729 bcmSwitchReserveLowTunnelId = 882, /* Set the lower inclusive bounds of the 1730 Tunnel ID resources. Get will return 1731 the lowest value supported by the 1732 device. Setting 0 will remove the 1733 reserved range */ 1734 bcmSwitchHigigCongestionClassEnable = 883, /* Enable the Congestion_Class field in 1735 HIGIG2 header to store the int_cn 1736 value in it. */ 1737 bcmSwitchEcnNonIpResponsive = 884, /* Set the default responsive indication 1738 value for NON-IP packets. */ 1739 bcmSwitchEcnNonIpIntCongestionNotification = 885, /* Set the internal congestion 1740 notification (int_cn) value for 1741 NON-IP packets. */ 1742 bcmSwitchMimPayloadTpidEnable = 886, /* Indicates which of MPLS_TPID[3:0] are 1743 allowed to match the TPID of a 1744 transit MinM frame's payload L2 1745 header's outer VLAN tag. */ 1746 bcmSwitchHashMimUseTunnelHeader0 = 887, /* Indicates whether the tunnel or 1747 payload fields must be used for 1748 hashing for MIM traffic in field 1749 selection block A. */ 1750 bcmSwitchHashMimUseTunnelHeader1 = 888, /* Indicates whether the tunnel or 1751 payload fields must be used for 1752 hashing for MIM traffic in field 1753 selection block B. */ 1754 bcmSwitchMplsPipeTunnelLabelExpSet = 889, /* If set, MPLS pipe modes is supported 1755 with EXP field set. In this case exp 1756 is taken from the exp field in 1757 bcm_mpls_egress_label_s struct in the 1758 bcm_mpls_port_add api. Otherwise EXP 1759 field will be copied from previous 1760 label. Default is 0. */ 1761 bcmSwitchControlPortConfigInstall = 890, /* Port config install. */ 1762 bcmSwitchLoopbackMtuSize = 891, /* MTU size in bytes check for packets 1763 ingressed on loopback port. */ 1764 bcmSwitchHashVxlanPayloadSelect0 = 892, /* Set hash control to select VXLAN 1765 payload L2/L3 fields for Hash Block 1766 A. */ 1767 bcmSwitchHashVxlanPayloadSelect1 = 893, /* Set hash control to select VXLAN 1768 payload L2/L3 fields for Hash Block 1769 B. */ 1770 bcmSwitchCongestionCnmSrcMacNonOui = 894, /* Source MAC address in Congestion 1771 Notification Message Lower 3 bytes of 1772 MAC address to match */ 1773 bcmSwitchCongestionCnmSrcMacOui = 895, /* Source MAC address in Congestion 1774 Notification Message Upper 3 bytes of 1775 MAC address to match */ 1776 bcmSwitchHashL2MPLSPayloadSelect0 = 896, /* Set hash control to select L2 MPLS 1777 payload L2/L3 fields for Hash Block 1778 A. */ 1779 bcmSwitchHashL2MPLSPayloadSelect1 = 897, /* Set hash control to select L2 MPLS 1780 payload L2/L3 fields for Hash Block 1781 B. */ 1782 bcmSwitchHashL3L2MPLSField0 = 898, /* Hash A Selection of L3 Payload for L2 1783 MPLS Packets */ 1784 bcmSwitchHashL3L2MPLSField1 = 899, /* Hash B Selection of L3 Payload for L2 1785 MPLS Packets */ 1786 bcmSwitchHashIPSecSelect0 = 900, /* Set hash control to select outer 1787 L4_SRC/DST_PORT or IPSec SPI for hash 1788 block A. */ 1789 bcmSwitchHashIPSecSelect1 = 901, /* Set hash control to select outer 1790 L4_SRC/DST_PORT or IPSec SPI for hash 1791 block B. */ 1792 bcmSwitchECMPLevel1RandomSeed = 902, /* Seed for RNG used in ECMP Randomized 1793 Load Balancing (at Level1 in Two 1794 Level ECMP) */ 1795 bcmSwitchECMPLevel2RandomSeed = 903, /* Seed for RNG used in ECMP Randomized 1796 Load Balancing at Level2 in Two Level 1797 ECMP */ 1798 bcmSwitchTimesyncEgressTimestampingMode = 904, /* Selects 32bit or 48bit timestamping 1799 mode for 1588 packets. */ 1800 bcmSwitchSubportCoEEtherType = 905, /* Set COE protocol ingress EtherType to 1801 match */ 1802 bcmSwitchSubportEgressTpid = 906, /* The TPID to use when the 1803 bcmPortControlSubportTagSize is 4 1804 Bytes */ 1805 bcmSwitchSubportEgressWideTpid = 907, /* The TPID to use when the 1806 bcmPortControlSubportTagSize is 8 1807 Bytes */ 1808 bcmSwitchIpmcSameVlanPruningOverride = 908, /* Set to override the IPMC same vlan 1809 pruning */ 1810 bcmSwitchSynchronousPortClockSourceValid = 909, /* Returns whether synchronous clock can 1811 be sucessfully recovered from the 1812 port, configured via 1813 bcmSwitchSynchronousPortClockSource */ 1814 bcmSwitchSynchronousPortClockSourceBkupValid = 910, /* Returns whether synchronous clock is 1815 successfully recovered from the back 1816 up port, configured via 1817 bcmSwitchSynchronousPortClockSourceBkup */ 1818 bcmSwitchRemoteProtectionEnable = 911, /* Set the Protection Status bit in 1819 HiGig Header */ 1820 bcmSwitchMirrorExclusive = 912, /* Set Mirror exclusive behaviour 1821 between FP and Port */ 1822 bcmSwitchEcnDelayMeasurementThreshold = 913, /* Set Ecn delay measurement threshold */ 1823 bcmSwitchMacroFlowHashUseMSB = 914, /* If enable, use MSB for Macroflow 1824 based hashing */ 1825 bcmSwitchMplsDefaultTtlCopy = 915, /* Default value that is used when 1826 sending a packet from AC to PWE and 1827 the push-profile is copy */ 1828 bcmSwitchOamStackingSupport = 916, /* Use VC label field to carry OAM 1829 endpoint context to egress XGS switch */ 1830 bcmSwitchHashOam = 917, /* Hash select for OAM tables */ 1831 bcmSwitchHashOamDual = 918, /* Secondary hash select for OAM tables */ 1832 bcmSwitchHashOamLeastFull = 919, /* Use least full bank in dual hash OAM 1833 tables */ 1834 bcmSwitchHashDualMoveDepthOam = 920, /* Maximum moves in dual hash mode for 1835 OAM tables */ 1836 bcmSwitchPortVlanTranslationAdvanced = 921, /* Enable Port Advanced default vlan 1837 Edit mode. 1 - enable, 0 - disable */ 1838 bcmSwitchForwardingLayerMtuFilter = 922, /* EnableDisable Forwarding Layer 1839 filtering per header format */ 1840 bcmSwitchLinkLayerMtuFilter = 923, /* EnableDisable Link Layer Filtering 1841 per header format */ 1842 bcmSwitchForwardingLayerMtuSize = 924, /* Mtu size for Forwarding Layer 1843 Filtering */ 1844 bcmSwitchLinkLayerMtuSize = 925, /* MTU size for Link Layer Filtering */ 1845 bcmSwitchMimBvidInsertionControl = 926, /* If 0, BVID is inserted into the MiM 1846 packet if the destination virtual 1847 port(bcm_mim_port_t object) is a 1848 Network port (legacy behavior). If 1849 set to 1, BVID is inserted into the 1850 MiM packet if the egress_tunnel_vlan 1851 field of the corresponding 1852 bcm_mim_port_t object contains a 1853 valid vlan id (1 .. 4095) */ 1854 bcmSwitchL2CpuDeleteEvent = 927, /* If enable, when SW initiates a DELETE 1855 operation to l2 table, SDK can get 1856 relative DELETE events from L2 Mode 1857 FIFO. */ 1858 bcmSwitchL2LearnEvent = 928, /* If enable, when HW does a LEARN 1859 operation to l2 table, SDK can get 1860 relative LEARN events from L2 Mode 1861 FIFO. */ 1862 bcmSwitchL2CpuAddEvent = 929, /* If enable, when SW initiates a INSERT 1863 operation to l2 table, SDK can get 1864 ADD events from L2 Mode FIFO. */ 1865 bcmSwitchL2AgingEvent = 930, /* If enable, when HW does a AGE 1866 operation to l2 table , SDK can get 1867 AGE events from L2 Mode FIFO. */ 1868 bcmSwitchUdfHashEnable = 931, /* Enable/Disable UDF hashing */ 1869 bcmSwitchOlpMatchRule = 932, /* Set Match rule value that identifies 1870 OLP packets when copied to CPU. */ 1871 bcmSwitchMplsExtendedLabelTtl = 933, /* Set the TTL of the new MPLS label 1872 created when using extended label 1873 feature. */ 1874 bcmSwitchMacroFlowHashOverlayMaxOffset = 934, /* Maximum offset value to be used in 1875 overlay ECMP offset table */ 1876 bcmSwitchMacroFlowHashOverlayStrideOffset = 935, /* Offset increment to be used for 1877 populating overlay ECMP offset table. */ 1878 bcmSwitchMacroFlowHashOverlayMinOffset = 936, /* Minimum offset value to be used in 1879 overlay ECMP offset table */ 1880 bcmSwitchMacroFlowEcmpHashOverlayConcatEnable = 937, /* Enable hash concatenation for overlay 1881 layer ecmp macro flow. */ 1882 bcmSwitchMacroFlowECMPOverlayHashSeed = 938, /* Hash Seed value for the overlay ECMP 1883 calculation */ 1884 bcmSwitchECMPOverlayHashOffset = 939, /* Offset selections for enhanced 1885 overlay L3 ECMP. */ 1886 bcmSwitchMacroFlowEcmpUnderlayHashConcatEnable = 940, /* 56960 Enable hash concatenation for 1887 ecmp level 2 macro flow. */ 1888 bcmSwitchMacroFlowECMPUnderlayHashSeed = 941, /* 56960 Set Hash seed for ecmp level 2 1889 macro flow. */ 1890 bcmSwitchECMPUnderlayVxlanHashOffset = 942, /* Enhanced hash select for VxLAN ECMP 1891 Level 2 hashing . */ 1892 bcmSwitchECMPUnderlayL2GreHashOffset = 943, /* Enhanced hash select for L2Gre ECMP 1893 Level 2 hashing . */ 1894 bcmSwitchECMPUnderlayTrillHashOffset = 944, /* Enhanced hash select for Trill ECMP 1895 Level 2 hashing . */ 1896 bcmSwitchVirtualPortUnderlayDynamicHashOffset = 945, /* Enhanced hash select for Virtual Port 1897 Aggregation at Level 2. */ 1898 bcmSwitchECMPUnderlayHashSet0Offset = 946, /* 56960 enhanced hash bits for ECMP 1899 Level 2. */ 1900 bcmSwitchSampleFlexRandomSeed = 947, /* Set sFlow Flex RNG seed */ 1901 bcmSwitchNonUcVlanShapingEnable = 948, /* Enable/disable the ability of 1902 assigning single destination 1903 non-unicast traffic to service-based 1904 queues */ 1905 bcmSwitchCustomHeaderEncapPriorityOffset = 949, /* Set the offset of the priority value 1906 in the encapsulated custom header */ 1907 bcmSwitchIngCapwapEnable = 950, /* Enable or disable ingress CAPWAP 1908 parser. */ 1909 bcmSwitchCapwapDataUdpDstPort = 951, /* UDP dest port number of CAPWAP data 1910 packet. */ 1911 bcmSwitchCountCapwapPayloadBytesOnly = 952, /* If set, count only the CAPWAP's 1912 wireless payload bytes for CAPWAP 1913 data packets. */ 1914 bcmSwitchOamOlpStationMacOui = 953, /* Specify OUI bytes of BCM device MAC 1915 address used during OLP communication 1916 and OLP PKT sig match */ 1917 bcmSwitchOamOlpStationMacNonOui = 954, /* Specify NON OUI bytes of BCM device 1918 MAC address used during OLP 1919 communication and OLP PKT sig match */ 1920 bcmSwitchReserved955 = 955, /* Reserved955 */ 1921 bcmSwitchPFCDeadlockDetectionTimeInterval = 956, /* Set and Get the PFC detection time 1922 interval (0-100ms[default], 1-10ms). */ 1923 bcmSwitchPFCDeadlockRecoveryAction = 957, /* Set and Get Recovery action to be 1924 performed in PFC deadlock recovery 1925 state. 0-Transmit Packets (Default), 1926 1-Drop. */ 1927 bcmSwitchRangeCheckersAPIType = 958, /* Setting this switch control to 0 1928 allows to use only field APIs 1929 (bcm_field_range_XXX) and setting it 1930 to 1 allows to use only new range 1931 module APIs (bcm_range_XXX). Default 1932 value will be set to 0. */ 1933 bcmSwitchReserved958 = 959, /* Reserved958 */ 1934 bcmSwitchEcmpGroupMemberMode = 960, /* Set/get ECMP group mode */ 1935 bcmSwitchMimlEncapInnerEthertype = 961, /* Set MIML-ETYPE (inner EtherType) 1936 field in MiML for encapsulation. 1937 Value of unit16 type. */ 1938 bcmSwitchHashMiMPayloadSelect0 = 962, /* Set hash control to select MiM L2/L3 1939 payload fields for Hash Block A */ 1940 bcmSwitchHashMiMPayloadSelect1 = 963, /* Set hash control to select MiM L2/L3 1941 payload fields for Hash Block B */ 1942 bcmSwitchHashL3MiMField0 = 964, /* L3 MiM enhanced hash field for Hash 1943 Block A */ 1944 bcmSwitchHashL3MiMField1 = 965, /* L3 MiM enhanced hash field for Hash 1945 Block B */ 1946 bcmSwitchHashMPLSUseLabelStack = 966, /* If there are more than 3 labels, 1947 label stack (up to 5 labels) is used 1948 for hashing else Top 3 MPLS labels + 1949 payload IPV4/IPv6 fields will be 1950 selected for hashing */ 1951 bcmSwitchHashMPLSExcludeGAL = 967, /* To exclude GAL label from hash 1952 computation */ 1953 bcmSwitchRedirectBufferThresholdPriorityLow = 968, /* Set the buffer threshold limit for 1954 low priority redirected packets */ 1955 bcmSwitchRedirectBufferThresholdPriorityMedium = 969, /* Set the buffer threshold limit for 1956 medium priority redirected packets */ 1957 bcmSwitchRedirectBufferThresholdPriorityHigh = 970, /* Set the buffer threshold limit for 1958 high priority redirected packets */ 1959 bcmSwitchFlexIP6ExtHdr = 971, /* Programmable value for user defined 1960 extension header 1 & 2. */ 1961 bcmSwitchFlexIP6ExtHdrEgress = 972, /* Egress programmable value for user 1962 defined extension header 1 & 2. */ 1963 bcmSwitchHashUseFlowSelMplsEcmp = 973, /* Enable/Disable flow based hashing for 1964 MPLS ECMP. */ 1965 bcmSwitchV6L3SrcDstLocalLinkDropCancel = 974, /* Do not drop IPv6. It will override 1966 drop control 1967 bcmSwitchV6L3LocalLinkDrop if source 1968 and destination are local link. */ 1969 bcmSwitchL3ClassIdForL2Enable = 975, /* Enable/Disable L3 Lookup to get 1970 classids based on DIP & SIP for L2 1971 Switched packets. */ 1972 bcmSwitchDropSobmhOnLinkDown = 976, /* Enable/Disable SOBMH blocking on link 1973 down egress port */ 1974 bcmSwitchResilientHashCRC0ByteMask = 977, /* Set mask for CRC0 stateful hashing 1975 function in 2Byte resolution */ 1976 bcmSwitchResilientHashCRC1ByteMask = 978, /* Set mask for CRC1 stateful hashing 1977 function in 2Byte resolution */ 1978 bcmSwitchResilientHashCRC2ByteMask = 979, /* Set mask for CRC2 stateful hashing 1979 function in 2Byte resolution */ 1980 bcmSwitchResilientHashCRC3ByteMask = 980, /* Set mask for CRC3 stateful hashing 1981 function in 2Byte resolution */ 1982 bcmSwitchResilientHashCRCSeed = 981, /* Set seed for stateful CRC hashing 1983 functions */ 1984 bcmSwitchECMPResilientHashKey0Shift = 982, /* Shift left the 1985 Stateful-Hashing-Lb-Key(47 bit) to 1986 create ECMP key-0 */ 1987 bcmSwitchECMPResilientHashKey1Shift = 983, /* Shift right the 1988 Stateful-Hashing-Lb-Key(47 bit) to 1989 create ECMP key-1 */ 1990 bcmSwitchVpnDetachPorts = 984, /* Set VPN destroy mode to either delete 1991 ports that are attached to the VSI or 1992 ignore them. Default: 1 - Destroy 1993 attached ports. */ 1994 bcmSwitchClassL3L2Marking = 985, /* Set the 1995 In-Lif-Profile->Resolved-In-Lif-Profile 1996 map (In-Lif-Profile mapping */ 1997 bcmSwitchL3L2MarkingMode = 986, /* Set the DP map mode */ 1998 bcmSwitchSTPDisabledFieldBypass = 987, /* Disable FP when STP state is 1999 disabled. */ 2000 bcmSwitchHashSctpL4Port = 988, /* To set that RTAG7 hashing can be 2001 performed on SCTP. */ 2002 bcmSwitchReserved988 = 989, /* Reserved988. */ 2003 bcmSwitchGlobalTpidEnable = 990, /* Enable/Disable global TPIDs. */ 2004 bcmSwitchECMPResilientHashCombine = 991, /* Combine both regular and resilient 2005 hashing for ECMP key. */ 2006 bcmSwitchHashSetTflowMode = 992, /* enable/disable using hash offset 2007 b0/b1 regardless of th_tflow_enabled */ 2008 bcmSwitchDowngrade = 993, /* set the switch for a downgrade in 2009 Warmboot */ 2010 bcmSwitchHashELISearch = 994, /* Enable ELI search and the use of the 2011 EL label for LAG and ECMP load 2012 balancing. */ 2013 bcmSwitchCrashRecoveryMode = 995, /* Determine the Crash recovery mode 2014 0:off 1:API 2:on demand. */ 2015 bcmSwitchCrCommit = 996, /* If woekinging in on demand CR, use 2016 this to trigger a commit. */ 2017 bcmSwitchCrLastTransactionStatus = 997, /* Query after a crash if last 2018 transaction went through. */ 2019 bcmSwitchCrCouldNotRecover = 998, /* Query after A crash if program 2020 succesfully recovered. */ 2021 bcmSwitchHWL2Freeze = 999, /* Freeze/thaw L2 H/W activity. */ 2022 bcmSwitchHashIP6NextHeaderUseExtensionHeader0 = 1000, /* Hash Control to select the IPv6 Next 2023 Header field for hash Block A. If 2024 set, use Extension Header, else use 2025 current Next Header field. */ 2026 bcmSwitchHashIP6NextHeaderUseExtensionHeader1 = 1001, /* Hash Control to select the IPv6 Next 2027 Header field for hash Block B. If 2028 set, use Extension Header, else use 2029 current Next Header field. */ 2030 bcmSwitchHashUseFlowSelLbidNonUnicast = 1002, /* Enable/Disable flow based hashing for 2031 non-unicast LBID. */ 2032 bcmSwitchHashUseFlowSelLbidUnicast = 1003, /* Enable/Disable flow based hashing for 2033 unicast LBID. */ 2034 bcmSwitchHashUseFlowSelHigigTrunkNonUnicast = 1004, /* Enable/Disable flow based hashing for 2035 non-unicast HiGig Trunk. */ 2036 bcmSwitchHashUseFlowSelHigigTrunkUnicast = 1005, /* Enable/Disable flow based hashing for 2037 unicast HiGig Trunk. */ 2038 bcmSwitchHashUseFlowSelHigigTrunkFailover = 1006, /* Enable/Disable flow based hashing for 2039 HiGig Trunk Failover. */ 2040 bcmSwitchHashUseFlowSelTrunkNonUnicast = 1007, /* Enable/Disable flow based hashing for 2041 non-unicast Trunk. */ 2042 bcmSwitchHashUseFlowSelEntropy = 1008, /* Enable/Disable flow based hashing for 2043 Entropy. */ 2044 bcmSwitchHashUseFlowSelVxlanEcmp = 1009, /* Enable/Disable flow based hashing for 2045 VXLAN ECMP. */ 2046 bcmSwitchDefaultNativeOutVlanPort = 1010, /* Default native out VLAN Port. */ 2047 bcmSwitchDefaultEgressVlanEditClassId = 1011, /* Default Vlan Edit Class Id for Egress 2048 VLAN translation. */ 2049 bcmSwitchGtpDetectEnable = 1012, /* Enable/disable the capability for GTP 2050 packet detection. */ 2051 bcmSwitchGtpHdrFirstByte = 1013, /* Setup the value for GTP Header First 2052 Byte. */ 2053 bcmSwitchGtpHdrFirstByteMask = 1014, /* Setup the mask for GTP Header First 2054 Byte. */ 2055 bcmSwitchHashGtpTeidEnable0 = 1015, /* Enable using the Tunnel endpoint id 2056 for hashing, for GTP pkts. */ 2057 bcmSwitchHashGtpTeidEnable1 = 1016, /* Enable using the Tunnel endpoint id 2058 for hashing, for GTP pkts. */ 2059 bcmSwitchEccSingleBitErrorEvent = 1017, /* Enable/Disable 1bit ECC error 2060 reporting for all the memories which 2061 are protected by ECC logic and whose 2062 Parity/ECC error could only be 2063 corrected by H/W. */ 2064 bcmSwitchHeaderCompensationPerPacket = 1018, /* Set the header compensation of 2065 packets according to the MSBs of its 2066 CUD. */ 2067 bcmSwitch3rdTagStampMode = 1019, /* Set the 3rd tag stamping mode, 2068 0:Dsiable, 1: Enable. */ 2069 bcmSwitchMacroFlowHigigTrunkHashMinOffset = 1020, /* Minumum offset value to be used in 2070 RTAG7 macroflow for HiGig Trunk */ 2071 bcmSwitchMacroFlowHigigTrunkHashMaxOffset = 1021, /* Maximum offset value to be used in 2072 RTAG7 macroflow for HiGig Trunk */ 2073 bcmSwitchMacroFlowHigigTrunkHashStrideOffset = 1022, /* Offset increment value to be used in 2074 RTAG7 macroflow for HiGig Trunk */ 2075 bcmSwitchMacroFlowTrunkHashMinOffset = 1023, /* Minumum offset value to be used in 2076 RTAG7 macroflow for Trunk */ 2077 bcmSwitchMacroFlowTrunkHashMaxOffset = 1024, /* Maximum offset value to be used in 2078 RTAG7 macroflow for Trunk */ 2079 bcmSwitchMacroFlowTrunkHashStrideOffset = 1025, /* Offset increment value to be used in 2080 RTAG7 macroflow for Trunk */ 2081 bcmSwitchMacroFlowLoadBalanceEntropyHashMinOffset = 1026, /* Minumum offset value to be used in 2082 RTAG7 macroflow for Load Balance 2083 ID/Entropy */ 2084 bcmSwitchMacroFlowLoadBalanceEntropyHashMaxOffset = 1027, /* Maximum offset value to be used in 2085 RTAG7 macroflow for Load Balance 2086 ID/Entropy */ 2087 bcmSwitchMacroFlowLoadBalanceEntropyHashStrideOffset = 1028, /* Offset increment value to be used in 2088 RTAG7 macroflow for Load Balance 2089 ID/Entropy */ 2090 bcmSwitchCrTransactionStart = 1029, /* If working in on demand CR, use this 2091 to start a new transaction. */ 2092 bcmSwitchUdpTunnelIPv4DstPort = 1030, /* UDP destination port for IPv4 2093 encapsulation in UDP tunnel. */ 2094 bcmSwitchUdpTunnelIPv6DstPort = 1031, /* UDP destination port for IPv6 2095 encapsulation in UDP tunnel. */ 2096 bcmSwitchUdpTunnelMplsDstPort = 1032, /* UDP destination port for MPLS 2097 encapsulation in UDP tunnel. */ 2098 bcmSwitchECMPSecondHierHashOffset = 1033, /* BCM88680: ECMP second hierarchy Hash 2099 key is barrel shifted by this value. */ 2100 bcmSwitchECMPSecondHierHashConfig = 1034, /* BCM88680: Selects hashing polynomial 2101 for the second hierarchy of the ECMP. */ 2102 bcmSwitchIngressRateLimitMpps = 1035, /* Limit ingress rate in Mega Packets 2103 Per Second. */ 2104 bcmSwitchMirrorSnoopForwardOriginalWhenDropped = 1036, /* When dropping the mirror and/or snoop 2105 packet copies due to FIFOs being 2106 full, do not drop the original 2107 (forward) copy */ 2108 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesExponent = 1037, /* The exponent used in the calculation 2109 of exponentially weighted moving 2110 average of historical member bytes in 2111 physical queue. */ 2112 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesDecreaseReset = 1038, /* If set, the historical member bytes 2113 in physical queue is updated with the 2114 instantaneous value if the latter is 2115 smaller. */ 2116 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesMinThreshold = 1039, /* The minimum threshold, in bytes, used 2117 to quantize historical member bytes 2118 in physical queue. */ 2119 bcmSwitchFabricTrunkDynamicPhysicalQueuedBytesMaxThreshold = 1040, /* The maximum threshold, in bytes, used 2120 to quantize historical member bytes 2121 in physical queue. */ 2122 bcmSwitchTrunkDynamicPhysicalQueuedBytesExponent = 1041, /* The exponent used in the calculation 2123 of exponentially weighted moving 2124 average of historical member bytes in 2125 physical queue. */ 2126 bcmSwitchTrunkDynamicPhysicalQueuedBytesDecreaseReset = 1042, /* If set, the historical member bytes 2127 in physical queue is updated with the 2128 instantaneous value if the latter is 2129 smaller. */ 2130 bcmSwitchTrunkDynamicPhysicalQueuedBytesMinThreshold = 1043, /* The minimum threshold, in bytes, used 2131 to quantize historical member bytes 2132 in physical queue. */ 2133 bcmSwitchTrunkDynamicPhysicalQueuedBytesMaxThreshold = 1044, /* The maximum threshold, in bytes, used 2134 to quantize historical member bytes 2135 in physical queue. */ 2136 bcmSwitchEcmpDynamicPhysicalQueuedBytesExponent = 1045, /* The exponent used in the calculation 2137 of exponentially weighted moving 2138 average of historical member bytes in 2139 physical queue. */ 2140 bcmSwitchEcmpDynamicPhysicalQueuedBytesDecreaseReset = 1046, /* If set, the historical member bytes 2141 in physical queue is updated with the 2142 instantaneous value if the latter is 2143 smaller. */ 2144 bcmSwitchEcmpDynamicPhysicalQueuedBytesMinThreshold = 1047, /* The minimum threshold, in bytes, used 2145 to quantize historical member bytes 2146 in physical queue. */ 2147 bcmSwitchEcmpDynamicPhysicalQueuedBytesMaxThreshold = 1048, /* The maximum threshold, in bytes, used 2148 to quantize historical member bytes 2149 in physical queue. */ 2150 bcmSwitchFabricTrunkDynamicRandomSeed = 1049, /* Seed for RNG used in HiGig Trunk 2151 Dynamic Load Balancing */ 2152 bcmSwitchTrunkDynamicRandomSeed = 1050, /* Seed for RNG used in Trunk Dynamic 2153 Load Balancing */ 2154 bcmSwitchEcmpDynamicRandomSeed = 1051, /* Seed for RNG used in ECMP Dynamic 2155 Load Balancing */ 2156 bcmSwitchHashMPLSExcludeReservedLabel = 1052, /* To exclude all reserved labels from 2157 hash computation */ 2158 bcmSwitchMplsNonIpPayloadDefaultEcn = 1053, /* To set the default ECN for L2 MPLS 2159 termination flows for non-IP payloads */ 2160 bcmSwitchECMPHashBitCountSelect = 1054, /* To select the most significant bits 2161 of the 16-bit ECMP hash value before 2162 the modulo function */ 2163 bcmSwitchEcnIpPayloadResponsive = 1055, /* To set to use payload IP header's IP 2164 protocol field to determine 2165 responsive attribute of the packet 2166 for transiting tunnels */ 2167 bcmSwitchHashMultiMoveDepthExactMatch = 1056, /* Maximum moves in multi hash mode for 2168 FPEM tables. */ 2169 bcmSwitchCrAbort = 1057, /* If working in on demand CR, use this 2170 to abort the current transaction. */ 2171 bcmSwitchLIUdpSrcPortSet = 1058, /* Set UDP source port for Lawful 2172 Interception tunnel. */ 2173 bcmSwitchRoce1Ethertype = 1059, /* Set l2 EtherType to match RoCEv1 2174 packets. */ 2175 bcmSwitchRoce2UdpDstPort = 1060, /* Set udp dest port to match RoCEv2 2176 packets. */ 2177 bcmSwitchHashUseFlowSelRoce2Ecmp = 1061, /* Enable/Disable flow based hashing for 2178 RoCEv2 ECMP. */ 2179 bcmSwitchHashSelectControlExtended = 1062, /* Extended hash field selection control */ 2180 bcmSwitchHashField0Roce1FlowLabel = 1063, /* Enable RoCEv1 GRH(Global Route 2181 Header) flow label for Block A Hash 2182 Field Selection. */ 2183 bcmSwitchHashField1Roce1FlowLabel = 1064, /* Enable RoCEv1 GRH(Global Route 2184 Header) flow label for Block B Hash 2185 Field Selection. */ 2186 bcmSwitchHashField0Roce2FlowLabel = 1065, /* Enable RoCEv2 IPv6 flow label for 2187 Block A Hash Field Selection. */ 2188 bcmSwitchHashField1Roce2FlowLabel = 1066, /* Enable RoCEv2 IPv6 flow label for 2189 Block B Hash Field Selection. */ 2190 bcmSwitchHashRoce1Field0 = 1067, /* Hash block A field selection for 2191 RoCEv1 packets. */ 2192 bcmSwitchHashRoce1Field1 = 1068, /* Hash block B field selection for 2193 RoCEv1 packets. */ 2194 bcmSwitchHashRoce2IP4Field0 = 1069, /* Hash block A field selection for 2195 RoCEv2 IPv4 packets. */ 2196 bcmSwitchHashRoce2IP4Field1 = 1070, /* Hash block B field selection for 2197 RoCEv2 IPv4 packets. */ 2198 bcmSwitchHashRoce2IP6Field0 = 1071, /* Hash block A field selection for 2199 RoCEv2 IPv6 packets. */ 2200 bcmSwitchHashRoce2IP6Field1 = 1072, /* Hash block B field selection for 2201 RoCEv2 IPv6 packets. */ 2202 bcmSwitchEcmpRoce2HashOffset = 1073, /* Enhanced hash selection for RoCEv2 2203 ECMP port based hashing. */ 2204 bcmSwitchVxlanUdpDestPortSet1 = 1074, /* Set UDP Destination port for VXLAN 2205 (alternate). */ 2206 bcmSwitchVxlanEntropyEnableIP6 = 1075, /* Set IPv6 Flow Label for VXLAN Tunnel 2207 Entropy (Value = TRUE/FALSE). */ 2208 bcmSwitchE2EFCReceiveDestMacOui = 1076, /* E2EFC message MAC upper 3 bytes to 2209 match, only for E2EFC RX. */ 2210 bcmSwitchE2EFCReceiveDestMacNonOui = 1077, /* E2EFC message MAC lower 3 bytes to 2211 match, only for E2EFC RX. */ 2212 bcmSwitchE2EFCReceiveEtherType = 1078, /* E2EFC message EtherType/length to 2213 match, only for E2EFC RX. */ 2214 bcmSwitchE2EFCReceiveOpcode = 1079, /* E2EFC message opcode to match, only 2215 for E2EFC RX. */ 2216 bcmSwitchHashUseFlowSelEcmpOverlay = 1080, /* Enable/Disable flow based hashing for 2217 ECMP LEVEL 1. */ 2218 bcmSwitchMplsSpeculativeNibbleMap = 1081, /* Map first nibble after MPLS header to 2219 speculative next protocol. */ 2220 bcmSwitchIpmcSameFwdDmnThreshold = 1082, /* Set the threshold for 1:1 mapped 2221 VLANs and VPNs for IPMC packet flow 2222 for RIOT */ 2223 bcmSwitchHashUseFlowSelVpTrunk = 1083, /* Enable/Disable flow based hashing for 2224 VP Trunk. */ 2225 bcmSwitchHashUseFlowSelTrunkResilientHash = 1084, /* Enable/Disable flow based hashing for 2226 Trunk RH. */ 2227 bcmSwitchMeterMef10dot3Enable = 1085, /* Enable meter mef 10.3 mode. */ 2228 bcmSwitchHashMultiMoveDepthVlanTranslate1 = 1086, /* Maximum moves in multi hash mode for 2229 vlan translate1 tables. */ 2230 bcmSwitchHashMultiMoveDepthVlanTranslate2 = 1087, /* Maximum moves in multi hash mode for 2231 vlan translate2 tables. */ 2232 bcmSwitchHashMultiMoveDepthEgressVlanTranslate1 = 1088, /* Maximum moves in multi hash mode for 2233 vlan egress translate1 tables. */ 2234 bcmSwitchHashMultiMoveDepthEgressVlanTranslate2 = 1089, /* Maximum moves in multi hash mode for 2235 vlan egress translate2 tables. */ 2236 bcmSwitchIntL4DestPort1 = 1090, /* INT(Inband Network Telemetry) packet 2237 UDP destination port1. */ 2238 bcmSwitchIntL4DestPort2 = 1091, /* INT packet UDP destination port2. */ 2239 bcmSwitchIntProbeMarker1 = 1092, /* INT header ProbeMarker1. */ 2240 bcmSwitchIntProbeMarker2 = 1093, /* INT header ProbeMarker2. */ 2241 bcmSwitchIntVersion = 1094, /* INT header version. */ 2242 bcmSwitchIntRequestVectorValue = 1095, /* INT header request vector. */ 2243 bcmSwitchIntRequestVectorMask = 1096, /* INT header request vector mask. */ 2244 bcmSwitchIntSwitchId = 1097, /* INT payload switch ID. */ 2245 bcmSwitchIntEgressTimeDelta = 1098, /* Time in nano-second that is added to 2246 current time stamp to adjust latency 2247 from EP to port. */ 2248 bcmSwitchIntHopLimitCpuEnable = 1099, /* Enable copy to CPU on hop limit 2249 condition. */ 2250 bcmSwitchIntTurnAroundCpuEnable = 1100, /* Enable copy to CPU on egress port as 2251 turnaround port. */ 2252 bcmSwitchIntMaxPayloadLength = 1101, /* INT max payload length. Only apply to 2253 devices using global value */ 2254 bcmSwitchForwardLookupNotFoundTrap = 1102, /* Set foward lookup not found Trap ID. */ 2255 bcmSwitchEtherTypeCustom1 = 1103, /* Set Custom_1 Ethernet type. */ 2256 bcmSwitchEtherTypeCustom2 = 1104, /* Set Custom_2 Ethernet type. */ 2257 bcmSwitchL3LpmHitbitEnable = 1105, /* Enable hit bit lookup update in the 2258 LPM table. */ 2259 bcmSwitchMplsCtrlPktToCpu = 1106, /* MPLS control packets to CPU. */ 2260 bcmSwitchInvalidTpidToCpu = 1107, /* Invalid tag protocol ID packets to 2261 CPU. */ 2262 bcmSwitchFlowSelectMissToCpu = 1108, /* Packets that miss flow selection to 2263 CPU. */ 2264 bcmSwitchL3HdrMismatchToCpu = 1109, /* L3 header mismatch packets to CPU. */ 2265 bcmSwitchMeterTrafficClass = 1110, /* Meter Traffic Class value mapped from 2266 internal Traffic Class */ 2267 bcmSwitchRoeEthertype = 1111, /* EtherType value for ROE frames after 2268 tunnel decap. */ 2269 bcmSwitchRoeCustomEthertype = 1112, /* EtherType value for ROE Custom frames 2270 after tunnel decap. */ 2271 bcmSwitchRoeUdpDestPort = 1113, /* Set UDP Destination port for ROE 2272 frames. */ 2273 bcmSwitchRoeCustomUdpDestPort = 1114, /* Set UDP Destination port for ROE 2274 Custom frames. */ 2275 bcmSwitchOamOlpHeaderAdd = 1115, /* Enable or disable OLP header addition 2276 to OAM packets copied to CPU. OLP 2277 header addition is enabled by default 2278 for OAM packets. Please note that 2279 Embedded applications such as 2280 Ethernet LM/DM and MPLS LM/DM will 2281 not work correctly if OLP header 2282 addition is disabled. */ 2283 bcmSwitchL2FreezeMode = 1116, /* Use global forward mode for higher 2284 efficiency or per port no learn mode 2285 if some ports shouldn't forward. */ 2286 bcmSwitchL3McRpfDefaultRoute = 1117, /* Enable SIP base MC RPF default route 2287 check. */ 2288 bcmSwitchIngParseL2TunnelTermArp = 1118, /* Enable parsing of payload ARP header 2289 for L2 tunnel terminated packets. */ 2290 bcmSwitchIngParseL2TunnelTermRarp = 1119, /* Enable parsing of payload RARP header 2291 for L2 tunnel terminated packets. */ 2292 bcmSwitchNoneEthernetPacketMeterPtr = 1120, /* Ethernet meter pointer for none 2293 Ethernet packets. */ 2294 bcmSwitchEtherDscpRemark = 1121, /* Enable copying IP header.TOS to 2295 In-DSCP-EXP. */ 2296 bcmSwitchDosAttackTcpFirstOption = 1122, /* Configure TCP option number for 2297 switch control 2298 bcmSwitchDosAttackTcpFlagsSynOption. 2299 Only first option in the TCP option 2300 can be checked and compared to with 2301 this value. */ 2302 bcmSwitchDosAttackInnerTcpFirstOption = 1123, /* Configure Inner TCP option number for 2303 switch control 2304 bcmSwitchDosAttackTcpFlagsSynOption. 2305 Only first option in the TCP option 2306 can be checked and compared to with 2307 this value. */ 2308 bcmSwitchDosAttackTcpFlagsMask = 1124, /* Configure TCP control flags valid 2309 bits for Dos Attack. This value is 2310 used for generating Dos Attack for 2311 bcmSwitchDosAttackTcpFlagsZero and/or 2312 bcmSwitchDosAttackTcpFlagsResvdNonZero. */ 2313 bcmSwitchDosAttackInnerTcpFlagsMask = 1125, /* Configure Inner TCP control flags 2314 valid bits for Dos Attack. This value 2315 is used for generating Dos Attack for 2316 bcmSwitchDosAttackTcpFlagsZero and/or 2317 bcmSwitchDosAttackTcpFlagsResvdNonZero. */ 2318 bcmSwitchDosAttackTcpFlagsSR = 1126, /* Enable DOS attack checking for TCP 2319 packet with SYN and RST Flags set. */ 2320 bcmSwitchDosAttackTcpFlagsZero = 1127, /* Enable DOS attack checking for TCP 2321 packet in which TCP Control Flag is 2322 Zero. Switch Control 2323 bcmSwitchDosAttackTcpFlagsMask and/or 2324 bcmSwitchDosAttackInnerTcpFlagsMask 2325 must be configured to determine valid 2326 TCP Flag bits. */ 2327 bcmSwitchDosAttackTcpFlagsSynOption = 1128, /* Enable DOS attack checking for TCP 2328 packet with SYN Flag set and option 2329 number in payload. Switch Control 2330 bcmSwitchDosAttackTcpFirstOption 2331 and/or 2332 bcmSwitchDosAttackInnerTcpFirstOption 2333 must be set required option number 2334 for matching. */ 2335 bcmSwitchDosAttackTcpFlagsSynFirstFrag = 1129, /* Enable DOS attack checking for TCP 2336 packet with SYN Flags set in first 2337 fragment. */ 2338 bcmSwitchDosAttackTcpFlagsFinNoAck = 1130, /* Enable DOS attack checking for TCP 2339 packet with flags FIN set and ACK not 2340 set. */ 2341 bcmSwitchDosAttackTcpFlagsRstNoAck = 1131, /* Enable DOS attack checking for TCP 2342 packet with flags RST set and ACK not 2343 set. */ 2344 bcmSwitchDosAttackTcpFlagsNoSFRA = 1132, /* Enable DOS attack checking for TCP 2345 packet with no SYN, FIN, RST, ACK 2346 Flag set. */ 2347 bcmSwitchDosAttackTcpFlagsUrgNoUrgPtr = 1133, /* Enable DOS attack checking for TCP 2348 packet with URG flag set and Null 2349 Urgent Pointer. */ 2350 bcmSwitchDosAttackTcpFlagsNoUrgWithUrgPtr = 1134, /* Enable DOS attack checking for TCP 2351 packet with URG flag not set and 2352 non-null Urgent Pointer. */ 2353 bcmSwitchDosAttackTcpDstPortZero = 1135, /* Enable DOS attack checking for TCP 2354 packet with Destination port as zero. */ 2355 bcmSwitchDosAttackTcpSrcPortZero = 1136, /* Enable DOS attack checking for TCP 2356 packet with Source Port as zero. */ 2357 bcmSwitchDosAttackTcpFlagsResvdNonZero = 1137, /* Enable DOS attack checking for TCP 2358 packet with Reserved flags non-zero. 2359 Switch Control 2360 bcmSwitchDosAttackTcpFlagsMask and/or 2361 bcmSwitchDosAttackInnerTcpFlagsMask 2362 must be configured to determine 2363 reserved flag bits. */ 2364 bcmSwitchDosAttackTcpV4DstBcast = 1138, /* Enable DOS attack checking for TCP 2365 packet with Ipv4 Broadcast DIP 2366 address. */ 2367 bcmSwitchDosAttackTcpFlagsAck = 1139, /* Enable DOS attack checking for TCP 2368 packet with ACK flag set and 2369 Acknowledgement number is zero. */ 2370 bcmSwitchMirrorPsampFormat2Epoch = 1140, /* Set EPOCH value in PSAMP format2 2371 header */ 2372 bcmSwitchL2StationExtendedMode = 1141, /* Set L2 station extended memory global 2373 mode. */ 2374 bcmSwitchHashSeed = 1142, /* Set the seed of the selected hash 2375 function. */ 2376 bcmSwitchLayerRecordModeSelection = 1143, /* Select the working mode of the layer 2377 records. */ 2378 bcmSwitchECMPThirdHierHashConfig = 1144, /* Selects hashing polynomial for the 2379 third hierarchy of the ECMP. */ 2380 bcmSwitchNwkHashConfig = 1145, /* Selects hashing polynomial for the 2381 network load balancing key 2382 generation. */ 2383 bcmSwitchMplsStack0HashSeed = 1146, /* Set the seed of the first MPLS stack 2384 hash. */ 2385 bcmSwitchMplsStack1HashSeed = 1147, /* Set the seed of the second MPLS stack 2386 hash. */ 2387 bcmSwitchParserHashSeed = 1148, /* Set the seed of the parser stage 2388 hashing. */ 2389 bcmSwitchMplsSpeculativeParse = 1149, /* Enable/disable the MPLS speculative 2390 parsing. */ 2391 bcmSwitchExternalTcamSync = 1150, /* Enum for external TCAM sync. */ 2392 bcmSwitchArpMyIp1 = 1151, /* My-ARP trap configuration of IP 1. */ 2393 bcmSwitchArpMyIp2 = 1152, /* My-ARP trap configuration of IP 2. */ 2394 bcmSwitchArpIgnoreDa = 1153, /* ARP trap configuration of Ignore DA. */ 2395 bcmSwitchNdpMyIp1 = 1154, /* My-NDP trap configuration of IP 1. */ 2396 bcmSwitchNdpMyIp2 = 1155, /* My-NDP trap configuration of IP 2. */ 2397 bcmSwitchIcmpIgnoreDa = 1156, /* ICMP trap configuration of Ignore DA. */ 2398 bcmSwitchVxlanEvpnEnable = 1157, /* enable/disable VXLAN EVPN. */ 2399 bcmSwitchHashDualMoveDepthIngVpVlanMember = 1158, /* Maximum moves in dual hash mode for 2400 ING_VP_VLAN_MEMBERSHIP table. */ 2401 bcmSwitchHashDualMoveDepthEgrVpVlanMember = 1159, /* Maximum moves in dual hash mode for 2402 EGR_VP_VLAN_MEMBERSHIP table. */ 2403 bcmSwitchGpeEntropyEnable = 1160, /* Set UDP Source port for GPE Tunnel 2404 Entropy(Value = TRUE/FALSE). */ 2405 bcmSwitchGpeUdpDestPortSet = 1161, /* Set UDP Destination port for GPE. */ 2406 bcmSwitchGeneveEntropyEnable = 1162, /* Set UDP Source port for GENEVE Tunnel 2407 Entropy(Value = TRUE/FALSE). */ 2408 bcmSwitchGeneveUdpDestPortSet = 1163, /* Set UDP Destination port for GENEVE. */ 2409 bcmSwitchBfdRxDisable = 1164, /* Disable BFD Rx packet processing. */ 2410 bcmSwitchDescCommit = 1165, /* Commit descriptor DMA chain to HW. */ 2411 bcmSwitchDlbMonitorIngressRandomSeed = 1166, /* Set RNG seed for DLB flow monitoring */ 2412 bcmSwitchCounterAdjustEgressTm = 1167, /* Counter compensation specifically for 2413 ETM. */ 2414 bcmSwitchCounterAdjustEgressPp = 1168, /* Counter compensation specifically for 2415 ERPP. */ 2416 bcmSwitchTagPcpDeiSrc = 1169, /* Set Source of PCP_DEi for SIT */ 2417 bcmSwitchBfdMyDipDestination = 1170, /* Set destination for BFD IP address 2418 forwarding. */ 2419 bcmSwitchEndToEndLatencyPerDestinationPort = 1171, /* Define if end to end latency is made 2420 per destination port or not. */ 2421 bcmSwitchExternalTcamInit = 1172, /* Init/De-init External TCAM. */ 2422 bcmSwitchHashMultiMoveDepthL3Tunnel = 1173, /* Maximum moves in multi hash mode for 2423 L3 Tunnel tables. */ 2424 bcmSwitchGbpEtherType = 1174, /* Specify the EtherType to be used for 2425 GBP protocol */ 2426 bcmSwitchVxlanUdpSrcPortSelect = 1175, /* Select UDP source port for VxLAN 2427 tunnel */ 2428 bcmSwitchGpeUdpSrcPortSelect = 1176, /* Select UDP source port for GPE tunnel */ 2429 bcmSwitchGeneveUdpSrcPortSelect = 1177, /* Select UDP source port for GENEVE 2430 tunnel */ 2431 bcmSwitchPreserveOtagBeforeItag = 1178, /* Control for preserved OTAG order wrt. 2432 ITAG */ 2433 bcmSwitchMirrorCpuCosq = 1179, /* Mirror COS for CPU port as MTP */ 2434 bcmSwitchIntProbeMarkerEnable = 1180, /* INT packet ProbeMarker(UDF) parser 2435 Enable. */ 2436 bcmSwitchIntL4DestPortEnable = 1181, /* INT packet UDP destination port 2437 parser Enable. */ 2438 bcmSwitchFtmhEtherType = 1182, /* Set FTMH header EtherType to match */ 2439 bcmSwitchGbpSidDidMcastLookupMissClassid = 1183, /* Default class id to be used when 2440 there is a miss in GBP SID_DID lookup 2441 for multicast flows. */ 2442 bcmSwitchCustomOuterEthertype1 = 1184, /* Outer EtherType 1 used for extracting 2443 packet fields in custom applications. */ 2444 bcmSwitchCustomOuterEthertype2 = 1185, /* Outer EtherType 2 used for extracting 2445 packet fields in custom applications. */ 2446 bcmSwitchCustomInnerEthertype1 = 1186, /* Inner EtherType 1 used for extracting 2447 packet fields in custom applications. */ 2448 bcmSwitchCustomInnerEthertype2 = 1187, /* Inner EtherType 2 used for extracting 2449 packet fields in custom applications. */ 2450 bcmSwitchCustomOuterProtocolId1 = 1188, /* Outer Protocol ID 1 used for 2451 extracting packet fields in custom 2452 applications. */ 2453 bcmSwitchCustomOuterProtocolId2 = 1189, /* Outer Protocol ID 2 used for 2454 extracting packet fields in custom 2455 applications. */ 2456 bcmSwitchCustomInnerProtocolId1 = 1190, /* Inner Protocol ID 1 used for 2457 extracting packet fields in custom 2458 applications. */ 2459 bcmSwitchCustomInnerProtocolId2 = 1191, /* Inner Protocol ID 2 used for 2460 extracting packet fields in custom 2461 applications. */ 2462 bcmSwitchCustomOuterUdpDstPort1 = 1192, /* Outer UDP Dest Port 1 used for 2463 extracting packet fields in custom 2464 applications. */ 2465 bcmSwitchCustomOuterUdpDstPort2 = 1193, /* Outer UDP Dest Port 2 used for 2466 extracting packet fields in custom 2467 applications. */ 2468 bcmSwitchCustomInnerUdpDstPort1 = 1194, /* Inner UDP Dest Port 1 used for 2469 extracting packet fields in custom 2470 applications. */ 2471 bcmSwitchCustomInnerUdpDstPort2 = 1195, /* Inner UDP Dest Port 2 used for 2472 extracting packet fields in custom 2473 applications. */ 2474 bcmSwitchReservedEgressNextHop = 1196, /* Set reserved egress next hop, which 2475 is used to generate L2 header for 2476 IPMC packet that does not have L2 2477 header after tunnel termination. */ 2478 bcmSwitchConcatAppHeader = 1197, /* Concat app header to master key in 2479 ELK. */ 2480 bcmSwitchVxlanGpeUdpDestPortSet = 1198, /* Set UDP Destination port for 2481 VXLAN-GPE. */ 2482 bcmSwitchSystemPortOverride = 1199, /* When set, port group id used for 2483 egress VLAN translation is replaced 2484 with destination global logical port 2485 (mod, port). */ 2486 bcmSwitchSRV6EgressPSPEnable = 1200, /* When set, device supports SRv6 Egress 2487 PSP mode. */ 2488 bcmSwitchSRV6ReducedModeEnable = 1201, /* When set, device supports SRv6 2489 Reduced encapsulation mode. */ 2490 bcmSwitchHashL4Field = 1202, /* Hash selections for L4 headers. */ 2491 bcmSwitchL3UcLargeNATEnable = 1203, /* Requires BROADCOM_PREMIUM license */ 2492 bcmSwitchL3UcLargeDNAT = 1204, /* Requires BROADCOM_PREMIUM license */ 2493 bcmSwitchL3UcLargeSNAT = 1205, /* Requires BROADCOM_PREMIUM license */ 2494 bcmSwitchL3UcLargeDNATSNAT = 1206, /* Requires BROADCOM_PREMIUM license */ 2495 bcmSwitchL3UcLargeDNAPT = 1207, /* Requires BROADCOM_PREMIUM license */ 2496 bcmSwitchL3UcLargeSNAPT = 1208, /* Requires BROADCOM_PREMIUM license */ 2497 bcmSwitchL3UcLargeDNAPTSNAPT = 1209, /* Requires BROADCOM_PREMIUM license */ 2498 bcmSwitchL3McLargeNATEnable = 1210, /* Requires BROADCOM_PREMIUM license */ 2499 bcmSwitchL3McLargeNATRewriteType0 = 1211, /* Requires BROADCOM_PREMIUM license */ 2500 bcmSwitchL3McLargeNATRewriteType1 = 1212, /* Requires BROADCOM_PREMIUM license */ 2501 bcmSwitchL3McLargeNATRewriteType2 = 1213, /* Requires BROADCOM_PREMIUM license */ 2502 bcmSwitchL2ChangeFieldsEnable = 1214, /* Requires BROADCOM_PREMIUM license */ 2503 bcmSwitchModuleVerifyEnable = 1215, /* Enable/disable input verification for 2504 a particular module from the list 2505 bcm_module_verify_e. */ 2506 bcmSwitchTraverseCommitDone = 1216, /* Return 0 if the flush machine is 2507 running. Return 1 if the flush 2508 machine is idle. */ 2509 bcmSwitchHashIP4InnerField = 1217, /* Hash selections for inner IPv4 2510 headers. */ 2511 bcmSwitchHashIP4OuterField = 1218, /* Hash selections for outer IPv4 2512 headers. */ 2513 bcmSwitchHashIP6InnerField = 1219, /* Hash selections for inner IPv6 2514 headers. */ 2515 bcmSwitchHashIP6OuterField = 1220, /* Hash selections for outer IPv6 2516 headers. */ 2517 bcmSwitchHashL2InnerField = 1221, /* Hash selections for inner L2 headers. */ 2518 bcmSwitchHashL2OuterField = 1222, /* Hash selections for outer L2 headers. */ 2519 bcmSwitchMirrorPsampIpfixVersion = 1223, /* Set packet sampling (PSAMP) IP flow 2520 information export (IPFIX) version 2521 number. */ 2522 bcmSwitchLlcHeaderControlMode = 1224, /* When set vlaue=1 LLC header control 2523 bits located in 1:0 selected, value=0 2524 bits 7:6 selected. */ 2525 bcmSwitchPcieHotSwapDisable = 1225, /* When set vlaue=1 PCIE Hot swap 2526 manager is disabled. Applicable for 2527 CMICX based devices only */ 2528 bcmSwitchTrunkDynamicMonitorIngressRandomSeed = 1226, /* Set RNG seed for DLB trunk flow 2529 monitoring. */ 2530 bcmSwitchL2TunnelTpid = 1227, /* TPID used for outer L2 header VLAN 2531 tag insertion during L2 tunnel 2532 encapsulation. */ 2533 bcmSwitchEcnNonTcpResponsive = 1228, /* Set default responsive indication 2534 value for NON-TCP packets, including 2535 NON-IP packets. */ 2536 bcmSwitchHigig3Ethertype = 1229, /* Set High 10 bits of HiGig3 EtherType. */ 2537 bcmSwitchIPv4DoNotVerifyIncomingChecksum = 1230, /* Requires BROADCOM_PREMIUM license */ 2538 bcmSwitchHashUseFlowSelTrunkFailover = 1231, /* Enable/Disable flow based hashing for 2539 Trunk failover. */ 2540 bcmSwitchHashUseFlowSelHigigTrunk = 1232, /* Enable/Disable flow based hashing for 2541 HiGig Trunk. */ 2542 bcmSwitchHashUseFlowSelTrunkDynamic = 1233, /* Enable/Disable flow based hashing for 2543 Trunk dynamic load balance. */ 2544 bcmSwitchHashUseHigig3EntropyTrunkNonUnicast = 1234, /* Enable/Disable HiGig3 Entropy based 2545 hashing for non-unicast Trunk. */ 2546 bcmSwitchTrunkUnicastHashOffset = 1235, /* Enhanced hash offset selections for 2547 trunk unicast packet. */ 2548 bcmSwitchTrunkNonUnicastHashOffset = 1236, /* Enhanced hash offset selections for 2549 trunk non-unicast packet. */ 2550 bcmSwitchHigigTrunkHashOffset = 1237, /* Enhanced hash offset selections for 2551 higig trunk. */ 2552 bcmSwitchVpTrunkHashOffset = 1238, /* Enhanced hash offset selections for 2553 higig trunk. */ 2554 bcmSwitchMacroFlowTrunkUnicastHashConcatEnable = 1239, /* Enable hash concatenation for HiGig 2555 Trunk unicast macro flow. */ 2556 bcmSwitchMacroFlowTrunkNonUnicastHashConcatEnable = 1240, /* Enable hash concatenation for HiGig 2557 Trunk non-unicast macro flow. */ 2558 bcmSwitchMacroFlowTrunkFailoverHashConcatEnable = 1241, /* Enable hash concatenation for Trunk 2559 failover macro flow. */ 2560 bcmSwitchMacroFlowHigigTrunkFailoverHashConcatEnable = 1242, /* Enable hash concatenation for HiGig 2561 Trunk failover macro flow. */ 2562 bcmSwitchMacroFlowTrunkDynamicHashConcatEnable = 1243, /* Enable hash concatenation for trunk 2563 dynamic load balance macro flow. */ 2564 bcmSwitchMacroFlowVpTrunkHashConcatEnable = 1244, /* Enable hash concatenation for virtual 2565 port trunk group. */ 2566 bcmSwitchMacroFlowTrunkUnicastHashSeed = 1245, /* Set Hash Seed for Trunk unicast macro 2567 flow. */ 2568 bcmSwitchMacroFlowTrunkNonUnicastHashSeed = 1246, /* Set Hash Seed for Trunk non-unicast 2569 macro flow. */ 2570 bcmSwitchMacroFlowTrunkFailoverHashSeed = 1247, /* Set Hash Seed for Trunk failover 2571 macro flow. */ 2572 bcmSwitchMacroFlowHigigTrunkFailoverHashSeed = 1248, /* Set Hash Seed for HiGig Trunk 2573 failover macro flow. */ 2574 bcmSwitchMacroFlowTrunkDynamicHashSeed = 1249, /* Set Hash Seed for Trunk dynamic load 2575 balance macro flow. */ 2576 bcmSwitchMacroFlowVpTrunkHashSeed = 1250, /* Set Hash Seed for virtual port Trunk 2577 group macro flow. */ 2578 bcmSwitchMacroFlowTrunkUnicastHashMinOffset = 1251, /* Minimum offset value to be used in 2579 trunk unicast offset table. */ 2580 bcmSwitchMacroFlowTrunkUnicastHashMaxOffset = 1252, /* Maximum offset value to be used in 2581 trunk unicast offset table. */ 2582 bcmSwitchMacroFlowTrunkUnicastHashStrideOffset = 1253, /* Offset increment to be used for 2583 populating trunk unicast offset 2584 table. */ 2585 bcmSwitchMacroFlowTrunkNonUnicastHashMinOffset = 1254, /* Minimum offset value to be used in 2586 trunk non-unicast offset table. */ 2587 bcmSwitchMacroFlowTrunkNonUnicastHashMaxOffset = 1255, /* Maximum offset value to be used in 2588 trunk non-unicast offset table. */ 2589 bcmSwitchMacroFlowTrunkNonUnicastHashStrideOffset = 1256, /* Offset increment to be used for 2590 populating trunk non-unicast offset 2591 table. */ 2592 bcmSwitchMacroFlowTrunkFailoverHashMinOffset = 1257, /* Minimum offset value to be used in 2593 trunk failover offset table. */ 2594 bcmSwitchMacroFlowTrunkFailoverHashMaxOffset = 1258, /* Maximum offset value to be used in 2595 trunk failover offset table. */ 2596 bcmSwitchMacroFlowTrunkFailoverHashStrideOffset = 1259, /* Offset increment to be used for 2597 populating trunk failover offset 2598 table. */ 2599 bcmSwitchMacroFlowHigigTrunkFailoverHashMinOffset = 1260, /* Minimum offset value to be used in 2600 higig trunk failover offset table. */ 2601 bcmSwitchMacroFlowHigigTrunkFailoverHashMaxOffset = 1261, /* Maximum offset value to be used in 2602 higig trunk failover offset table. */ 2603 bcmSwitchMacroFlowHigigTrunkFailoverHashStrideOffset = 1262, /* Offset increment to be used for 2604 populating higig trunk failover 2605 offset table. */ 2606 bcmSwitchMacroFlowTrunkDynamicHashMinOffset = 1263, /* Minimum offset value to be used in 2607 trunk dynamic load balance offset 2608 table. */ 2609 bcmSwitchMacroFlowTrunkDynamicHashMaxOffset = 1264, /* Maximum offset value to be used in 2610 trunk dynamic load balance offset 2611 table. */ 2612 bcmSwitchMacroFlowTrunkDynamicHashStrideOffset = 1265, /* Offset increment to be used for trunk 2613 populating dynamic load balance 2614 offset table. */ 2615 bcmSwitchMacroFlowVpTrunkHashMinOffset = 1266, /* Minimum offset value to be used in 2616 virtual port trunk group offset 2617 table. */ 2618 bcmSwitchMacroFlowVpTrunkHashMaxOffset = 1267, /* Maximum offset value to be used in 2619 virtual port trunk group offset 2620 table. */ 2621 bcmSwitchMacroFlowVpTrunkHashStrideOffset = 1268, /* Offset increment to be used for 2622 populating virtual port trunk group 2623 offset table. */ 2624 bcmSwitchTrunkRandomSeed = 1269, /* Seed for RNG used in Trunk hashing. */ 2625 bcmSwitchHigigTrunkRandomSeed = 1270, /* Seed for RNG used in HiGig Trunk 2626 hashing. */ 2627 bcmSwitchVPTrunkRandomSeed = 1271, /* Seed for RNG used in virtal port 2628 Trunk hashing. */ 2629 bcmSwitchModuleErrorRecoveryEnable = 1272, /* Flag for switch module error recovery 2630 enable. */ 2631 bcmSwitchHashMultiMoveDepthVlanTranslate3 = 1273, /* Maximum moves in multi hash mode for 2632 vlan vranslate 3 tables. */ 2633 bcmSwitchHashMultiMoveDepthL2Tunnel = 1274, /* Maximum moves in multi hash mode for 2634 L2 tunnel termination tables. */ 2635 bcmSwitchHashMultiMoveDepthL2TunnelVnid = 1275, /* Maximum moves in multi hash mode for 2636 L2 tunnel VNID tables. */ 2637 bcmSwitchHashMultiMoveDepthFlowTracker = 1276, /* Maximum moves in multi hash mode for 2638 flow tracker tables. */ 2639 bcmSwitchHashMultiMoveDepthIpmcGroup = 1277, /* Maximum moves in multi hash mode for 2640 L3 IPv4/IPv6 multicast (*,G) tables. */ 2641 bcmSwitchHashMultiMoveDepthIpmcSourceGroup = 1278, /* Maximum moves in multi hash mode for 2642 L3 IPv4/IPv6 multicast (S,G) tables. */ 2643 bcmSwitchHashMultiMoveDepthL2mc = 1279, /* Maximum moves in multi hash mode for 2644 L2 IPv4/IPv6 multicast tables. */ 2645 bcmSwitchMactAgeRefreshMode = 1280, /* Select the hit bit mode */ 2646 bcmSwitchDosAttackMaxIpPayloadEnable = 1281, /* Enable outer IP payload maximum size 2647 check. 1: enable, 0(default): 2648 disable. */ 2649 bcmSwitchDosAttackMaxIpPayloadSize = 1282, /* Maximum outer IP payload size value 2650 for outer IP payload maximum size 2651 check. */ 2652 bcmSwitchDosAttackMinIpPayloadEnable = 1283, /* Enable outer IP payload minimum size 2653 check. 1: enable, 0(default): 2654 disable. */ 2655 bcmSwitchDosAttackMinIpPayloadSize = 1284, /* Minimum outer IP payload size value 2656 for outer IP payload minimum size 2657 check. */ 2658 bcmSwitchDosAttackMaxInnerIpPayloadEnable = 1285, /* Enable inner IP payload maximum size 2659 check. 1: enable, 0(default): 2660 disable. */ 2661 bcmSwitchDosAttackMaxInnerIpPayloadSize = 1286, /* Maximum inner IP payload size value 2662 for inner IP payload maximum size 2663 check. */ 2664 bcmSwitchDosAttackMinInnerIpPayloadEnable = 1287, /* Enable inner IP payload minimum size 2665 check. 1: enable, 0(default): 2666 disable. */ 2667 bcmSwitchDosAttackMinInnerIpPayloadSize = 1288, /* Minimum inner IP payload size value 2668 for inner IP payload minimum size 2669 check. */ 2670 bcmSwitchEccSingleBitBusBufferErrorEvent = 1289, /* Enable/Disable 1bit ECC error 2671 reporting for internal bus and buffer 2672 which are protected by ECC logic. */ 2673 bcmSwitchHashLayersDisable = 1290, /* disable selected load balancing hash 2674 layers using the 2675 BCM_HASH_LAYER_XXX_DISABLE flags */ 2676 bcmSwitchMplsAlternateMarkingSpecialLabel = 1291, /* Special Label Indicator value for 2677 Alternate Marking */ 2678 bcmSwitchSvtagSciProfile = 1292, /* SVTag Secutre Context Index Profile */ 2679 bcmSwitchSvtagErrCodeProfile = 1293, /* SVTag Error Code Profile */ 2680 bcmSwitchLatencyEcnMarkMode = 1294, /* Latency-based ECN mark mode, choose 2681 mode from 2682 bcm_switch_latency_ecn_mark_mode_t. */ 2683 bcmSwitchGlobalTodMode = 1295, /* Define the global TOD mode. See 2684 bcm_switch_tod_mode_t for details. */ 2685 bcmSwitchTimesyncLiveWireToD = 1296, /* Enable live wire simultaneous NTP/PTP 2686 Time of Day in pipeline. */ 2687 bcmSwitchL3TunnelCollapseDisable = 1297, /* Disables UDP Tunnel Collapsing for 2688 the specified protocol */ 2689 bcmSwitchControlOamBfdFailoverStateIgnore = 1298, /* Enable/Disable ignoring protection 2690 state for OAMP inject packets. */ 2691 bcmSwitchEntropyHashOffset = 1299, /* Enhanced hash select for Entropy 2692 hashing. */ 2693 bcmSwitchMacroFlowEntropyHashConcatEnable = 1300, /* Enable hash concatenation for Entropy 2694 hashing flow. */ 2695 bcmSwitchMacroFlowEntropyHashSeed = 1301, /* Set Hash Seed for Entropy hashing 2696 flow. */ 2697 bcmSwitchSubportLowPriPfcSel = 1302, /* Select the Low priority PFC class for 2698 the Subports. */ 2699 bcmSwitchSubportHighPriPfcSel = 1303, /* Select the High priority PFC class 2700 for the Subports. */ 2701 bcmSwitchExactMatchInit = 1304, /* Initialize Exact Match databases */ 2702 bcmSwitchRangeTypeSelect = 1305, /* Select Range Type for L4 OPS Extended 2703 (Indexed) */ 2704 bcmSwitchRangeOperator = 1306, /* Select Operator between range types 2705 for L4 OPS Extended */ 2706 bcmSwitchRangeResultMap = 1307, /* Select result mapping for L4 OPS 2707 Extended's Encoders (Indexed) */ 2708 bcmSwitchIFA2Enable = 1308, /* Requires BROADCOM_PREMIUM license */ 2709 bcmSwitchIFA2HeaderType = 1309, /* Requires BROADCOM_PREMIUM license */ 2710 bcmSwitchIFA2MetaDataFirstLookupType = 1310, /* Requires BROADCOM_PREMIUM license */ 2711 bcmSwitchIFA2MetaDataSecondLookupType = 1311, /* Requires BROADCOM_PREMIUM license */ 2712 bcmSwitchMacroFlowEcmpDynamicHashConcatEnable = 1312, /* Enable hash concatenation for ECMP 2713 dynamic load balance macro flow. */ 2714 bcmSwitchMacroFlowEcmpDynamicHashSeed = 1313, /* Set Hash Seed for ECMP dynamic load 2715 balance macro flow. */ 2716 bcmSwitchMacroFlowEcmpDynamicHashMinOffset = 1314, /* Minimum offset value to be used in 2717 ECMP dynamic load balance offset 2718 table. */ 2719 bcmSwitchMacroFlowEcmpDynamicHashMaxOffset = 1315, /* Maximum offset value to be used in 2720 ECMP dynamic load balance offset 2721 table. */ 2722 bcmSwitchMacroFlowEcmpDynamicHashStrideOffset = 1316, /* Offset increment to be used for ECMP 2723 populating dynamic load balance 2724 offset table. */ 2725 bcmSwitchTrunkUnicastHashBitCountSelect = 1317, /* To specify the number of bits 2726 required in the final hash result for 2727 trunk unicast hash before the modulo 2728 function */ 2729 bcmSwitchTrunkNonunicastHashBitCountSelect = 1318, /* To specify the number of bits 2730 required in the final hash result for 2731 trunk non-unicast hash before the 2732 modulo function */ 2733 bcmSwitchTrunkFailoverHashBitCountSelect = 1319, /* To specify the number of bits 2734 required in the final hash result for 2735 trunk failover hash before the modulo 2736 function */ 2737 bcmSwitchHigigTrunkHashBitCountSelect = 1320, /* To specify the number of bits 2738 required in the final hash result for 2739 higig trunk hash before the modulo 2740 function */ 2741 bcmSwitchHigigTrunkFailoverHashBitCountSelect = 1321, /* To specify the number of bits 2742 required in the final hash result for 2743 higig trunk failover hash before the 2744 modulo function */ 2745 bcmSwitchTrunkDynamicHashBitCountSelect = 1322, /* To specify the number of bits 2746 required in the final hash result for 2747 DLB trunk hash before the modulo 2748 function */ 2749 bcmSwitchVpTrunkHashBitCountSelect = 1323, /* To specify the number of bits 2750 required in the final hash result for 2751 VPLAG hash before the modulo function */ 2752 bcmSwitchEntropyHashBitCountSelect = 1324, /* To specify the number of bits 2753 required in the final hash result for 2754 entropy hash before the modulo 2755 function */ 2756 bcmSwitchEcmpOverlayHashBitCountSelect = 1325, /* To specify the number of bits 2757 required in the final hash result for 2758 ECMP overlay hash before the modulo 2759 function */ 2760 bcmSwitchEcmpDynamicHashBitCountSelect = 1326, /* To specify the number of bits 2761 required in the final hash result for 2762 DLB ECMP hash before the modulo 2763 function */ 2764 bcmSwitchGpeNextProtoGbp = 1327, /* GPE header next protocol value to 2765 parse/insert GBP header. */ 2766 bcmSwitchIoamMaxPayloadLength = 1328, /* Maximum Length of IOAM payload. */ 2767 bcmSwitchIoamNameSpaceId = 1329, /* Value of NAMESPACE_ID field in IOAM 2768 payload to match. */ 2769 bcmSwitchGpeNextProtoIoam = 1330, /* GPE header next protocol value to 2770 parse IOAM header. */ 2771 bcmSwitchGpeNextProtoIoamE2e = 1331, /* GPE header next protocol value to 2772 parse/insert IOAM E2E header. */ 2773 bcmSwitchPFCStopInterfaceBitmap = 1332, /* Stop the whole interface when 2774 received configured PFC priorities. */ 2775 bcmSwitchIFAMetaDataAdaptTable = 1333, /* Requires BROADCOM_PREMIUM license */ 2776 bcmSwitchL3UcSameInterfaceDrop = 1334, /* Enable dropping of L3 unicast packets 2777 to the same L3 incoming interface. */ 2778 bcmSwitchL2ApplCallbackSuppress = 1335, /* BCM56980 Enable/Disable suppression 2779 of application callbacks for L2 2780 entries added/deleted through 2781 bcm_l2_addr_add/bcm_l2_addr_delete 2782 APIs. This feature is disabled by 2783 default */ 2784 bcmSwitchOtpAvsValue = 1336, /* AVS value from OTP. */ 2785 bcmSwitchSampleVersion = 1337, /* Set sFlow version number. */ 2786 bcmSwitchHashUseFlowSelEcmpWeighted = 1338, /* Enable/Disable flow based hashing for 2787 weighted ECMP. */ 2788 bcmSwitchEcmpWeightedHashOffset = 1339, /* Weighted ECMP Hash key is barrel 2789 shifted by this value. */ 2790 bcmSwitchMacroFlowEcmpWeightedHashMinOffset = 1340, /* Minumum offset value to be used in 2791 RTAG7 macroflow for weighted ECMP. */ 2792 bcmSwitchMacroFlowEcmpWeightedHashMaxOffset = 1341, /* Maximum offset value to be used in 2793 RTAG7 macroflow for weighted ECMP. */ 2794 bcmSwitchMacroFlowEcmpWeightedHashStrideOffset = 1342, /* Offset increment value to be used in 2795 RTAG7 macroflow for weighted ECMP. */ 2796 bcmSwitchMacroFlowEcmpWeightedHashConcatEnable = 1343, /* Enable hash concatenation for 2797 weighted ECMP macro flow. */ 2798 bcmSwitchMplsPwControlWordUpperClear = 1344, /* Clear the upper 2 bytes of the 2799 control word. */ 2800 bcmSwitchMplsPwControlWordLowerClear = 1345, /* Clear the lower 2 bytes of the 2801 control word. */ 2802 bcmSwitchMplsGal = 1346, /* Specify the GAL value for GAL label 2803 match. */ 2804 bcmSwitchMplsEli = 1347, /* Specify the ELI value for ELI label 2805 match. */ 2806 bcmSwitchMplsPwTermSeqNumberRange = 1348, /* Specify the PW decapsulation sequence 2807 number range. */ 2808 bcmSwitchEgressVlanTranslate2Enable = 1349, /* Enable egress vlan translation table 2809 2 for fixed flows. */ 2810 bcmSwitchPointToPointAccessVlanCheckEnable = 1350, /* Enable access vlan check for point to 2811 point service. */ 2812 bcmSwitchNshEgressAdaptationKeySelect = 1351, /* Select egress adaptation key type for 2813 NSH encapsulation. Valid values are 2814 BCM_SWITCH_NSH_EGR_ADAPT_KEY_xxx */ 2815 bcmSwitchNshMetaDataSourceInterfaceSelect = 1352, /* Select the source of NSH metadata 2816 source interface. Valid values are 2817 BCM_SWITCH_NSH_METADATA_SRC_INTF_xxx */ 2818 bcmSwitchNshMetaDataTenantIdSelect = 1353, /* Select the source of NSH metadata 2819 tenant ID. Valid values are 2820 BCM_SWITCH_NSH_METADATA_TENANT_ID_xxx */ 2821 bcmSwitchNshTenantIdMappingMissDropEnable = 1354, /* Enable NSH tenant ID mapping miss 2822 drop */ 2823 bcmSwitchNshEthertype = 1355, /* Set the NSH protocol etherType */ 2824 bcmSwitchNshEthertypeEnable = 1356, /* Enable to match the NSH protocol 2825 etherType */ 2826 bcmSwitchL3IngTagActionsEnable = 1357, /* Requires BROADCOM_PREMIUM license */ 2827 bcmSwitchECMPRandomSeed = 1358, /* Seed for RNG used in random load 2828 balancing for single level ECMP. */ 2829 bcmSwitchHashVersatileInitValue0 = 1359, /* Initial value 0 for both versatile 2830 hash block A and B. */ 2831 bcmSwitchHashVersatileInitValue1 = 1360, /* Initial value 1 for both versatile 2832 hash block A and B. */ 2833 bcmSwitchHash0VersatileInitValue0 = 1361, /* Initial value 0 for versatile hash 2834 block A. */ 2835 bcmSwitchHash0VersatileInitValue1 = 1362, /* Initial value 1 for versatile hash 2836 block A. */ 2837 bcmSwitchHash1VersatileInitValue0 = 1363, /* Initial value 0 for versatile hash 2838 block B. */ 2839 bcmSwitchHash1VersatileInitValue1 = 1364, /* Initial value 1 for versatile hash 2840 block B. */ 2841 bcmSwitchIoamE2eNextProtoGbp = 1365, /* IAOM E2E header (GPE -> IOAM_E2E -> 2842 GBP) next protocol value to 2843 parse/insert GBP header. */ 2844 bcmSwitchMirrorUnicastCosqEnable = 1366, /* Enable to use multicast COS from 2845 mirroring for unicast mirror. */ 2846 bcmSwitchFlowCountHashShift = 1367, /* Specify the right shift amount 2847 applied to the hash value generated 2848 by RTAG7 hash for prefix length 2849 calculation. */ 2850 bcmSwitchFlowCountHashMask = 1368, /* Specify the mask ORed to shifted hash 2851 value for prefix length calculation. */ 2852 bcmSwitchFlowCountFlexCtrIngAction = 1369, /* Specify the ingress enhanced flex 2853 counter action by using 2854 bcmFlexctrObjectStaticIngFlowCountPrefixLength. */ 2855 bcmSwitchSLLBDestinationNotFound = 1370, /* Default destination applied for SLLB 2856 routing lookups miss. */ 2857 bcmSwitchVIPEcmpTableSize = 1371, /* SLLB ECMP Consistent Hash table size. */ 2858 bcmSwitchVIPL3EgressIDMin = 1372, /* Minumum VIP ECMP FEC Id in the 2859 reserved FEC range. */ 2860 bcmSwitchVIPL3EgressIDMax = 1373, /* Maximum VIP ECMP FEC Id in the 2861 reserved range. */ 2862 bcmSwitchPCCAgeTimer = 1374, /* LEM PCC State Table age timer in 2863 seconds. */ 2864 bcmSwitchPCCLearnLimit = 1375, /* LEM PCC State Table learn limit. */ 2865 bcmSwitchFlexeOamAlmCollectionTimerStep = 1376, /* The Timer step for collecting FlexE 2866 OAM alarms. */ 2867 bcmSwitchFlexeOamAlmCollectionStepCount = 1377, /* The number of steps for FlexE OAM 2868 alarm collection period. The final 2869 period should be timer_step * 2870 step_count * 1024 / 833Mhz */ 2871 bcmSwitchIfaVersion = 1378, /* IFA version number. */ 2872 bcmSwitchIfaProtocol = 1379, /* Protocol value to be compared against 2873 the packet IP protocol or next header 2874 field in order to identify and parse 2875 IFA packets. */ 2876 bcmSwitchIoamGreProtocolParse = 1380, /* Enable to parse IOAM packet with GRE 2877 encapsulation. */ 2878 bcmSwitchIoamGreProtocol = 1381, /* Set the protocol value to be compared 2879 against the IP protocol field in the 2880 GRE header in order to identify and 2881 parse IOAM packets. */ 2882 bcmSwitchIoamOptionIncrementalParse = 1382, /* Enable to parse IOAM packet with IPV6 2883 encapsulation. */ 2884 bcmSwitchIoamOptionIncremental = 1383, /* Set the option type value to be 2885 compared against the option type in 2886 the IPv6 Hop-by-Hop or destination 2887 extension header in order to identify 2888 and parse IOAM packets. */ 2889 bcmSwitchIoamType = 1384, /* Set IOAM type value to be compared 2890 against the IOAM type in the GRE 2891 header or the IPv6 extension header 2892 in order to identify and parse IOAM 2893 packets. */ 2894 bcmSwitchIntVectorMatchMissAction = 1385, /* Action for inband telemetry packets 2895 with no vector match. 0: Drop, 1: 2896 Forward as non-INT packet. */ 2897 bcmSwitch1588ClockAddressOui = 1386, /* OUI portion (first 3 octets) of the 2898 IEEE 1588 clock address representing 2899 this system. */ 2900 bcmSwitch1588ClockAddressNonOui = 1387, /* Non-OUI portion (last 3 octets) of 2901 the IEEE 1588 clock address 2902 representing this system. */ 2903 bcmSwitchHashUseFlowSelL2Ecmp = 1388, /* Enable/Disable flow based hashing for 2904 L2 ECMP. */ 2905 bcmSwitchHashUseFlowSelL2EcmpOverlay = 1389, /* Enable/Disable flow based hashing for 2906 overlay L2 ECMP. */ 2907 bcmSwitchHashUseFlowSelEcmpResilientHash = 1390, /* Enable/Disable flow based hashing for 2908 ECMP resilient hashing. */ 2909 bcmSwitchHashUseFlowSelEcmpOverlayResilientHash = 1391, /* Enable/Disable flow based hashing for 2910 overlay ECMP resilient hashing. */ 2911 bcmSwitchHashUseFlowSelEcmpWeightedOverlay = 1392, /* Enable/Disable flow based hashing for 2912 overlay weighted ECMP. */ 2913 bcmSwitchEcmpOverlayResilientHashOffset = 1393, /* Enhanced hash select for overlay ECMP 2914 resilient hashing. */ 2915 bcmSwitchEcmpOverlayMplsHashOffset = 1394, /* Enhanced hash select for overlay MPLS 2916 ECMP hashing. */ 2917 bcmSwitchEcmpOverlayHashOffset = 1395, /* Enhanced hash select for overlay ECMP 2918 hashing. */ 2919 bcmSwitchEcmpOverlayWeightedHashOffset = 1396, /* Enhanced hash select for overlay 2920 weighted ECMP hashing. */ 2921 bcmSwitchL2EcmpHashOffset = 1397, /* Enhanced hash select for L2 ECMP 2922 hashing. */ 2923 bcmSwitchL2EcmpOverlayHashOffset = 1398, /* Enhanced hash select for overlay L2 2924 ECMP hashing. */ 2925 bcmSwitchMacroFlowEcmpResilientHashConcatEnable = 1399, /* Enable hash concatenation for ECMP 2926 resilient hashing macroflow. */ 2927 bcmSwitchMacroFlowEcmpResilientHashMinOffset = 1400, /* Minimum offset value to be used in 2928 RTAG7 macroflow for ECMP resilient 2929 hashing. */ 2930 bcmSwitchMacroFlowEcmpResilientHashMaxOffset = 1401, /* Maximum Offset value to be used in 2931 RTAG7 macroflow for ECMP resilient 2932 hashing. */ 2933 bcmSwitchMacroFlowEcmpResilientHashStrideOffset = 1402, /* Offset increment value to be used in 2934 RTAG7 macroflow for ECMP resilient 2935 hashing. */ 2936 bcmSwitchMacroFlowEcmpOverlayResilientHashConcatEnable = 1403, /* Enable hash concatenation for overlay 2937 ECMP resilient hashing macroflow. */ 2938 bcmSwitchMacroFlowEcmpOverlayResilientHashMinOffset = 1404, /* Minimum offset value to be used in 2939 RTAG7 macroflow for overlay ECMP 2940 resilient hashing. */ 2941 bcmSwitchMacroFlowEcmpOverlayResilientHashMaxOffset = 1405, /* Maximum offset value to be used in 2942 RTAG7 macroflow for overlay ECMP 2943 resilient hashing. */ 2944 bcmSwitchMacroFlowEcmpOverlayResilientHashStrideOffset = 1406, /* Offset increment value to be used in 2945 RTAG7 macroflow for overlay ECMP 2946 resilient hashing. */ 2947 bcmSwitchMacroFlowEcmpMplsHashConcatEnable = 1407, /* Enable hash concatenation for MPLS 2948 ECMP macroflow. */ 2949 bcmSwitchMacroFlowEcmpMplsHashMinOffset = 1408, /* Minimum offset value to be used in 2950 RTAG7 macroflow for MPLS ECMP. */ 2951 bcmSwitchMacroFlowEcmpMplsHashMaxOffset = 1409, /* Maximum Offset value to be used in 2952 RTAG7 macroflow for MPLS ecmp. */ 2953 bcmSwitchMacroFlowEcmpMplsHashStrideOffset = 1410, /* Offset increment value to be used in 2954 RTAG7 macroflow for MPLS ecmp. */ 2955 bcmSwitchMacroFlowEcmpOverlayMplsHashConcatEnable = 1411, /* Enable hash concatenation for overlay 2956 MPLS ECMP macroflow. */ 2957 bcmSwitchMacroFlowEcmpOverlayMplsHashMinOffset = 1412, /* Minimum offset value to be used in 2958 RTAG7 macroflow for overlay MPLS 2959 ECMP. */ 2960 bcmSwitchMacroFlowEcmpOverlayMplsHashMaxOffset = 1413, /* Maximum Offset value to be used in 2961 RTAG7 macroflow for overlay MPLS 2962 ECMP. */ 2963 bcmSwitchMacroFlowEcmpOverlayMplsHashStrideOffset = 1414, /* Offset increment value to be used in 2964 RTAG7 macroflow for overlay MPLS 2965 ECMP. */ 2966 bcmSwitchMacroFlowL2EcmpHashConcatEnable = 1415, /* Enable hash concatenation for L2 ECMP 2967 macroflow. */ 2968 bcmSwitchMacroFlowL2EcmpHashMinOffset = 1416, /* Minimum offset value to be used in 2969 RTAG7 macroflow for L2 ECMP. */ 2970 bcmSwitchMacroFlowL2EcmpHashMaxOffset = 1417, /* Maximum offset value to be used in 2971 RTAG7 macroflow for L2 ECMP. */ 2972 bcmSwitchMacroFlowL2EcmpHashStrideOffset = 1418, /* Offset increment value to be used in 2973 RTAG7 macroflow for L2 ECMP. */ 2974 bcmSwitchMacroFlowL2EcmpOverlayHashConcatEnable = 1419, /* Enable hash concatenation for overlay 2975 L2 ECMP macroflow. */ 2976 bcmSwitchMacroFlowL2EcmpOverlayHashMinOffset = 1420, /* Minimum offset value to be used in 2977 RTAG7 macroflow for overlay L2 ECMP. */ 2978 bcmSwitchMacroFlowL2EcmpOverlayHashMaxOffset = 1421, /* Maximum offset value to be used in 2979 RTAG7 macroflow for overlay L2 ECMP. */ 2980 bcmSwitchMacroFlowL2EcmpOverlayHashStrideOffset = 1422, /* Offset increment value to be used in 2981 RTAG7 macroflow for overlay L2 ECMP. */ 2982 bcmSwitchMacroFlowEcmpWeightedOverlayHashConcatEnable = 1423, /* Enable hash concatenation for overlay 2983 weighted ECMP macroflow. */ 2984 bcmSwitchMacroFlowEcmpWeightedOverlayHashMinOffset = 1424, /* Minimum offset value to be used in 2985 RTAG7 macroflow for overlay weighted 2986 ECMP. */ 2987 bcmSwitchMacroFlowEcmpWeightedOverlayHashMaxOffset = 1425, /* Maximum offset value to be used in 2988 RTAG7 macroflow for overlay weighted 2989 ECMP. */ 2990 bcmSwitchMacroFlowEcmpWeightedOverlayHashStrideOffset = 1426, /* Offset increment value to be used in 2991 RTAG7 macroflow for overlay weighted 2992 ECMP. */ 2993 bcmSwitchHashUseFlowSelMplsEcmpOverlay = 1427, /* Enable/Disable flow based hashing for 2994 MPLS Overlay ECMP. */ 2995 bcmSwitchExemScanPeriod = 1428, /* EXEM flush-machine scan period in 2996 uSec. */ 2997 bcmSwitchVxlanHeaderFlags = 1429, /* Set the flags value to fill into the 2998 flags field in the VXLAN header 2999 during VXLAN tunnel initiation. */ 3000 bcmSwitchVxlanHeaderMatchFlags = 1430, /* Set the flags value to match against 3001 the flags field in the VXLAN header 3002 during VXLAN tunnel termination. */ 3003 bcmSwitchVxlanHeaderFlagsMask = 1431, /* Set the mask to be applied to the 3004 flags field in the VXLAN header 3005 before matching with 3006 bcmSwitchVxlanHeaderMatchFlags. */ 3007 bcmSwitchVxlanHeaderFlagsMismatchDrop = 1432, /* Drop VXLAN packets if the flags field 3008 in the VXLAN header is not matched 3009 with bcmSwitchVxlanHeaderMatchFlags 3010 after masked by 3011 bcmSwitchVxlanHeaderFlagsMask. */ 3012 bcmSwitchVxlanHeaderReserved1 = 1433, /* Set the value to fill into the 3013 RESERVED_1 field in the VXLAN header 3014 during VXLAN tunnel initiation. */ 3015 bcmSwitchVxlanHeaderReserved2 = 1434, /* Set the value to fill into the 3016 RESERVED_2 field in the VXLAN header 3017 during VXLAN tunnel initiation. */ 3018 bcmSwitchFlexeSarCellMode = 1435, /* FlexE SAR cell mode, see 3019 bcm_switch_flexe_sar_cell_mode_t */ 3020 bcmSwitchMplsSpecialLabelAutoTerminateDisable = 1436, /* Disable the auto termination for MPLS 3021 special label */ 3022 bcmSwitchExternalTableCapacity = 1437, /* Capacity for external tables */ 3023 bcmSwitchExemFlushProfilePayloadOffset = 1438, /* EXEM flush profile payload offset */ 3024 bcmSwitchNtpL4DestPort = 1439, /* UDP destination port number to 3025 identify NTP packets. */ 3026 bcmSwitchNtpResidenceTimeUpdate = 1440, /* Enable to update the timestamp field 3027 in NTP packet based on the internal 3028 residence time. */ 3029 bcmSwitchV6L3LocalLinkSrcDisposition = 1441, /* Select drop behavior for packets with 3030 IPv6 link-local addresses */ 3031 bcmSwitchMirrorAllowDuplicateMirroredPackets = 1442, /* Enable to allow duplicate mirror 3032 packets with the same encapsulation 3033 format sent to the same destination 3034 port. */ 3035 bcmSwitchEgressStgCheckIngressEnable = 1443, /* Enable egress port's spanning tree 3036 check before enqueuing the packet to 3037 the MMU for L2 forwarding. */ 3038 bcmSwitchVxlanIPv4TunnelVlanTranslateEnable = 1444, /* Requires BROADCOM_PREMIUM license */ 3039 bcmSwitchVxlanIPv6TunnelVlanTranslateEnable = 1445, /* Requires BROADCOM_PREMIUM license */ 3040 bcmSwitchEgressFlexCounterPresel = 1446, /* Pre-select to count mirror packets or 3041 copy to CPU packets in egress flex 3042 counter. */ 3043 bcmSwitch__Count = 1447 /* Must be last. Not a usable value. */ 3044 } bcm_switch_control_t; 3045 3046 #define BCM_SWITCH_CONTROL_STR \ 3047 "HgHdrErrToCpu", \ 3048 "ClassTagPacketsToCpu", \ 3049 "IpmcTunnelToCpu", \ 3050 "StationMoveOverLearnLimitToCpu", \ 3051 "McastUnknownErrToCpu", \ 3052 "LearnLimitPriority", \ 3053 "ControlOpcodePriority", \ 3054 "CpuProtoBpduPriority", \ 3055 "CpuProtoArpPriority", \ 3056 "CpuProtoIgmpPriority", \ 3057 "CpuProtoDhcpPriority", \ 3058 "CpuProtoIpmcReservedPriority", \ 3059 "CpuProtoIpOptionsPriority", \ 3060 "CpuProtoExceptionsPriority", \ 3061 "CpuProtocolPrio", \ 3062 "CpuUnknownPrio", \ 3063 "CpuSamplePrio", \ 3064 "CpuDefaultPrio", \ 3065 "L2StaticMoveToCpu", \ 3066 "UnknownIpmcToCpu", \ 3067 "UnknownMcastToCpu", \ 3068 "UnknownUcastToCpu", \ 3069 "NonIpL3ErrToCpu", \ 3070 "L3HeaderErrToCpu", \ 3071 "UnknownVlanToCpu", \ 3072 "UnknownL3SrcToCpu", \ 3073 "UnknownL3DestToCpu", \ 3074 "IpmcPortMissToCpu", \ 3075 "IpmcErrorToCpu", \ 3076 "VCLabelMissToCpu", \ 3077 "SourceRouteToCpu", \ 3078 "SampleIngressRandomSeed", \ 3079 "SampleEgressRandomSeed", \ 3080 "CpuFpCopyPrio", \ 3081 "CpuIcmpRedirectPrio", \ 3082 "CpuMtuFailPrio", \ 3083 "CpuMirrorPrio", \ 3084 "CpuLookupFpCopyPrio", \ 3085 "L2NonStaticMoveToCpu", \ 3086 "V6L3ErrToCpu", \ 3087 "V6L3DstMissToCpu", \ 3088 "V6L3LocalLinkDrop", \ 3089 "V4L3ErrToCpu", \ 3090 "V4L3DstMissToCpu", \ 3091 "TunnelErrToCpu", \ 3092 "MartianAddrToCpu", \ 3093 "MartianAddr", \ 3094 "L3UcTtlErrToCpu", \ 3095 "L3SlowpathToCpu", \ 3096 "IpmcTtlErrToCpu", \ 3097 "DosAttackToCpu", \ 3098 "DosAttackSipEqualDip", \ 3099 "DosAttackMinTcpHdrSize", \ 3100 "DosAttackV4FirstFrag", \ 3101 "DosAttackTcpFlags", \ 3102 "DosAttackL4Port", \ 3103 "DosAttackTcpFrag", \ 3104 "DosAttackIcmp", \ 3105 "DosAttackIcmpV4", \ 3106 "DosAttackIcmpV6", \ 3107 "DosAttackIcmpPktOversize", \ 3108 "DosAttackMACSAEqualMACDA", \ 3109 "DosAttackIcmpV6PingSize", \ 3110 "DosAttackIcmpFragments", \ 3111 "DosAttackTcpOffset", \ 3112 "DosAttackUdpPortsEqual", \ 3113 "DosAttackTcpPortsEqual", \ 3114 "DosAttackTcpFlagsSF", \ 3115 "DosAttackTcpFlagsFUP", \ 3116 "DosAttackTcpHdrPartial", \ 3117 "DosAttackPingFlood", \ 3118 "DosAttackSynFlood", \ 3119 "DosAttackTcpSmurf", \ 3120 "DosAttackTcpXMas", \ 3121 "DosAttackL3Header", \ 3122 "IcmpRedirectToCpu", \ 3123 "MplsSequenceErrToCpu", \ 3124 "MplsLabelMissToCpu", \ 3125 "MplsTtlErrToCpu", \ 3126 "MplsInvalidL3PayloadToCpu", \ 3127 "MplsInvalidActionToCpu", \ 3128 "SharedVlanMismatchToCpu", \ 3129 "L3SrcUrpfErrToCpu", \ 3130 "GreKeyToVlan", \ 3131 "ArpReplyToCpu", \ 3132 "ArpReplyDrop", \ 3133 "ArpRequestToCpu", \ 3134 "ArpRequestDrop", \ 3135 "ArpReplyMyStationL2ToCPU", \ 3136 "NdPktToCpu", \ 3137 "NdPktDrop", \ 3138 "McastFloodBlocking", \ 3139 "IgmpPktToCpu", \ 3140 "IgmpPktDrop", \ 3141 "DhcpPktToCpu", \ 3142 "DhcpPktDrop", \ 3143 "MldPktToCpu", \ 3144 "MldPktDrop", \ 3145 "V4ResvdMcPktToCpu", \ 3146 "V4ResvdMcPktDrop", \ 3147 "V4ResvdMcPktFlood", \ 3148 "V6ResvdMcPktToCpu", \ 3149 "V6ResvdMcPktDrop", \ 3150 "V6ResvdMcPktFlood", \ 3151 "IgmpReportLeaveToCpu", \ 3152 "IgmpReportLeaveDrop", \ 3153 "IgmpReportLeaveFlood", \ 3154 "IgmpQueryToCpu", \ 3155 "IgmpQueryDrop", \ 3156 "IgmpQueryFlood", \ 3157 "IgmpUnknownToCpu", \ 3158 "IgmpUnknownDrop", \ 3159 "IgmpUnknownFlood", \ 3160 "MldReportDoneToCpu", \ 3161 "MldReportDoneDrop", \ 3162 "MldReportDoneFlood", \ 3163 "MldQueryToCpu", \ 3164 "MldQueryDrop", \ 3165 "MldQueryFlood", \ 3166 "IpmcV4RouterDiscoveryToCpu", \ 3167 "IpmcV4RouterDiscoveryDrop", \ 3168 "IpmcV4RouterDiscoveryFlood", \ 3169 "IpmcV6RouterDiscoveryToCpu", \ 3170 "IpmcV6RouterDiscoveryDrop", \ 3171 "IpmcV6RouterDiscoveryFlood", \ 3172 "DirectedMirroring", \ 3173 "PktAge", \ 3174 "McastFloodDefault", \ 3175 "ParityErrorToCpu", \ 3176 "L3MtuFailToCpu", \ 3177 "MeterAdjust", \ 3178 "CounterAdjust", \ 3179 "MeterAdjustInterframeGap", \ 3180 "HashL2", \ 3181 "HashL3", \ 3182 "HashMultipath", \ 3183 "HashControl", \ 3184 "FieldMultipathHashSelect", \ 3185 "FieldMultipathHashSeed", \ 3186 "MirrorStackMode", \ 3187 "MirrorSrcModCheck", \ 3188 "MirrorUnmarked", \ 3189 "DestPortHGTrunk", \ 3190 "ColorSelect", \ 3191 "ModuleLoopback", \ 3192 "SrcModBlockMirrorCopy", \ 3193 "SrcModBlockMirrorOnly", \ 3194 "HashSeed0", \ 3195 "HashSeed1", \ 3196 "HashField0PreProcessEnable", \ 3197 "HashField1PreProcessEnable", \ 3198 "HashField0Config", \ 3199 "HashField0Config1", \ 3200 "HashField1Config", \ 3201 "HashField1Config1", \ 3202 "MacroFlowHashFieldConfig", \ 3203 "HashSelectControl", \ 3204 "HashIP4Field0", \ 3205 "HashIP4Field1", \ 3206 "HashIP4TcpUdpField0", \ 3207 "HashIP4TcpUdpField1", \ 3208 "HashIP4TcpUdpPortsEqualField0", \ 3209 "HashIP4TcpUdpPortsEqualField1", \ 3210 "HashIP6Field0", \ 3211 "HashIP6Field1", \ 3212 "HashIP6TcpUdpField0", \ 3213 "HashIP6TcpUdpField1", \ 3214 "HashIP6TcpUdpPortsEqualField0", \ 3215 "HashIP6TcpUdpPortsEqualField1", \ 3216 "HashL2Field0", \ 3217 "HashL2Field1", \ 3218 "HashMPLSField0", \ 3219 "HashMPLSField1", \ 3220 "HashFCOEField0", \ 3221 "HashFCOEField1", \ 3222 "HashL2TrillField0", \ 3223 "HashL2TrillField1", \ 3224 "HashL3TrillField0", \ 3225 "HashL3TrillField1", \ 3226 "HashTrillTunnelField0", \ 3227 "HashTrillTunnelField1", \ 3228 "HashHG2UnknownField0", \ 3229 "HashHG2UnknownField1", \ 3230 "HashField0OverlayCntagRpidEnable", \ 3231 "HashField1OverlayCntagRpidEnable", \ 3232 "HashHg2PktFieldsEnable", \ 3233 "HashField0Ip6FlowLabel", \ 3234 "HashField1Ip6FlowLabel", \ 3235 "HashUseFlowSelTrunkUc", \ 3236 "HashUseFlowSelEcmp", \ 3237 "TrunkHashSet0UnicastOffset", \ 3238 "TrunkHashSet1UnicastOffset", \ 3239 "TrunkHashSet0NonUnicastOffset", \ 3240 "TrunkHashSet1NonUnicastOffset", \ 3241 "TrunkFailoverHashOffset", \ 3242 "FabricTrunkHashSet0UnicastOffset", \ 3243 "FabricTrunkHashSet1UnicastOffset", \ 3244 "FabricTrunkHashSet0NonUnicastOffset", \ 3245 "FabricTrunkHashSet1NonUnicastOffset", \ 3246 "FabricTrunkFailoverHashOffset", \ 3247 "FabricTrunkDynamicHashOffset", \ 3248 "LoadBalanceHashSet0UnicastOffset", \ 3249 "LoadBalanceHashSet1UnicastOffset", \ 3250 "LoadBalanceHashSet0NonUnicastOffset", \ 3251 "LoadBalanceHashSet1NonUnicastOffset", \ 3252 "MacroFlowHashMinOffset", \ 3253 "MacroFlowHashMaxOffset", \ 3254 "MacroFlowHashStrideOffset", \ 3255 "UniformUcastTrunkDistribution", \ 3256 "UniformFabricTrunkDistribution", \ 3257 "ECMPHashSet0Offset", \ 3258 "ECMPHashSet1Offset", \ 3259 "CpuToCpuEnable", \ 3260 "IgmpUcastEnable", \ 3261 "MldUcastEnable", \ 3262 "IgmpReservedMcastEnable", \ 3263 "MldReservedMcastEnable", \ 3264 "MldDirectAttachedOnly", \ 3265 "PortEgressBlockL2", \ 3266 "PortEgressBlockL3", \ 3267 "BpduInvalidVlanDrop", \ 3268 "MirrorInvalidVlanDrop", \ 3269 "MirrorPktChecksEnable", \ 3270 "RemoteLearnTrust", \ 3271 "SourceMacZeroDrop", \ 3272 "IpmcGroupMtu", \ 3273 "ModuleType", \ 3274 "Deprecated227", \ 3275 "Deprecated228", \ 3276 "Deprecated229", \ 3277 "L3EgressMode", \ 3278 "L3DefipMultipathCountUpdate", \ 3279 "L3IngressMode", \ 3280 "L3HostAsRouteReturnValue", \ 3281 "SourceModBlockUcast", \ 3282 "SourceModBlockControlOpcode", \ 3283 "EgressBlockUcast", \ 3284 "AlternateStoreForward", \ 3285 "WarmBoot", \ 3286 "StableSelect", \ 3287 "StableSize", \ 3288 "StableUsed", \ 3289 "StableConsistent", \ 3290 "ControlSync", \ 3291 "ControlAutoSync", \ 3292 "CallbackAbortOnError", \ 3293 "UnknownIpmcAsMcast", \ 3294 "TunnelUnknownIpmcDrop", \ 3295 "DhcpLearn", \ 3296 "IpmcTtl1ToCpu", \ 3297 "L3UcastTtl1ToCpu", \ 3298 "DosAttackFlagZeroSeqZero", \ 3299 "HgHdrExtLengthEnable", \ 3300 "DosAttackSynFrag", \ 3301 "Ip4McastL2DestCheck", \ 3302 "Ip6McastL2DestCheck", \ 3303 "L3InterfaceUrpfEnable", \ 3304 "L3TunnelUrpfMode", \ 3305 "L3TunnelUrpfDefaultRoute", \ 3306 "L3UrpfFailToCpu", \ 3307 "L3UrpfRouteEnable", \ 3308 "L3UrpfRouteEnableExternal", \ 3309 "L3UrpfMode", \ 3310 "L3UrpfDefaultRoute", \ 3311 "IngressRateLimitIncludeIFG", \ 3312 "RateLimitLinear", \ 3313 "HashL2Dual", \ 3314 "HashL3Dual", \ 3315 "HashDualMoveDepth", \ 3316 "HashDualMoveDepthL2", \ 3317 "HashDualMoveDepthL3", \ 3318 "HashDualMoveDepthVlan", \ 3319 "HashDualMoveDepthMpls", \ 3320 "HashDualMoveDepthEgressVlan", \ 3321 "HashDualMoveDepthWlanPort", \ 3322 "HashDualMoveDepthWlanClient", \ 3323 "HashMultiMoveDepth", \ 3324 "HashMultiMoveDepthL2", \ 3325 "HashMultiMoveDepthL3", \ 3326 "HashMultiMoveDepthVlan", \ 3327 "HashMultiMoveDepthMpls", \ 3328 "HashMultiMoveDepthEgressVlan", \ 3329 "HashL2DualLeastFull", \ 3330 "HashL3DualLeastFull", \ 3331 "HashMPLSDualLeastFull", \ 3332 "SharedVlanEnable", \ 3333 "SharedVlanL2McastEnable", \ 3334 "IpmcReplicationSharing", \ 3335 "IpmcReplicationAvailabilityThreshold", \ 3336 "VrfMax", \ 3337 "FailoverStackTrunk", \ 3338 "FailoverEtherTrunk", \ 3339 "ClassBasedMoveFailPktToCpu", \ 3340 "ClassBasedMoveFailPktDrop", \ 3341 "HgHdrMcastFlood", \ 3342 "HgHdrMcastFloodOverride", \ 3343 "HgHdrIpMcastFlood", \ 3344 "HgHdrIpMcastFloodOverride", \ 3345 "STPBlockedFieldBypass", \ 3346 "L2PortBlocking", \ 3347 "HashIpfixIngress", \ 3348 "HashIpfixIngressDual", \ 3349 "HashIpfixEgress", \ 3350 "HashIpfixEgressDual", \ 3351 "HashMPLS", \ 3352 "HashMPLSDual", \ 3353 "ForceForwardFabricTrunk", \ 3354 "UseGport", \ 3355 "HgHdrMcastVlanRange", \ 3356 "HgHdrMcastL2Range", \ 3357 "HgHdrMcastL3Range", \ 3358 "McastL2Range", \ 3359 "McastL3Range", \ 3360 "HashWlanPort", \ 3361 "HashWlanPortDual", \ 3362 "HashWlanClient", \ 3363 "HashWlanClientDual", \ 3364 "WlanClientAuthorizeAll", \ 3365 "WlanClientUnauthToCpu", \ 3366 "WlanClientRoamedOutErrorToCpu", \ 3367 "WlanClientSrcMacMissToCpu", \ 3368 "WlanClientDstMacMissToCpu", \ 3369 "OamHeaderErrorToCpu", \ 3370 "OamUnknownVersionToCpu", \ 3371 "OamUnknownVersionDrop", \ 3372 "OamUnexpectedPktToCpu", \ 3373 "OamCcmToCpu", \ 3374 "OamXconCcmToCpu", \ 3375 "OamXconOtherToCpu", \ 3376 "L3SrcBindFailToCpu", \ 3377 "TunnelIp4IdShared", \ 3378 "HashRegexAction", \ 3379 "HashRegexActionDual", \ 3380 "Deprecated333", \ 3381 "CpuCopyDestination", \ 3382 "CpuProtoTimeSyncPrio", \ 3383 "CpuProtoMmrpPrio", \ 3384 "CpuProtoSrpPrio", \ 3385 "TimeSyncPktToCpu", \ 3386 "TimeSyncPktDrop", \ 3387 "TimeSyncPktFlood", \ 3388 "MmrpPktToCpu", \ 3389 "MmrpPktDrop", \ 3390 "MmrpPktFlood", \ 3391 "SrpPktToCpu", \ 3392 "SrpPktDrop", \ 3393 "SrpPktFlood", \ 3394 "SRPEthertype", \ 3395 "MMRPEthertype", \ 3396 "TimeSyncEthertype", \ 3397 "FcoeEtherType", \ 3398 "SRPDestMacOui", \ 3399 "MMRPDestMacOui", \ 3400 "TimeSyncDestMacOui", \ 3401 "SRPDestMacNonOui", \ 3402 "MMRPDestMacNonOui", \ 3403 "TimeSyncDestMacNonOui", \ 3404 "TimeSyncMessageTypeBitmap", \ 3405 "TimeSyncClassAPktPrio", \ 3406 "TimeSyncClassBPktPrio", \ 3407 "TimeSyncClassAExeptionPktPrio", \ 3408 "TimeSyncClassBExeptionPktPrio", \ 3409 "L2McastAllRouterPortsAddEnable", \ 3410 "BypassMode", \ 3411 "IpmcSameVlanL3Route", \ 3412 "Deprecated365", \ 3413 "FieldCache", \ 3414 "FieldCommit", \ 3415 "IpmcCache", \ 3416 "IpmcCommit", \ 3417 "L2Cache", \ 3418 "L2Commit", \ 3419 "L2AgeDelete", \ 3420 "L2AgeScan", \ 3421 "L3HostCache", \ 3422 "L3HostCommit", \ 3423 "L3RouteCache", \ 3424 "L3RouteCommit", \ 3425 "L2InvalidCtlToCpu", \ 3426 "InvalidGreToCpu", \ 3427 "HashL2MPLSField0", \ 3428 "HashL2MPLSField1", \ 3429 "HashL3MPLSField0", \ 3430 "HashL3MPLSField1", \ 3431 "HashMPLSTunnelField0", \ 3432 "HashMPLSTunnelField1", \ 3433 "HashMIMTunnelField0", \ 3434 "HashMIMTunnelField1", \ 3435 "HashMIMField0", \ 3436 "HashMIMField1", \ 3437 "StgInvalidToCpu", \ 3438 "VlanTranslateEgressMissToCpu", \ 3439 "L3PktErrToCpu", \ 3440 "MtuFailureToCpu", \ 3441 "SrcKnockoutToCpu", \ 3442 "WlanTunnelMismatchToCpu", \ 3443 "WlanTunnelMismatchDrop", \ 3444 "WlanPortMissToCpu", \ 3445 "UnknownVlanToCpuCosq", \ 3446 "StgInvalidToCpuCosq", \ 3447 "VlanTranslateEgressMissToCpuCosq", \ 3448 "TunnelErrToCpuCosq", \ 3449 "L3HeaderErrToCpuCosq", \ 3450 "L3PktErrToCpuCosq", \ 3451 "IpmcTtlErrToCpuCosq", \ 3452 "MtuFailureToCpuCosq", \ 3453 "HgHdrErrToCpuCosq", \ 3454 "SrcKnockoutToCpuCosq", \ 3455 "WlanTunnelMismatchToCpuCosq", \ 3456 "WlanPortMissToCpuCosq", \ 3457 "IpfixRateViolationDataInsert", \ 3458 "IpfixRateViolationPersistent", \ 3459 "HashVlanTranslate", \ 3460 "HashVlanTranslateDual", \ 3461 "HashEgressVlanTranslate", \ 3462 "HashEgressVlanTranslateDual", \ 3463 "LayeredQoSResolution", \ 3464 "CustomerQueuing", \ 3465 "CosqStatThreshold", \ 3466 "CosqStatInterval", \ 3467 "EncapErrorToCpu", \ 3468 "MplsPortIndependentLowerRange1", \ 3469 "MplsPortIndependentUpperRange1", \ 3470 "MplsPortIndependentLowerRange2", \ 3471 "MplsPortIndependentUpperRange2", \ 3472 "MirrorEgressTrueColorSelect", \ 3473 "MirrorEgressTruePriority", \ 3474 "PFCClass0Queue", \ 3475 "PFCClass1Queue", \ 3476 "PFCClass2Queue", \ 3477 "PFCClass3Queue", \ 3478 "PFCClass4Queue", \ 3479 "PFCClass5Queue", \ 3480 "PFCClass6Queue", \ 3481 "PFCClass7Queue", \ 3482 "PFCClass0McastQueue", \ 3483 "PFCClass1McastQueue", \ 3484 "PFCClass2McastQueue", \ 3485 "PFCClass3McastQueue", \ 3486 "PFCClass4McastQueue", \ 3487 "PFCClass5McastQueue", \ 3488 "PFCClass6McastQueue", \ 3489 "PFCClass7McastQueue", \ 3490 "PFCClass0DestmodQueue", \ 3491 "PFCClass1DestmodQueue", \ 3492 "PFCClass2DestmodQueue", \ 3493 "PFCClass3DestmodQueue", \ 3494 "PFCClass4DestmodQueue", \ 3495 "PFCClass5DestmodQueue", \ 3496 "PFCClass6DestmodQueue", \ 3497 "PFCClass7DestmodQueue", \ 3498 "PFCQueue0Class", \ 3499 "PFCQueue1Class", \ 3500 "PFCQueue2Class", \ 3501 "PFCQueue3Class", \ 3502 "PFCQueue4Class", \ 3503 "PFCQueue5Class", \ 3504 "PFCQueue6Class", \ 3505 "PFCQueue7Class", \ 3506 "ReserveLowL3InterfaceId", \ 3507 "ReserveHighL3InterfaceId", \ 3508 "ReserveLowL3EgressId", \ 3509 "ReserveHighL3EgressId", \ 3510 "ReserveLowVlanPort", \ 3511 "ReserveHighVlanPort", \ 3512 "ReserveLowMplsPort", \ 3513 "ReserveHighMplsPort", \ 3514 "ReserveLowMimPort", \ 3515 "ReserveHighMimPort", \ 3516 "ReserveLowEncap", \ 3517 "ReserveHighEncap", \ 3518 "ReserveLowL2Egress", \ 3519 "ReserveHighL2Egress", \ 3520 "ReserveLowVpn", \ 3521 "ReserveHighVpn", \ 3522 "ReserveLowFailoverId", \ 3523 "ReserveHighFailoverId", \ 3524 "ReserveLowOamEndPointId", \ 3525 "ReserveHighOamEndPointId", \ 3526 "ReserveLowOamGroupId", \ 3527 "ReserveHighOamGroupId", \ 3528 "SnapNonZeroOui", \ 3529 "SynchronousPortClockSource", \ 3530 "SynchronousPortClockSourceBkup", \ 3531 "SynchronousPortClockSourceDivCtrl", \ 3532 "SynchronousPortClockSourceBkupDivCtrl", \ 3533 "L2HitClear", \ 3534 "L2SrcHitClear", \ 3535 "L2DstHitClear", \ 3536 "L3HostHitClear", \ 3537 "L3RouteHitClear", \ 3538 "IpmcSameVlanPruning", \ 3539 "Deprecated492", \ 3540 "Deprecated493", \ 3541 "L2McIdxRetType", \ 3542 "L3McIdxRetType", \ 3543 "Deprecated496", \ 3544 "Deprecated497", \ 3545 "Deprecated498", \ 3546 "Deprecated499", \ 3547 "Deprecated500", \ 3548 "ArpDhcpToCpu", \ 3549 "IgmpMldToCpu", \ 3550 "LinkDownInfoSkip", \ 3551 "Deprecated504", \ 3552 "L2SourceDiscardMoveToCpu", \ 3553 "NivEthertype", \ 3554 "NivPrioDropToCpu", \ 3555 "NivInterfaceMissToCpu", \ 3556 "NivRpfFailToCpu", \ 3557 "NivTagInvalidToCpu", \ 3558 "NivTagDropToCpu", \ 3559 "NivUntagDropToCpu", \ 3560 "EEEPipelineTime", \ 3561 "EEEGlobalCongestionThreshold", \ 3562 "Deprecated515", \ 3563 "Deprecated516", \ 3564 "Deprecated517", \ 3565 "Deprecated518", \ 3566 "Deprecated519", \ 3567 "Deprecated520", \ 3568 "Deprecated521", \ 3569 "RemoteCpuSchanEnable", \ 3570 "RemoteCpuFromCpuEnable", \ 3571 "RemoteCpuToCpuEnable", \ 3572 "RemoteCpuCmicEnable", \ 3573 "RemoteCpuMatchLocalMac", \ 3574 "RemoteCpuMatchVlan", \ 3575 "RemoteCpuVlan", \ 3576 "RemoteCpuTpid", \ 3577 "RemoteCpuSignature", \ 3578 "RemoteCpuForceScheduling", \ 3579 "RemoteCpuToCpuDestPortAllReasons", \ 3580 "RemoteCpuToCpuDestMacAllReasons", \ 3581 "RxRedirectPktReasons", \ 3582 "RxRedirectPktReasonsExtended", \ 3583 "RxRedirectHigigPktReasons", \ 3584 "RxRedirectHigigPktReasonsExtended", \ 3585 "RxRedirectTruncatedPktReasons", \ 3586 "RxRedirectTruncatedPktReasonsExtended", \ 3587 "RxRedirectPktCos", \ 3588 "RxRedirectPktCosExtended", \ 3589 "RemoteCpuLocalMacOui", \ 3590 "RemoteCpuLocalMacNonOui", \ 3591 "RemoteCpuDestMacOui", \ 3592 "RemoteCpuDestMacNonOui", \ 3593 "RemoteCpuEthertype", \ 3594 "RemoteCpuDestPort", \ 3595 "RemoteCpuHigigDestPort", \ 3596 "RemoteCpuTcMappingMacOui", \ 3597 "RemoteCpuTcMappingMacNonOui", \ 3598 "RemoteCpuTcMappingEthertype", \ 3599 "ServiceTpidReplace", \ 3600 "EgressPktAge", \ 3601 "FabricTrunkDynamicSampleRate", \ 3602 "FabricTrunkDynamicEgressBytesExponent", \ 3603 "FabricTrunkDynamicQueuedBytesExponent", \ 3604 "FabricTrunkDynamicEgressBytesDecreaseReset", \ 3605 "FabricTrunkDynamicQueuedBytesDecreaseReset", \ 3606 "FabricTrunkDynamicEgressBytesMinThreshold", \ 3607 "FabricTrunkDynamicEgressBytesMaxThreshold", \ 3608 "FabricTrunkDynamicQueuedBytesMinThreshold", \ 3609 "FabricTrunkDynamicQueuedBytesMaxThreshold", \ 3610 "MacLowPower", \ 3611 "CongestionCntag", \ 3612 "CongestionCntagEthertype", \ 3613 "CongestionCnm", \ 3614 "CongestionCnmEthertype", \ 3615 "CongestionNotificationIdHigh", \ 3616 "CongestionNotificationIdLow", \ 3617 "CongestionNotificationIdQueue", \ 3618 "CongestionUseOuterTpid", \ 3619 "CongestionUseOuterVlan", \ 3620 "CongestionUseOuterPktPri", \ 3621 "CongestionUseOuterCfi", \ 3622 "CongestionUseInnerPktPri", \ 3623 "CongestionUseInnerCfi", \ 3624 "CongestionMissingCntag", \ 3625 "CongestionExcludeReplications", \ 3626 "MiMDefaultSVP", \ 3627 "MiMDefaultSVPValue", \ 3628 "EgressDroppedReportZeroLength", \ 3629 "LoadBalanceHashSelect", \ 3630 "TrillEthertype", \ 3631 "TrillISISEthertype", \ 3632 "TrillISISDestMacOui", \ 3633 "TrillBroadcastDestMacOui", \ 3634 "TrillEndStationDestMacOui", \ 3635 "TrillISISDestMacNonOui", \ 3636 "TrillBroadcastDestMacNonOui", \ 3637 "TrillEndStationDestMacNonOui", \ 3638 "TrillMinTtl", \ 3639 "TrillTtlCheckEnable", \ 3640 "TrillTtlErrToCpu", \ 3641 "TrillHeaderErrToCpu", \ 3642 "TrillMismatchToCpu", \ 3643 "TrillNameMissToCpu", \ 3644 "TrillRpfFailToCpu", \ 3645 "TrillOptionsToCpu", \ 3646 "TrillNameErrDrop", \ 3647 "TrillRpfFailDrop", \ 3648 "TrillHeaderVersionErrDrop", \ 3649 "TrillNameMissDrop", \ 3650 "TrillAdjacencyFailDrop", \ 3651 "TrillHeaderErrDrop", \ 3652 "UdpPktActionEnable", \ 3653 "UdpPktRedirectPbmp", \ 3654 "UdpPktCopyToPbmp", \ 3655 "UdpPktNewTc", \ 3656 "L3TunnelIpV4ModeOnly", \ 3657 "L3SrcHitEnable", \ 3658 "L2DstHitEnable", \ 3659 "WESPProtocolEnable", \ 3660 "WESPProtocol", \ 3661 "Deprecated614", \ 3662 "Ip6CompressEnable", \ 3663 "Ip6CompressDefaultOffset", \ 3664 "StableSaveLongIds", \ 3665 "GportAnyDefaultL2Learn", \ 3666 "GportAnyDefaultL2Move", \ 3667 "IngParseL2TunnelTermDipSipSelect", \ 3668 "IngParseL3L4IPv4", \ 3669 "IngParseL3L4IPv6", \ 3670 "L2LearnMode", \ 3671 "SetWredJitterMask", \ 3672 "SetMplsEntropyLabelTtl", \ 3673 "SetMplsEntropyLabelPri", \ 3674 "SetMplsEntropyLabelOffset", \ 3675 "PonOamFailsafeState", \ 3676 "EquipmentAlarmState", \ 3677 "PowerAlarmState", \ 3678 "BatteryMissingAlarmState", \ 3679 "BatteryFailureAlarmState", \ 3680 "BatteryVoltLowAlarmState", \ 3681 "BatteryVoltLowAlarmReportThreshold", \ 3682 "BatteryVoltLowAlarmClearThreshold", \ 3683 "PhysicalIntrusionAlarmState", \ 3684 "SelfTestFailureAlarmState", \ 3685 "PonIfSwitchAlarmState", \ 3686 "L3IngressInterfaceMapSet", \ 3687 "MplsPWControlWordToCpu", \ 3688 "MplsPWControlTypeToCpu", \ 3689 "MplsPWControlWord", \ 3690 "MplsPWCountPktsAll", \ 3691 "EntropyHashSet0Offset", \ 3692 "EntropyHashSet1Offset", \ 3693 "ArpRequestMyStationIPToCPU", \ 3694 "ArpRequestMyStationIPDrop", \ 3695 "ArpRequestMyStationIPFwd", \ 3696 "L3SIPMoveToCpu", \ 3697 "TrunkHashSrcPortEnable", \ 3698 "TrunkHashOffset", \ 3699 "TrunkHashMPLSLabelBOS", \ 3700 "TrunkHashMPLSPWControlWord", \ 3701 "TrunkHashSeed", \ 3702 "TrunkHashConfig", \ 3703 "TrunkHashPktHeaderCount", \ 3704 "TrunkHashPktHeaderSelect", \ 3705 "ECMPHashSrcPortEnable", \ 3706 "ECMPHashOffset", \ 3707 "ECMPHashSeed", \ 3708 "ECMPHashConfig", \ 3709 "ECMPHashPktHeaderCount", \ 3710 "TrunkDynamicHashOffset", \ 3711 "TrunkDynamicSampleRate", \ 3712 "TrunkDynamicAccountingSelect", \ 3713 "TrunkDynamicEgressBytesExponent", \ 3714 "TrunkDynamicQueuedBytesExponent", \ 3715 "TrunkDynamicEgressBytesDecreaseReset", \ 3716 "TrunkDynamicQueuedBytesDecreaseReset", \ 3717 "TrunkDynamicEgressBytesMinThreshold", \ 3718 "TrunkDynamicEgressBytesMaxThreshold", \ 3719 "TrunkDynamicQueuedBytesMinThreshold", \ 3720 "TrunkDynamicQueuedBytesMaxThreshold", \ 3721 "TrunkDynamicExpectedLoadMinThreshold", \ 3722 "TrunkDynamicExpectedLoadMaxThreshold", \ 3723 "TrunkDynamicImbalanceMinThreshold", \ 3724 "TrunkDynamicImbalanceMaxThreshold", \ 3725 "EcmpDynamicHashOffset", \ 3726 "EcmpDynamicSampleRate", \ 3727 "EcmpDynamicAccountingSelect", \ 3728 "EcmpDynamicEgressBytesExponent", \ 3729 "EcmpDynamicQueuedBytesExponent", \ 3730 "EcmpDynamicEgressBytesDecreaseReset", \ 3731 "EcmpDynamicQueuedBytesDecreaseReset", \ 3732 "EcmpDynamicEgressBytesMinThreshold", \ 3733 "EcmpDynamicEgressBytesMaxThreshold", \ 3734 "EcmpDynamicQueuedBytesMinThreshold", \ 3735 "EcmpDynamicQueuedBytesMaxThreshold", \ 3736 "EcmpDynamicExpectedLoadMinThreshold", \ 3737 "EcmpDynamicExpectedLoadMaxThreshold", \ 3738 "EcmpDynamicImbalanceMinThreshold", \ 3739 "EcmpDynamicImbalanceMaxThreshold", \ 3740 "FailoverDropToCpu", \ 3741 "MplsReservedEntropyLabelToCpu", \ 3742 "L3SrcBindMissToCpu", \ 3743 "MplsGalAlertLabelToCpu", \ 3744 "MplsRalAlertLabelToCpu", \ 3745 "MplsIllegalReservedLabelToCpu", \ 3746 "MplsLookupsExceededToCpu", \ 3747 "MplsUnknownAchTypeToCpu", \ 3748 "MplsUnknownAchVersionToCpu", \ 3749 "TimesyncIngressVersion", \ 3750 "TimesyncEgressVersion", \ 3751 "TimesyncUnknownVersionToCpu", \ 3752 "CongestionCnmToCpu", \ 3753 "bcmSwtichCongestionCnmProxyErrorToCpu", \ 3754 "bcmSwtichCongestionCnmProxyToCpu", \ 3755 "WlanTunnelErrorDrop", \ 3756 "MplsReservedEntropyLabelDrop", \ 3757 "RemoteProtectionTrust", \ 3758 "L2GreProtocolType", \ 3759 "L2GreVpnIdSizeSet", \ 3760 "L2GreVpnIdMissToCpu", \ 3761 "L2GreTunnelMissToCpu", \ 3762 "MultipathCompressBuffer", \ 3763 "MultipathCompress", \ 3764 "BstEnable", \ 3765 "BstTrackingMode", \ 3766 "L3McastL2", \ 3767 "MiMTeBvidLowerRange", \ 3768 "MiMTeBvidUpperRange", \ 3769 "RemoteEncapsulationMode", \ 3770 "FabricTrunkAutoIncludeDisable", \ 3771 "TrunkHashNormalize", \ 3772 "MplsLabelCache", \ 3773 "MplsLabelCommit", \ 3774 "TrillHopCount", \ 3775 "PolicerFairness", \ 3776 "VxlanUdpDestPortSet", \ 3777 "VxlanEntropyEnable", \ 3778 "VxlanVnIdMissToCpu", \ 3779 "VxlanTunnelMissToCpu", \ 3780 "ECMPVxlanHashOffset", \ 3781 "ECMPL2GreHashOffset", \ 3782 "ECMPTrillHashOffset", \ 3783 "ECMPMplsHashOffset", \ 3784 "VirtualPortDynamicHashOffset", \ 3785 "TMDomain", \ 3786 "PortHeaderType", \ 3787 "L2OverflowEvent", \ 3788 "LinkProvClear", \ 3789 "EtagEthertype", \ 3790 "EtagInvalidToCpu", \ 3791 "EtagDropToCpu", \ 3792 "NonEtagDropToCpu", \ 3793 "ExtenderRpfFailToCpu", \ 3794 "ExtenderInterfaceMissToCpu", \ 3795 "PrioDropToCpu", \ 3796 "ExtenderMulticastLowerThreshold", \ 3797 "ExtenderMulticastHigherThreshold", \ 3798 "L3NATEnable", \ 3799 "L3DNATHairpinToCpu", \ 3800 "L3DNATMissToCpu", \ 3801 "L3SNATMissToCpu", \ 3802 "L3NatOtherToCpu", \ 3803 "L3NatRealmCrossingIcmpToCpu", \ 3804 "L3NatFragmentsToCpu", \ 3805 "HashL3DNATPool", \ 3806 "HashL3DNATPoolDual", \ 3807 "McastTrunkHashMin", \ 3808 "McastTrunkHashMax", \ 3809 "Ip4Compress", \ 3810 "EcmpResilientHashOffset", \ 3811 "TrunkResilientHashOffset", \ 3812 "FabricTrunkResilientHashOffset", \ 3813 "ShaperAdjust", \ 3814 "HashVpVlanMemberIngress", \ 3815 "HashVpVlanMemberIngressDual", \ 3816 "HashVpVlanMemberEgress", \ 3817 "HashVpVlanMemberEgressDual", \ 3818 "HashL2Endpoint", \ 3819 "HashL2EndpointDual", \ 3820 "HashEndpointQueueMap", \ 3821 "HashEndpointQueueMapDual", \ 3822 "StackRouteHistoryBitmap1", \ 3823 "StackRouteHistoryBitmap2", \ 3824 "ArpIPcheck", \ 3825 "Deprecated778", \ 3826 "Deprecated779", \ 3827 "L2LearnLimitToCpu", \ 3828 "FlexibleMirrorDestinations", \ 3829 "EcmpMacroFlowHashEnable", \ 3830 "OamVersionCheckDisable", \ 3831 "OamOlpChipEtherType", \ 3832 "OamOlpChipTpid", \ 3833 "OamOlpChipVlan", \ 3834 "Deprecated787", \ 3835 "EgressKeepSystemHeader", \ 3836 "MacroFlowEcmpHashConcatEnable", \ 3837 "MacroFlowLoadBalanceHashConcatEnable", \ 3838 "MacroFlowTrunkHashConcatEnable", \ 3839 "MacroFlowHigigTrunkHashConcatEnable", \ 3840 "MacroFlowECMPHashSeed", \ 3841 "MacroFlowLoadBalanceHashSeed", \ 3842 "MacroFlowTrunkHashSeed", \ 3843 "MacroFlowHigigTrunkHashSeed", \ 3844 "HashTrillPayloadSelect0", \ 3845 "HashTrillPayloadSelect1", \ 3846 "HashTrillTunnelSelect0", \ 3847 "HashTrillTunnelSelect1", \ 3848 "HashIP6AddrCollapseSelect0", \ 3849 "HashIP6AddrCollapseSelect1", \ 3850 "PrependTagEnable", \ 3851 "HashL2VxlanField0", \ 3852 "HashL2VxlanField1", \ 3853 "HashL3VxlanField0", \ 3854 "HashL3VxlanField1", \ 3855 "HashL2L2GreField0", \ 3856 "HashL2L2GreField1", \ 3857 "HashL3L2GreField0", \ 3858 "HashL3L2GreField1", \ 3859 "McastTrunkIngressCommit", \ 3860 "McastTrunkEgressCommit", \ 3861 "MplsShortPipe", \ 3862 "TraverseMode", \ 3863 "TrunkResilientHashConfig", \ 3864 "TrunkResilientHashSeed", \ 3865 "ECMPResilientHashSeed", \ 3866 "ResilientHashAgeTimer", \ 3867 "FieldStageEgressToCpu", \ 3868 "HashOamEgress", \ 3869 "HashOamEgressDual", \ 3870 "ColorL3L2Marking", \ 3871 "WredForAllPkts", \ 3872 "FcoeNpvModeEnable", \ 3873 "FcoeDomainRoutePrefixLength", \ 3874 "FcoeCutThroughEnable", \ 3875 "FcoeSourceBindCheckAction", \ 3876 "FcoeSourceFpmaPrefixCheckAction", \ 3877 "FcoeVftHopCountExpiryToCpu", \ 3878 "FcoeVftHopCountExpiryAction", \ 3879 "FcoeFcEofT1Value", \ 3880 "FcoeFcEofT2Value", \ 3881 "FcoeFcEofA1Value", \ 3882 "FcoeFcEofA2Value", \ 3883 "FcoeFcEofN1Value", \ 3884 "FcoeFcEofN2Value", \ 3885 "FcoeFcEofNI1Value", \ 3886 "FcoeFcEofNI2Value", \ 3887 "FcoeZoneCheckFailToCpu", \ 3888 "FcoeZoneCheckMissDrop", \ 3889 "HashUseL2GreTunnelGreKey0", \ 3890 "HashUseL2GreTunnelGreKey1", \ 3891 "HashL2GrePayloadSelect0", \ 3892 "HashL2GrePayloadSelect1", \ 3893 "HashL2GreNetworkPortPayloadDisable0", \ 3894 "HashL2GreNetworkPortPayloadDisable1", \ 3895 "SystemReservedVlan", \ 3896 "ProxySrcKnockout", \ 3897 "NetworkGroupDepth", \ 3898 "UnknownSubportPktTagToCpu", \ 3899 "L3RoutedLearn", \ 3900 "SubportPktTagEthertype", \ 3901 "SubportPktTagToCpu", \ 3902 "NonSubportPktTagToCpu", \ 3903 "HashL2GreKeyMask0", \ 3904 "HashL2GreKeyMask1", \ 3905 "L3Max128BV6Entries", \ 3906 "EEEQueueThresholdProfile0", \ 3907 "EEEQueueThresholdProfile1", \ 3908 "EEEQueueThresholdProfile2", \ 3909 "EEEQueueThresholdProfile3", \ 3910 "EEEPacketLatencyProfile0", \ 3911 "EEEPacketLatencyProfile1", \ 3912 "EEEPacketLatencyProfile2", \ 3913 "EEEPacketLatencyProfile3", \ 3914 "DosAttackV6MinFragEnable", \ 3915 "DosAttackV6MinFragSize", \ 3916 "MirrorUnicastCosq", \ 3917 "MirrorMulticastCosq", \ 3918 "McQueueSchedMode", \ 3919 "Reserved872", \ 3920 "CacheTableUpdateAll", \ 3921 "HashNivSrcIfEtagSvidSelect0", \ 3922 "HashNivSrcIfEtagSvidSelect1", \ 3923 "HashNivDstIfEtagVidSelect0", \ 3924 "HashNivDstIfEtagVidSelect1", \ 3925 "BstSnapshotEnable", \ 3926 "SymmetricHashControl", \ 3927 "L2ExtLearn", \ 3928 "ReserveHighTunnelId", \ 3929 "ReserveLowTunnelId", \ 3930 "HigigCongestionClassEnable", \ 3931 "EcnNonIpResponsive", \ 3932 "EcnNonIpIntCongestionNotification", \ 3933 "MimPayloadTpidEnable", \ 3934 "HashMimUseTunnelHeader0", \ 3935 "HashMimUseTunnelHeader1", \ 3936 "MplsPipeTunnelLabelExpSet", \ 3937 "ControlPortConfigInstall", \ 3938 "LoopbackMtuSize", \ 3939 "HashVxlanPayloadSelect0", \ 3940 "HashVxlanPayloadSelect1", \ 3941 "CongestionCnmSrcMacNonOui", \ 3942 "CongestionCnmSrcMacOui", \ 3943 "HashL2MPLSPayloadSelect0", \ 3944 "HashL2MPLSPayloadSelect1", \ 3945 "HashL3L2MPLSField0", \ 3946 "HashL3L2MPLSField1", \ 3947 "HashIPSecSelect0", \ 3948 "HashIPSecSelect1", \ 3949 "ECMPLevel1RandomSeed", \ 3950 "ECMPLevel2RandomSeed", \ 3951 "TimesyncEgressTimestampingMode", \ 3952 "SubportCoEEtherType", \ 3953 "SubportEgressTpid", \ 3954 "SubportEgressWideTpid", \ 3955 "IpmcSameVlanPruningOverride", \ 3956 "SynchronousPortClockSourceValid", \ 3957 "SynchronousPortClockSourceBkupValid", \ 3958 "RemoteProtectionEnable", \ 3959 "MirrorExclusive", \ 3960 "EcnDelayMeasurementThreshold", \ 3961 "MacroFlowHashUseMSB", \ 3962 "MplsDefaultTtlCopy", \ 3963 "OamStackingSupport", \ 3964 "HashOam", \ 3965 "HashOamDual", \ 3966 "HashOamLeastFull", \ 3967 "HashDualMoveDepthOam", \ 3968 "PortVlanTranslationAdvanced", \ 3969 "ForwardingLayerMtuFilter", \ 3970 "LinkLayerMtuFilter", \ 3971 "ForwardingLayerMtuSize", \ 3972 "LinkLayerMtuSize", \ 3973 "MimBvidInsertionControl", \ 3974 "L2CpuDeleteEvent", \ 3975 "L2LearnEvent", \ 3976 "L2CpuAddEvent", \ 3977 "L2AgingEvent", \ 3978 "UdfHashEnable", \ 3979 "OlpMatchRule", \ 3980 "MplsExtendedLabelTtl", \ 3981 "MacroFlowHashOverlayMaxOffset", \ 3982 "MacroFlowHashOverlayStrideOffset", \ 3983 "MacroFlowHashOverlayMinOffset", \ 3984 "MacroFlowEcmpHashOverlayConcatEnable", \ 3985 "MacroFlowECMPOverlayHashSeed", \ 3986 "ECMPOverlayHashOffset", \ 3987 "MacroFlowEcmpUnderlayHashConcatEnable", \ 3988 "MacroFlowECMPUnderlayHashSeed", \ 3989 "ECMPUnderlayVxlanHashOffset", \ 3990 "ECMPUnderlayL2GreHashOffset", \ 3991 "ECMPUnderlayTrillHashOffset", \ 3992 "VirtualPortUnderlayDynamicHashOffset", \ 3993 "ECMPUnderlayHashSet0Offset", \ 3994 "SampleFlexRandomSeed", \ 3995 "NonUcVlanShapingEnable", \ 3996 "CustomHeaderEncapPriorityOffset", \ 3997 "IngCapwapEnable", \ 3998 "CapwapDataUdpDstPort", \ 3999 "CountCapwapPayloadBytesOnly", \ 4000 "OamOlpStationMacOui", \ 4001 "OamOlpStationMacNonOui", \ 4002 "Reserved955", \ 4003 "PFCDeadlockDetectionTimeInterval", \ 4004 "PFCDeadlockRecoveryAction", \ 4005 "RangeCheckersAPIType", \ 4006 "Reserved958", \ 4007 "EcmpGroupMemberMode", \ 4008 "MimlEncapInnerEthertype", \ 4009 "HashMiMPayloadSelect0", \ 4010 "HashMiMPayloadSelect1", \ 4011 "HashL3MiMField0", \ 4012 "HashL3MiMField1", \ 4013 "HashMPLSUseLabelStack", \ 4014 "HashMPLSExcludeGAL", \ 4015 "RedirectBufferThresholdPriorityLow", \ 4016 "RedirectBufferThresholdPriorityMedium", \ 4017 "RedirectBufferThresholdPriorityHigh", \ 4018 "FlexIP6ExtHdr", \ 4019 "FlexIP6ExtHdrEgress", \ 4020 "HashUseFlowSelMplsEcmp", \ 4021 "V6L3SrcDstLocalLinkDropCancel", \ 4022 "L3ClassIdForL2Enable", \ 4023 "DropSobmhOnLinkDown", \ 4024 "ResilientHashCRC0ByteMask", \ 4025 "ResilientHashCRC1ByteMask", \ 4026 "ResilientHashCRC2ByteMask", \ 4027 "ResilientHashCRC3ByteMask", \ 4028 "ResilientHashCRCSeed", \ 4029 "ECMPResilientHashKey0Shift", \ 4030 "ECMPResilientHashKey1Shift", \ 4031 "VpnDetachPorts", \ 4032 "ClassL3L2Marking", \ 4033 "L3L2MarkingMode", \ 4034 "STPDisabledFieldBypass", \ 4035 "HashSctpL4Port", \ 4036 "Reserved988", \ 4037 "GlobalTpidEnable", \ 4038 "ECMPResilientHashCombine", \ 4039 "HashSetTflowMode", \ 4040 "Downgrade", \ 4041 "HashELISearch", \ 4042 "CrashRecoveryMode", \ 4043 "CrCommit", \ 4044 "CrLastTransactionStatus", \ 4045 "CrCouldNotRecover", \ 4046 "HWL2Freeze", \ 4047 "HashIP6NextHeaderUseExtensionHeader0", \ 4048 "HashIP6NextHeaderUseExtensionHeader1", \ 4049 "HashUseFlowSelLbidNonUnicast", \ 4050 "HashUseFlowSelLbidUnicast", \ 4051 "HashUseFlowSelHigigTrunkNonUnicast", \ 4052 "HashUseFlowSelHigigTrunkUnicast", \ 4053 "HashUseFlowSelHigigTrunkFailover", \ 4054 "HashUseFlowSelTrunkNonUnicast", \ 4055 "HashUseFlowSelEntropy", \ 4056 "HashUseFlowSelVxlanEcmp", \ 4057 "DefaultNativeOutVlanPort", \ 4058 "DefaultEgressVlanEditClassId", \ 4059 "GtpDetectEnable", \ 4060 "GtpHdrFirstByte", \ 4061 "GtpHdrFirstByteMask", \ 4062 "HashGtpTeidEnable0", \ 4063 "HashGtpTeidEnable1", \ 4064 "EccSingleBitErrorEvent", \ 4065 "HeaderCompensationPerPacket", \ 4066 "3rdTagStampMode", \ 4067 "MacroFlowHigigTrunkHashMinOffset", \ 4068 "MacroFlowHigigTrunkHashMaxOffset", \ 4069 "MacroFlowHigigTrunkHashStrideOffset", \ 4070 "MacroFlowTrunkHashMinOffset", \ 4071 "MacroFlowTrunkHashMaxOffset", \ 4072 "MacroFlowTrunkHashStrideOffset", \ 4073 "MacroFlowLoadBalanceEntropyHashMinOffset", \ 4074 "MacroFlowLoadBalanceEntropyHashMaxOffset", \ 4075 "MacroFlowLoadBalanceEntropyHashStrideOffset", \ 4076 "CrTransactionStart", \ 4077 "UdpTunnelIPv4DstPort", \ 4078 "UdpTunnelIPv6DstPort", \ 4079 "UdpTunnelMplsDstPort", \ 4080 "ECMPSecondHierHashOffset", \ 4081 "ECMPSecondHierHashConfig", \ 4082 "IngressRateLimitMpps", \ 4083 "MirrorSnoopForwardOriginalWhenDropped", \ 4084 "FabricTrunkDynamicPhysicalQueuedBytesExponent", \ 4085 "FabricTrunkDynamicPhysicalQueuedBytesDecreaseReset", \ 4086 "FabricTrunkDynamicPhysicalQueuedBytesMinThreshold", \ 4087 "FabricTrunkDynamicPhysicalQueuedBytesMaxThreshold", \ 4088 "TrunkDynamicPhysicalQueuedBytesExponent", \ 4089 "TrunkDynamicPhysicalQueuedBytesDecreaseReset", \ 4090 "TrunkDynamicPhysicalQueuedBytesMinThreshold", \ 4091 "TrunkDynamicPhysicalQueuedBytesMaxThreshold", \ 4092 "EcmpDynamicPhysicalQueuedBytesExponent", \ 4093 "EcmpDynamicPhysicalQueuedBytesDecreaseReset", \ 4094 "EcmpDynamicPhysicalQueuedBytesMinThreshold", \ 4095 "EcmpDynamicPhysicalQueuedBytesMaxThreshold", \ 4096 "FabricTrunkDynamicRandomSeed", \ 4097 "TrunkDynamicRandomSeed", \ 4098 "EcmpDynamicRandomSeed", \ 4099 "HashMPLSExcludeReservedLabel", \ 4100 "MplsNonIpPayloadDefaultEcn", \ 4101 "ECMPHashBitCountSelect", \ 4102 "EcnIpPayloadResponsive", \ 4103 "HashMultiMoveDepthExactMatch", \ 4104 "CrAbort", \ 4105 "LIUdpSrcPortSet", \ 4106 "Roce1Ethertype", \ 4107 "Roce2UdpDstPort", \ 4108 "HashUseFlowSelRoce2Ecmp", \ 4109 "HashSelectControlExtended", \ 4110 "HashField0Roce1FlowLabel", \ 4111 "HashField1Roce1FlowLabel", \ 4112 "HashField0Roce2FlowLabel", \ 4113 "HashField1Roce2FlowLabel", \ 4114 "HashRoce1Field0", \ 4115 "HashRoce1Field1", \ 4116 "HashRoce2IP4Field0", \ 4117 "HashRoce2IP4Field1", \ 4118 "HashRoce2IP6Field0", \ 4119 "HashRoce2IP6Field1", \ 4120 "EcmpRoce2HashOffset", \ 4121 "VxlanUdpDestPortSet1", \ 4122 "VxlanEntropyEnableIP6", \ 4123 "E2EFCReceiveDestMacOui", \ 4124 "E2EFCReceiveDestMacNonOui", \ 4125 "E2EFCReceiveEtherType", \ 4126 "E2EFCReceiveOpcode", \ 4127 "HashUseFlowSelEcmpOverlay", \ 4128 "MplsSpeculativeNibbleMap", \ 4129 "IpmcSameFwdDmnThreshold", \ 4130 "HashUseFlowSelVpTrunk", \ 4131 "HashUseFlowSelTrunkResilientHash", \ 4132 "MeterMef10dot3Enable", \ 4133 "HashMultiMoveDepthVlanTranslate1", \ 4134 "HashMultiMoveDepthVlanTranslate2", \ 4135 "HashMultiMoveDepthEgressVlanTranslate1", \ 4136 "HashMultiMoveDepthEgressVlanTranslate2", \ 4137 "IntL4DestPort1", \ 4138 "IntL4DestPort2", \ 4139 "IntProbeMarker1", \ 4140 "IntProbeMarker2", \ 4141 "IntVersion", \ 4142 "IntRequestVectorValue", \ 4143 "IntRequestVectorMask", \ 4144 "IntSwitchId", \ 4145 "IntEgressTimeDelta", \ 4146 "IntHopLimitCpuEnable", \ 4147 "IntTurnAroundCpuEnable", \ 4148 "IntMaxPayloadLength", \ 4149 "ForwardLookupNotFoundTrap", \ 4150 "EtherTypeCustom1", \ 4151 "EtherTypeCustom2", \ 4152 "L3LpmHitbitEnable", \ 4153 "MplsCtrlPktToCpu", \ 4154 "InvalidTpidToCpu", \ 4155 "FlowSelectMissToCpu", \ 4156 "L3HdrMismatchToCpu", \ 4157 "MeterTrafficClass", \ 4158 "RoeEthertype", \ 4159 "RoeCustomEthertype", \ 4160 "RoeUdpDestPort", \ 4161 "RoeCustomUdpDestPort", \ 4162 "OamOlpHeaderAdd", \ 4163 "L2FreezeMode", \ 4164 "L3McRpfDefaultRoute", \ 4165 "IngParseL2TunnelTermArp", \ 4166 "IngParseL2TunnelTermRarp", \ 4167 "NoneEthernetPacketMeterPtr", \ 4168 "EtherDscpRemark", \ 4169 "DosAttackTcpFirstOption", \ 4170 "DosAttackInnerTcpFirstOption", \ 4171 "DosAttackTcpFlagsMask", \ 4172 "DosAttackInnerTcpFlagsMask", \ 4173 "DosAttackTcpFlagsSR", \ 4174 "DosAttackTcpFlagsZero", \ 4175 "DosAttackTcpFlagsSynOption", \ 4176 "DosAttackTcpFlagsSynFirstFrag", \ 4177 "DosAttackTcpFlagsFinNoAck", \ 4178 "DosAttackTcpFlagsRstNoAck", \ 4179 "DosAttackTcpFlagsNoSFRA", \ 4180 "DosAttackTcpFlagsUrgNoUrgPtr", \ 4181 "DosAttackTcpFlagsNoUrgWithUrgPtr", \ 4182 "DosAttackTcpDstPortZero", \ 4183 "DosAttackTcpSrcPortZero", \ 4184 "DosAttackTcpFlagsResvdNonZero", \ 4185 "DosAttackTcpV4DstBcast", \ 4186 "DosAttackTcpFlagsAck", \ 4187 "MirrorPsampFormat2Epoch", \ 4188 "L2StationExtendedMode", \ 4189 "HashSeed", \ 4190 "LayerRecordModeSelection", \ 4191 "ECMPThirdHierHashConfig", \ 4192 "NwkHashConfig", \ 4193 "MplsStack0HashSeed", \ 4194 "MplsStack1HashSeed", \ 4195 "ParserHashSeed", \ 4196 "MplsSpeculativeParse", \ 4197 "ExternalTcamSync", \ 4198 "ArpMyIp1", \ 4199 "ArpMyIp2", \ 4200 "ArpIgnoreDa", \ 4201 "NdpMyIp1", \ 4202 "NdpMyIp2", \ 4203 "IcmpIgnoreDa", \ 4204 "VxlanEvpnEnable", \ 4205 "HashDualMoveDepthIngVpVlanMember", \ 4206 "HashDualMoveDepthEgrVpVlanMember", \ 4207 "GpeEntropyEnable", \ 4208 "GpeUdpDestPortSet", \ 4209 "GeneveEntropyEnable", \ 4210 "GeneveUdpDestPortSet", \ 4211 "BfdRxDisable", \ 4212 "DescCommit", \ 4213 "DlbMonitorIngressRandomSeed", \ 4214 "CounterAdjustEgressTm", \ 4215 "CounterAdjustEgressPp", \ 4216 "TagPcpDeiSrc", \ 4217 "BfdMyDipDestination", \ 4218 "EndToEndLatencyPerDestinationPort", \ 4219 "ExternalTcamInit", \ 4220 "HashMultiMoveDepthL3Tunnel", \ 4221 "GbpEtherType", \ 4222 "VxlanUdpSrcPortSelect", \ 4223 "GpeUdpSrcPortSelect", \ 4224 "GeneveUdpSrcPortSelect", \ 4225 "PreserveOtagBeforeItag", \ 4226 "MirrorCpuCosq", \ 4227 "IntProbeMarkerEnable", \ 4228 "IntL4DestPortEnable", \ 4229 "FtmhEtherType", \ 4230 "GbpSidDidMcastLookupMissClassid", \ 4231 "CustomOuterEthertype1", \ 4232 "CustomOuterEthertype2", \ 4233 "CustomInnerEthertype1", \ 4234 "CustomInnerEthertype2", \ 4235 "CustomOuterProtocolId1", \ 4236 "CustomOuterProtocolId2", \ 4237 "CustomInnerProtocolId1", \ 4238 "CustomInnerProtocolId2", \ 4239 "CustomOuterUdpDstPort1", \ 4240 "CustomOuterUdpDstPort2", \ 4241 "CustomInnerUdpDstPort1", \ 4242 "CustomInnerUdpDstPort2", \ 4243 "ReservedEgressNextHop", \ 4244 "ConcatAppHeader", \ 4245 "VxlanGpeUdpDestPortSet", \ 4246 "SystemPortOverride", \ 4247 "SRV6EgressPSPEnable", \ 4248 "SRV6ReducedModeEnable", \ 4249 "HashL4Field", \ 4250 "L3UcLargeNATEnable", \ 4251 "L3UcLargeDNAT", \ 4252 "L3UcLargeSNAT", \ 4253 "L3UcLargeDNATSNAT", \ 4254 "L3UcLargeDNAPT", \ 4255 "L3UcLargeSNAPT", \ 4256 "L3UcLargeDNAPTSNAPT", \ 4257 "L3McLargeNATEnable", \ 4258 "L3McLargeNATRewriteType0", \ 4259 "L3McLargeNATRewriteType1", \ 4260 "L3McLargeNATRewriteType2", \ 4261 "L2ChangeFieldsEnable", \ 4262 "ModuleVerifyEnable", \ 4263 "TraverseCommitDone", \ 4264 "HashIP4InnerField", \ 4265 "HashIP4OuterField", \ 4266 "HashIP6InnerField", \ 4267 "HashIP6OuterField", \ 4268 "HashL2InnerField", \ 4269 "HashL2OuterField", \ 4270 "MirrorPsampIpfixVersion", \ 4271 "LlcHeaderControlMode", \ 4272 "PcieHotSwapDisable", \ 4273 "TrunkDynamicMonitorIngressRandomSeed", \ 4274 "L2TunnelTpid", \ 4275 "EcnNonTcpResponsive", \ 4276 "Higig3Ethertype", \ 4277 "IPv4DoNotVerifyIncomingChecksum", \ 4278 "HashUseFlowSelTrunkFailover", \ 4279 "HashUseFlowSelHigigTrunk", \ 4280 "HashUseFlowSelTrunkDynamic", \ 4281 "HashUseHigig3EntropyTrunkNonUnicast", \ 4282 "TrunkUnicastHashOffset", \ 4283 "TrunkNonUnicastHashOffset", \ 4284 "HigigTrunkHashOffset", \ 4285 "VpTrunkHashOffset", \ 4286 "MacroFlowTrunkUnicastHashConcatEnable", \ 4287 "MacroFlowTrunkNonUnicastHashConcatEnable", \ 4288 "MacroFlowTrunkFailoverHashConcatEnable", \ 4289 "MacroFlowHigigTrunkFailoverHashConcatEnable", \ 4290 "MacroFlowTrunkDynamicHashConcatEnable", \ 4291 "MacroFlowVpTrunkHashConcatEnable", \ 4292 "MacroFlowTrunkUnicastHashSeed", \ 4293 "MacroFlowTrunkNonUnicastHashSeed", \ 4294 "MacroFlowTrunkFailoverHashSeed", \ 4295 "MacroFlowHigigTrunkFailoverHashSeed", \ 4296 "MacroFlowTrunkDynamicHashSeed", \ 4297 "MacroFlowVpTrunkHashSeed", \ 4298 "MacroFlowTrunkUnicastHashMinOffset", \ 4299 "MacroFlowTrunkUnicastHashMaxOffset", \ 4300 "MacroFlowTrunkUnicastHashStrideOffset", \ 4301 "MacroFlowTrunkNonUnicastHashMinOffset", \ 4302 "MacroFlowTrunkNonUnicastHashMaxOffset", \ 4303 "MacroFlowTrunkNonUnicastHashStrideOffset", \ 4304 "MacroFlowTrunkFailoverHashMinOffset", \ 4305 "MacroFlowTrunkFailoverHashMaxOffset", \ 4306 "MacroFlowTrunkFailoverHashStrideOffset", \ 4307 "MacroFlowHigigTrunkFailoverHashMinOffset", \ 4308 "MacroFlowHigigTrunkFailoverHashMaxOffset", \ 4309 "MacroFlowHigigTrunkFailoverHashStrideOffset", \ 4310 "MacroFlowTrunkDynamicHashMinOffset", \ 4311 "MacroFlowTrunkDynamicHashMaxOffset", \ 4312 "MacroFlowTrunkDynamicHashStrideOffset", \ 4313 "MacroFlowVpTrunkHashMinOffset", \ 4314 "MacroFlowVpTrunkHashMaxOffset", \ 4315 "MacroFlowVpTrunkHashStrideOffset", \ 4316 "TrunkRandomSeed", \ 4317 "HigigTrunkRandomSeed", \ 4318 "VPTrunkRandomSeed", \ 4319 "ModuleErrorRecoveryEnable", \ 4320 "HashMultiMoveDepthVlanTranslate3", \ 4321 "HashMultiMoveDepthL2Tunnel", \ 4322 "HashMultiMoveDepthL2TunnelVnid", \ 4323 "HashMultiMoveDepthFlowTracker", \ 4324 "HashMultiMoveDepthIpmcGroup", \ 4325 "HashMultiMoveDepthIpmcSourceGroup", \ 4326 "HashMultiMoveDepthL2mc", \ 4327 "MactAgeRefreshMode", \ 4328 "DosAttackMaxIpPayloadEnable", \ 4329 "DosAttackMaxIpPayloadSize", \ 4330 "DosAttackMinIpPayloadEnable", \ 4331 "DosAttackMinIpPayloadSize", \ 4332 "DosAttackMaxInnerIpPayloadEnable", \ 4333 "DosAttackMaxInnerIpPayloadSize", \ 4334 "DosAttackMinInnerIpPayloadEnable", \ 4335 "DosAttackMinInnerIpPayloadSize", \ 4336 "EccSingleBitBusBufferErrorEvent", \ 4337 "HashLayersDisable", \ 4338 "MplsAlternateMarkingSpecialLabel", \ 4339 "SvtagSciProfile", \ 4340 "SvtagErrCodeProfile", \ 4341 "LatencyEcnMarkMode", \ 4342 "GlobalTodMode", \ 4343 "TimesyncLiveWireToD", \ 4344 "L3TunnelCollapseDisable", \ 4345 "ControlOamBfdFailoverStateIgnore", \ 4346 "EntropyHashOffset", \ 4347 "MacroFlowEntropyHashConcatEnable", \ 4348 "MacroFlowEntropyHashSeed", \ 4349 "SubportLowPriPfcSel", \ 4350 "SubportHighPriPfcSel", \ 4351 "ExactMatchInit", \ 4352 "RangeTypeSelect", \ 4353 "RangeOperator", \ 4354 "RangeResultMap", \ 4355 "IFA2Enable", \ 4356 "IFA2HeaderType", \ 4357 "IFA2MetaDataFirstLookupType", \ 4358 "IFA2MetaDataSecondLookupType", \ 4359 "MacroFlowEcmpDynamicHashConcatEnable", \ 4360 "MacroFlowEcmpDynamicHashSeed", \ 4361 "MacroFlowEcmpDynamicHashMinOffset", \ 4362 "MacroFlowEcmpDynamicHashMaxOffset", \ 4363 "MacroFlowEcmpDynamicHashStrideOffset", \ 4364 "TrunkUnicastHashBitCountSelect", \ 4365 "TrunkNonunicastHashBitCountSelect", \ 4366 "TrunkFailoverHashBitCountSelect", \ 4367 "HigigTrunkHashBitCountSelect", \ 4368 "HigigTrunkFailoverHashBitCountSelect", \ 4369 "TrunkDynamicHashBitCountSelect", \ 4370 "VpTrunkHashBitCountSelect", \ 4371 "EntropyHashBitCountSelect", \ 4372 "EcmpOverlayHashBitCountSelect", \ 4373 "EcmpDynamicHashBitCountSelect", \ 4374 "GpeNextProtoGbp", \ 4375 "IoamMaxPayloadLength", \ 4376 "IoamNameSpaceId", \ 4377 "GpeNextProtoIoam", \ 4378 "GpeNextProtoIoamE2e", \ 4379 "PFCStopInterfaceBitmap", \ 4380 "IFAMetaDataAdaptTable", \ 4381 "L3UcSameInterfaceDrop", \ 4382 "L2ApplCallbackSuppress", \ 4383 "OtpAvsValue", \ 4384 "SampleVersion", \ 4385 "HashUseFlowSelEcmpWeighted", \ 4386 "EcmpWeightedHashOffset", \ 4387 "MacroFlowEcmpWeightedHashMinOffset", \ 4388 "MacroFlowEcmpWeightedHashMaxOffset", \ 4389 "MacroFlowEcmpWeightedHashStrideOffset", \ 4390 "MacroFlowEcmpWeightedHashConcatEnable", \ 4391 "MplsPwControlWordUpperClear", \ 4392 "MplsPwControlWordLowerClear", \ 4393 "MplsGal", \ 4394 "MplsEli", \ 4395 "MplsPwTermSeqNumberRange", \ 4396 "EgressVlanTranslate2Enable", \ 4397 "PointToPointAccessVlanCheckEnable", \ 4398 "NshEgressAdaptationKeySelect", \ 4399 "NshMetaDataSourceInterfaceSelect", \ 4400 "NshMetaDataTenantIdSelect", \ 4401 "NshTenantIdMappingMissDropEnable", \ 4402 "NshEthertype", \ 4403 "NshEthertypeEnable", \ 4404 "L3IngTagActionsEnable", \ 4405 "ECMPRandomSeed", \ 4406 "HashVersatileInitValue0", \ 4407 "HashVersatileInitValue1", \ 4408 "Hash0VersatileInitValue0", \ 4409 "Hash0VersatileInitValue1", \ 4410 "Hash1VersatileInitValue0", \ 4411 "Hash1VersatileInitValue1", \ 4412 "IoamE2eNextProtoGbp", \ 4413 "MirrorUnicastCosqEnable", \ 4414 "FlowCountHashShift", \ 4415 "FlowCountHashMask", \ 4416 "FlowCountFlexCtrIngAction", \ 4417 "SLLBDestinationNotFound", \ 4418 "VIPEcmpTableSize", \ 4419 "VIPL3EgressIDMin", \ 4420 "VIPL3EgressIDMax", \ 4421 "PCCAgeTimer", \ 4422 "PCCLearnLimit", \ 4423 "FlexeOamAlmCollectionTimerStep", \ 4424 "FlexeOamAlmCollectionStepCount", \ 4425 "IfaVersion", \ 4426 "IfaProtocol", \ 4427 "IoamGreProtocolParse", \ 4428 "IoamGreProtocol", \ 4429 "IoamOptionIncrementalParse", \ 4430 "IoamOptionIncremental", \ 4431 "IoamType", \ 4432 "IntVectorMatchMissAction", \ 4433 "1588ClockAddressOui", \ 4434 "1588ClockAddressNonOui", \ 4435 "HashUseFlowSelL2Ecmp", \ 4436 "HashUseFlowSelL2EcmpOverlay", \ 4437 "HashUseFlowSelEcmpResilientHash", \ 4438 "HashUseFlowSelEcmpOverlayResilientHash", \ 4439 "HashUseFlowSelEcmpWeightedOverlay", \ 4440 "EcmpOverlayResilientHashOffset", \ 4441 "EcmpOverlayMplsHashOffset", \ 4442 "EcmpOverlayHashOffset", \ 4443 "EcmpOverlayWeightedHashOffset", \ 4444 "L2EcmpHashOffset", \ 4445 "L2EcmpOverlayHashOffset", \ 4446 "MacroFlowEcmpResilientHashConcatEnable", \ 4447 "MacroFlowEcmpResilientHashMinOffset", \ 4448 "MacroFlowEcmpResilientHashMaxOffset", \ 4449 "MacroFlowEcmpResilientHashStrideOffset", \ 4450 "MacroFlowEcmpOverlayResilientHashConcatEnable", \ 4451 "MacroFlowEcmpOverlayResilientHashMinOffset", \ 4452 "MacroFlowEcmpOverlayResilientHashMaxOffset", \ 4453 "MacroFlowEcmpOverlayResilientHashStrideOffset", \ 4454 "MacroFlowEcmpMplsHashConcatEnable", \ 4455 "MacroFlowEcmpMplsHashMinOffset", \ 4456 "MacroFlowEcmpMplsHashMaxOffset", \ 4457 "MacroFlowEcmpMplsHashStrideOffset", \ 4458 "MacroFlowEcmpOverlayMplsHashConcatEnable", \ 4459 "MacroFlowEcmpOverlayMplsHashMinOffset", \ 4460 "MacroFlowEcmpOverlayMplsHashMaxOffset", \ 4461 "MacroFlowEcmpOverlayMplsHashStrideOffset", \ 4462 "MacroFlowL2EcmpHashConcatEnable", \ 4463 "MacroFlowL2EcmpHashMinOffset", \ 4464 "MacroFlowL2EcmpHashMaxOffset", \ 4465 "MacroFlowL2EcmpHashStrideOffset", \ 4466 "MacroFlowL2EcmpOverlayHashConcatEnable", \ 4467 "MacroFlowL2EcmpOverlayHashMinOffset", \ 4468 "MacroFlowL2EcmpOverlayHashMaxOffset", \ 4469 "MacroFlowL2EcmpOverlayHashStrideOffset", \ 4470 "MacroFlowEcmpWeightedOverlayHashConcatEnable", \ 4471 "MacroFlowEcmpWeightedOverlayHashMinOffset", \ 4472 "MacroFlowEcmpWeightedOverlayHashMaxOffset", \ 4473 "MacroFlowEcmpWeightedOverlayHashStrideOffset", \ 4474 "HashUseFlowSelMplsEcmpOverlay", \ 4475 "ExemScanPeriod", \ 4476 "VxlanHeaderFlags", \ 4477 "VxlanHeaderMatchFlags", \ 4478 "VxlanHeaderFlagsMask", \ 4479 "VxlanHeaderFlagsMismatchDrop", \ 4480 "VxlanHeaderReserved1", \ 4481 "VxlanHeaderReserved2", \ 4482 "FlexeSarCellMode", \ 4483 "MplsSpecialLabelAutoTerminateDisable", \ 4484 "ExternalTableCapacity", \ 4485 "ExemFlushProfilePayloadOffset", \ 4486 "NtpL4DestPort", \ 4487 "NtpResidenceTimeUpdate", \ 4488 "V6L3LocalLinkSrcDisposition", \ 4489 "MirrorAllowDuplicateMirroredPackets", \ 4490 "EgressStgCheckIngressEnable", \ 4491 "VxlanIPv4TunnelVlanTranslateEnable", \ 4492 "VxlanIPv6TunnelVlanTranslateEnable", \ 4493 "EgressFlexCounterPresel" 4494 4495 /* 4496 * NSH Egress adaptation key types used by 4497 * bcmSwitchNshEgressAdaptationKeySelect. 4498 */ 4499 #define BCM_SWITCH_NSH_EGR_ADAPT_KEY_OPAQUE_OBJECT (0) /* NSH egress adaptation 4500 key is opaque object. */ 4501 #define BCM_SWITCH_NSH_EGR_ADAPT_KEY_OPAQUE_OBJECT_VRF (1) /* NSH egress adaptation 4502 key is opaque object 4503 and VRF ID. */ 4504 4505 /* 4506 * NSH metadata source interface types used by 4507 * bcmSwitchNshMetaDataSourceInterfaceSelect. 4508 */ 4509 #define BCM_SWITCH_NSH_METADATA_SRC_INTF_SGPP (0) /* NSH metadata source 4510 interface is SGPP. */ 4511 #define BCM_SWITCH_NSH_METADATA_SRC_INTF_FROM_EGR_ADAPT (1) /* NSH metadata source 4512 interface is from 4513 egress adaptation 4514 lookup. */ 4515 4516 /* 4517 * NSH metadata tenant ID source used by 4518 * bcmSwitchNshMetaDataTenantIdSelect. 4519 */ 4520 #define BCM_SWITCH_NSH_METADATA_TENANT_ID_VRF (0) /* NSH metadata tenant ID 4521 is VRF ID. */ 4522 #define BCM_SWITCH_NSH_METADATA_TENANT_ID_FROM_EGR_ADAPT (1) /* NSH metadata tenant ID 4523 is from egress 4524 adaptation lookup. */ 4525 4526 /* Requires BROADCOM_PREMIUM license */ 4527 #define BCM_SWITCH_IFA_METADATA_ADAPT1_SINGLE 0 /* Select single wide 4528 adaptation table 1 for 4529 IFA metadata. */ 4530 #define BCM_SWITCH_IFA_METADATA_ADAPT1_DOUBLE 1 /* Select double wide 4531 adaptation table 1 for 4532 IFA metadata. */ 4533 #define BCM_SWITCH_IFA_METADATA_ADAPT2_SINGLE 2 /* Select single wide 4534 adaptation table 2 for 4535 IFA metadata. */ 4536 #define BCM_SWITCH_IFA_METADATA_ADAPT2_DOUBLE 3 /* Select double wide 4537 adaptation table 2 for 4538 IFA metadata. */ 4539 4540 /* ecmp hash bit count enums */ 4541 typedef enum bcm_switch_ecmp_hash_bit_count_e { 4542 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_10 = 0, 4543 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_11 = 1, 4544 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_12 = 2, 4545 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_13 = 3, 4546 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_14 = 4, 4547 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_15 = 5, 4548 BCM_SWITCH_ECMP_HASH_BIT_COUNT_LOWER_16 = 6 4549 } bcm_switch_ecmp_hash_bit_count_t; 4550 4551 /* 4552 * Values passed for setting switch control 4553 * bcmSwitchPFCDeadlockRecoveryAction. 4554 */ 4555 typedef enum bcm_switch_pfc_deadlock_action_e { 4556 bcmSwitchPFCDeadlockActionTransmit = 0, /* Transmit packets in Recovery state 4557 (ignoring the PFC state)-Default 4558 Action */ 4559 bcmSwitchPFCDeadlockActionDrop = 1, /* Drop packets in Recovery state. */ 4560 bcmSwitchPFCDeadlockActionMaxCount = 2 /* Maximum PFC Deadlock Recovery action 4561 type count */ 4562 } bcm_switch_pfc_deadlock_action_t; 4563 4564 /* 4565 * Values passed for setting switch control 4566 * bcmSwitchPFCDeadlockDetectionTimeInterval.. 4567 */ 4568 typedef enum bcm_switch_pfc_deadlock_detection_interval_e { 4569 bcmSwitchPFCDeadlockDetectionInterval100MiliSecond = 0, /* 100 ms interval for Detection 4570 interval (default) */ 4571 bcmSwitchPFCDeadlockDetectionInterval10MiliSecond = 1, /* 10ms interval for Detection interval */ 4572 bcmSwitchPFCDeadlockDetectionIntervalCount = 2 /* Maximum PFC deadlock detecion type 4573 count */ 4574 } bcm_switch_pfc_deadlock_detection_interval_t; 4575 4576 /* Values passed for setting switch control bcmSwitchOamStackingSupport */ 4577 typedef enum bcm_switch_oam_stacking_support_e { 4578 bcmSwitchOamStackingSupportNone = 0, /* Do not carry OAM endpoint context in 4579 place of VC label in stacking header */ 4580 bcmSwitchOamStackingSupportOamContextInStackingHeader = 1 /* Carry OAM endpoint context in place 4581 of VC label in stacking header */ 4582 } bcm_switch_oam_stacking_support_t; 4583 4584 /* Values passed for setting switch control bcmSwitchGlobalTodMode */ 4585 typedef enum bcm_switch_tod_mode_e { 4586 bcmSwitchTodModeNone = 0, /* No TOD mode */ 4587 bcmSwitchTodModeOam = 1, /* The TOD mode is OAM */ 4588 bcmSwitchTodModeNtp = 2, /* The TOD mode is NTP */ 4589 bcmSwitchTodModeOamAndNtp = 3, /* The TOD mode is OAM and NTP */ 4590 bcmSwitchTodModeCount = 4 /* Maximum TOD mode count */ 4591 } bcm_switch_tod_mode_t; 4592 4593 /* Values passed for setting switch control bcmSwitchFlexeSarCellMode */ 4594 typedef enum bcm_switch_flexe_sar_cell_mode_e { 4595 bcmSwitchFlexeSarCellMode28x66b = 0, /* The SAR cell mode is 28x66b, the 4596 actual cell size is 236B(including 4597 SAR OH) */ 4598 bcmSwitchFlexeSarCellMode29x66b = 1, /* The SAR cell mode is 29x66b, the 4599 actual cell size is 244B(including 4600 SAR OH) */ 4601 bcmSwitchFlexeSarCellModeCount = 2 /* Maximum SAR cell mode count */ 4602 } bcm_switch_flexe_sar_cell_mode_t; 4603 4604 typedef enum bcm_switch_external_table_e { 4605 bcmSwitchExternalTableIp4Unicast = 0, 4606 bcmSwitchExternalTableIp4UnicastOptimized = 1, 4607 bcmSwitchExternalTableIp4Rpf = 2, 4608 bcmSwitchExternalTableIp6Unicast = 3, 4609 bcmSwitchExternalTableIp6UnicastOptimized = 4, 4610 bcmSwitchExternalTableIp6Rpf = 5, 4611 bcmSwitchExternalTableIp4Multicast = 6, 4612 bcmSwitchExternalTableIp6Multicast = 7, 4613 bcmSwitchExternalTableNat = 8 4614 } bcm_switch_external_table_t; 4615 4616 /* Requires BROADCOM_PREMIUM license */ 4617 #define BCM_L3UC_NAT_NONE 0 /* Disable the specified NAT update. */ 4618 #define BCM_L3UC_NAT_TCP 1 /* Enable Unicast NAT updates for TCP 4619 packets only. */ 4620 #define BCM_L3UC_NAT_UDP 2 /* Enable Unicast NAT updates for UDP 4621 packets only. */ 4622 #define BCM_L3UC_NAT 3 /* Enable Unicast NAT updates for any 4623 IPV4 packet. */ 4624 4625 /* Requires BROADCOM_PREMIUM license */ 4626 #define BCM_L3MC_NAT_NONE 0 /* Disable the specified 4627 NAT update. */ 4628 #define BCM_L3MC_DNAT 1 /* Enable Multicast DNAT 4629 updates. */ 4630 #define BCM_L3MC_DNAT_WITH_MACDA_UPDATE 2 /* Enable Multicast DNAT 4631 updates and MACDA 4632 update. */ 4633 #define BCM_L3MC_SNAT 3 /* Enable Multicast SNAT 4634 updates. */ 4635 #define BCM_L3MC_DNAT_SNAT 4 /* Enable both Multicast 4636 DNAT and SNAT updates. */ 4637 #define BCM_L3MC_DNAT_SNAT_WITH_MACDA_UPDATE 5 /* Enable both Multicast 4638 DNAT and SNAT updates 4639 and MACDA update. */ 4640 #define BCM_L3MC_DNAPT 6 /* Enable Multicast DNAPT 4641 updates. */ 4642 #define BCM_L3MC_DNAPT_WITH_MACDA_UPDATE 7 /* Enable Multicast DNAPT 4643 updates and MACDA 4644 update. */ 4645 #define BCM_L3MC_SNAPT 8 /* Enable Multicast SNAPT 4646 updates. */ 4647 #define BCM_L3MC_DNAPT_SNAPT 9 /* Enable both Multicast 4648 DNAPT and SNAPT 4649 updates. */ 4650 #define BCM_L3MC_DNAPT_SNAPT_WITH_MACDA_UPDATE 10 /* Enable both Multicast 4651 DNAPT and SNAPT 4652 updates and MACDA 4653 update. */ 4654 4655 #define BCM_SWITCH_CONTROL_L3_LEARN_NONE 0 /* Disable L2 learning 4656 for all routed 4657 packets. */ 4658 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV4_UC 0x1 /* Enable L2 learning for 4659 IPv4 Unicast packets. */ 4660 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV4_MC 0x2 /* Enable L2 learning for 4661 IPv4 Multicast 4662 packets. */ 4663 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV6_UC 0x4 /* Enable L2 learning for 4664 IPv6 Unicast packets. */ 4665 #define BCM_SWITCH_CONTROL_L3_LEARN_IPV6_MC 0x8 /* Enable L2 learning for 4666 IPv6 Multicast 4667 packets. */ 4668 #define BCM_SWITCH_CONTROL_L3_LEARN_MPLS 0x10 /* Enable L2 learning for 4669 MPLS packets. */ 4670 #define BCM_SWITCH_CONTROL_L3_LEARN_ALL 0xffffffff /* Enable L2 learning for 4671 all routed packets. */ 4672 4673 /* Module types for bcmSwitchModuleType. */ 4674 #define BCM_SWITCH_MODULE_UNKNOWN 0 4675 #define BCM_SWITCH_MODULE_XGS1 1 4676 #define BCM_SWITCH_MODULE_XGS2 2 4677 #define BCM_SWITCH_MODULE_XGS3 3 4678 4679 /* Unicast RPF lookup modes. */ 4680 #define BCM_SWITCH_URPF_DISABLE (0) 4681 #define BCM_SWITCH_URPF_LOOSE (1) 4682 #define BCM_SWITCH_URPF_STRICT (2) 4683 4684 /* Port header type. */ 4685 #define BCM_SWITCH_PORT_HEADER_TYPE_NONE (0) 4686 #define BCM_SWITCH_PORT_HEADER_TYPE_ETH (1) 4687 #define BCM_SWITCH_PORT_HEADER_TYPE_RAW (2) 4688 #define BCM_SWITCH_PORT_HEADER_TYPE_TM (3) 4689 #define BCM_SWITCH_PORT_HEADER_TYPE_PROG (4) 4690 #define BCM_SWITCH_PORT_HEADER_TYPE_CPU (5) 4691 #define BCM_SWITCH_PORT_HEADER_TYPE_STACKING (6) 4692 #define BCM_SWITCH_PORT_HEADER_TYPE_TDM (7) 4693 #define BCM_SWITCH_PORT_HEADER_TYPE_TDM_RAW (8) 4694 #define BCM_SWITCH_PORT_HEADER_TYPE_MPLS_RAW (9) 4695 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_PP (10) 4696 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_SSP (11) 4697 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_ENCAP (12) 4698 #define BCM_SWITCH_PORT_HEADER_TYPE_TM_SSP_ENCAP (13) 4699 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2 (14) 4700 #define BCM_SWITCH_PORT_HEADER_TYPE_RCH_0 (15) 4701 #define BCM_SWITCH_PORT_HEADER_TYPE_RCH_1 (16) 4702 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_PP_JR1_MODE (17) 4703 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED_2_JR1_MODE (18) 4704 #define BCM_SWITCH_PORT_HEADER_TYPE_ENCAP_EXTERNAL_CPU (19) 4705 #define BCM_SWITCH_PORT_HEADER_TYPE_TDM_ETH (20) 4706 #define BCM_SWITCH_PORT_HEADER_TYPE_INJECTED (21) 4707 4708 /* ECMP group mode. */ 4709 #define BCM_SWITCH_ECMP_GROUP_MEMBER_MODE_256 (0) 4710 #define BCM_SWITCH_ECMP_GROUP_MEMBER_MODE_1K (1) 4711 4712 /* Argument formatting macro for bcmSwitchModuleType. */ 4713 #define BCM_SWITCH_CONTROL_MOD_TYPE_PACK(modid, mod_type) \ 4714 (((modid) << 16) | (mod_type & 0xFFFF)) 4715 #define BCM_SWITCH_CONTROL_MODID_UNPACK(arg) \ 4716 (((arg) >> 16) & 0xFFFF) 4717 #define BCM_SWITCH_CONTROL_MODTYPE_UNPACK(arg) \ 4718 (((arg) >> 0) & 0xFFFF) 4719 4720 /* Stable locations for bcmSwitchStableSelect */ 4721 #define BCM_SWITCH_STABLE_NONE (_SHR_SWITCH_STABLE_NONE) 4722 #define BCM_SWITCH_STABLE_DEVICE_NEXT_HOP (_SHR_SWITCH_STABLE_DEVICE_NEXT_HOP) 4723 #define BCM_SWITCH_STABLE_DEVICE_EXT_MEM (_SHR_SWITCH_STABLE_DEVICE_EXT_MEM) 4724 #define BCM_SWITCH_STABLE_APPLICATION (_SHR_SWITCH_STABLE_APPLICATION) 4725 #define BCM_SWITCH_STABLE_SHARED_MEM (_SHR_SWITCH_STABLE_SHARED_MEM) 4726 4727 /* Flags for automatic link provision clear. */ 4728 #define BCM_SWITCH_LINK_PROV_AUTO_CLEAR 0x00000001 /* Clear link provision 4729 automatically. */ 4730 #define BCM_SWITCH_LINK_PROV_ALLOW_LIST_EXCLUDE 0x00000002 /* Retain allow list when 4731 clearing link 4732 provision. */ 4733 #define BCM_SWITCH_LINK_PROV_BLOCK_LIST_EXCLUDE 0x00000004 /* Retain block list when 4734 clearing link 4735 provision. */ 4736 4737 /* 4738 * Egress flex counter preselect, used for 4739 * bcmSwitchEgressFlexCounterPresel. 4740 */ 4741 typedef enum bcm_switch_egress_flex_counter_presel_e { 4742 bcmSwitchEgressFlexCounterPreselMirror = 0, /* Pre-select to determine if counting 4743 mirror packets or not. */ 4744 bcmSwitchEgressFlexCounterPreselCopyToCpu = 1, /* Pre-select to determine if counting 4745 copy to CPU packets or not. */ 4746 bcmSwitchEgressFlexCounterPreselMirrorAndCopyToCpu = 2, /* Pre-select to determine if counting 4747 both mirror and copy to CPU packets 4748 or not. */ 4749 bcmSwitchEgressFlexCounterPreselCount = 3 /* Must be last. Not a usable value. */ 4750 } bcm_switch_egress_flex_counter_presel_t; 4751 4752 #ifndef BCM_HIDE_DISPATCHABLE 4753 4754 /* 4755 * Configure port-specific and device-wide operating modes. Device wide 4756 * operating 4757 * modes are configured on all ports, except the stack ports. 4758 */ 4759 extern int bcm_switch_control_get( 4760 int unit, 4761 bcm_switch_control_t type, 4762 int *arg); 4763 4764 /* 4765 * Configure port-specific and device-wide operating modes. Device wide 4766 * operating 4767 * modes are configured on all ports, except the stack ports. 4768 */ 4769 extern int bcm_switch_control_set( 4770 int unit, 4771 bcm_switch_control_t type, 4772 int arg); 4773 4774 /* 4775 * Configure port-specific and device-wide operating modes. Device wide 4776 * operating 4777 * modes are configured on all ports, except the stack ports. 4778 */ 4779 extern int bcm_switch_control_port_get( 4780 int unit, 4781 bcm_port_t port, 4782 bcm_switch_control_t type, 4783 int *arg); 4784 4785 /* 4786 * Configure port-specific and device-wide operating modes. Device wide 4787 * operating 4788 * modes are configured on all ports, except the stack ports. 4789 */ 4790 extern int bcm_switch_control_port_set( 4791 int unit, 4792 bcm_port_t port, 4793 bcm_switch_control_t type, 4794 int arg); 4795 4796 /* Configure encapsulation priority for the internal priority queue. */ 4797 extern int bcm_switch_rcpu_encap_priority_map_set( 4798 int unit, 4799 uint32 flags, 4800 int internal_cpu_pri, 4801 int encap_pri); 4802 4803 /* Retrieve encapsulation priority of the internal priority queue. */ 4804 extern int bcm_switch_rcpu_encap_priority_map_get( 4805 int unit, 4806 uint32 flags, 4807 int internal_cpu_pri, 4808 int *encap_pri); 4809 4810 /* Configure decapsulation priority for the internal priority queue. */ 4811 extern int bcm_switch_rcpu_decap_priority_map_set( 4812 int unit, 4813 int decap_pri, 4814 int internal_cpu_pri); 4815 4816 /* Retrieve decapsulation priority of the internal priority queue. */ 4817 extern int bcm_switch_rcpu_decap_priority_map_get( 4818 int unit, 4819 int decap_pri, 4820 int *internal_cpu_pri); 4821 4822 #endif /* BCM_HIDE_DISPATCHABLE */ 4823 4824 /* Hash tables. */ 4825 typedef enum bcm_switch_hash_table_e { 4826 bcmHashTableL2 = 0, /* L2 hash table. */ 4827 bcmHashTableL3 = 1, /* L3 hash table. */ 4828 bcmHashTableVlanTranslate = 2, /* VLAN Translate hash table. */ 4829 bcmHashTableEgressVlanTranslate = 3, /* Egress VLAN Translate hash table. */ 4830 bcmHashTableMPLS = 4, /* MPLS hash table. */ 4831 bcmHashTableFlowtrackerEntry = 5, /* Flowtracker Entry hash table. */ 4832 bcmHashTableL2Tunnel = 6, /* L2 tunnel termination hash table. */ 4833 bcmHashTableL2TunnelVnid = 7, /* L2 tunnel VNID hash table. */ 4834 bcmHashTableL3Tunnel = 8, /* L3 tunnel termination hash table. */ 4835 bcmHashTableExactMatch = 9, /* FP exact match hash table. */ 4836 bcmHashTableIpmcGroup = 10, /* L3 IPv4/IPv6 multicast (*,G) hash 4837 table. */ 4838 bcmHashTableIpmcSourceGroup = 11, /* L3 IPv4/IPv6 multicast (S,G) hash 4839 table. */ 4840 bcmHashTableL2mc = 12, /* L2 IPv4/IPv6 multicast hash table. */ 4841 bcmHashTable__Num = 13 4842 } bcm_switch_hash_table_t; 4843 4844 /* L2 address learning modes. */ 4845 typedef enum bcm_switch_l2_location_e { 4846 bcmSwitchL2LocInternal = 0, /* L2 addresses will be learnt on Internal TCAM */ 4847 bcmSwitchL2LocExternal = 1, /* L2 addresses will be learnt on External TCAM */ 4848 bcmSwitchL2LocIntAndExt = 2 /* L2 addresses are learnt either on internal or 4849 external Tcam */ 4850 } bcm_switch_l2_location_t; 4851 4852 /* Switch table update mode tables. */ 4853 typedef enum bcm_switch_table_update_mode_e { 4854 bcmSwitchTableUpdateNormal = 0, /* Calling traverse API e.g. 4855 l2_replace() will act in normal mode, 4856 i.e. set match rule and action and 4857 perform the replace */ 4858 bcmSwitchTableUpdateRuleAdd = 1, /* Calling traverse API e.g. 4859 l2_replace() will add rule without 4860 perform the replace */ 4861 bcmSwitchTableUpdateRuleClear = 2, /* clear all rules e.g. l2_replace() 4862 Calling traverse API */ 4863 bcmSwitchTableUpdateRuleCommit = 3, /* Run traverse API e.g. l2_replace() 4864 with configured rules */ 4865 bcmSwitchTableUpdateRuleCommitNonBlocking = 4 /* Start the flush machine and don't 4866 wait for it to finish. */ 4867 } bcm_switch_table_update_mode_t; 4868 4869 /* Opaque handle to a hash entry. */ 4870 typedef int bcm_hash_entry_t; 4871 4872 /* Use config structure to setup the offset and mask. */ 4873 #define BCM_SWITCH_HASH_USE_CONFIG (~0U) 4874 4875 /* mask length in config struct. */ 4876 #define BCM_SWITCH_HASH_ENTRY_CONFIG_MASK_LENGTH 4 4877 4878 /* field selection in flexible hash RAM table */ 4879 typedef enum bcm_switch_hash_field_e { 4880 bcmSwitchFlexHashField0 = 0, /* field 0 in flexible hash RAM table */ 4881 bcmSwitchFlexHashField1 = 1, /* field 1 in flexible hash RAM table */ 4882 bcmSwitchFlexHashField2 = 2, /* field 2 in flexible hash RAM table, 4883 fed to RTAG7 bin 4, support only UDF 4884 type field */ 4885 bcmSwitchFlexHashField3 = 3, /* field 3 in flexible hash RAM table, 4886 fed to RTAG7 bin 5, support only UDF 4887 type field */ 4888 bcmSwitchFlexHashField4 = 4, /* field 4 in flexible hash RAM table, 4889 fed to RTAG7 bin 6, support only UDF 4890 type field */ 4891 bcmSwitchFlexHashField5 = 5, /* field 5 in flexible hash RAM table, 4892 fed to RTAG7 bin 7, support only UDF 4893 type field */ 4894 bcmSwitchFlexHashField6 = 6, /* field 6 in flexible hash RAM table, 4895 fed to RTAG7 bin 8, support only UDF 4896 type field */ 4897 bcmSwitchFlexHashField7 = 7, /* field 7 in flexible hash RAM table, 4898 fed to RTAG7 bin 9, support only UDF 4899 type field */ 4900 bcmSwitchFlexHashField8 = 8, /* field 8 in flexible hash RAM table, 4901 fed to RTAG7 bin 10, support only UDF 4902 type field */ 4903 bcmSwitchFlexHashField9 = 9, /* field 9 in flexible hash RAM table, 4904 fed to RTAG7 bin 11, support only UDF 4905 type field */ 4906 bcmSwitchFlexHashField10 = 10, /* field 10 in flexible hash RAM table, 4907 fed to RTAG7 bin 12, support only UDF 4908 type field */ 4909 bcmSwitchFlexHashField11 = 11, /* field 11 in flexible hash RAM table, 4910 fed to RTAG7 bin 13, support only UDF 4911 type field */ 4912 bcmSwitchFlexHashField12 = 12, /* field 12 in flexible hash RAM table, 4913 fed to RTAG7 bin 1, support only UDF 4914 type field */ 4915 bcmSwitchFlexHashFieldCount = 13 /* field count in flexible hash RAM 4916 table */ 4917 } bcm_switch_hash_field_t; 4918 4919 /* Values passed for setting switch control bcmSwitchLatencyEcnMode. */ 4920 typedef enum bcm_switch_latency_ecn_mark_mode_e { 4921 bcmSwitchLatencyEcnMarkInstant = 0, /* Instantaneous mode. */ 4922 bcmSwitchLatencyEcnMarkAverage = 1, /* Average mode. */ 4923 bcmSwitchLatencyEcnMarkCount = 2 /* Must be last. Not a usable value. */ 4924 } bcm_switch_latency_ecn_mark_mode_t; 4925 4926 /* Flags for flex hash entry configration. */ 4927 #define BCM_SWITCH_HASH_FIELD_TYPE_UDF 1 4928 4929 /* flexible hash entry configuration struct. */ 4930 typedef struct bcm_switch_hash_entry_config_s { 4931 uint32 flags; /* control flags, default value 4932 indicates offset type flex hash */ 4933 bcm_switch_hash_field_t field; /* field selector, currently there are 4934 two fields in flex hash ram table */ 4935 uint32 offset; /* hash offset when field type is 4936 offset, relative offset in bits from 4937 start in udf_id_t when field type is 4938 udf. The value of (start + offset) 4939 should be a multiple of (8*2) to 4940 ensure the interested field starts at 4941 even byte in a packet */ 4942 int mask_length; /* number of bytes in the mask */ 4943 uint8 mask[BCM_SWITCH_HASH_ENTRY_CONFIG_MASK_LENGTH]; /* hash mask */ 4944 bcm_udf_layer_t base_layer; /* this is unsupported for now */ 4945 bcm_udf_id_t udf_id; /* udf id when field type is udf chunk */ 4946 } bcm_switch_hash_entry_config_t; 4947 4948 /* Initialize a bcm_switch_hash_entry_config_t structure. */ 4949 extern void bcm_switch_hash_entry_config_t_init( 4950 bcm_switch_hash_entry_config_t *config); 4951 4952 #ifndef BCM_HIDE_DISPATCHABLE 4953 4954 /* Set a flex hash entry configuration information. */ 4955 extern int bcm_switch_hash_entry_set( 4956 int unit, 4957 bcm_hash_entry_t entry, 4958 bcm_switch_hash_entry_config_t *config); 4959 4960 /* Get a flex hash entry configuration information. */ 4961 extern int bcm_switch_hash_entry_get( 4962 int unit, 4963 bcm_hash_entry_t entry, 4964 bcm_switch_hash_entry_config_t *config); 4965 4966 #endif /* BCM_HIDE_DISPATCHABLE */ 4967 4968 /* flexible hash CAM/RAM table traverse callback */ 4969 typedef int (*bcm_switch_hash_entry_traverse_cb)( 4970 int unit, 4971 int flags, 4972 bcm_hash_entry_t entry, 4973 void *user_data); 4974 4975 #ifndef BCM_HIDE_DISPATCHABLE 4976 4977 /* Traverse all configured flex hash entry to callback. */ 4978 extern int bcm_switch_hash_entry_traverse( 4979 int unit, 4980 int flags, 4981 bcm_switch_hash_entry_traverse_cb cb_fn, 4982 void *user_data); 4983 4984 /* Set a flex hash entry configuration information. */ 4985 extern int bcm_switch_hash_qualify_udf( 4986 int unit, 4987 bcm_hash_entry_t entry, 4988 bcm_udf_id_t udf_id, 4989 int length, 4990 uint8 *data, 4991 uint8 *mask); 4992 4993 /* Get a flex hash entry configuration information. */ 4994 extern int bcm_switch_hash_qualify_udf_get( 4995 int unit, 4996 bcm_hash_entry_t entry, 4997 bcm_udf_id_t udf_id, 4998 int max_length, 4999 uint8 *data, 5000 uint8 *mask, 5001 int *actual_length); 5002 5003 /* Installs a flex hash entry into the hardware tables. */ 5004 extern int bcm_switch_hash_entry_install( 5005 int unit, 5006 bcm_hash_entry_t entry, 5007 uint32 offset); 5008 5009 /* Re-Install a flex hash entry into the hardware tables. */ 5010 extern int bcm_switch_hash_entry_reinstall( 5011 int unit, 5012 bcm_hash_entry_t entry, 5013 uint32 offset); 5014 5015 /* Remove a flex hash entry from the hardware tables. */ 5016 extern int bcm_switch_hash_entry_remove( 5017 int unit, 5018 bcm_hash_entry_t entry); 5019 5020 /* Create a blank flex hash entry. */ 5021 extern int bcm_switch_hash_entry_create( 5022 int unit, 5023 bcm_field_group_t group, 5024 bcm_hash_entry_t *entry); 5025 5026 /* Create a blank flex hash entry. */ 5027 extern int bcm_switch_hash_entry_create_qset( 5028 int unit, 5029 bcm_field_qset_t qset, 5030 bcm_hash_entry_t *entry); 5031 5032 /* Destroy a blank flex hash entry. */ 5033 extern int bcm_switch_hash_entry_destroy( 5034 int unit, 5035 bcm_hash_entry_t entry); 5036 5037 /* Add flexible hashing data field qualifiers */ 5038 extern int bcm_switch_hash_qualify_data( 5039 int unit, 5040 bcm_hash_entry_t entry, 5041 int qual_id, 5042 uint32 data, 5043 uint32 mask); 5044 5045 /* Get number of banks for a hash table */ 5046 extern int bcm_switch_hash_banks_max_get( 5047 int unit, 5048 bcm_switch_hash_table_t hash_table, 5049 uint32 *bank_count); 5050 5051 /* Set/Get hash type for a multi bank hash table */ 5052 extern int bcm_switch_hash_banks_config_set( 5053 int unit, 5054 bcm_switch_hash_table_t hash_table, 5055 uint32 bank_num, 5056 int hash_type, 5057 uint32 hash_offset); 5058 5059 /* Set/Get hash type for a multi bank hash table */ 5060 extern int bcm_switch_hash_banks_config_get( 5061 int unit, 5062 bcm_switch_hash_table_t hash_table, 5063 uint32 bank_num, 5064 int *hash_type, 5065 uint32 *hash_offset); 5066 5067 #endif /* BCM_HIDE_DISPATCHABLE */ 5068 5069 /* Entry type for retrieving temperature values. */ 5070 typedef _shr_switch_temperature_monitor_t bcm_switch_temperature_monitor_t; 5071 5072 #ifndef BCM_HIDE_DISPATCHABLE 5073 5074 /* 5075 * There are temperature monitors embedded in the various points of some 5076 * switch chips for the purpose of monitoring the health of the chip. 5077 * This API retrieves each temperature monitor's current value and 5078 * peak value. The value unit is 0.1 celsius degree. Table \ref 5079 * bcm_switch_temperature_monitor_t 5080 * describes the meaning of each field of the structure 5081 * bcm_switch_temperature_monitor_t. 5082 */ 5083 extern int bcm_switch_temperature_monitor_get( 5084 int unit, 5085 int temperature_max, 5086 bcm_switch_temperature_monitor_t *temperature_array, 5087 int *temperature_count); 5088 5089 #endif /* BCM_HIDE_DISPATCHABLE */ 5090 5091 /* Switch packet info flags. */ 5092 #define BCM_SWITCH_PKT_INFO_SRC_GPORT (1 << 0) /* Source gport (module, 5093 port) field valid. */ 5094 #define BCM_SWITCH_PKT_INFO_VLAN (1 << 1) /* VLAN identifier field 5095 valid. */ 5096 #define BCM_SWITCH_PKT_INFO_ETHERTYPE (1 << 2) /* EtherType field valid. */ 5097 #define BCM_SWITCH_PKT_INFO_SRC_MAC (1 << 3) /* Source MAC address 5098 field valid. */ 5099 #define BCM_SWITCH_PKT_INFO_DST_MAC (1 << 4) /* Destination MAC 5100 address field valid. */ 5101 #define BCM_SWITCH_PKT_INFO_SRC_IP (1 << 5) /* Source IPv4 address 5102 field valid. */ 5103 #define BCM_SWITCH_PKT_INFO_DST_IP (1 << 6) /* Destination IPv4 5104 address field valid. */ 5105 #define BCM_SWITCH_PKT_INFO_SRC_IPV6 (1 << 7) /* Source IPv6 address 5106 field valid. */ 5107 #define BCM_SWITCH_PKT_INFO_DST_IPV6 (1 << 8) /* Destination IPv6 5108 address field valid. */ 5109 #define BCM_SWITCH_PKT_INFO_PROTOCOL (1 << 9) /* IP protocol field 5110 valid. */ 5111 #define BCM_SWITCH_PKT_INFO_SRC_L4_PORT (1 << 10) /* Source L4 port field 5112 valid. */ 5113 #define BCM_SWITCH_PKT_INFO_DST_L4_PORT (1 << 11) /* Destination L4 port 5114 field valid. */ 5115 #define BCM_SWITCH_PKT_INFO_HASH_TRUNK (1 << 12) /* Retrieve trunk hash 5116 result. */ 5117 #define BCM_SWITCH_PKT_INFO_HASH_MULTIPATH (1 << 13) /* Retrieve ECMP hash 5118 result. */ 5119 #define BCM_SWITCH_PKT_INFO_HASH_UDP_SOURCE_PORT (1 << 14) /* Retrieve Entropy Value 5120 of VXLan packet. */ 5121 #define BCM_SWITCH_PKT_INFO_HASH_LBID (1 << 15) /* Retrieve LBID. */ 5122 #define BCM_SWITCH_PKT_INFO_HASH_OVERLAY (1 << 16) /* Retrieve ECMP hash 5123 result for overlay 5124 layer. */ 5125 #define BCM_SWITCH_PKT_INFO_TOP_LABEL (1 << 17) /* First label in MPLS 5126 stack. */ 5127 #define BCM_SWITCH_PKT_INFO_2ND_LABEL (1 << 18) /* Secondt label in MPLS 5128 stack. */ 5129 #define BCM_SWITCH_PKT_INFO_3RD_LABEL (1 << 19) /* Third label in MPLS 5130 stack. */ 5131 #define BCM_SWITCH_PKT_INFO_LABELS_4MSB (1 << 20) /* 4MSB of top, second 5132 and third label in 5133 MPLS stack. */ 5134 5135 /* Packet forward reason for hash calculation. */ 5136 typedef enum bcm_switch_pkt_hash_info_fwd_reason_e { 5137 bcmSwitchPktHashInfoFwdReasonUnicast = 0, /* Known unicast packet */ 5138 bcmSwitchPktHashInfoFwdReasonIpmc = 1, /* L3 multicast packet */ 5139 bcmSwitchPktHashInfoFwdReasonL2mc = 2, /* L2 multicast packet */ 5140 bcmSwitchPktHashInfoFwdReasonBcast = 3, /* Broadcast packet */ 5141 bcmSwitchPktHashInfoFwdReasonDlf = 4 /* Destination lookup failed packet */ 5142 } bcm_switch_pkt_hash_info_fwd_reason_t; 5143 5144 #define BCM_SWITCH_PKT_HASH_INFO_FWD_REASON_STRINGS \ 5145 "Unicast", \ 5146 "Ipmc", \ 5147 "L2mc", \ 5148 "Bcast", \ 5149 "Dlf" 5150 5151 /* 5152 * Switch packet info structure. 5153 * 5154 * Contains packet fields for calculating aggregate link hash values. 5155 */ 5156 typedef struct bcm_switch_pkt_info_s { 5157 uint32 flags; /* BCM_SWITCH_PKT_INFO_xxx flags for 5158 packet parameter hashing. */ 5159 bcm_gport_t src_gport; /* Source module and port, 5160 BCM_GPORT_INVALID to wildcard. */ 5161 bcm_vlan_t vid; /* VLAN ID. */ 5162 bcm_ethertype_t ethertype; /* EtherType */ 5163 bcm_mac_t src_mac; /* Source MAC address. */ 5164 bcm_mac_t dst_mac; /* Destination MAC address. */ 5165 bcm_ip_t sip; /* Source host IP address (IPv4). */ 5166 bcm_ip_t dip; /* Destination host IP address (IPv4). */ 5167 bcm_ip6_t sip6; /* Source host IP address (IPv6). */ 5168 bcm_ip6_t dip6; /* Destination host IP address (IPv6). */ 5169 uint8 protocol; /* IP protocol */ 5170 uint32 src_l4_port; /* Source L4 port */ 5171 uint32 dst_l4_port; /* Destination L4 port. */ 5172 bcm_gport_t trunk_gport; /* Gport of trunk type on which packet 5173 will egress. */ 5174 bcm_if_t mpintf; /* Multipath egress forwarding object. */ 5175 bcm_switch_pkt_hash_info_fwd_reason_t fwd_reason; /* Packet forward reason. */ 5176 bcm_mpls_label_t top_label; /* First label in MPLS stack. */ 5177 bcm_mpls_label_t second_label; /* Second label in MPLS stack. */ 5178 bcm_mpls_label_t third_label; /* Third label in MPLS stack. */ 5179 } bcm_switch_pkt_info_t; 5180 5181 /* Initialize a bcm_switch_pkt_info_t structure. */ 5182 extern void bcm_switch_pkt_info_t_init( 5183 bcm_switch_pkt_info_t *pkt_info); 5184 5185 #ifndef BCM_HIDE_DISPATCHABLE 5186 5187 /* 5188 * Gets the hash result for the specified link aggregation method using 5189 * provided packet parameters and device configuration. 5190 */ 5191 extern int bcm_switch_pkt_info_hash_get( 5192 int unit, 5193 bcm_switch_pkt_info_t *pkt_info, 5194 bcm_gport_t *dst_gport, 5195 bcm_if_t *dst_intf); 5196 5197 #endif /* BCM_HIDE_DISPATCHABLE */ 5198 5199 /* 5200 * Read function signature to register for the application provided 5201 * stable for Level 2 Warm Boot 5202 */ 5203 typedef int (*bcm_switch_read_func_t)( 5204 int unit, 5205 uint32 *buf, 5206 int offset, 5207 int nbytes); 5208 5209 /* 5210 * Write function signature to register for the application provided 5211 * stable for Level 2 Warm Boot 5212 */ 5213 typedef int (*bcm_switch_write_func_t)( 5214 int unit, 5215 uint32 *buf, 5216 int offset, 5217 int nbytes); 5218 5219 #ifndef BCM_HIDE_DISPATCHABLE 5220 5221 /* 5222 * Register read/write functions for the application provided stable for 5223 * Level 2 Warm Boot 5224 */ 5225 extern int bcm_switch_stable_register( 5226 int unit, 5227 bcm_switch_read_func_t rf, 5228 bcm_switch_write_func_t wf); 5229 5230 #endif /* BCM_HIDE_DISPATCHABLE */ 5231 5232 /* Call back function signature to register */ 5233 typedef void (*bcm_switch_event_cb_t)( 5234 int unit, 5235 bcm_switch_event_t event, 5236 uint32 arg1, 5237 uint32 arg2, 5238 uint32 arg3, 5239 void *userdata); 5240 5241 #ifndef BCM_HIDE_DISPATCHABLE 5242 5243 /* Registers/Unregisters a callback function for switch critical events */ 5244 extern int bcm_switch_event_register( 5245 int unit, 5246 bcm_switch_event_cb_t cb, 5247 void *userdata); 5248 5249 /* Registers/Unregisters a callback function for switch critical events */ 5250 extern int bcm_switch_event_unregister( 5251 int unit, 5252 bcm_switch_event_cb_t cb, 5253 void *userdata); 5254 5255 #endif /* BCM_HIDE_DISPATCHABLE */ 5256 5257 /* Backward compatibility. */ 5258 #define bcm_switch_port_control_get bcm_switch_control_port_set 5259 #define bcm_switch_port_control_set bcm_switch_control_port_set 5260 5261 #define BCM_HASH_ZERO 0x00000001 /* Always return 0 (debug only). */ 5262 #define BCM_HASH_LSB 0x00000002 /* Return LSB of key. */ 5263 #define BCM_HASH_CRC16L 0x00000003 /* Lower bits of CRC-16. */ 5264 #define BCM_HASH_CRC16U 0x00000004 /* Upper bits of CRC-16. */ 5265 #define BCM_HASH_CRC32L 0x00000005 /* Lower bits of CRC-32. */ 5266 #define BCM_HASH_CRC32U 0x00000006 /* Upper bits of CRC-32. */ 5267 #define BCM_HASH_XORU 0x00000007 /* Upper bits of byte by byte XOR. */ 5268 #define BCM_HASH_XORL 0x00000008 /* Lower bits of byte by byte XOR. */ 5269 #define BCM_HASH_OFFSET 0x10000000 /* Use supplied offset value into the 5270 hash value. */ 5271 5272 /* Multipath (ECMP/WCMP) hashing. */ 5273 #define BCM_HASH_CONTROL_MULTIPATH_L4PORTS 0x0001 /* Use TCP/UDP ports. */ 5274 #define BCM_HASH_CONTROL_MULTIPATH_DIP 0x0002 /* Use destination IP 5275 address. */ 5276 #define BCM_HASH_CONTROL_MULTIPATH_USERDEF(_val) \ 5277 (((_val) & 0xff) << 24) 5278 #define BCM_HASH_CONTROL_MULTIPATH_USERDEF_VAL(c) \ 5279 ((c) >> 24 & 0xff) 5280 5281 /* Unicast trunk hash controls. */ 5282 #define BCM_HASH_CONTROL_TRUNK_UC_XGS2 0x0004 /* 5695 compatible hash. */ 5283 #define BCM_HASH_CONTROL_TRUNK_UC_SRCPORT 0x0008 /* Use source port. */ 5284 5285 /* Non-unicast trunk block mask hash controls. */ 5286 #define BCM_HASH_CONTROL_TRUNK_NUC_DST 0x0010 /* Use destination MAC or 5287 IP address. */ 5288 #define BCM_HASH_CONTROL_TRUNK_NUC_SRC 0x0020 /* Use source MAC or IP 5289 address. */ 5290 #define BCM_HASH_CONTROL_TRUNK_NUC_MODPORT 0x0040 /* Use module ID and 5291 port. */ 5292 5293 /* Use enhanced (aka. RTAG7) hashing algorithm. */ 5294 #define BCM_HASH_CONTROL_ECMP_ENHANCE 0x0080 /* Use enhanced ECMP 5295 hashing. */ 5296 #define BCM_HASH_CONTROL_TRUNK_NUC_ENHANCE 0x0100 /* Use enhanced 5297 non-unicast trunk 5298 hashing. */ 5299 #define BCM_HASH_CONTROL_ECMP_OVERLAY_ENHANCE 0x0200 /* Use enhanced ECMP 5300 hashing for overlay 5301 layer. */ 5302 5303 /* Enhanced hash field config control. */ 5304 #define BCM_HASH_FIELD_CONFIG_CRC16XOR8 0x00000001 /* 8-bit CRC16 + 8-bit 5305 XOR8. */ 5306 #define BCM_HASH_FIELD_CONFIG_CRC16XOR4 0x00000002 /* 8-bit CRC16 + 8-bit 5307 XOR4. */ 5308 #define BCM_HASH_FIELD_CONFIG_CRC16XOR2 0x00000003 /* 8-bit CRC16 + 8-bit 5309 XOR2. */ 5310 #define BCM_HASH_FIELD_CONFIG_CRC16XOR1 0x00000004 /* 8-bit CRC16 + 8-bit 5311 XOR1. */ 5312 #define BCM_HASH_FIELD_CONFIG_CRC16 0x00000005 /* 16-bit CRC16. */ 5313 #define BCM_HASH_FIELD_CONFIG_XOR16 0x00000006 /* 16-bit XOR. */ 5314 #define BCM_HASH_FIELD_CONFIG_CRC16CCITT 0x00000007 /* 16-bit CRC using CCITT 5315 polynomial. */ 5316 #define BCM_HASH_FIELD_CONFIG_CRC32LO 0x00000008 /* Lower 16-bit of CRC32. */ 5317 #define BCM_HASH_FIELD_CONFIG_CRC32HI 0x00000009 /* Higher 16-bit of 5318 CRC32. */ 5319 #define BCM_HASH_FIELD_CONFIG_CRC32_ETH_LO 0x0000000a /* Lower 16-bit of 5320 Ethernet CRC32. */ 5321 #define BCM_HASH_FIELD_CONFIG_CRC32_ETH_HI 0x0000000b /* Higher 16-bit of 5322 Ethernet CRC32. */ 5323 #define BCM_HASH_FIELD_CONFIG_CRC32_KOOPMAN_LO 0x0000000c /* Lower 16-bit of 5324 Koopman CRC32. */ 5325 #define BCM_HASH_FIELD_CONFIG_CRC32_KOOPMAN_HI 0x0000000d /* Higher 16-bit of 5326 Koopman CRC32. */ 5327 #define BCM_HASH_FIELD_CONFIG_VERSATILE_HASH_LO 0x0000000e /* Lower 16-bit of 5328 Versatile Hash. */ 5329 #define BCM_HASH_FIELD_CONFIG_VERSATILE_HASH_HI 0x0000000f /* Higher 16-bit of 5330 Versatile Hash. */ 5331 5332 /* Enhanced hash field selection disable control. */ 5333 #define BCM_HASH_FIELD0_DISABLE_IP4 0x00000001 /* Selection 0 for IPv4 5334 packets. */ 5335 #define BCM_HASH_FIELD1_DISABLE_IP4 0x00000002 /* Selection 1 for IPv4 5336 packets. */ 5337 #define BCM_HASH_FIELD0_DISABLE_IP6 0x00000004 /* Selection 0 for IPv6 5338 packets. */ 5339 #define BCM_HASH_FIELD1_DISABLE_IP6 0x00000008 /* Selection 1 for IPv6 5340 packets. */ 5341 #define BCM_HASH_FIELD0_DISABLE_MPLS 0x00000010 /* Selection 0 for MPLS 5342 packets. */ 5343 #define BCM_HASH_FIELD1_DISABLE_MPLS 0x00000020 /* Selection 1 for MPLS 5344 packets. */ 5345 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP 0x00000040 /* Selection 0 for tunnel 5346 IPv4 over IPv4 5347 packets. */ 5348 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP 0x00000080 /* Selection 1 for tunnel 5349 IPv4 over IPv4 5350 packets. */ 5351 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP 0x00000100 /* Selection 0 for tunnel 5352 IPv6 over IPv4 5353 packets. */ 5354 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP 0x00000200 /* Selection 1 for tunnel 5355 IPv6 over IPv4 5356 packets. */ 5357 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE 0x00000400 /* Selection 0 for tunnel 5358 IPv4 over GRE packets. */ 5359 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE 0x00000800 /* Selection 1 for tunnel 5360 IPv4 over GRE packets. */ 5361 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE 0x00001000 /* Selection 0 for tunnel 5362 IPv6 over GRE packets. */ 5363 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE 0x00002000 /* Selection 1 for tunnel 5364 IPv6 over GRE packets. */ 5365 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_IP6 0x00004000 /* Selection 0 for tunnel 5366 IPv4 over IPv6 5367 packets. */ 5368 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_IP6 0x00008000 /* Selection 1 for tunnel 5369 IPv4 over IPv6 5370 packets. */ 5371 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_IP6 0x00010000 /* Selection 0 for tunnel 5372 IPv6 over IPv6 5373 packets. */ 5374 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_IP6 0x00020000 /* Selection 1 for tunnel 5375 IPv6 over IPv6 5376 packets. */ 5377 #define BCM_HASH_FIELD0_DISABLE_MIM 0x00040000 /* Selection 0 for MIM 5378 packets. */ 5379 #define BCM_HASH_FIELD1_DISABLE_MIM 0x00080000 /* Selection 1 for MIM 5380 packets. */ 5381 #define BCM_HASH_FIELD0_DISABLE_FCOE 0x00100000 /* Selection 0 for FCoE 5382 packets. */ 5383 #define BCM_HASH_FIELD1_DISABLE_FCOE 0x00200000 /* Selection 1 for FCoE 5384 packets. */ 5385 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE_IP4 0x00400000 /* Selection 0 for tunnel 5386 IPv4 over GRE IPv4 5387 packets. */ 5388 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP4_GRE_IP6 0x00800000 /* Selection 0 for tunnel 5389 IPv4 over GRE IPv6 5390 packets. */ 5391 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE_IP4 0x01000000 /* Selection 1 for tunnel 5392 IPv4 over GRE IPv4 5393 packets. */ 5394 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP4_GRE_IP6 0x02000000 /* Selection 1 for tunnel 5395 IPv4 over GRE IPv6 5396 packets. */ 5397 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE_IP4 0x04000000 /* Selection 0 for tunnel 5398 IPv6 over GRE IPv4 5399 packets. */ 5400 #define BCM_HASH_FIELD0_DISABLE_TUNNEL_IP6_GRE_IP6 0x08000000 /* Selection 0 for tunnel 5401 IPv6 over GRE IPv6 5402 packets. */ 5403 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE_IP4 0x10000000 /* Selection 1 for tunnel 5404 IPv6 over GRE IPv4 5405 packets. */ 5406 #define BCM_HASH_FIELD1_DISABLE_TUNNEL_IP6_GRE_IP6 0x20000000 /* Selection 1 for tunnel 5407 IPv6 over GRE IPv6 5408 packets. */ 5409 #define BCM_HASH_FIELD0_DISABLE_VXLAN 0x40000000 /* Selection 0 for tunnel 5410 VXLAN packets. */ 5411 #define BCM_HASH_FIELD1_DISABLE_VXLAN 0x80000000 /* Selection 1 for tunnel 5412 VXLAN packets. */ 5413 5414 /* 5415 * Extended flags for bcmSwitchHashSelectControlExtended switch control 5416 * type to disable enhanced hash field selection control. 5417 */ 5418 #define BCM_HASH_FIELD0_DISABLE_ROCE1 0x00000001 /* Hash block A field 5419 selection disable for 5420 RoCEv1 packet. */ 5421 #define BCM_HASH_FIELD1_DISABLE_ROCE1 0x00000002 /* Hash block B field 5422 selection disable for 5423 RoCEv1 packet. */ 5424 #define BCM_HASH_FIELD0_DISABLE_ROCE2_IP4 0x00000004 /* Hash block A field 5425 selection disable for 5426 RoCEv2 IPv4 packet. */ 5427 #define BCM_HASH_FIELD1_DISABLE_ROCE2_IP4 0x00000008 /* Hash block B field 5428 selection disable for 5429 RoCEv2 IPv4 packet. */ 5430 #define BCM_HASH_FIELD0_DISABLE_ROCE2_IP6 0x00000010 /* Hash block A field 5431 selection disable for 5432 RoCEv2 IPv6 packet. */ 5433 #define BCM_HASH_FIELD1_DISABLE_ROCE2_IP6 0x00000020 /* Hash block B field 5434 selection disable for 5435 RoCEv2 IPv6 packet. */ 5436 5437 /* UDF hashing select. */ 5438 #define BCM_HASH_FIELD0_ENABLE_UDFHASH 0x00000001 /* UDF hashing enable on 5439 engine 0. */ 5440 #define BCM_HASH_FIELD1_ENABLE_UDFHASH 0x00000002 /* UDF hashing enable on 5441 engine 1. */ 5442 5443 /* Enhanced hash field selection. */ 5444 #define BCM_HASH_FIELD_DSTMOD 0x00000001 /* Destination module ID. */ 5445 #define BCM_HASH_NON_SYMMETRICAL BCM_HASH_FIELD_DSTMOD /* Non symmetrical hashing. */ 5446 #define BCM_HASH_FIELD_DSTPORT 0x00000002 /* Destination port ID. */ 5447 #define BCM_HASH_FIELD_SRCMOD 0x00000004 /* Source modle ID. */ 5448 #define BCM_HASH_FIELD_SRCPORT 0x00000008 /* Souce port ID. */ 5449 #define BCM_HASH_FIELD_PROTOCOL 0x00000010 /* Protocol ID. */ 5450 #define BCM_HASH_FIELD_DSTL4 0x00000020 /* Destination L4 port. */ 5451 #define BCM_HASH_FIELD_SRCL4 0x00000040 /* Source L4 port. */ 5452 #define BCM_HASH_FIELD_L4 (BCM_HASH_FIELD_SRCL4 | BCM_HASH_FIELD_DSTL4) /* The entire L4 field. */ 5453 #define BCM_HASH_FIELD_VLAN 0x00000080 /* VLAN ID. */ 5454 #define BCM_HASH_FIELD_IP4DST_LO 0x00000100 /* IPv4 destination address 5455 lower 16 bits. */ 5456 #define BCM_HASH_FIELD_IP4DST_HI 0x00000200 /* IPv4 destination address 5457 upper 16 bits. */ 5458 #define BCM_HASH_FIELD_IP4SRC_LO 0x00000400 /* IPv4 source address lower 5459 16 bits. */ 5460 #define BCM_HASH_FIELD_IP4SRC_HI 0x00000800 /* IPv4 source address upper 5461 16 bits. */ 5462 #define BCM_HASH_FIELD_IPV4_ADDRESS (BCM_HASH_FIELD_IP4DST_LO | BCM_HASH_FIELD_IP4DST_HI | BCM_HASH_FIELD_IP4SRC_LO | BCM_HASH_FIELD_IP4SRC_HI) /* The entire IPv4 address 5463 field including the source 5464 and the destination 5465 addresses. */ 5466 #define BCM_HASH_FIELD_IP6DST_LO 0x00001000 /* IPv6 collapsed destination 5467 address lower 16 bits. */ 5468 #define BCM_HASH_FIELD_IP6DST_HI 0x00002000 /* IPv6 collapsed destination 5469 address upper 16 bits. */ 5470 #define BCM_HASH_FIELD_IP6SRC_LO 0x00004000 /* IPv6 collapsed source 5471 address lower 16 bits. */ 5472 #define BCM_HASH_FIELD_IP6SRC_HI 0x00008000 /* IPv6 collapsed source 5473 address upper 16 bits. */ 5474 #define BCM_HASH_FIELD_IPV6_ADDRESS (BCM_HASH_FIELD_IP6DST_LO | BCM_HASH_FIELD_IP6DST_HI | BCM_HASH_FIELD_IP6SRC_LO | BCM_HASH_FIELD_IP6SRC_HI) /* The entire IPv6 address 5475 field including the source 5476 and the destination 5477 addresses. */ 5478 #define BCM_HASH_FIELD_FLOWLABEL_LO BCM_HASH_FIELD_DSTMOD /* IPv6 flow label lower 16 5479 bits. */ 5480 #define BCM_HASH_FIELD_FLOWLABEL_HI BCM_HASH_FIELD_DSTPORT /* IPv6 flow label upper 4 5481 bits. */ 5482 #define BCM_HASH_FIELD_FLOW_LABEL (BCM_HASH_FIELD_FLOWLABEL_LO | BCM_HASH_FIELD_FLOWLABEL_HI) /* IPv6 flow label. */ 5483 #define BCM_HASH_FIELD_NXT_HDR 0x00010000 /* Next header. */ 5484 #define BCM_HASH_FIELD_ETHER_TYPE 0x00020000 /* Ether type. */ 5485 #define BCM_HASH_FIELD_MACDA_LO 0x00040000 /* MAC destination address 5486 lower 16 bits. */ 5487 #define BCM_HASH_FIELD_MACDA_MI 0x00080000 /* MAC destination address 5488 middle 16 bits. */ 5489 #define BCM_HASH_FIELD_MACDA_HI 0x00100000 /* MAC destination address 5490 upper 16 bits. */ 5491 #define BCM_HASH_FIELD_MACSA_LO 0x00200000 /* MAC source address lower 5492 16 bits. */ 5493 #define BCM_HASH_FIELD_MACSA_MI 0x00400000 /* MAC source address middle 5494 16 bits. */ 5495 #define BCM_HASH_FIELD_MACSA_HI 0x00800000 /* MAC source address upper 5496 16 bits. */ 5497 #define BCM_HASH_FIELD_MAC_ADDRESS (BCM_HASH_FIELD_MACDA_LO | BCM_HASH_FIELD_MACDA_MI | BCM_HASH_FIELD_MACDA_HI | BCM_HASH_FIELD_MACSA_LO | BCM_HASH_FIELD_MACSA_MI | BCM_HASH_FIELD_MACSA_HI) /* MAC source and destination 5498 address. */ 5499 #define BCM_HASH_FIELD_LOAD_BALANCE 0x01000000 /* Load balance ID - HiGig2 5500 only. */ 5501 #define BCM_HASH_FIELD_RSVD_LABELS 0x02000000 /* Reserved second label, top 5502 label. */ 5503 #define BCM_HASH_FIELD_2ND_LABEL 0x04000000 /* Second label. */ 5504 #define BCM_HASH_FIELD_TOP_LABEL 0x08000000 /* Top label. */ 5505 #define BCM_HASH_FIELD_LOOKUP_ID_LO 0x10000000 /* Used for ISID[15:0]. */ 5506 #define BCM_HASH_FIELD_LOOKUP_ID_HI 0x20000000 /* Used for ISID[23:16]. */ 5507 #define BCM_HASH_FIELD_CNTAG_FLOW_ID 0x40000000 /* CNTAG flow ID. */ 5508 #define BCM_HASH_MPLS_ALL_LABELS 0x80000000 /* All the MPLS labels. */ 5509 5510 /* Enhanced field selection bit map for RoCE hash field selection. */ 5511 #define BCM_HASH_ROCE_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 5512 #define BCM_HASH_ROCE_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 5513 #define BCM_HASH_ROCE_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 5514 #define BCM_HASH_ROCE_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 5515 #define BCM_HASH_ROCE_FIELD_FLOWLABEL_LO BCM_HASH_FIELD_DSTMOD /* RoCE flow label lower 5516 16 bits. */ 5517 #define BCM_HASH_ROCE_FIELD_FLOWLABEL_HI BCM_HASH_FIELD_DSTPORT /* RoCE flow label upper 5518 4 bits. */ 5519 #define BCM_HASH_ROCE_FIELD_DSTL4 BCM_HASH_FIELD_DSTL4 /* RoCEv2 L4 destination 5520 port. */ 5521 #define BCM_HASH_ROCE_FIELD_SRCL4 BCM_HASH_FIELD_SRCL4 /* RoCEv2 L4 source port. */ 5522 #define BCM_HASH_ROCE_FIELD_VLAN BCM_HASH_FIELD_VLAN /* VLAN ID. */ 5523 #define BCM_HASH_ROCE_FIELD_MACDA_LO BCM_HASH_FIELD_MACDA_LO /* RoCEv1 MAC destination 5524 address lower 16 bits. */ 5525 #define BCM_HASH_ROCE_FIELD_MACDA_MI BCM_HASH_FIELD_MACDA_MI /* RoCEv1 MAC destination 5526 address middle 16 5527 bits. */ 5528 #define BCM_HASH_ROCE_FIELD_MACDA_HI BCM_HASH_FIELD_MACDA_HI /* RoCEv1 MAC destination 5529 address upper 16 bits. */ 5530 #define BCM_HASH_ROCE_FIELD_MACSA_LO BCM_HASH_FIELD_MACSA_LO /* RoCEv1 MAC source 5531 address lower 16 bits. */ 5532 #define BCM_HASH_ROCE_FIELD_MACSA_MI BCM_HASH_FIELD_MACSA_MI /* RoCEv1 MAC source 5533 address middle 16 5534 bits. */ 5535 #define BCM_HASH_ROCE_FIELD_MACSA_HI BCM_HASH_FIELD_MACSA_HI /* RoCEv1 MAC source 5536 address upper16 bits. */ 5537 #define BCM_HASH_ROCE_FIELD_IP4DST_LO BCM_HASH_FIELD_IP4DST_LO /* RoCEv2 IPv4 5538 destination address 5539 lower 16 bits. */ 5540 #define BCM_HASH_ROCE_FIELD_IP4DST_HI BCM_HASH_FIELD_IP4DST_HI /* RoCEv2 IPv4 5541 destination address 5542 upper 16 bits. */ 5543 #define BCM_HASH_ROCE_FIELD_IP4SRC_LO BCM_HASH_FIELD_IP4SRC_LO /* RoCEv2 IPv4 source 5544 address lower 16 bits. */ 5545 #define BCM_HASH_ROCE_FIELD_IP4SRC_HI BCM_HASH_FIELD_IP4SRC_HI /* RoCEv2 IPv4 source 5546 address upper 16 bits. */ 5547 #define BCM_HASH_ROCE_FIELD_IP6DST_LO BCM_HASH_FIELD_IP6DST_LO /* RoCEv2 IPv6 collapsed 5548 destination address 5549 lower 16 bits. */ 5550 #define BCM_HASH_ROCE_FIELD_IP6DST_HI BCM_HASH_FIELD_IP6DST_HI /* RoCEv2 IPv6 collapsed 5551 destination address 5552 upper 16 bits. */ 5553 #define BCM_HASH_ROCE_FIELD_IP6SRC_LO BCM_HASH_FIELD_IP6SRC_LO /* RoCEv2 IPv6 collapsed 5554 source address lower 5555 16 bits. */ 5556 #define BCM_HASH_ROCE_FIELD_IP6SRC_HI BCM_HASH_FIELD_IP6SRC_HI /* RoCEv2 IPv6 collapsed 5557 source address upper 5558 16 bits. */ 5559 #define BCM_HASH_ROCE_FIELD_BTH_DSTQP_COLLAPSED 0x00010000 /* RoCE Collapsed 5560 Destination Queue Pair 5561 in BTH (Base Transport 5562 Header). */ 5563 #define BCM_HASH_ROCE_FIELD_BTH_PARTITION_KEY 0x00020000 /* RoCE Partition Key in 5564 BTH (Base Transport 5565 Header). */ 5566 5567 /* Enhanced hash MPLS field selection. */ 5568 #define BCM_HASH_MPLS_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 5569 #define BCM_HASH_MPLS_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 5570 #define BCM_HASH_MPLS_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 5571 #define BCM_HASH_MPLS_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 5572 #define BCM_HASH_MPLS_FIELD_3RD_LABEL 0x00000010 /* Third label. */ 5573 #define BCM_HASH_MPLS_FIELD_LABELS_4MSB 0x00000020 /* Most significant 4 5574 bits of top, second, 5575 and third label. */ 5576 #define BCM_HASH_MPLS_FIELD_IP4DST_LO BCM_HASH_FIELD_IP4DST_LO /* IPv4 destination 5577 address lower 16 bits. */ 5578 #define BCM_HASH_MPLS_FIELD_IP4DST_HI BCM_HASH_FIELD_IP4DST_HI /* IPv4 destination 5579 address upper 16 bits. */ 5580 #define BCM_HASH_MPLS_FIELD_IP4SRC_LO BCM_HASH_FIELD_IP4SRC_LO /* IPv4 source address 5581 lower 16 bits. */ 5582 #define BCM_HASH_MPLS_FIELD_IP4SRC_HI BCM_HASH_FIELD_IP4SRC_HI /* IPv4 source address 5583 upper 16 bits. */ 5584 #define BCM_HASH_MPLS_FIELD_3RD_LABEL_4MSB_5TH_LABEL BCM_HASH_FIELD_IP6DST_LO /* Third label or 4 most 5585 significant bits of 5586 5th label. */ 5587 #define BCM_HASH_MPLS_FIELD_LABELS_4MSB_3RD_LABEL BCM_HASH_FIELD_IP6DST_HI /* Most significant 4 5588 bits of top, second, 5589 and third label or 3rd 5590 label alone. */ 5591 #define BCM_HASH_MPLS_FIELD_IP4DST_IP6DST_LO_5TH_LABEL BCM_HASH_FIELD_IP6SRC_LO /* IPv4 destination 5592 address lower 16 bits 5593 or IPv6 collapsed 5594 destination address 5595 lower 16 bits or 5th 5596 label. */ 5597 #define BCM_HASH_MPLS_FIELD_IP4DST_IP6DST_HI_4TH_LABEL BCM_HASH_FIELD_IP6SRC_HI /* IPv4 destination 5598 address upper 16 bits 5599 or IPv6 collapsed 5600 destination address 5601 upper 16 bits or 4th 5602 label. */ 5603 #define BCM_HASH_MPLS_FIELD_IP4SRC_IP6SRC_LO_4MSB_4TH_LABEL BCM_HASH_FIELD_NXT_HDR /* IPv4 source address 5604 lower 16 bits or IPv6 5605 collapsed source 5606 address lower 16 bits 5607 or 4 most significant 5608 bits of 4th label. */ 5609 #define BCM_HASH_MPLS_FIELD_IP4SRC_IP6SRC_HI_4MSB BCM_HASH_FIELD_ETHER_TYPE /* IPv4 source address 5610 upper 16 bits or IPv6 5611 collapsed source 5612 address upper 16 bits 5613 or 4 most significant 5614 bits of 1st,2nd,3rd 5615 labels. */ 5616 #define BCM_HASH_MPLS_FIELD_2ND_LABEL BCM_HASH_FIELD_2ND_LABEL /* Second label. */ 5617 #define BCM_HASH_MPLS_FIELD_TOP_LABEL BCM_HASH_FIELD_TOP_LABEL /* Top label. */ 5618 #define BCM_HASH_MPLS_FIELD_CNTAG_FLOW_ID BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */ 5619 5620 /* Enhanced hash FCOE field selection. */ 5621 #define BCM_HASH_FCOE_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 5622 #define BCM_HASH_FCOE_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 5623 #define BCM_HASH_FCOE_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 5624 #define BCM_HASH_FCOE_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 5625 #define BCM_HASH_FCOE_FIELD_VLAN 0x00000010 /* VLAN ID. */ 5626 #define BCM_HASH_FCOE_FIELD_VIRTUAL_FABRIC_ID 0x00000020 /* Virtual Fabric ID. */ 5627 #define BCM_HASH_FCOE_FIELD_RESPONDER_EXCHANGE_ID 0x00000040 /* Responder Exchange_ID. */ 5628 #define BCM_HASH_FCOE_FIELD_ORIGINATOR_EXCHANGE_ID 0x00000080 /* Originator 5629 Exchange_ID. */ 5630 #define BCM_HASH_FCOE_FIELD_DST_ID_LO 0x00000100 /* Destination_ID lower 5631 16 bits. */ 5632 #define BCM_HASH_FCOE_FIELD_DST_ID_HI 0x00000200 /* Destination_ID upper 5633 16 bits. */ 5634 #define BCM_HASH_FCOE_FIELD_SRC_ID_LO 0x00000400 /* Source_ID lower 16 5635 bits. */ 5636 #define BCM_HASH_FCOE_FIELD_SRC_ID_HI 0x00000800 /* Source_ID upper 16 5637 bits. */ 5638 #define BCM_HASH_FCOE_FIELD_CNTAG_FLOW_ID BCM_HASH_FIELD_CNTAG_FLOW_ID /* CNTAG flow ID. */ 5639 5640 /* Enhanced hash Trill field selection. */ 5641 #define BCM_HASH_TRILL_FIELD_DSTMOD BCM_HASH_FIELD_DSTMOD /* Destination module ID. */ 5642 #define BCM_HASH_TRILL_FIELD_DSTPORT BCM_HASH_FIELD_DSTPORT /* Destination port ID. */ 5643 #define BCM_HASH_TRILL_FIELD_SRCMOD BCM_HASH_FIELD_SRCMOD /* Source modle ID. */ 5644 #define BCM_HASH_TRILL_FIELD_SRCPORT BCM_HASH_FIELD_SRCPORT /* Souce port ID. */ 5645 #define BCM_HASH_TRILL_FIELD_VLAN 0x00000010 /* VLAN ID. */ 5646 #define BCM_HASH_TRILL_FIELD_ETHER_TYPE 0x00000020 /* Ether type. */ 5647 #define BCM_HASH_TRILL_FIELD_MACDA_LO 0x00000040 /* MAC destination 5648 address lower 16 bits. */ 5649 #define BCM_HASH_TRILL_FIELD_MACDA_MI 0x00000080 /* MAC destination 5650 address middle 16 5651 bits. */ 5652 #define BCM_HASH_TRILL_FIELD_MACSA_LO 0x00000100 /* MAC source address 5653 lower 16 bits. */ 5654 #define BCM_HASH_TRILL_FIELD_MACSA_MI 0x00000200 /* MAC source address 5655 middle 16 bits. */ 5656 #define BCM_HASH_TRILL_FIELD_ING_RBRIDGE_NAME 0x00000400 /* Ingress RBridge 5657 Nickname. */ 5658 #define BCM_HASH_TRILL_FIELD_EGR_RBRIDGE_NAME 0x00000800 /* Egress RBridge 5659 Nickname. */ 5660 5661 /* Stacking mode select. */ 5662 #define BCM_MIRROR_STACK_MODE_XGS3 0 /* Stacking with BCM5650x 5663 (BCM5610x, BCM5630x). */ 5664 #define BCM_MIRROR_STACK_MODE_XGS1 1 /* Stacking with BCM5670. */ 5665 #define BCM_MIRROR_STACK_MODE_XGS2 2 /* Stacking with BCM5675-A0. */ 5666 5667 #define BCM_COLOR_PRIORITY 0 /* Priority->COLOR mapping. */ 5668 #define BCM_COLOR_OUTER_CFI 1 /* SPVLAN CFI->COLOR mapping. */ 5669 #define BCM_COLOR_INNER_CFI 2 /* CVLAN CFI->COLOR mapping. */ 5670 5671 #define BCM_HASH_MPLS_LABEL_NONE 0 /* Normal processing for MPLS 5672 label stack, i.e. hash 5673 according to forwarding 5674 header configuration. */ 5675 #define BCM_HASH_MPLS_LABEL_BOS_START 1 /* Hashing from BOS label, 5676 skipping all other label. */ 5677 #define BCM_HASH_MPLS_LABEL_BOS_SKIP 2 /* Hashing from header next 5678 to BOS label, skipping all 5679 MPLS labels. */ 5680 5681 /* IGM/MLD Action select. */ 5682 #define BCM_SWITCH_FORWARD 0x00000001 5683 #define BCM_SWITCH_FLOOD 0x00000002 5684 #define BCM_SWITCH_DROP 0x00000004 5685 #define BCM_SWITCH_CPU 0x00000008 5686 5687 /* Switch features bypass mode */ 5688 #define BCM_SWITCH_BYPASS_NONE 0 /* No switch logic bypassed. */ 5689 #define BCM_SWITCH_BYPASS_L3_ONLY 1 /* L3 switch logic bypassed. */ 5690 #define BCM_SWITCH_BYPASS_L3_AND_FP 2 /* L3 and FP switch logic 5691 bypassed. */ 5692 5693 /* Switch Remote CPU packet encapsulation priority mapping options. */ 5694 #define BCM_SWITCH_REMOTE_CPU_ENCAP_IEEE 0x00000001 /* Use 802.1P Priority 5695 mapping for Remote CPU 5696 packet encapsulation. */ 5697 #define BCM_SWITCH_REMOTE_CPU_ENCAP_HIGIG2 0x00000002 /* Use module header 5698 traffic class mapping 5699 for Remote CPU packet 5700 encapsulation. */ 5701 #define BCM_SWITCH_REMOTE_CPU_ENCAP_IEEE_CPU_TC 0x00000004 /* Use status header 5702 traffic class mapping 5703 for Remote CPU packet 5704 encapsulation. */ 5705 5706 /* Switch features filter bypass control modes */ 5707 #define BCM_FILTER_NONE _SHR_SWITCH_FILTER_NONE /* No switch filter bypass. */ 5708 #define BCM_FILTER_RX_CRCCHK _SHR_SWITCH_FILTER_RX_CRCCHK /* RX filter bypass CRC check. */ 5709 #define BCM_FILTER_DOS_TOCPU _SHR_SWITCH_FILTER_DOS_TOCPU /* DOS filter bypass at the frame 5710 to CPU. */ 5711 #define BCM_FILTER_STP_USERADDR _SHR_SWITCH_FILTER_STP_USERADDR /* STP filter bypass L2 User 5712 address. */ 5713 #define BCM_FILTER_STP_MAC0X _SHR_SWITCH_FILTER_STP_MAC0X /* STP filter bypass the frame at 5714 MAC=0180c2-00000x. */ 5715 #define BCM_FILTER_VLAN_IGMP_MLD _SHR_SWITCH_FILTER_VLAN_IGMP_MLD /* VLAN filter bypass IGMP and 5716 MLD. */ 5717 #define BCM_FILTER_VLAN_ARP_DHCP _SHR_SWITCH_FILTER_VLAN_ARP_DHCP /* VLAN filter bypass ARP and 5718 DHCP */ 5719 #define BCM_FILTER_VLAN_MIIM _SHR_SWITCH_FILTER_VLAN_MIIM /* VLAN filter bypass IMP ingress 5720 frame. */ 5721 #define BCM_FILTER_VLAN_MCAST _SHR_SWITCH_FILTER_VLAN_MCAST /* VLAN filter bypass MCAST 5722 frame. */ 5723 #define BCM_FILTER_VLAN_RSV_MCAST _SHR_SWITCH_FILTER_VLAN_RSV_MCAST /* VLAN filter bypass Reserved 5724 MCAST frame. */ 5725 #define BCM_FILTER_VLAN_USERADDR _SHR_SWITCH_FILTER_VLAN_USERADDR /* VLAN filter bypass L2 User 5726 address. */ 5727 #define BCM_FILTER_EAP_USERADDR _SHR_SWITCH_FILTER_EAP_USERADDR /* EAP filter bypass L2 User 5728 address. */ 5729 #define BCM_FILTER_EAP_DHCP _SHR_SWITCH_FILTER_EAP_DHCP /* EAP filter bypass DHCP. */ 5730 #define BCM_FILTER_EAP_ARP _SHR_SWITCH_FILTER_EAP_ARP /* EAP filter bypass EAP and ARP. */ 5731 #define BCM_FILTER_EAP_MAC_22_2F _SHR_SWITCH_FILTER_EAP_MAC_22_2F /* EAP filter bypass the frame at 5732 MAC=0180c2-000021 to 5733 0180c2-00002F. */ 5734 #define BCM_FILTER_EAP_MAC_21 _SHR_SWITCH_FILTER_EAP_MAC_21 /* EAP filter bypass the frame at 5735 MAC=0180c2-000021. */ 5736 #define BCM_FILTER_EAP_MAC_20 _SHR_SWITCH_FILTER_EAP_MAC_20 /* EAP filter bypass the frame at 5737 MAC=0180c2-000020. */ 5738 #define BCM_FILTER_EAP_MAC_11_1F _SHR_SWITCH_FILTER_EAP_MAC_11_1F /* EAP filter bypass the frame at 5739 MAC=0180c2-000011 to 5740 0180c2-00001F. */ 5741 #define BCM_FILTER_EAP_MAC_10 _SHR_SWITCH_FILTER_EAP_MAC_10 /* EAP filter bypass the frame at 5742 MAC=0180c2-000010. */ 5743 #define BCM_FILTER_EAP_MAC_0X _SHR_SWITCH_FILTER_EAP_MAC_0X /* EAP filter bypass the frame at 5744 MAC=0180c2-00000x. */ 5745 #define BCM_FILTER_EAP_BPDU _SHR_SWITCH_FILTER_EAP_BPDU /* EAP filter bypass BPDU frame. */ 5746 #define BCM_FILTER_CONTROL_COUNT _SHR_SWITCH_FILTER_CONTROL_COUNT /* The count of filter bypass 5747 control items. */ 5748 5749 /* LED functions group */ 5750 #define BCM_LED_FUNCGRP_0 _SHR_SWITCH_LED_FUNCGRP_0 5751 #define BCM_LED_FUNCGRP_1 _SHR_SWITCH_LED_FUNCGRP_1 5752 5753 /* LED function items */ 5754 #define BCM_LED_FUNC_NONE _SHR_SWITCH_LED_FUNC_NONE 5755 #define BCM_LED_FUNC_PHYLED4 _SHR_SWITCH_LED_FUNC_PHYLED4 5756 #define BCM_LED_FUNC_LNK _SHR_SWITCH_LED_FUNC_LNK 5757 #define BCM_LED_FUNC_DPX _SHR_SWITCH_LED_FUNC_DPX 5758 #define BCM_LED_FUNC_ACT _SHR_SWITCH_LED_FUNC_ACT 5759 #define BCM_LED_FUNC_COL _SHR_SWITCH_LED_FUNC_COL 5760 #define BCM_LED_FUNC_LINK_ACT _SHR_SWITCH_LED_FUNC_LINK_ACT 5761 #define BCM_LED_FUNC_DPX_COL _SHR_SWITCH_LED_FUNC_DPX_COL 5762 #define BCM_LED_FUNC_SP_10 _SHR_SWITCH_LED_FUNC_SP_10 5763 #define BCM_LED_FUNC_SP_100 _SHR_SWITCH_LED_FUNC_SP_100 5764 #define BCM_LED_FUNC_SP_1G _SHR_SWITCH_LED_FUNC_SP_1G 5765 #define BCM_LED_FUNC_10_ACT _SHR_SWITCH_LED_FUNC_10_ACT 5766 #define BCM_LED_FUNC_100_ACT _SHR_SWITCH_FILTER_EAP_DHCP 5767 #define BCM_LED_FUNC_10_100_ACT _SHR_SWITCH_LED_FUNC_10_100_ACT 5768 #define BCM_LED_FUNC_1G_ACT _SHR_SWITCH_LED_FUNC_1G_ACT 5769 #define BCM_LED_FUNC_EAV_LINK _SHR_SWITCH_LED_FUNC_EAV_LINK 5770 #define BCM_LED_FUNC_PHYLED3 _SHR_SWITCH_LED_FUNC_PHYLED3 5771 #define BCM_LED_FUNC_SP_100_200 _SHR_SWITCH_LED_FUNC_SP_100_200 5772 #define BCM_LED_FUNC_100_200_ACT _SHR_SWITCH_LED_FUNC_100_200_ACT 5773 #define BCM_LED_FUNC_SP_LNK_ACT_SP _SHR_SWITCH_LED_FUNC_LNK_ACT_SP 5774 5775 /* LED working mode */ 5776 #define BCM_LED_MODE_OFF _SHR_SWITCH_LED_MODE_OFF 5777 #define BCM_LED_MODE_ON _SHR_SWITCH_LED_MODE_ON 5778 #define BCM_LED_MODE_BLINK _SHR_SWITCH_LED_MODE_BLINK 5779 #define BCM_LED_MODE_AUTO _SHR_SWITCH_LED_MODE_AUTO 5780 5781 /* types for bcmSwitchL2LearnMode */ 5782 #define BCM_L2_INGRESS_CENT 0x1 /* Ingress and Centralized 5783 Learning */ 5784 #define BCM_L2_INGRESS_DIST 0x2 /* Ingress and Centralized 5785 Learning */ 5786 #define BCM_L2_EGRESS_DIST 0x4 /* Egress and Distributed 5787 Learning */ 5788 #define BCM_L2_EGRESS_CENT 0x8 /* Egress and Centralized 5789 Learning */ 5790 #define BCM_L2_EGRESS_INDEPENDENT 0x10 /* Egress and Independent 5791 Learning */ 5792 #define BCM_L2_LEARN_CPU 0x20 /* Learning events handled by CPU */ 5793 #define BCM_L2_LEARN_DISABLE 0x40 /* Disabled learning */ 5794 5795 /* Hashing function enumeration. */ 5796 typedef enum bcm_switch_hash_config_e { 5797 BCM_HASH_CONFIG_NONE = 1, /* Indication to not hash */ 5798 BCM_HASH_CONFIG_CRC8_0x14D = 2, /* CRC8 with 0x14D polynomial */ 5799 BCM_HASH_CONFIG_CRC8_0x1C3 = 3, /* CRC8 with 0x1C3 polynomial */ 5800 BCM_HASH_CONFIG_CRC8_0x1CF = 4, /* CRC8 with 0x1CF polynomial */ 5801 BCM_HASH_CONFIG_CRC16_0x17111 = 5, /* CRC16 with 0x17111 polynomial */ 5802 BCM_HASH_CONFIG_CRC16_0x10491 = 6, /* CRC16 with 0x10491 polynomial */ 5803 BCM_HASH_CONFIG_CRC16_0x155F5 = 7, /* CRC16 with 0x155F5 polynomial */ 5804 BCM_HASH_CONFIG_CRC16_0x1013D = 8, /* CRC16 with 0x1013D polynomial */ 5805 BCM_HASH_CONFIG_CRC16_0x13965 = 9, /* CRC16 with 0x13965 polynomial */ 5806 BCM_HASH_CONFIG_CRC16_0x1698D = 10, /* CRC16 with 0x1698D polynomial */ 5807 BCM_HASH_CONFIG_CRC16_0x1105D = 11, /* CRC16 with 0x1105D polynomial */ 5808 BCM_HASH_CONFIG_CRC16_0x10861 = 12, /* CRC16 with 0x10861 polynomial */ 5809 BCM_HASH_CONFIG_CRC16_0x10285 = 13, /* CRC16 with 0x10285 polynomial */ 5810 BCM_HASH_CONFIG_CRC16_0x101a1 = 14, /* CRC16 with 0x101a1 polynomial */ 5811 BCM_HASH_CONFIG_CRC16_0x12499 = 15, /* CRC16 with 0x12499 polynomial */ 5812 BCM_HASH_CONFIG_CRC16_0x1f801 = 16, /* CRC16 with 0x1f801 polynomial */ 5813 BCM_HASH_CONFIG_CRC16_0x172e1 = 17, /* CRC16 with 0x172e1 polynomial */ 5814 BCM_HASH_CONFIG_CRC16_0x1eb21 = 18, /* CRC16 with 0x1eb21 polynomial */ 5815 BCM_HASH_CONFIG_FP_DATA = 19, /* Use only data calculated by FP */ 5816 BCM_HASH_CONFIG_ROUND_ROBIN = 20, /* Round robin between ports per packet */ 5817 BCM_HASH_CONFIG_CLOCK_BASED = 21, /* Result based in clock (random) */ 5818 BCM_HASH_CONFIG_CRC16_0x8003 = 22, /* CRC16 with 0x8003 polynomial */ 5819 BCM_HASH_CONFIG_CRC16_0x8011 = 23, /* CRC16 with 0x8011 polynomial */ 5820 BCM_HASH_CONFIG_CRC16_0x8423 = 24, /* CRC16 with 0x8423 polynomial */ 5821 BCM_HASH_CONFIG_CRC16_0x8101 = 25, /* CRC16 with 0x8101 polynomial */ 5822 BCM_HASH_CONFIG_CRC16_0x84a1 = 26, /* CRC16 with 0x84a1 polynomial */ 5823 BCM_HASH_CONFIG_CRC16_0x9019 = 27, /* CRC16 with 0x9019 polynomial */ 5824 BCM_HASH_CONFIG_CRC16_0x1015d = 28, /* CRC16 with 0x1015d polynomial */ 5825 BCM_HASH_CONFIG_CRC16_0x100d7 = 29, /* CRC16 with 0x100d7 polynomial */ 5826 BCM_HASH_CONFIG_CRC16_0x10039 = 30, /* CRC16 with 0x10039 polynomial */ 5827 BCM_HASH_CONFIG_CRC16_0x10ac5 = 31, /* CRC16 with 0x10ac5 polynomial */ 5828 BCM_HASH_CONFIG_CRC16_0x109e7 = 32, /* CRC16 with 0x109e7 polynomial */ 5829 BCM_HASH_CONFIG_CRC16_0x10939 = 33, /* CRC16 with 0x10939 polynomial */ 5830 BCM_HASH_CONFIG_CRC16_0x12105 = 34, /* CRC16 with 0x12105 polynomial */ 5831 BCM_HASH_CONFIG_CRC16_0x1203d = 35, /* CRC16 with 0x1203d polynomial */ 5832 BCM_HASH_CONFIG_COUNT /* Must be last */ 5833 } bcm_switch_hash_config_t; 5834 5835 /* RTAG7 Hash Field Control selection of payload and tunnel fields. */ 5836 #define BCM_HASH_SELECT_INNER_L2 0x1 /* Select the inner L2 fields 5837 for hash fields selection. */ 5838 #define BCM_HASH_SELECT_OUTER_L2 0x2 /* Select the outer L2 fields 5839 for hash fields selection. */ 5840 #define BCM_HASH_SELECT_INNER_L3 0x3 /* Select the inner L3 fields 5841 for hash fields selection. */ 5842 #define BCM_HASH_SELECT_OUTER_L3 0x4 /* Select the outer L3 fields 5843 for hash fields selection. */ 5844 #define BCM_HASH_SELECT_TUNNEL_INNER_L2 0x5 /* Select tunnel header and 5845 inner L2 fields for hash 5846 fields selection. */ 5847 5848 /* IPv6 Collapse Methods for RTAG7 Hashing */ 5849 #define BCM_HASH_IP6_COLLAPSE_XOR 0x1 /* Select XOR method to collapse 5850 IPv6 Addresses for RTAG7 5851 hashing in field selection 5852 block */ 5853 #define BCM_HASH_IP6_COLLAPSE_LSB 0x2 /* Select LSB method to collapse 5854 IPv6 Addresses for RTAG7 5855 hashing in field selection 5856 block */ 5857 5858 /* IPSec selection for RTAG7 Hashing */ 5859 #define BCM_HASH_IPSEC_SELECT_OUTER_L4_PORT 0x1 /* Select OUTER 5860 L4_SRC/DST_PORT for 5861 RTAG7 hashing in field 5862 selection block */ 5863 #define BCM_HASH_IPSEC_SELECT_SPI 0x2 /* Select IPv6 SPI for 5864 RTAG7 hashing in field 5865 selection block */ 5866 5867 /* header selection for trunk hashing */ 5868 #define BCM_HASH_HEADER_FORWARD 0x00000001 /* Select the forward header as 5869 starting header for hashing */ 5870 #define BCM_HASH_HEADER_TERMINATED 0x00000002 /* Select the last terminated 5871 header as starting header for 5872 hashing */ 5873 5874 /* Symmetric hash field selection. */ 5875 #define BCM_SYMMETRIC_HASH_0_IP4_ENABLE 0x00000001 /* Enable symmetric key 5876 hashing on Hash A for 5877 IPV4 packets. */ 5878 #define BCM_SYMMETRIC_HASH_1_IP4_ENABLE 0x00000002 /* Enable symmetric key 5879 hashing on Hash B for 5880 IPV4 packets. */ 5881 #define BCM_SYMMETRIC_HASH_0_IP6_ENABLE 0x00000004 /* Enable symmetric key 5882 hashing on Hash A for 5883 IPV6 packets. */ 5884 #define BCM_SYMMETRIC_HASH_1_IP6_ENABLE 0x00000008 /* Enable symmetric key 5885 hashing on Hash B for 5886 IPV6 packets. */ 5887 #define BCM_SYMMETRIC_HASH_0_SUPPRESS_UNIDIR_FIELD_ENABLE 0x00000010 /* Enable setting SPI, 5888 TEID, L2 GRE Key to 5889 zero for Hash A 5890 calculation. */ 5891 #define BCM_SYMMETRIC_HASH_1_SUPPRESS_UNIDIR_FIELD_ENABLE 0x00000020 /* Enable setting SPI, 5892 TEID, L2 GRE Key to 5893 zero for Hash B 5894 calculation. */ 5895 #define BCM_SYMMETRIC_HASH_0_FCOE_ENABLE 0x00000040 /* Enable symmetric key 5896 hashing on Hash A for 5897 FCoE packets. */ 5898 #define BCM_SYMMETRIC_HASH_1_FCOE_ENABLE 0x00000080 /* Enable symmetric key 5899 hashing on Hash B for 5900 FCoE packets. */ 5901 5902 /* Switch Event Control for event selection */ 5903 #define BCM_SWITCH_EVENT_CONTROL_ALL (-1) /* Selects All 5904 interrupts-causes. */ 5905 5906 /* Switch event action controls. */ 5907 typedef enum bcm_switch_event_control_action_e { 5908 bcmSwitchEventMask = _SHR_SWITCH_EVENT_MASK, /* Mask (disable) or unmask (enable) the 5909 event */ 5910 bcmSwitchEventClear = _SHR_SWITCH_EVENT_CLEAR, /* Clear the event */ 5911 bcmSwitchEventRead = _SHR_SWITCH_EVENT_READ, /* read the event */ 5912 bcmSwitchEventForce = _SHR_SWITCH_EVENT_FORCE, /* Activate/diactivate forcing the event */ 5913 bcmSwitchEventStormTimedCount = _SHR_SWITCH_EVENT_STORM_TIMED_COUNT, /* If more then 5914 bcmSwitchEventStormTimedCount 5915 interrupts occur in 5916 bcmSwitchEventStormTimedPeriod 5917 period, an interrupt storm is 5918 indicated (default hanling same as 5919 for bcmSwitchEventStormNominal 5920 threshold) */ 5921 bcmSwitchEventStormTimedPeriod = _SHR_SWITCH_EVENT_STORM_TIMED_PERIOD, /* If more then 5922 bcmSwitchEventStormTimedCount 5923 interrupts occur in 5924 bcmSwitchEventStormTimedPeriod 5925 period, an interrupt storm is 5926 indicated (default hanling same as 5927 for bcmSwitchEventStormNominal 5928 threshold) */ 5929 bcmSwitchEventStormNominal = _SHR_SWITCH_EVENT_STORM_NOMINAL, /* Nominal threshold for interrupt storm 5930 detection. If an interrupt occurs 5931 more times then the threshold, an 5932 interrupt storm is indicated. The 5933 default handling for such an 5934 interrupt is holding it in masked 5935 condition */ 5936 bcmSwitchEventPriority = _SHR_SWITCH_EVENT_PRIORITY, /* Change handling priority in case of 5937 multiple interrupts */ 5938 bcmSwitchEventLog = _SHR_SWITCH_EVENT_LOG, /* Activate/Diactivate log prints on 5939 event */ 5940 bcmSwitchEventStat = _SHR_SWITCH_EVENT_STAT, /* Enable to Clear/Read event statistics */ 5941 bcmSwitchEventCorrActOverride = _SHR_SWITCH_EVENT_CORR_ACT_OVERRIDE, /* Enable to override application 5942 callback */ 5943 bcmSwitchEventUnmaskAndClearDisable = _SHR_SWITCH_EVENT_UNMASK_AND_CLEAR_DISABLE, /* Skip clearing and enabling the 5944 asserted interrupt at the end of 5945 event corrective action */ 5946 bcmSwitchEventForceUnmask = _SHR_SWITCH_EVENT_FORCE_UNMASK /* Skip enable interrupt action for 5947 asserted interrupt at the end of 5948 event corrective action, if the 5949 interrupt is not cleared */ 5950 } bcm_switch_event_control_action_t; 5951 5952 /* Interrupt event operation */ 5953 typedef struct bcm_switch_event_control_s { 5954 int event_id; /* Event identifier, e.g. for interrupt 5955 event, device-specific enumerator per 5956 interrupt-cause. */ 5957 int index; /* If multi-instance blocks represent 5958 the specific block index. */ 5959 bcm_switch_event_control_action_t action; /* The action to perform on the 5960 indicated event. */ 5961 } bcm_switch_event_control_t; 5962 5963 #ifndef BCM_HIDE_DISPATCHABLE 5964 5965 /* Set event control. */ 5966 extern int bcm_switch_event_control_set( 5967 int unit, 5968 bcm_switch_event_t event, 5969 bcm_switch_event_control_t type, 5970 uint32 value); 5971 5972 /* Get event control. */ 5973 extern int bcm_switch_event_control_get( 5974 int unit, 5975 bcm_switch_event_t event, 5976 bcm_switch_event_control_t type, 5977 uint32 *value); 5978 5979 #endif /* BCM_HIDE_DISPATCHABLE */ 5980 5981 typedef enum bcm_switch_bst_tracking_mode_e { 5982 bcmSwitchBstTrackCurrent = 0, /* Track the current usage. */ 5983 bcmSwitchBstTrackPeak = 1 /* Track the peak usage. */ 5984 } bcm_switch_bst_tracking_mode_t; 5985 5986 /* Split Horizon network group configuration flags */ 5987 #define BCM_SWITCH_NETWORK_GROUP_MCAST_REMAP_ENABLE 0x00000001 5988 #define BCM_SWITCH_NETWORK_GROUP_INGRESS_PRUNE_ENABLE 0x00000002 5989 #define BCM_SWITCH_NETWORK_GROUP_EGRESS_PRUNE_ENABLE 0x00000004 5990 5991 /* Split Horizon destination network group configuration information */ 5992 typedef struct bcm_switch_network_group_config_s { 5993 bcm_switch_network_group_t dest_network_group_id; /* Split Horizon Destination Network 5994 Group Identifier */ 5995 uint32 config_flags; /* BCM_SWITCH_NETWORK_GROUP_XXX flags */ 5996 } bcm_switch_network_group_config_t; 5997 5998 /* Initialize a bcm_switch_network_group_config_t structure. */ 5999 extern void bcm_switch_network_group_config_t_init( 6000 bcm_switch_network_group_config_t *config); 6001 6002 #ifndef BCM_HIDE_DISPATCHABLE 6003 6004 /* 6005 * Configures the split horizon network group configuration for a given 6006 * pair of source and destination network group. 6007 */ 6008 extern int bcm_switch_network_group_config_set( 6009 int unit, 6010 bcm_switch_network_group_t source_network_group_id, 6011 bcm_switch_network_group_config_t *config); 6012 6013 /* 6014 * Gets the split horizon network group configuration for a given pair of 6015 * source and destination network group. 6016 */ 6017 extern int bcm_switch_network_group_config_get( 6018 int unit, 6019 bcm_switch_network_group_t source_network_group_id, 6020 bcm_switch_network_group_config_t *config); 6021 6022 #endif /* BCM_HIDE_DISPATCHABLE */ 6023 6024 /* User buffer type. */ 6025 typedef enum bcm_switch_user_buffer_type_e { 6026 bcmSwitchUserBufferTypeDram = 0 /* Dram User Buffer. */ 6027 } bcm_switch_user_buffer_type_t; 6028 6029 #ifndef BCM_HIDE_DISPATCHABLE 6030 6031 /* Writes data to the user buffer */ 6032 extern int bcm_switch_user_buffer_write( 6033 int unit, 6034 uint32 flags, 6035 bcm_switch_user_buffer_type_t buff_type, 6036 uint8 *buf, 6037 int offset, 6038 int nbytes); 6039 6040 /* Reads data from the user buffer */ 6041 extern int bcm_switch_user_buffer_read( 6042 int unit, 6043 uint32 flags, 6044 bcm_switch_user_buffer_type_t buff_type, 6045 uint8 *buf, 6046 int offset, 6047 int nbytes); 6048 6049 #endif /* BCM_HIDE_DISPATCHABLE */ 6050 6051 /* header selection for trunk hashing */ 6052 #define BCM_SWITCH_USER_BUFFER_LOGICAL2PHY_TRANS 0x00000001 /* User buffer flag for 6053 using logical to 6054 physical translation, 6055 instead of using 6056 logical adresses */ 6057 6058 #ifndef BCM_HIDE_DISPATCHABLE 6059 6060 /* Sets Ipv6 reserved multicast address and mask of the device. */ 6061 extern int bcm_switch_ipv6_reserved_multicast_addr_set( 6062 int unit, 6063 bcm_ip6_t ip6_addr, 6064 bcm_ip6_t ip6_mask); 6065 6066 /* Gets Ipv6 reserved multicast address and mask of the device. */ 6067 extern int bcm_switch_ipv6_reserved_multicast_addr_get( 6068 int unit, 6069 bcm_ip6_t *ip6_addr, 6070 bcm_ip6_t *ip6_mask); 6071 6072 /* Set/get multiple ipv6 reserved multicast address and mask. */ 6073 extern int bcm_switch_ipv6_reserved_multicast_addr_multi_set( 6074 int unit, 6075 int inner, 6076 int num, 6077 bcm_ip6_t *ip6_addr, 6078 bcm_ip6_t *ip6_mask); 6079 6080 /* Set/get multiple ipv6 reserved multicast address and mask. */ 6081 extern int bcm_switch_ipv6_reserved_multicast_addr_multi_get( 6082 int unit, 6083 int inner, 6084 int num, 6085 bcm_ip6_t *ip6_addr, 6086 bcm_ip6_t *ip6_mask); 6087 6088 #endif /* BCM_HIDE_DISPATCHABLE */ 6089 6090 typedef enum bcm_switch_object_e { 6091 bcmSwitchObjectL2EntryCurrent = 0, /* Statistics of current L2 Entry. */ 6092 bcmSwitchObjectVlanCurrent = 1, /* Statistics of current Vlan Entry. */ 6093 bcmSwitchObjectL3HostCurrent = 2, /* Statistics of current L3 Hosts. */ 6094 bcmSwitchObjectL3RouteCurrent = 3, /* Statistics of current L3 Routes. */ 6095 bcmSwitchObjectL3EgressCurrent = 4, /* Statistics of current L3 Egress 6096 objects. */ 6097 bcmSwitchObjectIpmcCurrent = 5, /* Statistics of current IP Multicast 6098 Objects. */ 6099 bcmSwitchObjectEcmpCurrent = 6, /* Statistics of current ECMP objects. */ 6100 bcmSwitchObjectL3RouteV4RoutesMax = 7, /* Maximum number of v4 routes possible */ 6101 bcmSwitchObjectL3RouteV4RoutesFree = 8, /* Maximum number of v4 routes that can 6102 be added in current state */ 6103 bcmSwitchObjectL3RouteV4RoutesUsed = 9, /* Used count of v4 routes */ 6104 bcmSwitchObjectL3RouteV6Routes64bMax = 10, /* Maximum number of 64bv6 routes 6105 possible */ 6106 bcmSwitchObjectL3RouteV6Routes64bFree = 11, /* Maximum number of 64bV6 routes that 6107 can be added in current state */ 6108 bcmSwitchObjectL3RouteV6Routes64bUsed = 12, /* Used count of 64bv6 routes */ 6109 bcmSwitchObjectL3RouteV6Routes128bMax = 13, /* Maximum number of 128bV6 routes 6110 possible */ 6111 bcmSwitchObjectL3RouteV6Routes128bFree = 14, /* Maximum number of 128bV6 routes that 6112 can be added in current state */ 6113 bcmSwitchObjectL3RouteV6Routes128bUsed = 15, /* Used count of 128bv6 routes */ 6114 bcmSwitchObjectL3RouteTotalUsedRoutes = 16, /* Sum of 44 + 64bv6 + 128bv6 routes */ 6115 bcmSwitchObjectIpmcHeadTableFree = 17, /* Number of free entries in the 6116 replication head table */ 6117 bcmSwitchObjectL3HostV4Used = 18, /* Statistics of L3 Hosts used by IPv4 */ 6118 bcmSwitchObjectL3HostV6Used = 19, /* Statistics of L3 Hosts used by IPv6 */ 6119 bcmSwitchObjectEcmpMax = 20, /* Maximum number of Ecmp groups 6120 possible */ 6121 bcmSwitchObjectPFCDeadlockCosMax = 21, /* Get the Max COS supported for PFC 6122 Deadlock detection and recovery. */ 6123 bcmSwitchObjectL3HostV4Max = 22, /* Maximum number of IPv4 routes 6124 possible in L3 host table. */ 6125 bcmSwitchObjectL3HostV6Max = 23, /* Maximum number of IPv6 routes 6126 possible in L3 host table. */ 6127 bcmSwitchObjectL3RouteV4RoutesMinGuaranteed = 24, /* Guaranteed number of IPv4 routes in 6128 ALPM mode. */ 6129 bcmSwitchObjectL3RouteV6Routes64bMinGuaranteed = 25, /* Guaranteed number of IPv6 64bits 6130 routes in ALPM mode. */ 6131 bcmSwitchObjectL3RouteV6Routes128bMinGuaranteed = 26, /* Guaranteed number of IPv6 128bits 6132 routes in ALPM mode. */ 6133 bcmSwitchObjectL3EgressMax = 27, /* Maximum number of L3 Egress objects 6134 possible. */ 6135 bcmSwitchObjectIpmcV4Used = 28, /* Statistics of used IPv4 Multicast 6136 entries. */ 6137 bcmSwitchObjectIpmcV6Used = 29, /* Statistics of used IPv6 Multicast 6138 entries. */ 6139 bcmSwitchObjectIpmcV4Max = 30, /* Maximum number of IPv4 Multicast 6140 entries possible. */ 6141 bcmSwitchObjectIpmcV6Max = 31, /* Maximum number of IPv6 Multicast 6142 entries possible. */ 6143 bcmSwitchObjectL2EntryMax = 32, /* Maximum number of L2 entries 6144 possible. */ 6145 bcmSwitchObjectL3HostUcV4Max = 33, /* Maximum number of L3 IPv4 unicast 6146 host entries possible. */ 6147 bcmSwitchObjectL3HostUcV6Max = 34, /* Maximum number of L3 IPv6 unicast 6148 host entries possible. */ 6149 bcmSwitchObjectL3HostUcV4Used = 35, /* Statistics number of used L3 IPv4 6150 unicast host entries. */ 6151 bcmSwitchObjectL3HostUcV6Used = 36, /* Statistics number of used L3 IPv6 6152 unicast host entries. */ 6153 bcmSwitchObjectIpmcSrcGroupV4Max = 37, /* Maximum number of L3 IPv4 (S, G) 6154 Multicast host entries possible. */ 6155 bcmSwitchObjectIpmcSrcGroupV6Max = 38, /* Maximum number of L3 IPv6 (S, G) 6156 Multicast host entries possible. */ 6157 bcmSwitchObjectIpmcSrcGroupV4Used = 39, /* Statistics number of used L3 IPv4 (S, 6158 G) Multicast host entries. */ 6159 bcmSwitchObjectIpmcSrcGroupV6Used = 40, /* Statistics number of used L3 IPv6 (S, 6160 G) Multicast host entries. */ 6161 bcmSwitchObjectIpmcGroupV4Max = 41, /* Maximum number of L3 IPv4 (*, G) 6162 Multicast host entries possible. */ 6163 bcmSwitchObjectIpmcGroupV6Max = 42, /* Maximum number of L3 IPv6 (*, G) 6164 Multicast host entries possible. */ 6165 bcmSwitchObjectIpmcGroupV4Used = 43, /* Statistics number of used L3 IPv4 (*, 6166 G) Multicast host entries. */ 6167 bcmSwitchObjectIpmcGroupV6Used = 44, /* Statistics number of used L3 IPv6 (*, 6168 G) Multicast host entries. */ 6169 bcmSwitchObjectL3RoutePrivateV4RouteProjection = 45, /* Projected maximum IPv4 private VRF 6170 routes in ALPM mode. */ 6171 bcmSwitchObjectL3RouteGlobalV4RouteProjection = 46, /* Projected maximum IPv4 global low 6172 routes in ALPM mode. */ 6173 bcmSwitchObjectL3RouteOverrideV4RouteProjection = 47, /* Projected maximum IPv4 override 6174 (global high) routes in ALPM mode. */ 6175 bcmSwitchObjectL3RoutePrivateV6RouteProjection = 48, /* Projected maximum IPv6 private VRF 6176 routes in ALPM mode. */ 6177 bcmSwitchObjectL3RouteGlobalV6RouteProjection = 49, /* Projected maximum IPv6 global low 6178 routes in ALPM mode. */ 6179 bcmSwitchObjectL3RouteOverrideV6RouteProjection = 50, /* Projected maximum IPv6 override 6180 (global high) routes in ALPM mode. */ 6181 bcmSwitchObjectCount /* Maximum object count. This is not an 6182 object and should always be in the 6183 last */ 6184 } bcm_switch_object_t; 6185 6186 #ifndef BCM_HIDE_DISPATCHABLE 6187 6188 /* Retrieving the statistics on the number of API objects. */ 6189 extern int bcm_switch_object_count_get( 6190 int unit, 6191 bcm_switch_object_t object, 6192 int *entries); 6193 6194 /* 6195 * Retrieving the statistics on the number of API objects. This retrieves 6196 * for multiple objects. 6197 */ 6198 extern int bcm_switch_object_count_multi_get( 6199 int unit, 6200 int object_size, 6201 bcm_switch_object_t *object_array, 6202 int *entries); 6203 6204 #endif /* BCM_HIDE_DISPATCHABLE */ 6205 6206 /* Services types. */ 6207 typedef enum bcm_switch_service_e { 6208 bcmServiceCounterCollection = 0, /* Counters collection service. */ 6209 bcmServiceRxLOS = 1, /* RX LOS service. */ 6210 bcmServiceCount /* Maximum object count. This is not an 6211 object and should always be in the 6212 last */ 6213 } bcm_switch_service_t; 6214 6215 /* Service enable configuration options. */ 6216 typedef enum bcm_switch_service_enabled_e { 6217 bcmServiceStateDisabled = 0, /* Service disabled. */ 6218 bcmServiceStateEnabled = 1, /* Service enabled. */ 6219 bcmServiceEnabledCount /* Maximum object count. This is not an 6220 object and should always be in the last */ 6221 } bcm_switch_service_enabled_t; 6222 6223 /* Service configuration structure. */ 6224 typedef struct bcm_switch_service_config_s { 6225 uint32 flags; /* Option flags. */ 6226 bcm_switch_service_enabled_t enabled; /* Service enable configuration. */ 6227 } bcm_switch_service_config_t; 6228 6229 /* Initialize a bcm_switch_service_config_t_init structure. */ 6230 extern void bcm_switch_service_config_t_init( 6231 bcm_switch_service_config_t *config); 6232 6233 #ifndef BCM_HIDE_DISPATCHABLE 6234 6235 /* Change/read configuration of specific service. */ 6236 extern int bcm_switch_service_set( 6237 int unit, 6238 bcm_switch_service_t service, 6239 bcm_switch_service_config_t *config); 6240 6241 /* Change/read configuration of specific service. */ 6242 extern int bcm_switch_service_get( 6243 int unit, 6244 bcm_switch_service_t service, 6245 bcm_switch_service_config_t *config); 6246 6247 #endif /* BCM_HIDE_DISPATCHABLE */ 6248 6249 /* MC queue group mode. */ 6250 typedef enum bcm_switch_control_mc_queue_config_mode_e { 6251 bcmSwitchMcUcPairGroupMode = 0, /* Each MC queue is paired with one UC queue */ 6252 bcmSwitchAllMcGroupMode = 1 /* All MC queues are grouped together */ 6253 } bcm_switch_control_mc_queue_config_mode_t; 6254 6255 /* Flags for bcm_switch_l3_protocol_group_set / get */ 6256 #define BCM_SWITCH_L3_PROTOCOL_GROUP_NONE 0x0000 /* No protocols in this 6257 group */ 6258 #define BCM_SWITCH_L3_PROTOCOL_GROUP_IPV4 0x0001 /* Add IPv4 to the group. */ 6259 #define BCM_SWITCH_L3_PROTOCOL_GROUP_IPV6 0x0002 /* Add IPv6 to the group. */ 6260 #define BCM_SWITCH_L3_PROTOCOL_GROUP_ARP 0x0004 /* Add ARP to the group. */ 6261 #define BCM_SWITCH_L3_PROTOCOL_GROUP_MPLS 0x0008 /* Add MPLS to the group. */ 6262 #define BCM_SWITCH_L3_PROTOCOL_GROUP_MIM 0x0010 /* Add MiM to the group. */ 6263 #define BCM_SWITCH_L3_PROTOCOL_GROUP_TRILL 0x0020 /* Add trill to the 6264 group. */ 6265 #define BCM_SWITCH_L3_PROTOCOL_GROUP_FCOE 0x0040 /* Add FCOE to the group. */ 6266 6267 /* 6268 * Protocol group to which l3 protocols will be mapped for multiple mymac 6269 * termination 6270 */ 6271 typedef uint32 bcm_l3_protocol_group_id_t; 6272 6273 #ifndef BCM_HIDE_DISPATCHABLE 6274 6275 /* Assign/get protocol groups for multiple mymac termination */ 6276 extern int bcm_switch_l3_protocol_group_set( 6277 int unit, 6278 uint32 group_members, 6279 bcm_l3_protocol_group_id_t group_id); 6280 6281 /* Assign/get protocol groups for multiple mymac termination */ 6282 extern int bcm_switch_l3_protocol_group_get( 6283 int unit, 6284 uint32 *group_members, 6285 bcm_l3_protocol_group_id_t *group_id); 6286 6287 #endif /* BCM_HIDE_DISPATCHABLE */ 6288 6289 /* profile mapping type. */ 6290 typedef enum bcm_switch_profile_mapping_type_e { 6291 bcmCosqIngressQueueToRateClass = 0, /* ingress queue to rate class mapping */ 6292 bcmCosqIngressQueuesToLatencyProfile = 1, /* ingress queues to ingress latency 6293 profile mapping */ 6294 bcmCosqPortToEndToEndLatencyProfile = 2 /* destination local port to end to end 6295 latency profile mapping */ 6296 } bcm_switch_profile_mapping_type_t; 6297 6298 /* profile mapping struct. */ 6299 typedef struct bcm_switch_profile_mapping_s { 6300 bcm_switch_profile_mapping_type_t profile_type; /* The type of profile to be mapped to. */ 6301 bcm_gport_t mapped_profile; /* mapped profile handle */ 6302 } bcm_switch_profile_mapping_t; 6303 6304 /* Initialize a bcm_switch_profile_mapping_t structure */ 6305 extern void bcm_switch_profile_mapping_t_init( 6306 bcm_switch_profile_mapping_t *profile_mapping); 6307 6308 /* Global TPID type. */ 6309 typedef enum bcm_switch_tpid_type_e { 6310 bcmTpidTypeOuter = 0, /* Global Outer TPID */ 6311 bcmTpidTypeInner = 1, /* Global Inner TPID */ 6312 bcmTpidTypeVntag = 2, /* Global TPID for Vntag */ 6313 bcmTpidTypeEtag = 3, /* Global TPID for Etag */ 6314 bcmTpidTypeCapwapPayloadOuter = 4, /* Global Outer TPID of CAPWAP wireless 6315 payload */ 6316 bcmTpidTypeCapwapPayloadInner = 5, /* Global Inner TPID of CAPWAP wireless 6317 payload */ 6318 bcmTpidTypeL2TunnelPayloadInner = 6, /* Global Inner TPID of L2 Tunnel 6319 payload */ 6320 bcmTpidTypeMimPayloadOuter = 7, /* Matched TPID of Transit MIM Payload 6321 for Parser */ 6322 bcmTpidTypeVxlanPayloadOuter = 8, /* Matched TPID of Transit VXLAN Payload 6323 for Parser */ 6324 bcmTpidTypeL2grePayloadOuter = 9, /* Matched TPID of Transit L2GRE Payload 6325 for Parser */ 6326 bcmTpidTypeVxlanPayloadInner = 10, /* Matched inner TPID of Transit VXLAN 6327 Payload for Parser */ 6328 bcmTpidTypeItag = 11, /* Global TPID value for I-Tag */ 6329 bcmTpidTypeCount = 12 /* Always Last, not a usable value */ 6330 } bcm_switch_tpid_type_t; 6331 6332 /* Global TPID information */ 6333 typedef struct bcm_switch_tpid_info_s { 6334 bcm_switch_tpid_type_t tpid_type; /* The type of TPID to be set */ 6335 uint16 tpid_value; /* The value of TPID to be set */ 6336 uint32 flags; /* Future expansion, BCM_SWITCH_TPID_XXX 6337 flags */ 6338 int color; /* Color mode for TPID */ 6339 } bcm_switch_tpid_info_t; 6340 6341 /* Global TPID information flags */ 6342 #define BCM_SWITCH_TPID_VALUE_INVALID 0x0000 /* TPID value 0x0000 is not 6343 valid. See the Programming 6344 Guide PP document for full 6345 details */ 6346 6347 #ifndef BCM_HIDE_DISPATCHABLE 6348 6349 /* Add a global TPID. */ 6350 extern int bcm_switch_tpid_add( 6351 int unit, 6352 uint32 options, 6353 bcm_switch_tpid_info_t *tpid_info); 6354 6355 /* Delete a global TPID. */ 6356 extern int bcm_switch_tpid_delete( 6357 int unit, 6358 bcm_switch_tpid_info_t *tpid_info); 6359 6360 /* Delete all global TPIDs. */ 6361 extern int bcm_switch_tpid_delete_all( 6362 int unit); 6363 6364 /* Get a global TPID. */ 6365 extern int bcm_switch_tpid_get( 6366 int unit, 6367 bcm_switch_tpid_info_t *tpid_info); 6368 6369 /* Get global TPID count or TPIDs. */ 6370 extern int bcm_switch_tpid_get_all( 6371 int unit, 6372 int size, 6373 bcm_switch_tpid_info_t *tpid_info_array, 6374 int *count); 6375 6376 #endif /* BCM_HIDE_DISPATCHABLE */ 6377 6378 /* TPID class match type. */ 6379 typedef enum bcm_switch_tpid_class_match_e { 6380 bcmSwitchTpidClassMatchPort = 0, /* tpid_class_id from port. */ 6381 bcmSwitchTpidClassMatchIngVlanActionId = 1, /* tpid_class_id from Ingress vlan 6382 translation action id */ 6383 bcmSwitchTpidClassMatch_Count = 2 /* Number of match criterion */ 6384 } bcm_switch_tpid_class_match_t; 6385 6386 /* TPID class retrieval information */ 6387 typedef struct bcm_switch_tpid_class_s { 6388 uint32 flags; /* BCM_SWITCH_TPID_CLASS_XXX, unused 6389 now. */ 6390 bcm_switch_tpid_class_match_t match; /* Match criteria for tpid_class_id */ 6391 bcm_gport_t port; /* Port ID */ 6392 int vlan_translation_action_id; /* Vlan Translation action ID */ 6393 uint32 tpid_class_id; /* TPID-profile */ 6394 } bcm_switch_tpid_class_t; 6395 6396 /* Initialize a bcm_switch_tpid_class_t structure. */ 6397 extern void bcm_switch_tpid_class_t_init( 6398 bcm_switch_tpid_class_t *tpid_class); 6399 6400 #ifndef BCM_HIDE_DISPATCHABLE 6401 6402 /* 6403 * Get the tpid profile from a given port or ingress vlan translation 6404 * action ID. 6405 */ 6406 extern int bcm_switch_tpid_class_get( 6407 int unit, 6408 bcm_switch_tpid_class_t *tpid_class); 6409 6410 #endif /* BCM_HIDE_DISPATCHABLE */ 6411 6412 /* packet trace lookup result enums */ 6413 typedef enum bcm_switch_pkt_trace_lookup_e { 6414 bcmSwitchPktTraceLookupInvalid = 0, 6415 bcmSwitchPktTraceLookupFirstVlanTranslationHit = 1, 6416 bcmSwitchPktTraceLookupSecondVlanTranslationHit = 2, 6417 bcmSwitchPktTraceLookupForwardingVlanValid = 3, 6418 bcmSwitchPktTraceLookupL2SrcHit = 6, 6419 bcmSwitchPktTraceLookupL2SrcStatic = 7, 6420 bcmSwitchPktTraceLookupL2DstHit = 8, 6421 bcmSwitchPktTraceLookupL2CacheHit = 9, 6422 bcmSwitchPktTraceLookupL3SrcHostHit = 10, 6423 bcmSwitchPktTraceLookupL3DestHostHit = 11, 6424 bcmSwitchPktTraceLookupL3DestRouteHit = 12, 6425 bcmSwitchPktTraceLookupL2SrcMiss = 13, 6426 bcmSwitchPktTraceLookupDosAttack = 14, 6427 bcmSwitchPktTraceLookupIpTunnelHit = 15, 6428 bcmSwitchPktTraceLookupMplsLabel1Hit = 16, 6429 bcmSwitchPktTraceLookupMplsLabel2Hit = 17, 6430 bcmSwitchPktTraceLookupMplsTerminated = 18, 6431 bcmSwitchPktTraceLookupMystationHit = 19, 6432 bcmSwitchPktTraceLookupCount = 20 6433 } bcm_switch_pkt_trace_lookup_t; 6434 6435 /* lookup result set bit map */ 6436 typedef struct bcm_switch_pkt_trace_lookup_result_s { 6437 SHR_BITDCL pkt_trace_status_bitmap[_SHR_BITDCLSIZE(bcmSwitchPktTraceLookupCount)]; /* bit map for packet trace lookup 6438 result set */ 6439 } bcm_switch_pkt_trace_lookup_result_t; 6440 6441 /* packet trace resolution enums */ 6442 typedef enum bcm_switch_pkt_trace_resolution_e { 6443 bcmSwitchPktTraceResolutionUnkown = 0, 6444 bcmSwitchPktTraceResolutionControlPkt = 1, /* 1 */ 6445 bcmSwitchPktTraceResolutionOamPkt = 2, 6446 bcmSwitchPktTraceResolutionBfdPkt = 3, 6447 bcmSwitchPktTraceResolutionBpduPkt = 4, 6448 bcmSwitchPktTraceResolution1588Pkt = 6, 6449 bcmSwitchPktTraceResolutionKnownL2UcPkt = 8, 6450 bcmSwitchPktTraceResolutionUnknownL2UcPkt = 9, 6451 bcmSwitchPktTraceResolutionKnownL2McPkt = 10, 6452 bcmSwitchPktTraceResolutionUnknownL2McPkt = 11, 6453 bcmSwitchPktTraceResolutionL2BcPkt = 12, 6454 bcmSwitchPktTraceResolutionKnownL3UcPkt = 16, 6455 bcmSwitchPktTraceResolutionUnknownL3UcPkt = 17, 6456 bcmSwitchPktTraceResolutionKnownIpmcPkt = 18, 6457 bcmSwitchPktTraceResolutionUnknownIpmcPkt = 19, 6458 bcmSwitchPktTraceResolutionKnownMplsL2Pkt = 24, 6459 bcmSwitchPktTraceResolutionUnknownMplsPkt = 25, 6460 bcmSwitchPktTraceResolutionKnownMplsL3Pkt = 26, 6461 bcmSwitchPktTraceResolutionKnownMplsPkt = 28, 6462 bcmSwitchPktTraceResolutionKnownMimPkt = 32, 6463 bcmSwitchPktTraceResolutionUnknownMimPkt = 33, 6464 bcmSwitchPktTraceResolutionKnownTrillPkt = 40, 6465 bcmSwitchPktTraceResolutionUnknownTrillPkt = 41, 6466 bcmSwitchPktTraceResolutionKnownNivPkt = 48, 6467 bcmSwitchPktTraceResolutionUnknownNivPkt = 49, 6468 bcmSwitchPktTraceResolutionKnownL2GrePkt = 50, 6469 bcmSwitchPktTraceResolutionKnownVxlanPkt = 51, 6470 bcmSwitchPktTraceResolutionKnownFCOEPkt = 52, 6471 bcmSwitchPktTraceResolutionUnknownFCOEPkt = 53, 6472 bcmSwitchPktTraceResolutionCount = 54 6473 } bcm_switch_pkt_trace_resolution_t; 6474 6475 #define BCM_SWITCH_PKT_TRACE_ECMP_1 0x0001 /* level 1 ecmp hashing 6476 resolution done */ 6477 #define BCM_SWITCH_PKT_TRACE_ECMP_2 0x0002 /* level 2 ecmp hashing 6478 resolution done */ 6479 #define BCM_SWITCH_PKT_TRACE_TRUNK 0x0004 /* trunk hashing 6480 resolution done */ 6481 #define BCM_SWITCH_PKT_TRACE_FABRIC_TRUNK 0x0008 /* hg trunk hashing 6482 resolution done */ 6483 6484 /* packet hashing resolution information */ 6485 typedef struct bcm_switch_pkt_trace_hashing_info_s { 6486 uint32 flags; /* flag containing 6487 BCM_SWITCH_PKT_TRACE_ECMP/TRUNK/FABRIC_TRUNK, 6488 0 == no hashing resolution done */ 6489 bcm_if_t ecmp_1_group; /* multipath egress forwarding object. */ 6490 bcm_if_t ecmp_1_egress; /* ecmp destination interface */ 6491 bcm_if_t ecmp_2_group; /* multipath egress forwarding object. */ 6492 bcm_if_t ecmp_2_egress; /* ecmp destination interface */ 6493 bcm_gport_t trunk; /* destination trunk group */ 6494 bcm_gport_t trunk_member; /* destination member port which packet 6495 egress. */ 6496 bcm_gport_t fabric_trunk; /* destination hg trunk group */ 6497 bcm_gport_t fabric_trunk_member; /* destination member hg port which 6498 packet will egress. */ 6499 } bcm_switch_pkt_trace_hashing_info_t; 6500 6501 /* packet forward destination enums */ 6502 #define BCM_SWITCH_PKT_TRACE_FWD_DST_INVALID 0 /* Forward destination 6503 invalid. */ 6504 #define BCM_SWITCH_PKT_TRACE_FWD_DST_NH 0x0001 /* Forward destination 6505 Next hop egress 6506 object. */ 6507 #define BCM_SWITCH_PKT_TRACE_FWD_DST_L2MC 0x0002 /* Forward destination 6508 L2MC. */ 6509 #define BCM_SWITCH_PKT_TRACE_FWD_DST_IPMC 0x0004 /* Forward destination 6510 IPMC. */ 6511 #define BCM_SWITCH_PKT_TRACE_FWD_DST_DGPP 0x0008 /* Forward destination 6512 DGPP */ 6513 #define BCM_SWITCH_PKT_TRACE_FWD_DST_VLAN 0x0010 /* Forward destination 6514 VLAN */ 6515 #define BCM_SWITCH_PKT_TRACE_FWD_DST_DVP 0x0020 /* Forward destination 6516 DVP */ 6517 6518 /* packet forward destination information */ 6519 typedef struct bcm_switch_pkt_trace_fwd_dst_info_s { 6520 uint32 flags; /* flag containing 6521 BCM_SWITCH_PKT_TRACE_FWD_DST_NH/L2MC/IPMC/DGPP/DVP/VLAN/INVALID, 6522 0 == no forward destination resolution done */ 6523 bcm_if_t egress_intf; /* egress forwarding destination interface. */ 6524 bcm_multicast_t mc_group; /* Multicast group. */ 6525 bcm_gport_t port; /* DGPP - destination port. */ 6526 bcm_gport_t dvp; /* DVP - destination virtual port. */ 6527 bcm_vlan_t fwd_vlan; /* Destination forward vlan. */ 6528 } bcm_switch_pkt_trace_fwd_dst_info_t; 6529 6530 #define BCM_SWITCH_PKT_TRACE_DROP_REASON_MAX 4 /* drop reason bitmap 6531 length */ 6532 6533 /* packet trace drop reason enums */ 6534 typedef enum bcm_switch_pkt_trace_drop_reason_e { 6535 bcmSwitchPktTraceNoDrop = 0, /* No packet drop */ 6536 bcmSwitchPktTraceDropReasonInternal = 1, /* Packet dropped due to internal reason */ 6537 bcmSwitchPktTraceDropReasonMplsLabelLookupMiss = 2, /* Packet dropped due to MPLS label 6538 lookup miss */ 6539 bcmSwitchPktTraceDropReasonMplsInvalidAction = 3, /* Packet dropped due to MPLS invalid 6540 action */ 6541 bcmSwitchPktTraceDropReasonMplsInvalidPayload = 4, /* Packet dropped due to MPLS invalid 6542 payload */ 6543 bcmSwitchPktTraceDropReasonMplsTtlCheckFail = 5, /* Packet dropped due to MPLS TTL check 6544 fail */ 6545 bcmSwitchPktTraceDropReasonMplsInvalidControlWord = 6, /* Packet dropped due to MPLS invalid 6546 control word */ 6547 bcmSwitchPktTraceDropReasonL2greSipLookupMiss = 7, /* Packet dropped due to L2GRE SIP 6548 lookup miss */ 6549 bcmSwitchPktTraceDropReasonL2greVpnLookupMiss = 8, /* Packet dropped due to L2GRE VPNID 6550 lookup miss */ 6551 bcmSwitchPktTraceDropReasonL2greTunnelError = 9, /* Packet dropped due to L2GRE Tunnel 6552 Error */ 6553 bcmSwitchPktTraceDropReasonVxlanSipLookupMiss = 10, /* Packet dropped due to VXLAN SIP 6554 lookup miss */ 6555 bcmSwitchPktTraceDropReasonVxlanVnidLookupMiss = 11, /* Packet dropped due to VXLAN VN_ID 6556 lookup miss */ 6557 bcmSwitchPktTraceDropReasonVxlanTunnelError = 12, /* Packet dropped due to VXLAN Tunnel 6558 Error */ 6559 bcmSwitchPktTraceDropReasonVlanNotValid = 13, /* Packet dropped due to VLAN not valid */ 6560 bcmSwitchPktTraceDropReasonIngressPortNotInVlanMember = 14, /* Packet dropped due to ingress port 6561 not in VLAN member */ 6562 bcmSwitchPktTraceDropReasonTpidMismatch = 15, /* Packet dropped due to TPID mismatch */ 6563 bcmSwitchPktTraceDropReasonIpv4ProtocolError = 16, /* IPV4 protocol error drop */ 6564 bcmSwitchPktTraceDropReasonHigigLoopback = 17, /* HiGig loopback drop */ 6565 bcmSwitchPktTraceDropReasonHigigMirrorOnly = 18, /* HiGig mirror only drop */ 6566 bcmSwitchPktTraceDropReasonHigigUnknownHeader = 19, /* HiGig unknown header drop */ 6567 bcmSwitchPktTraceDropReasonHigigUnknownOpcode = 20, /* HiGig unknown opcode drop */ 6568 bcmSwitchPktTraceDropReasonLagFailLoopback = 21, /* LAG fail loopback drop */ 6569 bcmSwitchPktTraceDropReasonL2SrcEqualL2Dst = 22, /* Src MAC equals Dst MAC drop */ 6570 bcmSwitchPktTraceDropReasonIpv6ProtocolError = 23, /* IPV6 protocol error drop */ 6571 bcmSwitchPktTraceDropReasonNivVntagPresent = 24, /* NIV VNTAG present drop */ 6572 bcmSwitchPktTraceDropReasonNivVntagNotPresent = 25, /* NIV VNTAG not present drop */ 6573 bcmSwitchPktTraceDropReasonNivVntagFormat = 26, /* NIV VNTAG format drop */ 6574 bcmSwitchPktTraceDropReasonTrillErrorFrame = 27, /* Trill error frame drop */ 6575 bcmSwitchPktTraceDropReasonBpdu = 28, /* BPDU drop */ 6576 bcmSwitchPktTraceDropReasonBadUdpChecksum = 29, /* Bad udp checksum drop */ 6577 bcmSwitchPktTraceDropReasonTunnlDecapEcnError = 30, /* Tunnel Decap ECN error drop */ 6578 bcmSwitchPktTraceDropReasonIpv4HeaderError = 31, /* Packet dropped due to IPv4 Header 6579 error */ 6580 bcmSwitchPktTraceDropReasonIpv6HeaderError = 32, /* Packet dropped due to IPv6 Header 6581 error */ 6582 bcmSwitchPktTraceDropReasonParityError = 33, /* Packet dropped due to parity error */ 6583 bcmSwitchPktTraceDropReasonRpfCheckFail = 34, /* Packet dropped due to unicast RPF 6584 check fail */ 6585 bcmSwitchPktTraceDropReasonStageLookup = 35, /* Packet dropped on field lookup stage */ 6586 bcmSwitchPktTraceDropReasonStageIngress = 36, /* Packet dropped on field ingress stage */ 6587 bcmSwitchPktTraceDropReasonTunnelObjectValidationFail = 37, /* Packet dropped due to Tunnel 6588 termination can't be done as not all 6589 packet forwarding objects got 6590 assigned. */ 6591 bcmSwitchPktTraceDropReasonTunnelShimHeaderError = 38, /* Packet dropped due to tunnel shim 6592 header error. */ 6593 bcmSwitchPktTraceDropReasonTunnelTTLError = 39, /* Packet dropped due to tunnel TTL 6594 check fail. */ 6595 bcmSwitchPktTraceDropReasonTunnelInterfaceCheckFail = 40, /* Packet dropped due to tunnel 6596 interface check failure. */ 6597 bcmSwitchPktTraceDropReasonTunnelError = 41, /* Packet dropped due to tunnel error. */ 6598 bcmSwitchPktTraceDropReasonTunnelAdapt1LookupMiss = 42, /* Packcet dropped due to tunnel 6599 adaptation table 1 lookup miss. */ 6600 bcmSwitchPktTraceDropReasonTunnelAdapt2LookupMiss = 43, /* Packcet dropped due to tunnel 6601 adaptation table 2 lookup miss. */ 6602 bcmSwitchPktTraceDropReasonTunnelAdapt3LookupMiss = 44, /* Packcet dropped due to tunnel 6603 adaptation table 3 lookup miss. */ 6604 bcmSwitchPktTraceDropReasonTunnelAdapt4LookupMiss = 45, /* Packcet dropped due to tunnel 6605 adaptation table 4 lookup miss. */ 6606 bcmSwitchPktTraceDropReasonControlFrame = 46, /* Packcet dropped due to control frame 6607 drop. */ 6608 bcmSwitchPktTraceDropReasonHigigHdrError = 47, /* Packcet dropped due to higig header 6609 error. */ 6610 bcmSwitchPktTraceDropReasonNivDot1p = 48, /* Packcet dropped due to niv dot1p. */ 6611 bcmSwitchPktTraceDropReasonMplsGalLabel = 49, /* Packcet dropped due to mpls gal 6612 label. */ 6613 bcmSwitchPktTraceDropReasonStpNotForwarding = 50, /* Packcet dropped due to stp not 6614 forwarding. */ 6615 bcmSwitchPktTraceDropReasonMcastIndexError = 51, /* Packcet dropped due to multicast 6616 index error. */ 6617 bcmSwitchPktTraceDropReasonProtocolPkt = 52, /* Packcet dropped due to protocol pkt 6618 drop. */ 6619 bcmSwitchPktTraceDropReasonUnknownSrcMac = 53, /* Packcet dropped due to unknown src 6620 mac. */ 6621 bcmSwitchPktTraceDropReasonSrcRoute = 54, /* Packcet dropped due to source route. */ 6622 bcmSwitchPktTraceDropReasonL2SrcDiscard = 55, /* Packcet dropped due to L2 source 6623 discard. */ 6624 bcmSwitchPktTraceDropReasonL2SrcStaticMove = 56, /* Packcet dropped due to L2 source 6625 static move. */ 6626 bcmSwitchPktTraceDropReasonL2DstDiscard = 57, /* Packcet dropped due to L2 dest 6627 discard. */ 6628 bcmSwitchPktTraceDropReasonSrcMacZero = 58, /* Packcet dropped due to source mac 6629 zero. */ 6630 bcmSwitchPktTraceDropReasonL2DstMissOrPbt = 59, /* Packcet dropped due to L2 dest miss 6631 or pbt. */ 6632 bcmSwitchPktTraceDropReasonClassBasedStationMove = 60, /* Packcet dropped due to class based 6633 station move. */ 6634 bcmSwitchPktTraceDropReasonTimeSyncPkt = 61, /* Packcet dropped due to time sync pkt 6635 drop. */ 6636 bcmSwitchPktTraceDropReasonMyStation = 62, /* Packcet dropped due to my station 6637 drop. */ 6638 bcmSwitchPktTraceDropReasonL3DstDiscard = 63, /* Packcet dropped due to L3 dest 6639 discard. */ 6640 bcmSwitchPktTraceDropReasonMcastLookupMiss = 64, /* Packcet dropped due to multicast 6641 lookup miss. */ 6642 bcmSwitchPktTraceDropReasonPortTagPresentError = 65, /* Packcet dropped due to port tag 6643 present error. */ 6644 bcmSwitchPktTraceDropReasonPVlanVpEgressFilter = 66, /* Packcet dropped due to pvlan vp 6645 egress filter. */ 6646 bcmSwitchPktTraceDropReasonPortBitmapZero = 67, /* Packcet dropped due to port bitmap 6647 zero. */ 6648 bcmSwitchPktTraceDropReasonCount = 68 6649 } bcm_switch_pkt_trace_drop_reason_t; 6650 6651 #define BCM_SWITCH_PKT_TRACE_RAW_DATA_MAX 112 /* max bytes of 6652 pkt_trace_info.raw_data */ 6653 6654 /* packet trace ingress process data */ 6655 typedef struct bcm_switch_pkt_trace_info_s { 6656 bcm_switch_pkt_trace_lookup_result_t pkt_trace_lookup_status; /* packet trace lookup status set */ 6657 bcm_switch_pkt_trace_resolution_t pkt_trace_resolution; /* packet trace resolution result */ 6658 bcm_switch_pkt_trace_hashing_info_t pkt_trace_hash_info; /* packet trace hashing information */ 6659 bcm_stg_stp_t pkt_trace_stp_state; /* packet trace ingress stp state */ 6660 uint32 pkt_trace_drop_reason[BCM_SWITCH_PKT_TRACE_DROP_REASON_MAX]; /* packet trace drop reason */ 6661 uint32 dest_pipe_num; /* ingress pipeline number of the pkt 6662 trace packet */ 6663 uint32 raw_data_length; /* number of bytes returned as raw_data */ 6664 uint8 raw_data[BCM_SWITCH_PKT_TRACE_RAW_DATA_MAX]; /* packet trace process result data in 6665 raw format */ 6666 bcm_switch_pkt_trace_fwd_dst_info_t pkt_trace_fwd_dst_info; /* packet trace forward destination 6667 information */ 6668 } bcm_switch_pkt_trace_info_t; 6669 6670 #ifndef BCM_HIDE_DISPATCHABLE 6671 6672 /* Clear the visibility SW and HW configuration and states */ 6673 extern int bcm_switch_pkt_trace_info_clear( 6674 int unit, 6675 bcm_port_t port); 6676 6677 /* 6678 * Generate a visibility trace packet and/or read the result of the 6679 * packets ingress processing information 6680 */ 6681 extern int bcm_switch_pkt_trace_info_get( 6682 int unit, 6683 uint32 options, 6684 uint8 port, 6685 int len, 6686 uint8 *data, 6687 bcm_switch_pkt_trace_info_t *pkt_trace_info); 6688 6689 /* 6690 * Generate a visibility trace packet and then read the visibility packet 6691 * debug information as raw data. 6692 */ 6693 extern int bcm_switch_pkt_trace_raw_data_get( 6694 int unit, 6695 uint32 options, 6696 uint8 port, 6697 int len, 6698 uint8 *data, 6699 uint32 raw_data_buf_size, 6700 uint8 *raw_data, 6701 uint32 *raw_data_size); 6702 6703 #endif /* BCM_HIDE_DISPATCHABLE */ 6704 6705 /* 32bit or 48bit timestamping mode for 1588 packets */ 6706 typedef enum bcm_switch_timesync_timestamping_mode_e { 6707 bcmTimesyncTimestampingMode32bit = 0, /* 32bit timestamping mode for 1588 6708 packets */ 6709 bcmTimesyncTimestampingMode48bit = 1 /* 48bit timestamping mode for 1588 6710 packets. */ 6711 } bcm_switch_timesync_timestamping_mode_t; 6712 6713 /* 6714 * Flags for bcm_switch_lif_property_set / get - Correlates with 6715 * bcmLifPropertyOutGlobalLifRangeType 6716 */ 6717 #define BCM_SWITCH_LIF_PROPERTY_ID_RANGE_TYPE_MAPPED 0x0 /* global outlif mapped. */ 6718 #define BCM_SWITCH_LIF_PROPERTY_ID_RANGE_TYPE_DIRECT 0x1 /* global outlif direct. */ 6719 6720 /* 6721 * Flags for bcm_switch_lif_property_set / get - Correlates with 6722 * bcmLifPropertyEEDBBankPhase 6723 */ 6724 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_DYNAMIC 0x0 /* EEDB bank dynamic 6725 phase. */ 6726 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_1 0x1 /* EEDB bank phase 1. */ 6727 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_2 0x2 /* EEDB bank phase 2. */ 6728 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_3 0x4 /* EEDB bank phase 3. */ 6729 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_4 0x8 /* EEDB bank phase 4. */ 6730 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_5 0x10 /* EEDB bank phase 5. */ 6731 #define BCM_SWITCH_LIF_PROPERTY_EEDB_PHASE_6 0x20 /* EEDB bank phase 6. */ 6732 6733 /* 6734 * Flags for bcm_switch_lif_property_set / get - Correlates with 6735 * bcmLifPropertyEEDBBankExtension 6736 */ 6737 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_ENABLE 0x0 /* EEDB bank has 6738 extension. */ 6739 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_DISABLE 0x1 /* EEDB bank doesn't have 6740 extension. */ 6741 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_DYNAMIC 0x2 /* EEDB bank extension 6742 dynamic. */ 6743 6744 /* 6745 * Flags for bcm_switch_lif_property_set / get - Correlates with 6746 * bcmLifPropertyEEDBBankExtensionType 6747 */ 6748 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_TYPE_PROTECTION 0x0 /* EEDB bank extension 6749 type protection 6750 pointer. */ 6751 #define BCM_SWITCH_LIF_PROPERTY_EEDB_BANK_EXT_TYPE_DATA 0x1 /* EEDB bank extension 6752 type Data. */ 6753 6754 /* 6755 * lif property configuration parameters for 6756 * bcm_switch_lif_property_set/get. 6757 */ 6758 typedef enum bcm_switch_lif_property_e { 6759 bcmLifPropertyOutGlobalLifRangeType = 0, /* per LIF range of 4K entries, specify 6760 if it's Direct or Mapped. */ 6761 bcmLifPropertyEEDBBankPhase = 1, /* per EEDB bank (0-23), specify if it's 6762 Phase. */ 6763 bcmLifPropertyEEDBBankExtension = 2, /* per EEDB bank (0-21), specify if it 6764 has an extension */ 6765 bcmLifPropertyEEDBBankExtensionType = 3 /* per EEDB bank (0-21), specify its 6766 extension type: protection-ptr or 6767 Data */ 6768 } bcm_switch_lif_property_t; 6769 6770 /* 6771 * This structure describes the fields that need to be supplies for the 6772 * configuration along with the property type. 6773 */ 6774 typedef struct bcm_switch_lif_property_config_s { 6775 uint32 key; /* property key : 0-47 in case of 6776 bcmLifPropertyOutGlobalLifRangeType or 0-23 in case of 6777 bcmLifPropertyEEDBBankPhase and 6778 bcmLifPropertyEEDBBankExtension */ 6779 uint32 value; /* property value */ 6780 } bcm_switch_lif_property_config_t; 6781 6782 #ifndef BCM_HIDE_DISPATCHABLE 6783 6784 /* 6785 * Setup the LIF property along with the desired property and the 6786 * configuration values 6787 */ 6788 extern int bcm_switch_lif_property_set( 6789 int unit, 6790 bcm_switch_lif_property_t lif_property, 6791 bcm_switch_lif_property_config_t *lif_config); 6792 6793 /* 6794 * Get the LIF property along with the desired property and the 6795 * configuration values. 6796 */ 6797 extern int bcm_switch_lif_property_get( 6798 int unit, 6799 bcm_switch_lif_property_t lif_property, 6800 bcm_switch_lif_property_config_t *lif_config); 6801 6802 #endif /* BCM_HIDE_DISPATCHABLE */ 6803 6804 /* Key to be used for switch control indexed setget. */ 6805 typedef struct bcm_switch_control_key_s { 6806 bcm_switch_control_t type; /* Switch control type */ 6807 int index; /* Switch control index */ 6808 } bcm_switch_control_key_t; 6809 6810 /* Info to be used for switch control indexed setget. */ 6811 typedef struct bcm_switch_control_info_s { 6812 int value; /* Switch control value */ 6813 } bcm_switch_control_info_t; 6814 6815 #ifndef BCM_HIDE_DISPATCHABLE 6816 6817 /* 6818 * Configure port-specific and device-wide operating modes. Device wide 6819 * operating 6820 * modes are configured on all ports, except the stack ports. 6821 */ 6822 extern int bcm_switch_control_indexed_set( 6823 int unit, 6824 bcm_switch_control_key_t key, 6825 bcm_switch_control_info_t value); 6826 6827 /* 6828 * Configure port-specific and device-wide operating modes. Device wide 6829 * operating 6830 * modes are configured on all ports, except the stack ports. 6831 */ 6832 extern int bcm_switch_control_indexed_get( 6833 int unit, 6834 bcm_switch_control_key_t key, 6835 bcm_switch_control_info_t *value); 6836 6837 #endif /* BCM_HIDE_DISPATCHABLE */ 6838 6839 /* 6840 * Specified MAC address is used as destination MAC address when BCM 6841 * SWITCH device sends OLP encapsulated pkt from specified port towards 6842 * offload processor 6843 */ 6844 typedef struct bcm_switch_olp_l2_addr_s { 6845 bcm_port_t port; /* ingress port for this entry */ 6846 bcm_mac_t mac; /* MAC address for this entry */ 6847 } bcm_switch_olp_l2_addr_t; 6848 6849 /* Initialize a bcm_switch_olp_l2_addr_t structure. */ 6850 extern void bcm_switch_olp_l2_addr_t_init( 6851 bcm_switch_olp_l2_addr_t *l2_addr); 6852 6853 /* Replace the matching entry */ 6854 #define BCM_SWITCH_OLP_L2_ADDR_REPLACE 0x1 6855 6856 #ifndef BCM_HIDE_DISPATCHABLE 6857 6858 /* Set/Replace MAC address assigned to Offload Processor connecting port. */ 6859 extern int bcm_switch_olp_l2_addr_add( 6860 int unit, 6861 uint32 options, 6862 bcm_switch_olp_l2_addr_t *l2_addr); 6863 6864 /* Delete OLP MAC address. */ 6865 extern int bcm_switch_olp_l2_addr_delete( 6866 int unit, 6867 bcm_switch_olp_l2_addr_t *l2_addr); 6868 6869 /* Delete all previously configured OLP mac addresses. */ 6870 extern int bcm_switch_olp_l2_addr_delete_all( 6871 int unit); 6872 6873 /* Get MAC address assigned to Offload Processor connecting port. */ 6874 extern int bcm_switch_olp_l2_addr_get( 6875 int unit, 6876 bcm_switch_olp_l2_addr_t *l2_addr); 6877 6878 #endif /* BCM_HIDE_DISPATCHABLE */ 6879 6880 /* OLP MAC address traverse callback */ 6881 typedef int (*bcm_switch_olp_l2_addr_traverse_cb)( 6882 int unit, 6883 bcm_switch_olp_l2_addr_t *l2_addr, 6884 void *user_data); 6885 6886 #ifndef BCM_HIDE_DISPATCHABLE 6887 6888 /* 6889 * Traverse previously configured OLP MAC addresses and call callback 6890 * function for each valid OLP MAC. 6891 */ 6892 extern int bcm_switch_olp_l2_addr_traverse( 6893 int unit, 6894 bcm_switch_olp_l2_addr_traverse_cb cb_fn, 6895 void *user_data); 6896 6897 #endif /* BCM_HIDE_DISPATCHABLE */ 6898 6899 /* AGM Forwarding group type */ 6900 typedef enum bcm_switch_agm_type_e { 6901 bcmSwitchAgmTypeTrunk = 0, /* Forwarding group is a Trunk group */ 6902 bcmSwitchAgmTypeFabricTrunk = 1, /* Forwarding group is a HiGig Trunk 6903 group */ 6904 bcmSwitchAgmTypeL3Ecmp = 2, /* Forwarding group is an Ecmp Trunk 6905 group */ 6906 bcmSwitchAgmTypeL3EcmpOverlay = 3, /* Forwarding group is an Overlay Ecmp 6907 Trunk group */ 6908 bcmSwitchAgmTypeCount = 4 /* Maximum AGM type count */ 6909 } bcm_switch_agm_type_t; 6910 6911 /* AGM period interval type */ 6912 typedef enum bcm_switch_agm_period_interval_e { 6913 bcmSwitchAgmInterval1Second = 0, /* 1s interval for each monitor period */ 6914 bcmSwitchAgmInterval100MiliSecond = 1, /* 100 ms interval for each monitor 6915 period */ 6916 bcmSwtichAgmInterval10MiliSecond = 2, /* 10ms interval for each monitor period */ 6917 bcmSwitchAgmInterval1MiliSecond = 3, /* 1ms interval for each monitor period */ 6918 bcmSwitchAgmInterval100MacroSecond = 4, /* 100us interval for each monitor 6919 period */ 6920 bcmSwitchAgmIntervalCount = 5 /* Maximum AGM period interval type 6921 count */ 6922 } bcm_switch_agm_period_interval_t; 6923 6924 /* AGM monitor info */ 6925 typedef struct bcm_switch_agm_info_s { 6926 bcm_switch_agm_id_t agm_id; /* AGM monitor id */ 6927 bcm_switch_agm_type_t agm_type; /* Indicates forwarding group type using 6928 this monitor */ 6929 int num_members; /* number of members for the forwarding 6930 group */ 6931 int period_num; /* AGM period number to be monitored, 0 6932 means continue counting traffic 6933 indefinitely */ 6934 bcm_switch_agm_period_interval_t period_interval; /* interval for each period */ 6935 } bcm_switch_agm_info_t; 6936 6937 /* AGM stat info */ 6938 typedef struct bcm_switch_agm_stat_s { 6939 uint64 packets; /* accumulated packets value */ 6940 uint64 bytes; /* accumulated bytes value */ 6941 int period; /* period number used by current stat */ 6942 bcm_gport_t gport_id; /* If this AGM is for a Trunk/HiGigTrunk, indicates 6943 which trunk member using the counter */ 6944 bcm_if_t intf_id; /* If this AGM is for an ECMP group, indicates which 6945 group member using the counter */ 6946 } bcm_switch_agm_stat_t; 6947 6948 /* bcm_switch_agm_traverse_cb */ 6949 typedef int (*bcm_switch_agm_traverse_cb)( 6950 int unit, 6951 bcm_switch_agm_info_t *agm_info, 6952 void *user_data); 6953 6954 /* Initialize a bcm_switch_agm_info_t structure. */ 6955 extern void bcm_switch_agm_info_t_init( 6956 bcm_switch_agm_info_t *agm_info); 6957 6958 /* Initialize a bcm_switch_agm_stat_t structure. */ 6959 extern void bcm_switch_agm_stat_t_init( 6960 bcm_switch_agm_stat_t *agm_stat); 6961 6962 #ifndef BCM_HIDE_DISPATCHABLE 6963 6964 /* Creates an aggregation monitoring entry. */ 6965 extern int bcm_switch_agm_create( 6966 int unit, 6967 uint32 options, 6968 bcm_switch_agm_info_t *agm_info); 6969 6970 /* Enable or disable the aggregation group monitoring on a given entry. */ 6971 extern int bcm_switch_agm_enable_set( 6972 int unit, 6973 bcm_switch_agm_id_t agm_id, 6974 int enable); 6975 6976 /* 6977 * Retrieve bandwidth and packet distribution information that were 6978 * collected via aggregation group monitoring. 6979 */ 6980 extern int bcm_switch_agm_stat_get( 6981 int unit, 6982 bcm_switch_agm_id_t agm_id, 6983 int nstat, 6984 bcm_switch_agm_stat_t *stat_arr); 6985 6986 /* 6987 * Clear stats of counter entries attached to the aggregation monitor 6988 * (id). 6989 */ 6990 extern int bcm_switch_agm_stat_clear( 6991 int unit, 6992 bcm_switch_agm_id_t agm_id); 6993 6994 /* Destroy an existing aggregation monitoring entry. */ 6995 extern int bcm_switch_agm_destroy( 6996 int unit, 6997 bcm_switch_agm_id_t agm_id); 6998 6999 /* Retrieve a (fabric) trunk_id where the monitor entry is attached. */ 7000 extern int bcm_switch_agm_trunk_attach_get( 7001 int unit, 7002 bcm_switch_agm_id_t agm_id, 7003 bcm_trunk_t *trunk_id); 7004 7005 /* Retrieve a l3 ecmp group id where the monitor entry is attached. */ 7006 extern int bcm_switch_agm_l3_ecmp_attach_get( 7007 int unit, 7008 bcm_switch_agm_id_t agm_id, 7009 bcm_if_t *l3_ecmp_id); 7010 7011 /* Retrieve an AGM monitor info if it's created. */ 7012 extern int bcm_switch_agm_get( 7013 int unit, 7014 bcm_switch_agm_info_t *agm_info); 7015 7016 /* Return a monitor entry's enable status. */ 7017 extern int bcm_switch_agm_enable_get( 7018 int unit, 7019 bcm_switch_agm_id_t agm_id, 7020 int *enable); 7021 7022 /* 7023 * Traverse all aggregation monitor entries and call callback function 7024 * for each allocated entry. 7025 */ 7026 extern int bcm_switch_agm_traverse( 7027 int unit, 7028 int flags, 7029 bcm_switch_agm_traverse_cb trav_fn, 7030 void *user_data); 7031 7032 #endif /* BCM_HIDE_DISPATCHABLE */ 7033 7034 /* Service type for Match */ 7035 typedef enum bcm_switch_match_service_e { 7036 bcmSwitchMatchServiceMiml = 0, /* Mac-in-Mac Lite(MiML). Required 7037 fields: inner_ethtype, outer_ethtype. */ 7038 bcmSwitchMatchServiceCustomHeader = 1, /* Custom Header. Required fields: 7039 value32, int_pri, color. */ 7040 bcmSwitchMatchServiceGtp = 2, /* GPRS Tunnel Protocol packets. 7041 Required fields: match_criteria, 7042 src_port, dst_port. */ 7043 bcmSwitchMatchServicePrpHsrSupervision = 3, /* Seamless Redundancy PRP/HSR 7044 supervision protocol. Required 7045 fields: ethtype1 (for PRP), ethtype2 7046 (for HSR), dst_mac, dst_mac_mask */ 7047 bcmSwitchMatchServiceDot1cbSupervision = 4, /* Seamless Redundancy 802.1CB 7048 supervision protocol. Required 7049 fields: ethtype1, dst_mac, 7050 dst_mac_mask */ 7051 bcmSwitchMatchServiceLinkLocal = 5, /* Link-local MAC addresses. Required 7052 fields: dst_mac, dst_mac_mask */ 7053 bcmSwitchMatchService__Count = 6 /* Must be last. */ 7054 } bcm_switch_match_service_t; 7055 7056 /* Types for bcm_switch_match_config_info_t. */ 7057 #define BCM_SWITCH_GTP_MATCH_DST_PORT 0x1 /* Match only destination 7058 port of GTP packets */ 7059 #define BCM_SWITCH_GTP_MATCH_SRC_PORT 0x2 /* Match only source port 7060 of GTP packets */ 7061 #define BCM_SWITCH_GTP_MATCH_SRC_OR_DST_PORT 0x3 /* Match source port or 7062 destination port of 7063 GTP packets */ 7064 #define BCM_SWITCH_GTP_MATCH_SRC_AND_DST_PORT 0x4 /* Match source port and 7065 destination port of 7066 GTP packets */ 7067 7068 /* 7069 * This structure describes the fields that need to be supplies for the 7070 * configuration along with the property type. 7071 */ 7072 typedef struct bcm_switch_match_config_info_s { 7073 uint32 value32; /* 32-bit data value to match */ 7074 uint16 inner_ethtype; /* 16-bit Inner EtherType to match */ 7075 uint16 outer_ethtype; /* 16-bit Outer EtherType to match */ 7076 uint8 int_pri; /* Internal packet priority to set when matched */ 7077 bcm_color_t color; /* Packet Color to set when matched */ 7078 uint8 match_criteria; /* Match criteria for GPRS Tunnel Protocol packets */ 7079 uint16 dst_port; /* Matched destination port */ 7080 uint16 src_port; /* Matched source port */ 7081 uint16 ethtype1; /* 16-bit EtherType to match */ 7082 uint16 ethtype2; /* 16-bit EtherType (alternate) to match */ 7083 bcm_mac_t dst_mac; /* Destination MAC address to match */ 7084 bcm_mac_t dst_mac_mask; /* Mask for destination MAC address */ 7085 } bcm_switch_match_config_info_t; 7086 7087 /* Initialize a bcm_switch_match_config_info_t structure */ 7088 extern void bcm_switch_match_config_info_t_init( 7089 bcm_switch_match_config_info_t *config_info); 7090 7091 #ifndef BCM_HIDE_DISPATCHABLE 7092 7093 /* Add a match config. */ 7094 extern int bcm_switch_match_config_add( 7095 int unit, 7096 bcm_switch_match_service_t match_service, 7097 bcm_switch_match_config_info_t *config_info, 7098 int *match_id); 7099 7100 /* Delete a created match config. */ 7101 extern int bcm_switch_match_config_delete( 7102 int unit, 7103 bcm_switch_match_service_t match_service, 7104 int match_id); 7105 7106 /* Delete all created match objects. */ 7107 extern int bcm_switch_match_config_delete_all( 7108 int unit, 7109 bcm_switch_match_service_t match_service); 7110 7111 /* Set/Get the match config info. */ 7112 extern int bcm_switch_match_config_set( 7113 int unit, 7114 bcm_switch_match_service_t match_service, 7115 int match_id, 7116 bcm_switch_match_config_info_t *config_info); 7117 7118 /* Set/Get the match config info. */ 7119 extern int bcm_switch_match_config_get( 7120 int unit, 7121 bcm_switch_match_service_t match_service, 7122 int match_id, 7123 bcm_switch_match_config_info_t *config_info); 7124 7125 #endif /* BCM_HIDE_DISPATCHABLE */ 7126 7127 /* match table traverse callback. */ 7128 typedef int (*bcm_switch_match_config_traverse_cb)( 7129 int unit, 7130 int match_id, 7131 bcm_switch_match_config_info_t *config_info, 7132 void *user_data); 7133 7134 #ifndef BCM_HIDE_DISPATCHABLE 7135 7136 /* 7137 * Traverse all created match objects and call callback function for each 7138 * allocated entry. 7139 */ 7140 extern int bcm_switch_match_config_traverse( 7141 int unit, 7142 bcm_switch_match_service_t match_service, 7143 bcm_switch_match_config_traverse_cb cb_fn, 7144 void *user_data); 7145 7146 #endif /* BCM_HIDE_DISPATCHABLE */ 7147 7148 /* Control type for match */ 7149 typedef enum bcm_switch_match_control_type_e { 7150 bcmSwitchMatchControlPortEnable = 0, /* Enable/disable the capability for 7151 match detection on a port. */ 7152 bcmSwitchMatchControlMatchMask = 1, /* Setup the mask for matching lookup. */ 7153 bcmSwitchMatchControl__Count /* Must be last. */ 7154 } bcm_switch_match_control_type_t; 7155 7156 /* 7157 * This structure describes the fields that need to be supplies for the 7158 * configuration along with the property type. 7159 */ 7160 typedef struct bcm_switch_match_control_info_s { 7161 int port_enable; /* Enable or disable (per-port) */ 7162 uint32 mask32; /* Mask value for matching (32 bits) */ 7163 } bcm_switch_match_control_info_t; 7164 7165 /* Initialize a bcm_switch_match_control_info_t structure */ 7166 extern void bcm_switch_match_control_info_t_init( 7167 bcm_switch_match_control_info_t *control_info); 7168 7169 #ifndef BCM_HIDE_DISPATCHABLE 7170 7171 /* Set/Get the match control info. */ 7172 extern int bcm_switch_match_control_set( 7173 int unit, 7174 bcm_switch_match_service_t match_service, 7175 bcm_switch_match_control_type_t control_type, 7176 bcm_gport_t gport, 7177 bcm_switch_match_control_info_t *control_info); 7178 7179 /* Set/Get the match control info. */ 7180 extern int bcm_switch_match_control_get( 7181 int unit, 7182 bcm_switch_match_service_t match_service, 7183 bcm_switch_match_control_type_t control_type, 7184 bcm_gport_t gport, 7185 bcm_switch_match_control_info_t *control_info); 7186 7187 #endif /* BCM_HIDE_DISPATCHABLE */ 7188 7189 /* match control traverse callback. */ 7190 typedef int (*bcm_switch_match_control_traverse_cb)( 7191 int unit, 7192 bcm_switch_match_control_type_t control_type, 7193 bcm_gport_t gport, 7194 bcm_switch_match_control_info_t *control_info, 7195 void *user_data); 7196 7197 #ifndef BCM_HIDE_DISPATCHABLE 7198 7199 /* 7200 * Traverse all match control info and call callback function for each 7201 * allocated entry. 7202 */ 7203 extern int bcm_switch_match_control_traverse( 7204 int unit, 7205 bcm_switch_match_service_t match_service, 7206 bcm_switch_match_control_traverse_cb cb_fn, 7207 void *user_data); 7208 7209 #endif /* BCM_HIDE_DISPATCHABLE */ 7210 7211 /* Encap service type. */ 7212 typedef enum bcm_switch_encap_service_e { 7213 BCM_SWITCH_ENCAP_SERVICE_MIML = 0, /* Mac-in-Mac Lite(MiML). Required 7214 fields: egress_vlan, egress_srcmac, 7215 egress_dstmac, pkt_pri, pkt_cfi, 7216 pkt_type, iid and length. */ 7217 BCM_SWITCH_ENCAP_SERVICE_CUSTOM_HEADER = 1, /* Custom Header. Required fields: 7218 value32. */ 7219 BCM_SWITCH_ENCAP_SERVICE_COUNT /* Must be last */ 7220 } bcm_switch_encap_service_t; 7221 7222 /* 7223 * Encap info structure. 7224 * 7225 * The following parameters are required when the encap type is MIML: 7226 * egress_vlan, egress_srcmac, egress_dstmac, pkt_pri, pkt_cfi, pkt_type, 7227 * iid, length and port. 7228 * 7229 * The following parameters are required when the encap type is 7230 * CUSTOM_HEADER: value32. 7231 * 7232 * The other optional configurations depend on "flags" definition per 7233 * service: e.g. qos_map_id , higig_vlan. 7234 */ 7235 typedef struct bcm_switch_encap_info_s { 7236 bcm_switch_encap_service_t encap_service; /* Encapsulation Service Type. */ 7237 uint32 flags; /* Configuration flags. */ 7238 uint32 value32; /* 32-bit data value for encapsulation. */ 7239 int qos_map_id; /* QoS Mapped priority. */ 7240 bcm_gport_t port; /* Physical port/trunk, which is must 7241 set for MiML to indicate the 7242 destination port. */ 7243 bcm_vlan_t egress_vlan; /* VID. */ 7244 bcm_mac_t egress_srcmac; /* Source MAC address. */ 7245 bcm_mac_t egress_dstmac; /* Dest MAC address. */ 7246 uint8 pkt_pri; /* Packet priority. */ 7247 uint8 pkt_cfi; /* Packet cfi. */ 7248 uint8 pkt_type; /* MiML Packet Type. */ 7249 uint16 iid; /* MiML IID. */ 7250 uint16 length; /* MiML Length. */ 7251 bcm_vlan_t higig_vlan; /* MiML HiGig header OVID. */ 7252 } bcm_switch_encap_info_t; 7253 7254 /* Switch encap flags for Custom Header. */ 7255 #define BCM_SWITCH_ENCAP_CUSTOM_HEADER_QOS_MAP_INT_PRI (1 << 0) /* Encapsulation priority 7256 control per entry, map 7257 priority. Required 7258 fields: qos_map_id. */ 7259 7260 /* Switch encap flags for MiML. */ 7261 #define BCM_SWITCH_ENCAP_MIML_QOS_MAP_INT_PRI (1 << 0) /* Encapsulation priority 7262 control per entry, map 7263 priority. Required 7264 fields: qos_map_id. */ 7265 #define BCM_SWITCH_ENCAP_MIML_OVERRIDE_HG_HEADER_VID (1 << 1) /* Use higig_vlan value 7266 to override OVID field 7267 in HiGig header. 7268 Required fields: 7269 higig_vlan. */ 7270 7271 /* Initialize a bcm_switch_encap_info_t structure */ 7272 extern void bcm_switch_encap_info_t_init( 7273 bcm_switch_encap_info_t *encap_info); 7274 7275 #ifndef BCM_HIDE_DISPATCHABLE 7276 7277 /* Create an encapuslation object. */ 7278 extern int bcm_switch_encap_create( 7279 int unit, 7280 bcm_switch_encap_info_t *encap_info, 7281 bcm_if_t *encap_id); 7282 7283 /* Destroy previously created encapuslation object. */ 7284 extern int bcm_switch_encap_destroy( 7285 int unit, 7286 bcm_if_t encap_id); 7287 7288 /* Destroy all encap objects. */ 7289 extern int bcm_switch_encap_destroy_all( 7290 int unit); 7291 7292 /* Modify the configuration of the encap object with the given encap_id. */ 7293 extern int bcm_switch_encap_set( 7294 int unit, 7295 bcm_if_t encap_id, 7296 bcm_switch_encap_info_t *encap_info); 7297 7298 /* Get the configuration of the encap object with the given encap_id. */ 7299 extern int bcm_switch_encap_get( 7300 int unit, 7301 bcm_if_t encap_id, 7302 bcm_switch_encap_info_t *encap_info); 7303 7304 #endif /* BCM_HIDE_DISPATCHABLE */ 7305 7306 /* Switch encap traverse callback. */ 7307 typedef int (*bcm_switch_encap_traverse_cb)( 7308 int unit, 7309 bcm_if_t encap_id, 7310 bcm_switch_encap_info_t *encap_info, 7311 void *user_data); 7312 7313 #ifndef BCM_HIDE_DISPATCHABLE 7314 7315 /* 7316 * Traverse all created encapsulation objects and call callback function 7317 * for each allocated entry. 7318 */ 7319 extern int bcm_switch_encap_traverse( 7320 int unit, 7321 bcm_switch_encap_traverse_cb cb_fn, 7322 void *user_data); 7323 7324 #endif /* BCM_HIDE_DISPATCHABLE */ 7325 7326 /* Vendor Info Struct */ 7327 typedef struct bcm_switch_dram_vendor_info_s { 7328 uint32 dram_density; /* Dram Density */ 7329 uint32 fifo_depth; /* FIFO Depth */ 7330 uint32 revision_id; /* Revision Id */ 7331 uint32 manufacture_id; /* Manufacture Id */ 7332 } bcm_switch_dram_vendor_info_t; 7333 7334 #ifndef BCM_HIDE_DISPATCHABLE 7335 7336 /* Get dram vendor info */ 7337 extern int bcm_switch_dram_vendor_info_get( 7338 int unit, 7339 bcm_switch_dram_vendor_info_t *info); 7340 7341 #endif /* BCM_HIDE_DISPATCHABLE */ 7342 7343 /* Thermo sensors enum */ 7344 typedef enum bcm_switch_thermo_sensor_type_e { 7345 bcmSwitchThermoSensorInvalid = 0, 7346 bcmSwitchThermoSensorDram = 1, 7347 bcmSwitchThermoSensorSpare1 = 2, 7348 bcmSwitchThermoSensorSpare2 = 3, 7349 bcmSwitchThermoSensorCount = 4 7350 } bcm_switch_thermo_sensor_type_t; 7351 7352 /* Thermo Sensor Struct */ 7353 typedef struct bcm_switch_thermo_sensor_s { 7354 int thermo_sensor_min; /* thermo sensor minimal read */ 7355 int thermo_sensor_max; /* thermo sensor maximal read */ 7356 int thermo_sensor_current; /* thermo sensor current read */ 7357 } bcm_switch_thermo_sensor_t; 7358 7359 #ifndef BCM_HIDE_DISPATCHABLE 7360 7361 /* Get switch thermo sensor data */ 7362 extern int bcm_switch_thermo_sensor_read( 7363 int unit, 7364 bcm_switch_thermo_sensor_type_t sensor_type, 7365 int interface_id, 7366 bcm_switch_thermo_sensor_t *sensor_data); 7367 7368 /* An API to get the Recommended Operational Value. */ 7369 extern int bcm_switch_rov_get( 7370 int unit, 7371 uint32 flags, 7372 uint32 *rov); 7373 7374 #endif /* BCM_HIDE_DISPATCHABLE */ 7375 7376 #define BCM_SWITCH_SDK_TO_WARMBOOT_VERSION_GET(_major_release, _minor_release, _patch_level, _warmboot_ver) \ 7377 (_warmboot_ver) = ((((_major_release) & 0xFF) << 16 ) | (((_minor_release) & 0xFF) << 8 ) | (((_patch_level) & 0xFF))) 7378 7379 /* Nibble speculation. */ 7380 #define BCM_SWITCH_DEFAULT_NIBBLE_INDEX 16 /* Used to configure the 7381 nibbles default speculated 7382 protocol. */ 7383 7384 /* 7385 * Enumeration values that can be passed to API in order to set expected 7386 * protocol after MPLS bos label based on nibble value. 7387 */ 7388 typedef enum bcm_switch_mpls_next_protocol_e { 7389 bcmSwitchMplsNextProtocolDefault = 0, /* Use the default speculation protocol. */ 7390 bcmSwitchMplsNextProtocolNone = 1, /* Do not speculate any protocol. */ 7391 bcmSwitchMplsNextProtocolEthernet = 2, /* Speculate Ethernet after the MPLS 7392 stack. */ 7393 bcmSwitchMplsNextProtocolIpv4 = 3, /* Speculate IPv4 protocol after the 7394 MPLS stack. */ 7395 bcmSwitchMplsNextProtocolIpv6 = 4, /* Speculate IPv6 protocol after the 7396 MPLS stack. */ 7397 bcmSwitchMplsNextProtocolControlWord = 5, /* Speculate CW protocol aftre the MPLS 7398 stack. */ 7399 bcmSwitchMplsNextProtocolBierMpls = 6, /* Speculate BIER MPLS protocol after 7400 the MPLS stack */ 7401 bcmSwitchMplsNextProtocolBierTi = 7, /* Speculate TI MPLS protocol after the 7402 MPLS stack */ 7403 bcmSwitchMplsNextProtocolCount = 8 /* Should be last element in enum. */ 7404 } bcm_switch_mpls_next_protocol_t; 7405 7406 /* 7407 * LPM hit bit table ids to be used with 7408 * bcmSwitchL3LpmHitbitEnable/Disable. 7409 */ 7410 typedef enum bcm_switch_l3_lpm_hitbit_tables_e { 7411 bcmL3LpmHitbitTableIPv4UC = 0, /* IPv4 UC table */ 7412 bcmL3LpmHitbitTableIPv4MC = 1, /* IPv4 MC table. */ 7413 bcmL3LpmHitbitTableIPv6UC = 2, /* IPv6 UC table */ 7414 bcmL3LpmHitbitTableIPv6MC = 3, /* IPv6 MC table */ 7415 bcmL3LpmHitbitTableIPv4UCScale = 4, /* IPv4 UC scale table */ 7416 bcmL3LpmHitbitTableIPv6UCScale = 5, /* IPv6 UC scale table */ 7417 bcmL3LpmHitbitTableCount = 6 /* Always Last, not a usable value */ 7418 } bcm_switch_l3_lpm_hitbit_tables_t; 7419 7420 /* Switch module IDs */ 7421 typedef enum bcm_switch_module_e { 7422 bcmModuleL3EgressFec = 0, /* FEC module */ 7423 bcmModuleL3EgressEcmp = 1, /* ECMP module */ 7424 bcmModuleCount = 2 /* Always Last, not a usable value */ 7425 } bcm_switch_module_t; 7426 7427 #define BCM_SWITCH_L2_FREEZE_MODE_PORT 0 /* Reconfigure CML for 7428 each port to stop 7429 hardware learning. */ 7430 #define BCM_SWITCH_L2_FREEZE_MODE_GLOBAL 0x1 /* Use global CML 7431 override setting to 7432 put all ports in 7433 forward. */ 7434 7435 /* Chip info types */ 7436 typedef enum bcm_switch_chip_info_e { 7437 bcmSwitchChipInfoIcid = 0, /* ICID - IC identification number. */ 7438 bcmSwitchChipInfoCount /* Must be last. Not a usable value. */ 7439 } bcm_switch_chip_info_t; 7440 7441 #ifndef BCM_HIDE_DISPATCHABLE 7442 7443 /* Get the specified chip info. */ 7444 extern int bcm_switch_chip_info_get( 7445 int unit, 7446 bcm_switch_chip_info_t info_type, 7447 int max_size, 7448 void *data_buf, 7449 int *actual_size); 7450 7451 #endif /* BCM_HIDE_DISPATCHABLE */ 7452 7453 /* Block type */ 7454 typedef enum bcm_switch_block_type_e { 7455 bcmSwitchBlockTypeAll = -1, /* All block types */ 7456 bcmSwitchBlockTypeMmu = 0, /* Memory Management Unit */ 7457 bcmSwitchBlockTypeMmuGlb = 1, /* MMU(Global) */ 7458 bcmSwitchBlockTypeMmuXpe = 2, /* MMU(Crosspoint Element) */ 7459 bcmSwitchBlockTypeMmuSc = 3, /* MMU(Slice Control) */ 7460 bcmSwitchBlockTypeMmuSed = 4, /* MMU(Slice Enqueue Dequeue) */ 7461 bcmSwitchBlockTypeIpipe = 5, /* Ingress pipeline */ 7462 bcmSwitchBlockTypeEpipe = 6, /* Egress pipeline */ 7463 bcmSwitchBlockTypePgw = 7, /* Packet GateWay */ 7464 bcmSwitchBlockTypeClport = 8, /* CLPORT */ 7465 bcmSwitchBlockTypeXlport = 9, /* XLPORT */ 7466 bcmSwitchBlockTypeMacsec = 10, /* MACSEC */ 7467 bcmSwitchBlockTypePort = 11, /* PORT */ 7468 bcmSwitchBlockTypeCount = 12 /* Must be last. */ 7469 } bcm_switch_block_type_t; 7470 7471 /* SER error type */ 7472 typedef enum bcm_switch_error_type_e { 7473 bcmSwitchErrorTypeAll = -1, /* All error types */ 7474 bcmSwitchErrorTypeUnknown = 0, /* Unknown error type */ 7475 bcmSwitchErrorTypeParity = 1, /* Parity error */ 7476 bcmSwitchErrorTypeEccSingleBit = 2, /* Ecc single bit error */ 7477 bcmSwitchErrorTypeEccDoubleBit = 3, /* Ecc double bit error */ 7478 bcmSwitchErrorTypeCount = 4 /* Must be last. */ 7479 } bcm_switch_error_type_t; 7480 7481 /* SER error correction type */ 7482 typedef enum bcm_switch_correction_type_e { 7483 bcmSwitchCorrectTypeAll = -1, /* All correction types */ 7484 bcmSwitchCorrectTypeNoAction = 0, /* S/W takes no action when error 7485 happens (Like some working memories) */ 7486 bcmSwitchCorrectTypeFailToCorrect = 1, /* S/W tries to correct error but fails */ 7487 bcmSwitchCorrectTypeEntryClear = 2, /* S/W writes NULL entry to clear the 7488 error */ 7489 bcmSwitchCorrectTypeCacheRestore = 3, /* Restore entry from a valid S/W cache */ 7490 bcmSwitchCorrectTypeHwCacheRestore = 4, /* Restore entry from another pipe */ 7491 bcmSwitchCorrectTypeSpecial = 5, /* Memory needs special correction 7492 handling */ 7493 bcmSwitchCorrectTypeCount = 6 /* Must be last. */ 7494 } bcm_switch_correction_type_t; 7495 7496 /* SER log info flags */ 7497 #define BCM_SWITCH_SER_LOG_MEM 0x00000001 /* Error happens on memory */ 7498 #define BCM_SWITCH_SER_LOG_REG 0x00000002 /* Error happens on register */ 7499 #define BCM_SWITCH_SER_LOG_MULTI 0x00000004 /* Parity errors detected 7500 more than once */ 7501 #define BCM_SWITCH_SER_LOG_CORRECTED 0x00000008 /* Error be corrected by S/W */ 7502 #define BCM_SWITCH_SER_LOG_ENTRY 0x00000010 /* Corrupt entry data is 7503 valid */ 7504 #define BCM_SWITCH_SER_LOG_CACHE 0x00000020 /* Cache data is valid */ 7505 7506 /* This structure describes SER log info. */ 7507 typedef struct bcm_switch_ser_log_info_s { 7508 uint32 time; /* Error detected time */ 7509 uint32 addr; /* Error happened address */ 7510 uint32 flags; /* SER log info flags */ 7511 int mem_reg; /* Error happened memory or register id */ 7512 uint8 name[BCM_MAX_MEM_REG_NAME]; /* Error happened memory or register 7513 name */ 7514 int index; /* Error happened memory/register index */ 7515 int port; /* Error happened port id */ 7516 int pipe; /* Pipe num */ 7517 int instance; /* Instance id (MMU) */ 7518 bcm_switch_block_type_t block_type; /* Block type */ 7519 bcm_switch_error_type_t error_type; /* Error type */ 7520 bcm_switch_correction_type_t correction_type; /* Correction type */ 7521 uint32 entry_data[BCM_MAX_MEM_WORDS]; /* Corrupted entry data */ 7522 uint32 cache_data[BCM_MAX_MEM_WORDS]; /* Cache entry data */ 7523 } bcm_switch_ser_log_info_t; 7524 7525 /* An API to Initialize a bcm_switch_ser_log_info_t structure. */ 7526 extern void bcm_switch_ser_log_info_t_init( 7527 bcm_switch_ser_log_info_t *info); 7528 7529 #ifndef BCM_HIDE_DISPATCHABLE 7530 7531 /* An API to get ser log info. */ 7532 extern int bcm_switch_ser_log_info_get( 7533 int unit, 7534 int id, 7535 bcm_switch_ser_log_info_t *info); 7536 7537 extern int bcm_switch_control_indexed_port_set( 7538 int unit, 7539 bcm_port_t port, 7540 bcm_switch_control_key_t key, 7541 bcm_switch_control_info_t value); 7542 7543 extern int bcm_switch_control_indexed_port_get( 7544 int unit, 7545 bcm_port_t port, 7546 bcm_switch_control_key_t key, 7547 bcm_switch_control_info_t *value); 7548 7549 #endif /* BCM_HIDE_DISPATCHABLE */ 7550 7551 #define BCM_SWITCH_CONTROL_SYNC_FULL 0xFFFFFFFF /* Used as arg value in API 7552 bcm_switch_control_set, 7553 type=bcmSwitchControlSync. 7554 indicates of doing full 7555 sequence of sw state sync. 7556 meaning stop activities 7557 that may write into the sw 7558 state before the sync is 7559 made */ 7560 7561 /* SER error statistics flags */ 7562 #define BCM_SWITCH_SER_STAT_TCAM 0x00000001 /* Error happens on TCAM memories */ 7563 7564 /* This structure describes SER error statistics type. */ 7565 typedef struct bcm_switch_ser_error_stat_type_s { 7566 uint32 flags; /* SER error statistics flags */ 7567 bcm_switch_block_type_t block_type; /* Block type */ 7568 bcm_switch_error_type_t error_type; /* SER error type */ 7569 bcm_switch_correction_type_t correction_type; /* SER error correction type */ 7570 } bcm_switch_ser_error_stat_type_t; 7571 7572 /* An API to initialize a bcm_switch_ser_error_stat_type_t structure. */ 7573 extern void bcm_switch_ser_error_stat_type_t_init( 7574 bcm_switch_ser_error_stat_type_t *stat_type); 7575 7576 #ifndef BCM_HIDE_DISPATCHABLE 7577 7578 /* API to get SER error statistics for specified statistics type. */ 7579 extern int bcm_switch_ser_error_stat_get( 7580 int unit, 7581 bcm_switch_ser_error_stat_type_t stat_type, 7582 uint32 *value); 7583 7584 /* API to clear SER error statistics for specified statistics type. */ 7585 extern int bcm_switch_ser_error_stat_clear( 7586 int unit, 7587 bcm_switch_ser_error_stat_type_t stat_type); 7588 7589 #endif /* BCM_HIDE_DISPATCHABLE */ 7590 7591 #define BCM_SWITCH_MAX_NUM_OPAQUE_TAGS 2 /* Maximum number of 7592 opaque tags supported 7593 by the device. */ 7594 #define BCM_SWITCH_OPAQUE_TAG_SIZE_4_BYTES 0x1 /* Tag size of 4 bytes */ 7595 #define BCM_SWITCH_OPAQUE_TAG_SIZE_8_BYTES 0x2 /* Tag size of 8 bytes */ 7596 7597 /* Opaque tag parameters. */ 7598 typedef struct bcm_switch_opaque_tag_params_s { 7599 uint16 ethertype; /* EtherType to match when parsing for opaque tag */ 7600 uint8 tag_size; /* Size of opaque tag (Only 1, 2 are valid values) */ 7601 uint8 tag_type; /* User specified 2-bit value (0 is invalid value) */ 7602 uint8 valid; /* Make config active(1) or not active in h/w(0) */ 7603 } bcm_switch_opaque_tag_params_t; 7604 7605 /* Initialize bcm_switch_opaque_tag_params_t structure */ 7606 extern void bcm_switch_opaque_tag_config_t_init( 7607 bcm_switch_opaque_tag_params_t *info); 7608 7609 #ifndef BCM_HIDE_DISPATCHABLE 7610 7611 /* Configure opaque tag parameters. */ 7612 extern int bcm_switch_opaque_tag_config_set( 7613 int unit, 7614 int index, 7615 bcm_switch_opaque_tag_params_t *opaque_tag_config); 7616 7617 /* Configure payload opaque tag parameters. */ 7618 extern int bcm_switch_payload_opaque_tag_config_set( 7619 int unit, 7620 int index, 7621 bcm_switch_opaque_tag_params_t *opaque_tag_config); 7622 7623 /* Read opaque tag parameters configured for a given set. */ 7624 extern int bcm_switch_opaque_tag_config_get( 7625 int unit, 7626 int index, 7627 bcm_switch_opaque_tag_params_t *opaque_tag_config); 7628 7629 /* Get payload opaque tag parameters. */ 7630 extern int bcm_switch_payload_opaque_tag_config_get( 7631 int unit, 7632 int index, 7633 bcm_switch_opaque_tag_params_t *opaque_tag_config); 7634 7635 #endif /* BCM_HIDE_DISPATCHABLE */ 7636 7637 #define BCM_SWITCH_OBM_PRIORITY_LOSSY_LOW 0 /* This obm_priority is 7638 mapped to OBM buffer 7639 partition Lossy Low */ 7640 #define BCM_SWITCH_OBM_PRIORITY_LOSSY_HIGH 1 /* This obm_priority is 7641 mapped to OBM buffer 7642 partition Lossy High */ 7643 #define BCM_SWITCH_OBM_PRIORITY_LOSSLESS0 2 /* This obm_priority is 7644 mapped to OBM buffer 7645 partition Lossless0 */ 7646 #define BCM_SWITCH_OBM_PRIORITY_LOSSLESS1 3 /* This obm_priority is 7647 mapped to OBM buffer 7648 partition Lossless1 */ 7649 #define BCM_SWITCH_OBM_PRIORITY_EXPRESS 4 /* This obm_priority is 7650 mapped to OBM buffer 7651 partition Express */ 7652 7653 /* OBM classifier code point */ 7654 typedef int bcm_switch_obm_code_point_t; 7655 7656 /* OBM classifier ob_priority */ 7657 typedef int bcm_switch_obm_priority_t; 7658 7659 /* OBM classifier types */ 7660 typedef enum bcm_switch_obm_classifier_type_e { 7661 bcmSwitchObmClassifierDscp = 0, /* OBM classifier of type DSCP */ 7662 bcmSwitchObmClassifierMpls = 1, /* OBM classifier of type MPLS */ 7663 bcmSwitchObmClassifierEtag = 2, /* OBM classifier of type ETAG */ 7664 bcmSwitchObmClassifierVlan = 3, /* OBM classifier of type VLAN */ 7665 bcmSwitchObmClassifierHigig2 = 4, /* OBM classifier of type HiGig2 */ 7666 bcmSwitchObmClassifierField = 5, /* OBM classifier of type FIELD */ 7667 bcmSwitchObmClassifierHigig3 = 6, /* OBM classifier of type Higig3 */ 7668 bcmSwitchObmClassifierCount = 7 /* OBM classifier count */ 7669 } bcm_switch_obm_classifier_type_t; 7670 7671 /* OBM classifier parameters */ 7672 typedef struct bcm_switch_obm_classifier_s { 7673 uint32 flags; /* For future use */ 7674 bcm_mac_t obm_destination_mac; /* Destination MAC address */ 7675 bcm_mac_t obm_destination_mac_mask; /* Destination MAC address mask */ 7676 uint16 obm_ethertype; /* EtherType to be matched */ 7677 uint16 obm_ethertype_mask; /* Mask used in matching EtherType */ 7678 bcm_switch_obm_code_point_t obm_code_point; /* Oversubscription Buffer Manager 7679 classifier's code point.This field if 7680 overloaded for providing DSCP, MPLS 7681 traffic class, ETAG priority code 7682 point, VLAN priority code point or 7683 HiGig2 traffic class depending on the 7684 type of classifier. This will be 7685 mapped to obm_priority value. */ 7686 bcm_switch_obm_priority_t obm_priority; /* Oversubscription Buffer Manager 7687 classifier's priority for given 7688 obm_code_point. */ 7689 } bcm_switch_obm_classifier_t; 7690 7691 /* Initialize an OBM classifier structure. */ 7692 extern void bcm_switch_obm_classifier_t_init( 7693 bcm_switch_obm_classifier_t *switch_obm_classifier); 7694 7695 #ifndef BCM_HIDE_DISPATCHABLE 7696 7697 /* 7698 * Set the mapping from code_point, Dest MAC and EtherType to a 7699 * obm_priority based on OBM classifier type.For FIELD classifier always 7700 * first entry is used. 7701 */ 7702 extern int bcm_switch_obm_classifier_mapping_set( 7703 int unit, 7704 bcm_gport_t gport, 7705 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 7706 bcm_switch_obm_classifier_t *switch_obm_classifier); 7707 7708 /* 7709 * Get the mapping from code_point, Dest MAC and EtherType to a 7710 * obm_priority based on OBM classifier type. 7711 */ 7712 extern int bcm_switch_obm_classifier_mapping_get( 7713 int unit, 7714 bcm_gport_t gport, 7715 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 7716 bcm_switch_obm_classifier_t *switch_obm_classifier); 7717 7718 /* 7719 * Set multiple mapping from code_point, Dest MAC and EtherType to a 7720 * obm_priority based on OBM classifier type. 7721 */ 7722 extern int bcm_switch_obm_classifier_mapping_multi_set( 7723 int unit, 7724 bcm_gport_t gport, 7725 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 7726 int array_count, 7727 bcm_switch_obm_classifier_t *switch_obm_classifier); 7728 7729 /* 7730 * Get multiple mapping from port, Dest MAC and EtherType to a 7731 * obm_priority based on OBM classifier type. 7732 */ 7733 extern int bcm_switch_obm_classifier_mapping_multi_get( 7734 int unit, 7735 bcm_gport_t port, 7736 bcm_switch_obm_classifier_type_t switch_obm_classifier_type, 7737 int array_max, 7738 bcm_switch_obm_classifier_t *switch_obm_classifier, 7739 int *array_count); 7740 7741 #endif /* BCM_HIDE_DISPATCHABLE */ 7742 7743 /* Switch Dos Attack Events. */ 7744 typedef enum bcm_switch_dosattack_event_e { 7745 bcmSwitchDosAttackEventMACSAEqualMACDA = 0, /* Dos Attack Event when Source MAC is 7746 same as Destination MAC. */ 7747 bcmSwitchDosAttackEventIpFragOffset = 1, /* Dos Attack Event when Protocol field 7748 Offset in IPv4 or IPv6 header is 7749 equal to 1. */ 7750 bcmSwitchDosAttackEventV6Type0RoutingHdr = 2, /* Dos Attack Event when Type0 Routing 7751 Extension header is present in IPv6. */ 7752 bcmSwitchDosAttackEventV6NonLastFragLT1280 = 3, /* Dos Attack Event when non-last 7753 fragment of IPv6 Packet is less than 7754 1280 bytes. */ 7755 bcmSwitchDosAttackEventTcpIpFirstFragSmall = 4, /* Dos Attack Event when First Fragment 7756 of IP payload with TCP is smaller 7757 than configured value. */ 7758 bcmSwitchDosAttackEventTcpOffset = 5, /* Dos Attack Event when L4 is TCP and 7759 IP protocol offset is equal to 1. */ 7760 bcmSwitchDosAttackEventSynFrag = 6, /* Dos Attack Event when TCP SYN Packet 7761 with Source Port 0-1023 for non-first 7762 fragments tcp/udp port values are 7763 always zero. */ 7764 bcmSwitchDosAttackEventFlagZeroSeqZero = 7, /* Dos Attack Event when TCP Packets 7765 with control flags == 0 and sequence 7766 number == 0. */ 7767 bcmSwitchDosAttackEventTcpFlagsFUP = 8, /* Dos Attack Event when TCP Packets 7768 with FIN,URG & PSH bits set & 7769 sequence number == 0. */ 7770 bcmSwitchDosAttackEventTcpFlagsSF = 9, /* Dos Attack Event when TCP packets 7771 with SYN and FIN set. */ 7772 bcmSwitchDosAttackEventTcpPortsEqual = 10, /* Dos Attack Event when TCP Source and 7773 Destination ports are same. */ 7774 bcmSwitchDosAttackEventUdpPortsEqual = 11, /* Dos Attack Event when UDP Source and 7775 Destination ports are same. */ 7776 bcmSwitchDosAttackEventIcmp = 12, /* Dos Attack Event when ICMP V4 and V6 7777 ping packet with payload bigger than 7778 configured value. */ 7779 bcmSwitchDosAttackEventIcmpFragments = 13, /* Dos Attack Event when IPv4/IPv6 7780 fragmented ICMP packets. */ 7781 bcmSwitchDosAttackEventTcpFlagsSR = 14, /* Dos Attack Event when TCP packets 7782 with SYN and RST set. */ 7783 bcmSwitchDosAttackEventTcpFlagsSynFirstFrag = 15, /* Dos Attack Event when TCP with SYN 7784 set and first fragment of fragmented 7785 IP packet. */ 7786 bcmSwitchDosAttackEventTcpFlagsFinNoAck = 16, /* Dos Attack Event when TCP packet with 7787 FIN set but ACK not set. */ 7788 bcmSwitchDosAttackEventTcpFlagsRstNoAck = 17, /* Dos Attack Event when TCP packet with 7789 RST set but ACK not set. */ 7790 bcmSwitchDosAttackEventTcpFlagsNoSFRA = 18, /* Dos Attack Event when TCP packet with 7791 SYN, FIN, RST and ACK not set. */ 7792 bcmSwitchDosAttackEventTcpDstPortZero = 19, /* Dos Attack Event when TCP packet with 7793 Destination port equals to 0. */ 7794 bcmSwitchDosAttackEventTcpSrcPortZero = 20, /* Dos Attack Event when TCP packet with 7795 Source port equals to 0. */ 7796 bcmSwitchDosAttackEventTcpIpDstBcast = 21, /* Dos Attack Event when TCP Packet with 7797 Destination IP Broadcast. */ 7798 bcmSwitchDosAttackEventTcpFlagsZero = 22, /* Dos Attack Event when configured TCP 7799 flags is zero. */ 7800 bcmSwitchDosAttackEventTcpFlagsResvdNonZero = 23, /* Dos Attack Event when configured 7801 Reserved flags is non-zero. */ 7802 bcmSwitchDosAttackEventTcpFlagsAck = 24, /* Dos Attack Event when TCP flag ACK is 7803 set and Acknowledge number is zero. */ 7804 bcmSwitchDosAttackEventTcpFlagsUrgNoUrgPtr = 25, /* Dos Attack Event when TCP Flag URG 7805 set and Urgent pointer is zero. */ 7806 bcmSwitchDosAttackEventTcpFlagsNoUrgWithUrgPtr = 26, /* Dos Attack Event when TCP Flag URG 7807 not set and Urgent pointer is not 7808 zero. */ 7809 bcmSwitchDosAttackEventTcpFlagsSynOption = 27, /* Dos Attack Event when TCP Flag SYN 7810 set and Option same as configured 7811 value. */ 7812 bcmSwitchDosAttackEventCount = 28 /* Must be last. Not a usable value. */ 7813 } bcm_switch_dosattack_event_t; 7814 7815 #define BCM_SWITCH_DOSATTACK_EVENT_STR \ 7816 { \ 7817 "MACSAEqualMACDA", \ 7818 "IpFragOffset", \ 7819 "V6Type0RoutingHdr", \ 7820 "V6NonLastFragLT1280", \ 7821 "TcpIpFirstFragSmall", \ 7822 "TcpOffset", \ 7823 "SynFrag", \ 7824 "FlagZeroSeqZero", \ 7825 "TcpFlagsFUP", \ 7826 "TcpFlagsSF", \ 7827 "TcpPortsEqual", \ 7828 "UdpPortsEqual", \ 7829 "Icmp", \ 7830 "IcmpFragments", \ 7831 "TcpFlagsSR", \ 7832 "TcpFlagsSynFirstFrag", \ 7833 "TcpFlagsFinNoAck", \ 7834 "TcpFlagsRstNoAck", \ 7835 "TcpFlagsNoSFRA", \ 7836 "TcpDstPortZero", \ 7837 "TcpSrcPortZero", \ 7838 "TcpIpDstBcast", \ 7839 "TcpFlagsZero", \ 7840 "TcpFlagsResvdNonZero", \ 7841 "TcpFlagsAck", \ 7842 "TcpFlagsUrgNoUrgPtr", \ 7843 "TcpFlagsNoUrgWithUrgPtr", \ 7844 "TcpFlagsSynOption" \ 7845 } 7846 7847 /* Switch Dos Attack Events Flags. */ 7848 #define BCM_SWITCH_DOSATTACK_OUTER_HDR (1 << 0) /* Dos Attack events 7849 origin in outer header 7850 of packet. */ 7851 #define BCM_SWITCH_DOSATTACK_INNER_HDR (1 << 1) /* Dos Attack events 7852 origin in inner header 7853 of packet. */ 7854 #define BCM_SWITCH_DOSATTACK_FLOWTRACKER_PRESEL (1 << 2) /* Dos Attack events used 7855 for qualifying in 7856 presel of flowtracker 7857 FP stage. */ 7858 7859 #ifndef BCM_HIDE_DISPATCHABLE 7860 7861 /* 7862 * These API set/get dos attack event triggers for tracking or qualifying 7863 * purposes. 7864 */ 7865 extern int bcm_switch_dosattack_event_get( 7866 int unit, 7867 uint32 flags, 7868 bcm_switch_dosattack_event_t event, 7869 int *arg); 7870 7871 /* 7872 * These API set/get dos attack event triggers for tracking or qualifying 7873 * purposes. 7874 */ 7875 extern int bcm_switch_dosattack_event_set( 7876 int unit, 7877 uint32 flags, 7878 bcm_switch_dosattack_event_t event, 7879 int arg); 7880 7881 #endif /* BCM_HIDE_DISPATCHABLE */ 7882 7883 /* Tunnel UDP src port select */ 7884 typedef enum bcm_switch_tunnel_udp_src_port_select_e { 7885 bcmSwitchTunnelUdpSrcPortStatic = 0, /* Use static value configured in tunnel 7886 initiator */ 7887 bcmSwitchTunnelUdpSrcPortHashEntropy = 1, /* Calculate hash entropy to range [0, 7888 65535] as src port */ 7889 bcmSwitchTunnelUdpSrcPortHashEntropyPrivate = 2, /* Calculate hash entropy to private 7890 range [49152, 65535] as src port */ 7891 bcmSwitchTunnelUdpSrcPortCount = 3 /* Must be last */ 7892 } bcm_switch_tunnel_udp_src_port_select_t; 7893 7894 #define BCM_MAX_NOF_SEGMENTS 16 /* Max number of segment for kbp 7895 master key. */ 7896 #define BCM_ALIGN_MASTER_KEY 80 /* Align kbp master key to 80b. */ 7897 #define BCM_SEGMENT_NAME_SIZE 20 /* Segment name size. */ 7898 7899 /* Kbp master key segment info. */ 7900 typedef struct bcm_switch_kbp_master_key_segment_info_s { 7901 uint8 *segment_name; /* segment name */ 7902 int segment_size_bits; /* segment size in bits */ 7903 int segment_type; /* segment type */ 7904 } bcm_switch_kbp_master_key_segment_info_t; 7905 7906 /* Switch kbp app type info structure. */ 7907 typedef struct bcm_switch_kbp_apptype_info_s { 7908 int *inst_p; /* kbp_instruction_t* instruction 7909 pointer */ 7910 int *fwd_db; /* struct kbp_db* fwd db */ 7911 int *rpf_db; /* struct kbp_db* rpf db */ 7912 int *dummy_db; /* struct kbp_db* dummy db */ 7913 int *fwd_ad_db; /* struct kbp_ad_db* ad fwd db */ 7914 int *rpf_ad_db; /* struct kbp_ad_db* ad rpf db */ 7915 int *dummy_ad_db; /* struct kbp_ad_db* ad dummy db */ 7916 bcm_switch_kbp_master_key_segment_info_t master_key_segment[BCM_MAX_NOF_SEGMENTS]; /* master key fields segments */ 7917 int total_segments_size; /* total segments size in bits */ 7918 int opcode; /* opcode */ 7919 int ltr_index; /* ltr_index */ 7920 int master_key_nof_segments; /* master key fields number of segments */ 7921 int is_valid; /* is apptype valid */ 7922 } bcm_switch_kbp_apptype_info_t; 7923 7924 #define BCM_KBP_MAX_NOF_THREADS 2 /* KBP MAX NOF threads. */ 7925 7926 /* Switch kbp info structure. */ 7927 typedef struct bcm_switch_kbp_info_s { 7928 int *device_p; /* struct kbp_device* device_p */ 7929 int *thread_p[BCM_KBP_MAX_NOF_THREADS]; /* kbp thread pointers */ 7930 } bcm_switch_kbp_info_t; 7931 7932 #ifndef BCM_HIDE_DISPATCHABLE 7933 7934 /* Get kbp pointer from SDK. */ 7935 extern int bcm_switch_kbp_info_get( 7936 int unit, 7937 bcm_core_t core, 7938 bcm_switch_kbp_info_t *kbp_info); 7939 7940 /* Get apptype info per apptype. */ 7941 extern int bcm_switch_kbp_apptype_info_get( 7942 int unit, 7943 bcm_core_t core, 7944 bcm_field_AppType_t apptype, 7945 bcm_switch_kbp_apptype_info_t *apptype_info); 7946 7947 #endif /* BCM_HIDE_DISPATCHABLE */ 7948 7949 #define BCM_SWITCH_RECORD_MODE_LSB 0 /* Use the LSB bits of the layer 7950 record for load balancing key 7951 generation. */ 7952 #define BCM_SWITCH_RECORD_MODE_MSB 1 /* Use the MSB bits of the layer 7953 record for load balancing key 7954 generation. */ 7955 7956 /* Callback function used to power down the DRAM */ 7957 typedef void (*bcm_switch_dram_power_down_callback_t)( 7958 int unit, 7959 uint32 flags, 7960 void *userdata); 7961 7962 #ifndef BCM_HIDE_DISPATCHABLE 7963 7964 /* Registers/Unregisters a callback function for switch critical events */ 7965 extern int bcm_switch_dram_power_down_cb_register( 7966 int unit, 7967 uint32 flags, 7968 bcm_switch_dram_power_down_callback_t callback, 7969 void *userdata); 7970 7971 /* Registers/Unregisters a callback function for switch critical events */ 7972 extern int bcm_switch_dram_power_down_cb_unregister( 7973 int unit, 7974 bcm_switch_dram_power_down_callback_t callback, 7975 void *userdata); 7976 7977 /* API activates DRAM power down procedure */ 7978 extern int bcm_switch_dram_power_down( 7979 int unit, 7980 uint32 flags); 7981 7982 /* 7983 * DRAM partial init (after device power up) when powering back up the 7984 * DRAM after it was powered down 7985 */ 7986 extern int bcm_switch_dram_init( 7987 int unit, 7988 uint32 flags); 7989 7990 /* API enable/disable redirecting traffic to DRAM */ 7991 extern int bcm_switch_dram_traffic_enable_set( 7992 int unit, 7993 uint32 flags, 7994 uint32 enable); 7995 7996 #endif /* BCM_HIDE_DISPATCHABLE */ 7997 7998 /* Allocate encap for reflector with ID */ 7999 #define BCM_SWITCH_REFELCTOR_WITH_ID 0x1 8000 8001 /* Replace reflector encap data */ 8002 #define BCM_SWITCH_REFELCTOR_REPLACE 0x2 8003 8004 /* Reflector types */ 8005 typedef enum bcm_switch_reflector_type_e { 8006 bcmSwitchReflectorUc = 0, /* L2(UC external) or L3 (UC internal) 8007 reflector */ 8008 bcmSwitchReflectorL2UcInternal = 1, /* L2 internal unicast reflector */ 8009 bcmSwitchReflectorL2McExternal = 2, /* L2 external multicast reflector */ 8010 bcmSwitchReflectorL2McInternal = 3, /* L2 external multicast reflector */ 8011 bcmSwitchReflectorTwampIp4 = 4, /* TWAMP reflector over IPv4 */ 8012 bcmSwitchReflectorTwampIp6 = 5, /* TWAMP reflector over IPv6 */ 8013 bcmSwitchReflectorSbfdIp4 = 6, /* SBFD reflector over IPv4 */ 8014 bcmSwitchReflectorSbfdIp6 = 7, /* SBFD reflector over IPv6 */ 8015 bcmSwitchReflectorSbfdMpls = 8 /* SBFD reflector over MPLS */ 8016 } bcm_switch_reflector_type_t; 8017 8018 /* Reflector encap data */ 8019 typedef struct bcm_switch_reflector_data_s { 8020 bcm_switch_reflector_type_t type; /* reflector type */ 8021 bcm_mac_t mc_reflector_my_mac; /* Source MAC address stamped on the 8022 response packet. Relevant for MC 8023 reflector only. */ 8024 uint32 error_estimate; /* ERROR_ESTIMATE */ 8025 bcm_if_t next_encap_id; /* Next pointer encap id for the RCH 8026 Ethernet encapsulation */ 8027 } bcm_switch_reflector_data_t; 8028 8029 /* data bcm_switch_reflector_data_t initialization */ 8030 extern void bcm_switch_reflector_data_t_init( 8031 bcm_switch_reflector_data_t *data); 8032 8033 /* Callback function for reflector traverse */ 8034 typedef void (*bcm_switch_reflector_traverse_cb)( 8035 int unit, 8036 bcm_if_t encap_id, 8037 void *user_data); 8038 8039 #ifndef BCM_HIDE_DISPATCHABLE 8040 8041 /* 8042 * Create/Destroy/Get encap ID for L2/L3 relfectors (both unicast and 8043 * multicast) . 8044 */ 8045 extern int bcm_switch_reflector_create( 8046 int unit, 8047 uint32 flags, 8048 bcm_if_t *encap_id, 8049 bcm_switch_reflector_data_t *data); 8050 8051 /* 8052 * Create/Destroy/Get encap ID for L2/L3 relfectors (both unicast and 8053 * multicast) . 8054 */ 8055 extern int bcm_switch_reflector_get( 8056 int unit, 8057 uint32 flags, 8058 bcm_if_t encap_id, 8059 bcm_switch_reflector_data_t *data); 8060 8061 /* 8062 * Create/Destroy/Get encap ID for L2/L3 relfectors (both unicast and 8063 * multicast) . 8064 */ 8065 extern int bcm_switch_reflector_destroy( 8066 int unit, 8067 uint32 flags, 8068 bcm_if_t encap_id); 8069 8070 /* 8071 * Create/Destroy/Get encap ID for L2/L3 relfectors (both unicast and 8072 * multicast) . 8073 */ 8074 extern int bcm_switch_reflector_traverse( 8075 int unit, 8076 uint32 flags, 8077 bcm_switch_reflector_traverse_cb traverse_cb, 8078 void *user_data); 8079 8080 #endif /* BCM_HIDE_DISPATCHABLE */ 8081 8082 /* 8083 * Packet control options flags, common for integrity check API and 8084 * protocol control API. 8085 */ 8086 #define BCM_SWITCH_PKT_CONTROL_OPTIONS_REPLACE 0x00000001 /* Replace a packet 8087 control entry. */ 8088 8089 /* 8090 * Packet control action structure, common for integrity check API and 8091 * protocol control API. 8092 */ 8093 typedef struct bcm_switch_pkt_control_action_s { 8094 uint8 discard; /* Packet is discarded. */ 8095 uint8 copy_to_cpu; /* Packet is copied to CPU. */ 8096 uint8 flood; /* Packet is flooded to the forwarding domain. */ 8097 uint8 bpdu; /* Packet is BPDU. */ 8098 uint8 opaque_ctrl_id; /* Opaque control ID. */ 8099 uint32 class_id; /* Class ID. */ 8100 } bcm_switch_pkt_control_action_t; 8101 8102 /* An API to initialize a packet control action structure. */ 8103 extern void bcm_switch_pkt_control_action_t_init( 8104 bcm_switch_pkt_control_action_t *action); 8105 8106 /* Packet protocol match structure. */ 8107 typedef struct bcm_switch_pkt_protocol_match_s { 8108 uint8 l2_iif_opaque_ctrl_id; /* L2 iif based control id. */ 8109 uint8 l2_iif_opaque_ctrl_id_mask; /* L2 iif based control id mask. */ 8110 bcm_vlan_t vfi; /* Virtual forwarding instance. */ 8111 bcm_vlan_t vfi_mask; /* VFI mask. */ 8112 bcm_mac_t macda; /* Destination MAC address. */ 8113 bcm_mac_t macda_mask; /* Destination MAC address mask. */ 8114 uint16 ethertype; /* Ethernet type. */ 8115 uint16 ethertype_mask; /* Ethernet type mask. */ 8116 uint16 arp_rarp_opcode; /* ARP/RARP packet operation code. */ 8117 uint16 arp_rarp_opcode_mask; /* ARP/RARP packet operation code mask. */ 8118 uint8 icmp_type; /* ICMP type. */ 8119 uint8 icmp_type_mask; /* ICMP type mask. */ 8120 uint8 igmp_type; /* IGMP type. */ 8121 uint8 igmp_type_mask; /* IGMP type mask. */ 8122 uint8 l4_valid; /* If set, layer 4 header present. */ 8123 uint8 l4_valid_mask; /* L4_valid mask. */ 8124 uint16 l4_src_port; /* Layer 4 source port. */ 8125 uint16 l4_src_port_mask; /* Layer 4 source port mask. */ 8126 uint16 l4_dst_port; /* Layer 4 destination port. */ 8127 uint16 l4_dst_port_mask; /* Layer 4 destination port mask. */ 8128 uint16 l5_bytes_0_1; /* First 2 bytes of layer 5 header. */ 8129 uint16 l5_bytes_0_1_mask; /* L5_bytes_0_1 mask. */ 8130 uint16 outer_l5_bytes_0_1; /* Outer l5 bytes 0 1. */ 8131 uint16 outer_l5_bytes_0_1_mask; /* Outer l5 bytes 0 1 mask. */ 8132 uint8 ip_last_protocol; /* Protocol from IP extension header if 8133 present, otherwise from IP header. */ 8134 uint8 ip_last_protocol_mask; /* Ip_last_protocol mask. */ 8135 uint8 fixed_hve_result_set_1; /* Fixed HVE result 1. */ 8136 uint8 fixed_hve_result_set_1_mask; /* Fixed HVE result 1 mask. */ 8137 uint8 fixed_hve_result_set_5; /* Fixed HVE result 5. */ 8138 uint8 fixed_hve_result_set_5_mask; /* Fixed HVE result 5 mask. */ 8139 uint8 flex_hve_result_set_1; /* Flex HVE result 1. */ 8140 uint8 flex_hve_result_set_1_mask; /* Flex HVE result 1 mask. */ 8141 uint8 tunnel_processing_results_1; /* Tunnel processing results 1. */ 8142 uint8 tunnel_processing_results_1_mask; /* Tunnel processing results 1 mask. */ 8143 uint8 vfp_opaque_ctrl_id; /* VFP opaque ctrl id. */ 8144 uint8 vfp_opaque_ctrl_id_mask; /* VFP opaque ctrl id mask. */ 8145 uint8 vlan_xlate_opaque_ctrl_id; /* VLAN_XLATE opaque ctrl id: Bit 0 : 8146 VLAN_XLATE drop; Bit 1 : VLAN_XLATE 8147 copy to CPU; Bits 2-3: The highest 2 8148 bits of VLAN_XLATE opaque control id. */ 8149 uint8 vlan_xlate_opaque_ctrl_id_mask; /* vlan_xlate_opaque_ctrl_id - Mask. */ 8150 uint8 vlan_xlate_opaque_ctrl_id_1; /* VLAN_XLATE opaque ctrl id_1: Bits 8151 0-3: The lowest 4 bits of VLAN_XLATE 8152 opaque control id. */ 8153 uint8 vlan_xlate_opaque_ctrl_id_1_mask; /* vlan_xlate_opaque_ctrl_id_1 - Mask. */ 8154 uint8 l2_iif_opaque_ctrl_id_1; /* L2 iif based control id_1. */ 8155 uint8 l2_iif_opaque_ctrl_id_1_mask; /* L2 iif based control id_1 mask. */ 8156 uint8 fixed_hve_result_set_4; /* Fixed HVE result 4. */ 8157 uint8 fixed_hve_result_set_4_mask; /* Fixed HVE result 4 mask. */ 8158 } bcm_switch_pkt_protocol_match_t; 8159 8160 /* An API to initialize a protocol match structure. */ 8161 extern void bcm_switch_pkt_protocol_match_t_init( 8162 bcm_switch_pkt_protocol_match_t *match); 8163 8164 #ifndef BCM_HIDE_DISPATCHABLE 8165 8166 /* An API to add a protocol control entry. */ 8167 extern int bcm_switch_pkt_protocol_control_add( 8168 int unit, 8169 uint32 options, 8170 bcm_switch_pkt_protocol_match_t *match, 8171 bcm_switch_pkt_control_action_t *action, 8172 int priority); 8173 8174 /* An API to get action and priority for a protocol control entry. */ 8175 extern int bcm_switch_pkt_protocol_control_get( 8176 int unit, 8177 bcm_switch_pkt_protocol_match_t *match, 8178 bcm_switch_pkt_control_action_t *action, 8179 int *priority); 8180 8181 /* An API to delete a protocol control entry. */ 8182 extern int bcm_switch_pkt_protocol_control_delete( 8183 int unit, 8184 bcm_switch_pkt_protocol_match_t *match); 8185 8186 #endif /* BCM_HIDE_DISPATCHABLE */ 8187 8188 /* Protocol control entry callback function prototype. */ 8189 typedef int (*bcm_switch_pkt_protocol_control_traverse_cb)( 8190 int unit, 8191 bcm_switch_pkt_protocol_match_t *match, 8192 bcm_switch_pkt_control_action_t *action, 8193 int *priority, 8194 void *user_data); 8195 8196 #ifndef BCM_HIDE_DISPATCHABLE 8197 8198 /* Traverse all installed protocol control entries. */ 8199 extern int bcm_switch_pkt_protocol_control_traverse( 8200 int unit, 8201 bcm_switch_pkt_protocol_control_traverse_cb cb, 8202 void *user_data); 8203 8204 /* Delete all installed protocol control entries. */ 8205 extern int bcm_switch_pkt_protocol_control_delete_all( 8206 int unit); 8207 8208 #endif /* BCM_HIDE_DISPATCHABLE */ 8209 8210 /* Packet integrity match attribute structure. */ 8211 typedef struct bcm_switch_pkt_integrity_match_s { 8212 uint8 tunnel_processing_results_1; /* Tunnel processing results 1. */ 8213 uint8 tunnel_processing_results_1_mask; /* Tunnel processing results 1 mask. */ 8214 uint8 mpls_flow_type; /* Mpls flow type. */ 8215 uint8 mpls_flow_type_mask; /* Mpls flow type mask. */ 8216 uint8 my_station_1_hit; /* My station 1 hit. */ 8217 uint8 my_station_1_hit_mask; /* My station 1 hit mask. */ 8218 uint8 l4_valid; /* L4 valid. */ 8219 uint8 l4_valid_mask; /* L4 valid mask. */ 8220 uint8 icmp_type; /* Icmp type. */ 8221 uint8 icmp_type_mask; /* Icmp type mask. */ 8222 uint8 ip_last_protocol; /* Ip last protocol. */ 8223 uint8 ip_last_protocol_mask; /* Ip last protocol mask. */ 8224 uint16 tcp_hdr_len_and_flags; /* Tcp hdr len and flags. */ 8225 uint16 tcp_hdr_len_and_flags_mask; /* Tcp hdr len and flags mask. */ 8226 uint8 fixed_hve_result_0; /* Fixed hve result 0. */ 8227 uint8 fixed_hve_result_0_mask; /* Fixed hve result 0 mask. */ 8228 uint8 fixed_hve_result_1; /* Fixed hve result 1. */ 8229 uint8 fixed_hve_result_1_mask; /* Fixed hve result 1 mask. */ 8230 uint8 fixed_hve_result_2; /* Fixed hve result 2. */ 8231 uint8 fixed_hve_result_2_mask; /* Fixed hve result 2 mask. */ 8232 uint8 fixed_hve_result_3; /* Fixed hve result 3. */ 8233 uint8 fixed_hve_result_3_mask; /* Fixed hve result 3 mask. */ 8234 uint8 fixed_hve_result_4; /* Fixed hve result 4. */ 8235 uint8 fixed_hve_result_4_mask; /* Fixed hve result 4 mask. */ 8236 uint8 fixed_hve_result_5; /* Fixed hve result 5. */ 8237 uint8 fixed_hve_result_5_mask; /* Fixed hve result 5 mask. */ 8238 uint8 flex_hve_result_0; /* Flex hve result 0. */ 8239 uint8 flex_hve_result_0_mask; /* Flex hve result 0 mask. */ 8240 uint8 flex_hve_result_1; /* Flex hve result 1. */ 8241 uint8 flex_hve_result_1_mask; /* Flex hve result 1 mask. */ 8242 uint8 flex_hve_result_2; /* Flex hve result 2. */ 8243 uint8 flex_hve_result_2_mask; /* Flex hve result 2 mask. */ 8244 } bcm_switch_pkt_integrity_match_t; 8245 8246 /* Initialize a packet integrity match attribute structure. */ 8247 extern void bcm_switch_pkt_integrity_match_t_init( 8248 bcm_switch_pkt_integrity_match_t *match); 8249 8250 #ifndef BCM_HIDE_DISPATCHABLE 8251 8252 /* Add an entry into packet integrity check table. */ 8253 extern int bcm_switch_pkt_integrity_check_add( 8254 int unit, 8255 uint32 options, 8256 bcm_switch_pkt_integrity_match_t *match, 8257 bcm_switch_pkt_control_action_t *action, 8258 int priority); 8259 8260 /* Delete an entry from packet integrity check table. */ 8261 extern int bcm_switch_pkt_integrity_check_delete( 8262 int unit, 8263 bcm_switch_pkt_integrity_match_t *match); 8264 8265 /* Get an entry from packet integrity check table. */ 8266 extern int bcm_switch_pkt_integrity_check_get( 8267 int unit, 8268 bcm_switch_pkt_integrity_match_t *match, 8269 bcm_switch_pkt_control_action_t *action, 8270 int *priority); 8271 8272 #endif /* BCM_HIDE_DISPATCHABLE */ 8273 8274 /* 8275 * Monitor action definitions which are common to swith drop events and 8276 * switch trace events. 8277 */ 8278 #define BCM_SWITCH_MON_ACTION_NONE 0 /* Action none. */ 8279 #define BCM_SWITCH_MON_ACTION_COPY_TO_CPU 0x1 /* Enable to copy packets 8280 to CPU. */ 8281 #define BCM_SWITCH_MON_ACTION_LOOPBACK_DROP 0x2 /* Enable to drop 8282 loopback copy. */ 8283 8284 /* Switch drop event monitor structure. */ 8285 typedef struct bcm_switch_drop_event_mon_s { 8286 bcm_pkt_drop_event_t drop_event; /* Drop event. */ 8287 uint32 actions; /* BCM_SWITCH_MON_ACTION_XXX actions 8288 definitions. */ 8289 } bcm_switch_drop_event_mon_t; 8290 8291 /* Initialize a bcm_switch_drop_event_mon_t structure. */ 8292 extern void bcm_switch_drop_event_mon_t_init( 8293 bcm_switch_drop_event_mon_t *monitor); 8294 8295 #ifndef BCM_HIDE_DISPATCHABLE 8296 8297 /* 8298 * These APIs set/get monitor configuration for drop events defined in 8299 * <bcm/types.h>. 8300 */ 8301 extern int bcm_switch_drop_event_mon_set( 8302 int unit, 8303 bcm_switch_drop_event_mon_t *monitor); 8304 8305 /* 8306 * These APIs set/get monitor configuration for drop events defined in 8307 * <bcm/types.h>. 8308 */ 8309 extern int bcm_switch_drop_event_mon_get( 8310 int unit, 8311 bcm_switch_drop_event_mon_t *monitor); 8312 8313 #endif /* BCM_HIDE_DISPATCHABLE */ 8314 8315 /* Switch trace event monitor structure. */ 8316 typedef struct bcm_switch_trace_event_mon_s { 8317 bcm_pkt_trace_event_t trace_event; /* Trace event. */ 8318 uint32 actions; /* BCM_SWITCH_MON_ACTION_XXX actions 8319 definitions. */ 8320 } bcm_switch_trace_event_mon_t; 8321 8322 /* Initialize a bcm_switch_trace_event_mon_t structure. */ 8323 extern void bcm_switch_trace_event_mon_t_init( 8324 bcm_switch_trace_event_mon_t *monitor); 8325 8326 #ifndef BCM_HIDE_DISPATCHABLE 8327 8328 /* 8329 * These APIs set/get monitor configuration for trace events defined in 8330 * <bcm/types.h>. 8331 */ 8332 extern int bcm_switch_trace_event_mon_set( 8333 int unit, 8334 bcm_switch_trace_event_mon_t *monitor); 8335 8336 /* 8337 * These APIs set/get monitor configuration for trace events defined in 8338 * <bcm/types.h>. 8339 */ 8340 extern int bcm_switch_trace_event_mon_get( 8341 int unit, 8342 bcm_switch_trace_event_mon_t *monitor); 8343 8344 #endif /* BCM_HIDE_DISPATCHABLE */ 8345 8346 /* Hash banks. */ 8347 typedef enum bcm_switch_hash_bank_e { 8348 bcmSwitchHashBank0 = 0, /* Hash bank 0. */ 8349 bcmSwitchHashBank1 = 1, /* Hash bank 1. */ 8350 bcmSwitchHashBank2 = 2, /* Hash bank 2. */ 8351 bcmSwitchHashBank3 = 3, /* Hash bank 3. */ 8352 bcmSwitchHashBank4 = 4, /* Hash bank 4. */ 8353 bcmSwitchHashBank5 = 5, /* Hash bank 5. */ 8354 bcmSwitchHashBank6 = 6, /* Hash bank 6. */ 8355 bcmSwitchHashBank7 = 7, /* Hash bank 7. */ 8356 bcmSwitchHashBank8 = 8, /* Hash bank 8. */ 8357 bcmSwitchHashBank9 = 9, /* Hash bank 9. */ 8358 bcmSwitchHashBank10 = 10, /* Hash bank 10. */ 8359 bcmSwitchHashBank11 = 11, /* Hash bank 11. */ 8360 bcmSwitchHashBank12 = 12, /* Hash bank 12. */ 8361 bcmSwitchHashBank13 = 13, /* Hash bank 13. */ 8362 bcmSwitchHashBank14 = 14, /* Hash bank 14. */ 8363 bcmSwitchHashBank15 = 15, /* Hash bank 15. */ 8364 bcmSwitchHashBank16 = 16, /* Hash bank 16. */ 8365 bcmSwitchHashBank17 = 17, /* Hash bank 17. */ 8366 bcmSwitchHashBank18 = 18, /* Hash bank 18. */ 8367 bcmSwitchHashBank19 = 19, /* Hash bank 19. */ 8368 bcmSwitchHashBank20 = 20, /* Hash bank 20. */ 8369 bcmSwitchHashBank21 = 21, /* Hash bank 21. */ 8370 bcmSwitchHashBank22 = 22, /* Hash bank 22. */ 8371 bcmSwitchHashBank23 = 23, /* Hash bank 23. */ 8372 bcmSwitchHashBank24 = 24, /* Hash bank 24. */ 8373 bcmSwitchHashBank25 = 25, /* Hash bank 25. */ 8374 bcmSwitchHashBank26 = 26, /* Hash bank 26. */ 8375 bcmSwitchHashBank27 = 27, /* Hash bank 27. */ 8376 bcmSwitchHashBank28 = 28, /* Hash bank 28. */ 8377 bcmSwitchHashBank29 = 29, /* Hash bank 29. */ 8378 bcmSwitchHashBank30 = 30, /* Hash bank 30. */ 8379 bcmSwitchHashBank31 = 31, /* Hash bank 31. */ 8380 bcmSwitchHashBankCount = 32 /* Must Be Last. Not A Valid Hash Bank. */ 8381 } bcm_switch_hash_bank_t; 8382 8383 #ifndef BCM_HIDE_DISPATCHABLE 8384 8385 /* Get the hash banks assigned to a hash table. */ 8386 extern int bcm_switch_hash_bank_multi_get( 8387 int unit, 8388 bcm_switch_hash_table_t hash_table, 8389 int array_size, 8390 bcm_switch_hash_bank_t *bank_array, 8391 int *num_banks); 8392 8393 /* Get a set of hash tables to which the given hash bank is assigned. */ 8394 extern int bcm_switch_hash_table_multi_get( 8395 int unit, 8396 bcm_switch_hash_bank_t bank_num, 8397 int array_size, 8398 bcm_switch_hash_table_t *table_array, 8399 int *num_tables); 8400 8401 #endif /* BCM_HIDE_DISPATCHABLE */ 8402 8403 /* Hash bank information structure. */ 8404 typedef struct bcm_switch_hash_bank_info_s { 8405 bcm_switch_hash_bank_t bank_num; /* Hash bank number. */ 8406 uint32 base_entry_width; /* Width of base entry in bits. */ 8407 uint32 num_base_entries; /* Number of base entries. */ 8408 } bcm_switch_hash_bank_info_t; 8409 8410 /* Initialize a hash bank information structure. */ 8411 extern void bcm_switch_hash_bank_info_init( 8412 bcm_switch_hash_bank_info_t *bank_info); 8413 8414 #ifndef BCM_HIDE_DISPATCHABLE 8415 8416 /* Get information about a hash bank. */ 8417 extern int bcm_switch_hash_bank_info_get( 8418 int unit, 8419 bcm_switch_hash_bank_info_t *bank_info); 8420 8421 #endif /* BCM_HIDE_DISPATCHABLE */ 8422 8423 /* 8424 * Hash bank control valid fields. Each flag indicates whether a member 8425 * field in the bcm_switch_hash_bank_control_t structure is valid for the 8426 * hash bank control get or set function. 8427 */ 8428 #define BCM_SWITCH_HASH_BANK_CONTROL_ROBUST_VALID (1 << 0) /* Robust field valid. */ 8429 #define BCM_SWITCH_HASH_BANK_CONTROL_HASH_TYPE_VALID (1 << 1) /* Hash type field valid. */ 8430 #define BCM_SWITCH_HASH_BANK_CONTROL_OFFSET_VALID (1 << 2) /* Offset field valid. */ 8431 #define BCM_SWITCH_HASH_BANK_CONTROL_SEED_VALID (1 << 3) /* Robust hash seed field 8432 valid. */ 8433 8434 /* Hash bank control structure. */ 8435 typedef struct bcm_switch_hash_bank_control_s { 8436 bcm_switch_hash_bank_t bank_num; /* Hash bank number. */ 8437 uint32 valid_fields; /* Bitmap of valid fields. */ 8438 int robust; /* 0 to disable robust hash or 1 to 8439 enable robust hash. */ 8440 int hash_type; /* BCM_HASH_XXX definitions. */ 8441 uint32 offset; /* Hash offset. */ 8442 uint32 seed; /* Random seed for robust hash. */ 8443 } bcm_switch_hash_bank_control_t; 8444 8445 /* Initialize a hash bank control structure. */ 8446 extern void bcm_switch_hash_bank_control_init( 8447 bcm_switch_hash_bank_control_t *bank_control); 8448 8449 #ifndef BCM_HIDE_DISPATCHABLE 8450 8451 /* Hash bank control set/get function. */ 8452 extern int bcm_switch_hash_bank_control_set( 8453 int unit, 8454 bcm_switch_hash_bank_control_t *bank_control); 8455 8456 /* Hash bank control set/get function. */ 8457 extern int bcm_switch_hash_bank_control_get( 8458 int unit, 8459 bcm_switch_hash_bank_control_t *bank_control); 8460 8461 #endif /* BCM_HIDE_DISPATCHABLE */ 8462 8463 /* ISSU upgrade start. */ 8464 extern int bcm_switch_issu_upgrade_start( 8465 const char *from_ver, 8466 const char *to_ver); 8467 8468 /* ISSU upgrade done. */ 8469 extern int bcm_switch_issu_upgrade_done(void); 8470 8471 /* Concat header type to master key in ELK */ 8472 typedef enum bcm_switch_concat_header_e { 8473 bcmSwitchConcatHeaderNone = 0, /* No extra header concate to master key 8474 in ELK. */ 8475 bcmSwitchConcatHeaderForwarding = 1, /* Concate forwarding header to master 8476 key in ELK. */ 8477 bcmSwitchConcatHeaderNextForwarding = 2, /* Concate header following the 8478 forwarding header to master key in 8479 ELK. */ 8480 bcmSwitchConcatHeader__Count /* Must be last. */ 8481 } bcm_switch_concat_header_t; 8482 8483 /* Callback function used for device hard reset */ 8484 typedef void (*bcm_switch_hard_reset_callback_t)( 8485 int unit, 8486 uint32 flags, 8487 void *userdata); 8488 8489 #ifndef BCM_HIDE_DISPATCHABLE 8490 8491 /* 8492 * Registers/Unregisters a callback function for switch critical events - 8493 * hard reset 8494 */ 8495 extern int bcm_switch_hard_reset_cb_register( 8496 int unit, 8497 uint32 flags, 8498 bcm_switch_hard_reset_callback_t callback, 8499 void *userdata); 8500 8501 /* 8502 * Registers/Unregisters a callback function for switch critical events - 8503 * hard reset 8504 */ 8505 extern int bcm_switch_hard_reset_cb_unregister( 8506 int unit, 8507 bcm_switch_hard_reset_callback_t callback, 8508 void *userdata); 8509 8510 #endif /* BCM_HIDE_DISPATCHABLE */ 8511 8512 #define BCM_SWITCH_FEC_PROPERTY_1ST_HIERARCHY 0x1 /* First FEC Hierarchy. */ 8513 #define BCM_SWITCH_FEC_PROPERTY_2ND_HIERARCHY 0x2 /* Second FEC Hierarchy. */ 8514 #define BCM_SWITCH_FEC_PROPERTY_3RD_HIERARCHY 0x4 /* Third FEC Hierarchy. */ 8515 8516 /* 8517 * This structure contains the first and last FEC ID in the FEC IDs range 8518 * of the given hierarchy. 8519 */ 8520 typedef struct bcm_switch_fec_property_config_s { 8521 uint32 flags; /* BCM_SWITCH_FEC_PROPERTY_XXX */ 8522 int start; /* Start ID */ 8523 int end; /* End ID */ 8524 } bcm_switch_fec_property_config_t; 8525 8526 #ifndef BCM_HIDE_DISPATCHABLE 8527 8528 /* Get the available FEC IDs for each FEC hierarchy. */ 8529 extern int bcm_switch_fec_property_get( 8530 int unit, 8531 bcm_switch_fec_property_config_t *fec_config); 8532 8533 #endif /* BCM_HIDE_DISPATCHABLE */ 8534 8535 /* 8536 * An enum that represent a resource type to be used with 8537 * bcm_dnx_switch_resource_utilization_get 8538 */ 8539 typedef enum bcm_switch_resource_type_e { 8540 bcmResourceTypeEM = 0, 8541 bcmResourceTypeLPM = 1, 8542 bcmResourceTypeDirect = 2, 8543 bcmResourceTypeNOF = 3 /* should always be last */ 8544 } bcm_switch_resource_type_t; 8545 8546 /* 8547 * A struct that represent resource utilization Is used as output for 8548 * bcm_switch_resource_utilization_get. 8549 * Is used as output for 8550 * bcm_switch_resource_utilization_get. 8551 * Can be expanded in the future to represent more 8552 * complex resources. 8553 */ 8554 typedef struct bcm_switch_resource_utilization_s { 8555 uint32 guaranteed_free; /* the maximum number of resources that are free for 8556 use in the worst case configuration sequence */ 8557 } bcm_switch_resource_utilization_t; 8558 8559 /* 8560 * A struct that represent resource properties and can be used as input 8561 * for bcm_switch_resource_utilization_get in order to get more accurate 8562 * result 8563 */ 8564 typedef struct bcm_switch_resource_utilization_query_s { 8565 bcm_switch_resource_type_t type; /* This field represent the type of the 8566 resource */ 8567 uint32 id; /* This field can serve as a resource ID 8568 if such is applicable for the 8569 resource type */ 8570 } bcm_switch_resource_utilization_query_t; 8571 8572 #ifndef BCM_HIDE_DISPATCHABLE 8573 8574 /* 8575 * return the utilization for a specific resource the free field in the 8576 * utilization output is represented as worst case and not average case. 8577 */ 8578 extern int bcm_switch_resource_utilization_get( 8579 int unit, 8580 bcm_switch_resource_utilization_query_t *resource, 8581 bcm_switch_resource_utilization_t *utilization); 8582 8583 /* Get number of LED microcontrollers. */ 8584 extern int bcm_switch_led_uc_num_get( 8585 int unit, 8586 int *led_uc_num); 8587 8588 /* Load LED firmware binary. */ 8589 extern int bcm_switch_led_fw_load( 8590 int unit, 8591 int led_uc, 8592 const uint8 *data, 8593 int len); 8594 8595 /* Start/stop LED firmware. */ 8596 extern int bcm_switch_led_fw_start_set( 8597 int unit, 8598 int led_uc, 8599 int data); 8600 8601 /* Get if LED firmware is started or not. */ 8602 extern int bcm_switch_led_fw_start_get( 8603 int unit, 8604 int led_uc, 8605 int *data); 8606 8607 /* Write control data of LED firmware. */ 8608 extern int bcm_switch_led_control_data_write( 8609 int unit, 8610 int led_uc, 8611 int offset, 8612 const uint8 *data, 8613 int len); 8614 8615 /* Read control data of LED firmware. */ 8616 extern int bcm_switch_led_control_data_read( 8617 int unit, 8618 int led_uc, 8619 int offset, 8620 uint8 *data, 8621 int len); 8622 8623 /* Map physical port to LED microcontroller number and port index. */ 8624 extern int bcm_switch_led_port_to_uc_port_get( 8625 int unit, 8626 int port, 8627 int *led_uc, 8628 int *led_uc_port); 8629 8630 /* 8631 * Configure the mapping from physical port to LED microcontroller number 8632 * and port index. 8633 */ 8634 extern int bcm_switch_led_port_to_uc_port_set( 8635 int unit, 8636 int port, 8637 int led_uc, 8638 int led_uc_port); 8639 8640 #endif /* BCM_HIDE_DISPATCHABLE */ 8641 8642 /* Replace the existing encap id to destination mapping entry */ 8643 #define BCM_SWITCH_ENCAP_DEST_REPLACE 0x00000001 8644 8645 /* Encap destination struct */ 8646 typedef struct bcm_switch_encap_dest_s { 8647 uint32 flags; /* BCM_SWITCH_ENCAP_DEST_xxx flags. */ 8648 bcm_if_t encap_id; /* Encap-ID. */ 8649 bcm_gport_t gport; /* Gport for Destination. */ 8650 } bcm_switch_encap_dest_t; 8651 8652 #ifndef BCM_HIDE_DISPATCHABLE 8653 8654 /* Add an encap id to destination mapping entry. */ 8655 extern int bcm_switch_encap_dest_map_add( 8656 int unit, 8657 bcm_switch_encap_dest_t *encap_info); 8658 8659 /* 8660 * Delete the encap id to destination mapping entry with the given 8661 * encap_id. 8662 */ 8663 extern int bcm_switch_encap_dest_map_delete( 8664 int unit, 8665 bcm_switch_encap_dest_t *encap_info); 8666 8667 /* Get the destination with the given encap_id. */ 8668 extern int bcm_switch_encap_dest_map_get( 8669 int unit, 8670 bcm_switch_encap_dest_t *encap_info); 8671 8672 #endif /* BCM_HIDE_DISPATCHABLE */ 8673 8674 /* Switch encap dest map traverse callback. */ 8675 typedef int (*bcm_switch_encap_dest_map_traverse_cb)( 8676 int unit, 8677 bcm_switch_encap_dest_t *encap_info, 8678 void *user_data); 8679 8680 #ifndef BCM_HIDE_DISPATCHABLE 8681 8682 /* Traverse the all added encap id to destination mapping entries. */ 8683 extern int bcm_switch_encap_dest_map_traverse( 8684 int unit, 8685 bcm_switch_encap_dest_map_traverse_cb cb_fn, 8686 void *user_data); 8687 8688 #endif /* BCM_HIDE_DISPATCHABLE */ 8689 8690 /* Values passed for setting switch control bcmSwitchMactAgeRefreshMode. */ 8691 typedef enum bcm_switch_age_refresh_mode_e { 8692 bcmSwitchAgeRefreshModeSrc = 0, /* Aging hit bit mode set to source 8693 address */ 8694 bcmSwitchAgeRefreshModeDest = 1, /* Aging hit bit mode set to destination 8695 address */ 8696 bcmSwitchAgeRefreshModeSrcAndDest = 2, /* Aging hit bit mode set to source and 8697 destination addresses */ 8698 bcmSwitchAgeRefreshModeSrcOrDest = 3 /* Aging hit bit mode set to source or 8699 destination addresses */ 8700 } bcm_switch_age_refresh_mode_t; 8701 8702 /* SVTAG flags. */ 8703 #define BCM_SWITCH_SVTAG_EGRESS_REPLACE 0x1 /* Replace an SVTAG 8704 entry. */ 8705 #define BCM_SWITCH_SVTAG_EGRESS_DEFAULT_ENTRY 0x2 /* Update the default 8706 entry values, used in 8707 case of not found. */ 8708 8709 /* SVTAG traverse flags. */ 8710 #define BCM_SWITCH_SVTAG_EGRESS_TRAVERSE_DELETE_ALL 0x1 /* Delete all the SVTAG 8711 entries. */ 8712 8713 /* SVTAG Egress info structure */ 8714 typedef struct bcm_switch_svtag_egress_info_s { 8715 uint32 sci; /* secure context index. */ 8716 bcm_svtag_pkt_type_t pkt_type; /* The packet type. */ 8717 uint32 offset_addr; /* The offset addition to place the security 8718 tag. */ 8719 uint32 signature; /* The SVTAG signature value. */ 8720 uint8 ipv6_indication; /* Indication of an IPv6 tunneling. */ 8721 uint8 accumulation; /* accumulate the offset to the security 8722 tag. */ 8723 } bcm_switch_svtag_egress_info_t; 8724 8725 /* switch SVTAG egress traverse callback signature */ 8726 typedef int (*bcm_switch_svtag_egress_traverse_cb)( 8727 int unit, 8728 uint32 flags, 8729 bcm_gport_t gport, 8730 bcm_switch_svtag_egress_info_t *svtag_info, 8731 void *user_data); 8732 8733 #ifndef BCM_HIDE_DISPATCHABLE 8734 8735 /* Adds an SVTAG entry the EM database. */ 8736 extern int bcm_switch_svtag_egress_entry_add( 8737 int unit, 8738 uint32 flags, 8739 bcm_gport_t gport, 8740 bcm_switch_svtag_egress_info_t *svtag_info); 8741 8742 /* Gets an SVTAG entry. */ 8743 extern int bcm_switch_svtag_egress_entry_get( 8744 int unit, 8745 uint32 flags, 8746 bcm_gport_t gport, 8747 bcm_switch_svtag_egress_info_t *svtag_info); 8748 8749 /* Delete an SVTAG entry. */ 8750 extern int bcm_switch_svtag_egress_entry_delete( 8751 int unit, 8752 uint32 flags, 8753 bcm_gport_t gport); 8754 8755 /* Traverse through the SVTAG egress entries and run callback. */ 8756 extern int bcm_switch_svtag_egress_entry_traverse( 8757 int unit, 8758 uint32 flags, 8759 bcm_switch_svtag_egress_traverse_cb trav_fn, 8760 void *user_data); 8761 8762 #endif /* BCM_HIDE_DISPATCHABLE */ 8763 8764 /* 8765 * Values of tunnel collapsing protocols that can be disabled by 8766 * bcmSwitchL3TunnelCollapseDisable switch control 8767 */ 8768 typedef enum bcm_switch_l3_tunnel_e { 8769 bcmSwitchL3TunnelL2TP = 0, /* L2TP */ 8770 bcmSwitchL3TunnelVxLan = 1, /* VxLan */ 8771 bcmSwitchL3TunnelGtpU = 2, /* GTP-U */ 8772 bcmSwitchL3TunnelCount = 3 /* Count */ 8773 } bcm_switch_l3_tunnel_t; 8774 8775 /* Application signature Identifier. */ 8776 typedef uint32 bcm_switch_appl_signature_t; 8777 8778 #define BCM_SWITCH_APPL_SIGNATURE_L4_PAYLOAD_MATCH_LEN 32 /* Number of bytes that 8779 can be matched in L4 8780 payload. */ 8781 8782 #define BCM_SWITCH_APPL_SIGNATURE_TYPE_TCP (1 << 0) /* Application signature 8783 for TCP flow */ 8784 #define BCM_SWITCH_APPL_SIGNATURE_TYPE_UDP (1 << 1) /* Application signature 8785 for UDP flow */ 8786 #define BCM_SWITCH_APPL_SIGNATURE_TYPE_RESPONSE (1 << 2) /* Application signature 8787 for Response packets */ 8788 8789 #define BCM_SWITCH_APPL_SIGNATURE_WITH_ID (1 << 0) /* Create Application 8790 signature with Id */ 8791 #define BCM_SWITCH_APPL_SIGNATURE_INNER_PAYLOAD (1 << 1) /* Application signature 8792 for matching in inner 8793 payload */ 8794 8795 /* Application signature information */ 8796 typedef struct bcm_switch_appl_signature_info_s { 8797 uint32 flags; /* control flags, default values 8798 indicate tcp flow */ 8799 uint32 priority; /* priority of applicate signature entry */ 8800 uint16 l4protocol_port; /* L4 Protocol port */ 8801 uint8 l4_payload[BCM_SWITCH_APPL_SIGNATURE_L4_PAYLOAD_MATCH_LEN]; /* L4 payload data array */ 8802 uint8 l4_payload_mask[BCM_SWITCH_APPL_SIGNATURE_L4_PAYLOAD_MATCH_LEN]; /* L4 payload data array */ 8803 } bcm_switch_appl_signature_info_t; 8804 8805 /* Initialize a Application signature structure. */ 8806 extern void bcm_switch_appl_signature_info_t_init( 8807 bcm_switch_appl_signature_info_t *appl_signature_info); 8808 8809 #ifndef BCM_HIDE_DISPATCHABLE 8810 8811 /* Create application signature entry. */ 8812 extern int bcm_switch_appl_signature_create( 8813 int unit, 8814 uint32 options, 8815 bcm_switch_appl_signature_info_t *appl_signature_info, 8816 bcm_switch_appl_signature_t *appl_signature); 8817 8818 /* Get application signature entry info. */ 8819 extern int bcm_switch_appl_signature_get( 8820 int unit, 8821 uint32 options, 8822 bcm_switch_appl_signature_t appl_signature, 8823 bcm_switch_appl_signature_info_t *appl_signature_info); 8824 8825 /* Get all application signature entries configured in the system. */ 8826 extern int bcm_switch_appl_signature_get_all( 8827 int unit, 8828 uint32 options, 8829 int size, 8830 bcm_switch_appl_signature_t *appl_signature_array, 8831 int *count); 8832 8833 /* Set priority of application signature entry. */ 8834 extern int bcm_switch_appl_signature_prio_set( 8835 int unit, 8836 uint32 options, 8837 bcm_switch_appl_signature_t appl_signature, 8838 uint32 priority); 8839 8840 /* Destroy application signature entry. */ 8841 extern int bcm_switch_appl_signature_destroy( 8842 int unit, 8843 uint32 options, 8844 bcm_switch_appl_signature_t appl_signature); 8845 8846 #endif /* BCM_HIDE_DISPATCHABLE */ 8847 8848 /* Values of the IPv6 address 32b word index */ 8849 typedef enum bcm_switch_ipv6_word_index_e { 8850 bcmSwitchIPv6LowLsb = 0, /* LSB Low */ 8851 bcmSwitchIPv6LowMsb = 1, /* LSB Low */ 8852 bcmSwitchIPv6HighLsb = 2, /* LSB Low */ 8853 bcmSwitchIPv6HighMsb = 3 /* LSB Low */ 8854 } bcm_switch_ipv6_word_index_t; 8855 8856 /* Values of the SVTag Error Codes */ 8857 typedef enum bcm_switch_svtag_err_code_e { 8858 bcmSwitchSvtagErrCodeNone = 0, /* Error Code None */ 8859 bcmSwitchSvtagErrCodeSpTcamMiss = 1, 8860 bcmSwitchSvtagErrCodeTagCntrlPortDisabledPkt = 2, 8861 bcmSwitchSvtagErrCodeUntagCtrlPortDisabledPkt = 3, 8862 bcmSwitchSvtagErrCodeIpv4ChecksumMismatchOrMplsBosNotFound = 4, 8863 bcmSwitchSvtagErrCodeInvalidSectag = 5, 8864 bcmSwitchSvtagErrCodeScTcamMiss = 6, 8865 bcmSwitchSvtagErrCodeNoSa = 7, 8866 bcmSwitchSvtagErrCodeReplayFailure = 8, 8867 bcmSwitchSvtagErrCodeCount = 9 8868 } bcm_switch_svtag_err_code_t; 8869 8870 /* 8871 * This enum contains values of operators that can be used on L4 OPS 8872 * Extended Range Types 8873 */ 8874 typedef enum bcm_switch_range_operator_e { 8875 bcmSwitchRangeOperatorInvalid = -1, /* Param Invalid */ 8876 bcmSwitchRangeOperatorFirst = 0, /* First Param (used for indexing) */ 8877 bcmSwitchRangeOperatorNone = bcmSwitchRangeOperatorFirst, /* Operator None (in3,in2,in1,in0) */ 8878 bcmSwitchRangeOperatorFirstPairAnd = 1, /* Operator First Pair And 8879 (in3,in2,in1,in1&in0) */ 8880 bcmSwitchRangeOperatorSecondPairAnd = 2, /* Operator Second Pair And 8881 (in3,in3&in2,in1,in0) */ 8882 bcmSwitchRangeOperatorBothPairAnd = 3, /* Operator Both Pair And 8883 (in3,in3&in2,in1,in1&in0) */ 8884 bcmSwitchRangeOperator64bPairAndLow = 4, /* Operator 64b Pair And Low 8885 (in3,in2,{in3,in2}&{in1,in0}) */ 8886 bcmSwitchRangeOperator64bPairAndHigh = 5, /* Operator 64b Pair And High 8887 ({in3,in2}&{in1,in0},in1,in0) */ 8888 bcmSwitchRangeOperatorFirstPairOr = 6, /* Operator First Pair Or 8889 (in3,in2,in1,in1|in0) */ 8890 bcmSwitchRangeOperatorSecondPairOr = 7, /* Operator Second Pair Or 8891 (in3,in3|in2,in1,in0) */ 8892 bcmSwitchRangeOperatorBothPairOr = 8, /* Operator Both Pair Or 8893 (in3,in3|in2,in1,in1|in0) */ 8894 bcmSwitchRangeOperator64bPairOrLow = 9, /* Operator 64b Pair Or Low 8895 (in3,in2,{in3,in2}|{in1,in0}) */ 8896 bcmSwitchRangeOperator64bPairOrHigh = 10, /* Operator 64b Pair Or High 8897 ({in3,in2}|{in1,in0},in1,in0) */ 8898 bcmSwitchRangeOperatorCount = 11 /* Count */ 8899 } bcm_switch_range_operator_t; 8900 8901 #define BCM_SWITCH_RANGE_OPERATOR_STR \ 8902 { \ 8903 "None", \ 8904 "FirstPairAnd", \ 8905 "SecondPairAnd", \ 8906 "BothPairAnd", \ 8907 "64bPairAndLow", \ 8908 "64bPairAndHigh", \ 8909 "FirstPairOr", \ 8910 "SecondPairOr", \ 8911 "BothPairOr", \ 8912 "64bPairOrLow", \ 8913 "64bPairOrHigh" \ 8914 } 8915 8916 /* 8917 * This enum contains values of result map selection for L4 OPS Extended 8918 * Encoders 8919 */ 8920 typedef enum bcm_switch_range_result_map_e { 8921 bcmSwitchRangeResultMapInvalid = -1, /* Param Invalid */ 8922 bcmSwitchRangeResultMapFirst = 0, /* First Param (used for indexing) */ 8923 bcmSwitchRangeResultMapNone = bcmSwitchRangeResultMapFirst, /* Result None */ 8924 bcmSwitchRangeResultMapFirstOnly = 1, /* Result [First] (out0) */ 8925 bcmSwitchRangeResultMapSecondOnly = 2, /* Result [Second] (out1) */ 8926 bcmSwitchRangeResultMapThirdOnly = 3, /* Result [Third] (out2) */ 8927 bcmSwitchRangeResultMapForthOnly = 4, /* Result [Forth] (out3) */ 8928 bcmSwitchRangeResultMapFirstnSecond = 5, /* Result [First,Second] (out1,out0) */ 8929 bcmSwitchRangeResultMapFirstnThird = 6, /* Result {First,Third} (out2,out0) */ 8930 bcmSwitchRangeResultMapFirstnForth = 7, /* Result [First,Forth] (out3,out0) */ 8931 bcmSwitchRangeResultMapSecondnThird = 8, /* Result [Second,Third] (out2,out1) */ 8932 bcmSwitchRangeResultMapSecondnForth = 9, /* Result [Second,Forth] (out3,out1) */ 8933 bcmSwitchRangeResultMapThirdnForth = 10, /* Result [Third,Forth] (out3,out2) */ 8934 bcmSwitchRangeResultMapFirstnSecondnThird = 11, /* Result [First,Second,Third] 8935 (out2,out1,out0) */ 8936 bcmSwitchRangeResultMapFirstnSecondnForth = 12, /* Result [First,Second,Forth] 8937 (out3,out1,out0) */ 8938 bcmSwitchRangeResultMapFirstnThirdnForth = 13, /* Result [First,Third,Forth] 8939 (out3,out2,out0) */ 8940 bcmSwitchRangeResultMapSecondnThirdnForth = 14, /* Result [Second,Third,Forth] 8941 (out3,out2,out1) */ 8942 bcmSwitchRangeResultMapFirstnSecondnThirdnForth = 15, /* Result [First,Second,Third,Forth] 8943 (out3,out2,out1,out0) */ 8944 bcmSwitchRangeResultMapCount = 16 /* Count */ 8945 } bcm_switch_range_result_map_t; 8946 8947 #define BCM_SWITCH_RANGE_RESULT_MAP_STR \ 8948 { \ 8949 "None", \ 8950 "FirstOnly", \ 8951 "SecondOnly", \ 8952 "ThirdOnly", \ 8953 "ForthOnly", \ 8954 "FirstnSecond", \ 8955 "FirstnThird", \ 8956 "FirstnForth", \ 8957 "SecondnThird", \ 8958 "SecondnForth", \ 8959 "ThirdnForth", \ 8960 "FirstnSecondnThird", \ 8961 "FirstnSecondnForth", \ 8962 "FirstnThirdnForth", \ 8963 "SecondnThirdnForth", \ 8964 "FirstnSecondnThirdnForth" \ 8965 } 8966 8967 /* LIF hit type. */ 8968 #define BCM_SWITCH_LIF_HIT_INGRESS 0x1 /* Ingress Logical Interface. */ 8969 #define BCM_SWITCH_LIF_HIT_EGRESS 0x2 /* Egress Logical Interface */ 8970 #define BCM_SWITCH_LIF_HIT_L3_INTF 0x4 /* In case set, indicate L3 8971 interface is used, otherwise 8972 gport */ 8973 #define BCM_SWITCH_LIF_HIT_GET 0x8 /* Get LIF HIT indication */ 8974 #define BCM_SWITCH_LIF_HIT_CLEAR 0x10 /* Clear LIF HIT indication */ 8975 8976 /* 8977 * This structure describes the fields that need to be supplies for the 8978 * LIF hit. 8979 */ 8980 typedef struct bcm_switch_lif_hit_s { 8981 uint32 flags; /* LIF hit flags */ 8982 bcm_gport_t gport; /* Gport ID */ 8983 bcm_if_t l3_intf; /* L3 interface ID */ 8984 uint32 val; /* HIT value */ 8985 } bcm_switch_lif_hit_t; 8986 8987 #ifndef BCM_HIDE_DISPATCHABLE 8988 8989 /* Get the LIF hit values */ 8990 extern int bcm_switch_lif_hit_get( 8991 int unit, 8992 bcm_switch_lif_hit_t *lif_hit); 8993 8994 #endif /* BCM_HIDE_DISPATCHABLE */ 8995 8996 /* Values passed for setting switch control bcmSwitchIoamType. */ 8997 typedef enum bcm_switch_ioam_type_e { 8998 bcmSwitchIoamTypeIncrementalTrace = 0, /* IOAM incremental trace option type */ 8999 bcmSwitchIoamTypeCount = 1 /* Always last */ 9000 } bcm_switch_ioam_type_t; 9001 9002 /* Action selection for bcmSwitchIntVectorMatchMissAction. */ 9003 #define BCM_SWITCH_INT_VECTOR_MATCH_MISS_DROP 0 /* Drop. */ 9004 #define BCM_SWITCH_INT_VECTOR_MATCH_MISS_FORWARD 1 /* Forward. */ 9005 9006 /* Enums to choose IPV6 L3 Local Link Src disposition. */ 9007 typedef enum bcm_switch_v6l3_local_link_select_e { 9008 bcmSwitchV6L3LocalLinkSrcDrop = 2, /* Always drop packets with Link Local 9009 SIP */ 9010 bcmSwitchV6L3LocalLinkSrcDstNotLocalDrop = 3, /* Drop packets with Link Local SIP only 9011 if DIP is not local link.If DIP is 9012 also Local Link, do not drop the 9013 packets */ 9014 bcmSwitchV6L3LocalLinkSelectCount = 4 /* Always last */ 9015 } bcm_switch_v6l3_local_link_select_t; 9016 9017 /* Specify the type of packets to be redirected or copied to CPU. */ 9018 typedef enum bcm_switch_ep_recirc_pkt_copy_type_e { 9019 bcmSwitchEpRecircPktCopyTypeNoCopy = 0, /* No copy. */ 9020 bcmSwitchEpRecircPktCopyTypeDropped = 1, /* Copy only if the incoming packet is 9021 dropped. */ 9022 bcmSwitchEpRecircPktCopyTypeNotDropped = 2, /* Copy only if the incoming packet is 9023 not dropped. */ 9024 bcmSwitchEpRecircPktCopyTypeAll = 3, /* Copy all packets. */ 9025 bcmSwitchEpRecircPktCopyTypeCount = 4 /* Must be last. Not a usable value. */ 9026 } bcm_switch_ep_recirc_pkt_copy_type_t; 9027 9028 /* 9029 * Specify how the residence time field is constructed in NIH or CPU DMA 9030 * header. 9031 */ 9032 typedef enum bcm_switch_ep_recirc_residence_time_field_select_e { 9033 bcmSwitchEpRecircResidenceTimeFieldSelectTime = 0, /* Select residence time. */ 9034 bcmSwitchEpRecircResidenceTimeFieldSelectOpaqueObjBC = 1, /* Select opaque object B and C. */ 9035 bcmSwitchEpRecircResidenceTimeFieldSelectCount = 2 /* Must be last. Not a usable value. */ 9036 } bcm_switch_ep_recirc_residence_time_field_select_t; 9037 9038 /* 9039 * Specify how the timestamp field is constructed in NIH or CPU DMA 9040 * header. 9041 */ 9042 typedef enum bcm_switch_ep_recirc_timestamp_select_e { 9043 bcmSwitchEpRecircTimestampSelectIngress = 0, /* Select ingress timestamp. */ 9044 bcmSwitchEpRecircTimestampSelectEgress = 1, /* Select egress timestamp. */ 9045 bcmSwitchEpRecircTimestampSelectCount = 2 /* Must be last. Not a usable value. */ 9046 } bcm_switch_ep_recirc_timestamp_select_t; 9047 9048 /* 9049 * Specify the set of contiguous trace events to be copied to the NIH 9050 * header. 9051 */ 9052 typedef enum bcm_switch_ep_recirc_nih_trace_event_select_e { 9053 bcmSwitchEpRecircNihTraceEventDisable = 0, /* Disable the trace events from being 9054 copied into the NIH header. */ 9055 bcmSwitchEpRecircNihTraceEvent_0_15 = 1, /* Select trace events 0-15. */ 9056 bcmSwitchEpRecircNihTraceEvent_16_31 = 2, /* Select trace events 16-31. */ 9057 bcmSwitchEpRecircNihTraceEvent_32_47 = 3, /* Select trace events 32-47. */ 9058 bcmSwitchEpRecircNihTraceEventCount = 4 /* Must be last. Not a usable value. */ 9059 } bcm_switch_ep_recirc_nih_trace_event_select_t; 9060 9061 /* Specify the destination type for the redirected packets. */ 9062 typedef enum bcm_switch_ep_recirc_nih_dest_type_e { 9063 bcmSwitchEpRecircNihDestTypeNone = 0, /* No destination specified. */ 9064 bcmSwitchEpRecircNihDestTypeFromOpaqueA = 1, /* The two fields destination_type and 9065 destination in the NIH header will 9066 carry values of the opaque control A 9067 and opaque object A from the internal 9068 bus. */ 9069 bcmSwitchEpRecircNihDestTypeEgressL2Interface = 2, /* Destination type is Egress L2 9070 interface (L2 OIF). */ 9071 bcmSwitchEpRecircNihDestTypeCount = 3 /* Must be last. Not a usable value. */ 9072 } bcm_switch_ep_recirc_nih_dest_type_t; 9073 9074 /* Flags for bcm_switch_ep_recirc_profile_t. */ 9075 #define BCM_SWITCH_EP_RECIRC_PROFILE_REPLACE (1U << 0) /* Update a profile 9076 entry. */ 9077 #define BCM_SWITCH_EP_RECIRC_PROFILE_WITH_ID (1U << 1) /* Create or update a 9078 profile with id. */ 9079 #define BCM_SWITCH_EP_RECIRC_DROP_SWITCHED_PACKET (1U << 2) /* Drop the switched 9080 packet in the first 9081 pass. */ 9082 9083 /* 9084 * This structure configures the data that will be carried in the 9085 * residence time field on the NIH header. 9086 */ 9087 typedef struct bcm_switch_ep_recirc_nih_residence_time_field_config_s { 9088 bcm_switch_ep_recirc_residence_time_field_select_t res_time_field_select; /* NIH header residence time field 9089 selection. */ 9090 int nih_drop_code_en; /* Enable to copy the highest and first 9091 drop code to the NIH header. This 9092 will overwrite the upper 16 bit of 9093 residence time field. */ 9094 bcm_switch_ep_recirc_nih_trace_event_select_t nih_trace_event_select; /* Select one of the sets of contiguous 9095 trace events to be copied to the NIH 9096 header. This will overwrite the lower 9097 16 bit of residence time field. */ 9098 } bcm_switch_ep_recirc_nih_residence_time_field_config_t; 9099 9100 /* 9101 * EP Recirculate config structure for NIH construction for redirected 9102 * packets. 9103 */ 9104 typedef struct bcm_switch_ep_recirc_nih_config_s { 9105 bcm_switch_ep_recirc_nih_dest_type_t destination_type; /* Destination type used for the 9106 redirected packets. */ 9107 int destination; /* Destination of the redirected 9108 packets. The meaning of the value 9109 depends on the destination type. */ 9110 bcm_switch_ep_recirc_timestamp_select_t timestamp_select; /* Timestamp field selection. */ 9111 bcm_switch_ep_recirc_nih_residence_time_field_config_t res_time_field_cfg; /* Residence time field construction. */ 9112 } bcm_switch_ep_recirc_nih_config_t; 9113 9114 /* 9115 * This structure configures the data that will be carried in the 9116 * timestamp field on the CPU DMA header for packets copied to CPU. 9117 */ 9118 typedef struct bcm_switch_ep_recirc_cpu_dma_timestamp_field_config_s { 9119 bcm_switch_ep_recirc_timestamp_select_t timestamp_select; /* Timestamp field selection. */ 9120 int opaque_obj_a_en; /* Enable to carry opaque object A. This 9121 will overwrite the upper 16 bit of 9122 timestamp field. */ 9123 } bcm_switch_ep_recirc_cpu_dma_timestamp_field_config_t; 9124 9125 /* EP Recirculate config structure for CPU DMA header construction. */ 9126 typedef struct bcm_switch_ep_recirc_cpu_dma_config_s { 9127 bcm_switch_ep_recirc_cpu_dma_timestamp_field_config_t timestamp_field_cfg; /* Timestamp field construction. */ 9128 bcm_switch_ep_recirc_residence_time_field_select_t res_time_field_select; /* Residence time field selection. */ 9129 uint32 cpu_dma_header_flex_word_bitmap; /* Bitmap to select which 32-bit words 9130 from the internal bus to be copied to 9131 the CPU DMA header flex portion for 9132 packets copied to CPU. Users need to 9133 refer to related documents for the 9134 meaning of the words and the number 9135 of words to choose from. */ 9136 } bcm_switch_ep_recirc_cpu_dma_config_t; 9137 9138 /* EP Recirculate profile structure. */ 9139 typedef struct bcm_switch_ep_recirc_profile_s { 9140 int recirc_profile_id; /* Profile id. */ 9141 uint32 flags; /* See BCM_XXX_EP_RECIRC_PROFILE_XXX 9142 flag definitions. */ 9143 bcm_switch_ep_recirc_pkt_copy_type_t redirect_type; /* Specify types of packets to be 9144 redirected. */ 9145 bcm_switch_ep_recirc_pkt_copy_type_t tocpu_type; /* Specify types of packets to be copied 9146 to CPU. */ 9147 int truncate_cell_length; /* Truncated size (in cells) for the 9148 recirc packet. 0 means no truncation. */ 9149 int buffer_priority; /* Enqueue priority specified for the 9150 redirect data buffer (RDB). */ 9151 bcm_switch_ep_recirc_nih_config_t nih_cfg; /* Config for NIH header construction 9152 for redirected packets. */ 9153 bcm_switch_ep_recirc_cpu_dma_config_t cpu_dma_cfg; /* Config for CPU DMA header 9154 construction for copy-to-CPU packets. */ 9155 } bcm_switch_ep_recirc_profile_t; 9156 9157 /* 9158 * Initialize an EP Recirculate NIH residence time field config 9159 * structure. 9160 */ 9161 extern void bcm_switch_ep_recirc_nih_residence_time_field_config_t_init( 9162 bcm_switch_ep_recirc_nih_residence_time_field_config_t *nih_residence_time_field); 9163 9164 /* Initialize an EP Recirculate NIH config structure. */ 9165 extern void bcm_switch_ep_recirc_nih_config_t_init( 9166 bcm_switch_ep_recirc_nih_config_t *nih_config); 9167 9168 /* 9169 * Initialize an EP Recirculate CPU DMA header timestamp field config 9170 * structure. 9171 */ 9172 extern void bcm_switch_ep_recirc_cpu_dma_timestamp_field_config_t_init( 9173 bcm_switch_ep_recirc_cpu_dma_timestamp_field_config_t *cpu_dma_timestamp_field); 9174 9175 /* Initialize an EP Recirculate CPU DMA header config structure. */ 9176 extern void bcm_switch_ep_recirc_cpu_dma_config_t_init( 9177 bcm_switch_ep_recirc_cpu_dma_config_t *cpu_dma_config); 9178 9179 /* Initialize an EP Recirculate profile structure. */ 9180 extern void bcm_switch_ep_recirc_profile_t_init( 9181 bcm_switch_ep_recirc_profile_t *recirc_profile); 9182 9183 #ifndef BCM_HIDE_DISPATCHABLE 9184 9185 /* Create an EP Recirculate profile. */ 9186 extern int bcm_switch_ep_recirc_profile_create( 9187 int unit, 9188 bcm_switch_ep_recirc_profile_t *recirc_profile, 9189 int *recirc_profile_id); 9190 9191 /* Destroy an EP Recirculate profile. */ 9192 extern int bcm_switch_ep_recirc_profile_destroy( 9193 int unit, 9194 int recirc_profile_id); 9195 9196 /* Get all EP Recirculate profile. */ 9197 extern int bcm_switch_ep_recirc_profile_get_all( 9198 int unit, 9199 int *recirc_profile_id_array, 9200 int *count); 9201 9202 /* Get an EP Recirculate profile. */ 9203 extern int bcm_switch_ep_recirc_profile_get( 9204 int unit, 9205 int recirc_profile_id, 9206 bcm_switch_ep_recirc_profile_t *recirc_profile); 9207 9208 #endif /* BCM_HIDE_DISPATCHABLE */ 9209 9210 /* EP Recirculate drop event control structure. */ 9211 typedef struct bcm_switch_ep_recirc_drop_event_control_s { 9212 int recirc_en; /* Enable for drop event to trigger EP Recirculate 9213 based on the configs of this structure. */ 9214 int threshold; /* If highest drop code of a dropped packet is 9215 larger or equal to the threshold, trigger EP 9216 Recirculate based on the calculated profile index 9217 entry. Users need to refer to related documents 9218 for the list of drop codes. */ 9219 int profile_id_mask; /* This mask is used to calculate the EP Recirculate 9220 profile id for the drop events. Final profile id 9221 = ((ing_profile_id & profile_id_mask) | 9222 profile_id_offset). Where ing_profile_id is the 9223 original id derived from the ingress pipeline. */ 9224 int profile_id_offset; /* This offset is used to calculate the EP 9225 Recirculate profile id for the drop events. See 9226 above for how the final profile id is calculated. */ 9227 } bcm_switch_ep_recirc_drop_event_control_t; 9228 9229 /* Initialize an EP Recirculate drop event control structure. */ 9230 extern void bcm_switch_ep_recirc_drop_event_control_t_init( 9231 bcm_switch_ep_recirc_drop_event_control_t *drop_event_ctrl); 9232 9233 #ifndef BCM_HIDE_DISPATCHABLE 9234 9235 /* Set drop event based EP Recirculate control. */ 9236 extern int bcm_switch_ep_recirc_drop_event_control_set( 9237 int unit, 9238 bcm_switch_ep_recirc_drop_event_control_t *drop_event_ctrl); 9239 9240 /* Get drop event based EP Recirculate control. */ 9241 extern int bcm_switch_ep_recirc_drop_event_control_get( 9242 int unit, 9243 bcm_switch_ep_recirc_drop_event_control_t *drop_event_ctrl); 9244 9245 #endif /* BCM_HIDE_DISPATCHABLE */ 9246 9247 /* EP Recirculate trace event control structure. */ 9248 typedef struct bcm_switch_ep_recirc_trace_event_control_s { 9249 int recirc_en; /* Enable for trace event to trigger EP Recirculate 9250 based on the configs of this structure. */ 9251 int profile_id_mask; /* This mask is used to calculate the EP Recirculate 9252 profile id for the trace events. Final profile id 9253 = ((ing_profile_id & profile_id_mask) | 9254 profile_id_offset). Where ing_profile_id is the 9255 original id derived from the ingress pipeline. */ 9256 int profile_id_offset; /* This offset is used to calculate the EP 9257 Recirculate profile id for the trace events. See 9258 above for how the final profile id is calculated. */ 9259 } bcm_switch_ep_recirc_trace_event_control_t; 9260 9261 /* Initialize an EP Recirculate trace event control structure. */ 9262 extern void bcm_switch_ep_recirc_trace_event_control_t_init( 9263 bcm_switch_ep_recirc_trace_event_control_t *trace_event_ctrl); 9264 9265 #ifndef BCM_HIDE_DISPATCHABLE 9266 9267 /* Set trace event based EP Recirculate control. */ 9268 extern int bcm_switch_ep_recirc_trace_event_control_set( 9269 int unit, 9270 bcm_switch_ep_recirc_trace_event_control_t *trace_event_ctrl); 9271 9272 /* Get trace event based EP Recirculate control. */ 9273 extern int bcm_switch_ep_recirc_trace_event_control_get( 9274 int unit, 9275 bcm_switch_ep_recirc_trace_event_control_t *trace_event_ctrl); 9276 9277 /* Enable/disable a trace event to trigger EP Recirculate. */ 9278 extern int bcm_switch_ep_recirc_trace_event_enable_set( 9279 int unit, 9280 bcm_pkt_trace_event_t trace_event, 9281 int enable); 9282 9283 /* Get all enabled trace events for EP Recirculate. */ 9284 extern int bcm_switch_ep_recirc_trace_event_enable_get_all( 9285 int unit, 9286 bcm_pkt_trace_event_t *trace_event_array, 9287 int *count); 9288 9289 /* Get enabled status of a trace event for EP Recirculate. */ 9290 extern int bcm_switch_ep_recirc_trace_event_enable_get( 9291 int unit, 9292 bcm_pkt_trace_event_t trace_event, 9293 int *enable); 9294 9295 #endif /* BCM_HIDE_DISPATCHABLE */ 9296 9297 #define BCM_SWITCH_WIDE_DATA_EXTENSION_REPLACE 0x1 9298 9299 typedef struct bcm_switch_wide_data_extension_info_s { 9300 uint32 wide_data_key; 9301 uint64 wide_data_result; 9302 } bcm_switch_wide_data_extension_info_t; 9303 9304 #ifndef BCM_HIDE_DISPATCHABLE 9305 9306 extern int bcm_switch_wide_data_extension_add( 9307 int unit, 9308 uint32 flags, 9309 bcm_switch_wide_data_extension_info_t *info); 9310 9311 extern int bcm_switch_wide_data_extension_get( 9312 int unit, 9313 uint32 flags, 9314 bcm_switch_wide_data_extension_info_t *info); 9315 9316 extern int bcm_switch_wide_data_extension_delete( 9317 int unit, 9318 uint32 flags, 9319 bcm_switch_wide_data_extension_info_t *info); 9320 9321 #endif /* BCM_HIDE_DISPATCHABLE */ 9322 9323 typedef int (*bcm_switch_wide_data_extension_traverse_cb)( 9324 int unit, 9325 uint32 flags, 9326 bcm_switch_wide_data_extension_info_t *info, 9327 void *user_data); 9328 9329 #ifndef BCM_HIDE_DISPATCHABLE 9330 9331 extern int bcm_switch_wide_data_extension_traverse( 9332 int unit, 9333 bcm_switch_wide_data_extension_traverse_cb cb, 9334 void *user_data); 9335 9336 #endif /* BCM_HIDE_DISPATCHABLE */ 9337 9338 #endif /* __BCM_SWITCH_H__ */