RFC 2674
Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering and Virtual LAN Extensions
RFC 2674: Definitions of Managed Objects for Bridges with Traffic Classes, Multicast Filtering and Virtual LAN Extensions π
okay bestie, this one is a whole vibe π It's RFC 2674, dated August 1999, and it's a Standards Track doc, so the Internet community is supposed to actually use it. The squad behind it is E. Bell from 3Com Corp., A. Smith from Extreme Networks, P. Langille from Newbridge Networks, A. Rijhsinghani from Cabletron Systems, and K. McCloghrie from cisco Systems β¨ The header doesn't list anything it obsoletes or updates, so it's standing on its own π¦
Status of this Memo π§
so this doc is an Internet standards track protocol, and it's asking everyone to talk about it and suggest improvements π«Ά If you want to know where it sits in the official standardization state, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share it with everyone π
Copyright Notice
The Internet Society owns the copyright here (1999), and all rights are reserved π
Abstract β¨
this memo defines a chunk of the Management Information Base (MIB) for network management protocols in TCP/IP based internets π It's giving two MIB modules for managing the new stuff in MAC bridges. Those bridges follow IEEE 802.1D-1998 MAC Bridges and IEEE 802.1Q-1998 Virtual LAN (VLAN) standards, and they bridge between Local Area Network (LAN) segments π
The first module handles the 'Traffic Classes' and 'Enhanced Multicast Filtering' parts of IEEE 802.1D-1998. The second one handles IEEE 802.1Q VLANs π¦
Transparent bridging gets support too π The objects are also set up so they apply to bridges connected by subnetworks other than LAN segments. This memo also includes several MIB modules that comply with the SMIv2 [V2SMI] β
This memo supplements RFC 1493 [BRIDGEMIB] and, to a lesser extent, RFC 1525 [SBRIDGEMIB] π«Ά
Table of Contents π
1 The SNMP Management Framework ................................... 3
2 Overview ........................................................ 4
2.1 Scope ......................................................... 4
3 Structure of MIBs ............................................... 5
3.1 Structure of Extended Bridge MIB module ....................... 5
3.1.1 Relationship to IEEE 802.1D-1998 Manageable Objects ......... 6
3.1.2 Relationship to IEEE 802.1Q Manageable Objects .............. 8
3.1.3 The dot1dExtBase Group ...................................... 8
3.1.4 The dot1dPriority Group ..................................... 9
3.1.5 The dot1dGarp Group ......................................... 9
3.1.6 The dot1dGmrp Group ......................................... 9
3.1.7 The dot1dTpHCPortTable ...................................... 9
3.1.8 The dot1dTpPortOverflowTable ................................ 9
3.2 Structure of Virtual Bridge MIB module ........................ 9
3.2.1 Relationship to IEEE 802.1Q Manageable Objects .............. 9
3.2.2 The dot1qBase Group .........................................13
3.2.3 The dot1qTp Group ...........................................13
3.2.4 The dot1qStatic Group .......................................13
3.2.5 The dot1qVlan Group .........................................13
3.3 Textual Conventions ...........................................13
3.4 Relationship to Other MIBs ....................................14
3.4.1 Relationship to the 'system' group ..........................14
3.4.2 Relation to Interfaces MIB ..................................14
3.4.2.1 Layering Model ............................................15
3.4.2.2 ifStackTable ..............................................16
3.4.2.3 ifRcvAddressTable .........................................16
3.4.3 Relation to Original Bridge MIB .............................16
3.4.3.1 The dot1dBase Group .......................................16
3.4.3.2 The dot1dStp Group ........................................17
3.4.3.3 The dot1dTp Group .........................................17
3.4.3.4 The dot1dStatic Group .....................................17
3.4.3.5 Additions to the Original Bridge MIB ......................18
4 Definitions for Extended Bridge MIB .............................18
5 Definitions for Virtual Bridge MIB ..............................39
6 Acknowledgments .................................................80
7 Security Considerations .........................................80
8 References ......................................................81
9 Authors' Addresses ..............................................84
10 Intellectual Property ..........................................85
11 Full Copyright Statement .......................................86
1. The SNMP Management Framework πΈ
the SNMP Management Framework has five major components, so let's go through them π
- An overall architecture, described in an Architecture for Describing SNMP Management Frameworks [ARCH].
- Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and is described in STD 16, RFC 1155 [V1SMI], STD 16, RFC 1212 [V1CONCISE] and RFC 1215 [V1TRAPS]. The second version, called SMIv2, is described in STD 58, RFC 2578 [V2SMI], STD 58, RFC 2579 [V2TC] and STD 58, RFC 2580 [V2CONFORM].
- Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and is described in STD 15, RFC 1157 [V1PROTO]. A second version, SNMPv2c, is not an Internet standards track protocol, and it's described in RFC 1901 [V2COMMUNITY] and RFC 1906 [V2TRANS]. The third version of the message protocol is called SNMPv3 and is described in RFC 1906 [V2TRANS], Message Processing and Dispatching [V3MPC] and User-based Security Model [V3USM].
- Protocol operations for accessing management information. The first set of protocol operations and their PDU formats is described in STD 15, RFC 1157 [V1PROTO]. A second set is described in RFC 1905 [V2PROTO].
- A set of fundamental applications described in SNMPv3 Applications [V3APPS], plus the view-based access control mechanism described in View-based Access Control Model [V3VACM].
Managed objects are accessed through a virtual information store called the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms in the SMI π
This memo specifies a MIB module that is compliant to SMIv2. A MIB conforming to SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during translation. However, that loss of machine readable information is not considered to change the semantics of the MIB π€
2. Overview π
okay so a Bridge is a super common device in lots of networks. It connects Local Area Network segments below the network layer, and people often call these devices 'layer 2 switches' π¦
There are two major bridging modes: Source-Route and transparent. Source-Route bridging is described by IEEE 802.5 [802.5], and this document won't discuss it any further π
The transparent method is defined by IEEE 802.1D-1998 [802.1D], which updates the original IEEE 802.1D specification [802.1D-ORIG]. Managed objects for that original transparent bridging spec were defined in RFC 1493 [BRIDGEMIB] β¨
IEEE 802.1Q-1998 [802.1Q] augments the original IEEE 802.1D to support 'virtual bridged LANs'. Here, one physical bridged LAN can support multiple logical bridged LANs, and each one offers a service roughly the same as the one defined by IEEE 802.1D. Virtual LANs (VLANs) are an integral feature of switched LAN networks π A VLAN can be viewed as a group of end-stations spread across multiple LAN segments that can still talk to each other as if they were on one LAN. IEEE 802.1Q defines port-based VLANs, where membership is determined by the bridge port the data frames arrive on. This memo defines the objects needed to manage port-based VLANs in bridge entities π
This memo defines the objects needed to manage a bridging entity operating in transparent mode, plus some objects that apply to all types of bridges. Managed objects for Source-Route bridging are defined in RFC 1525 [SRBRIDGEMIB] π«Ά
2.1. Scope π₯
this MIB includes a comprehensive set of managed objects that tries to match the set defined in IEEE 802.1D and IEEE 802.1Q. However, to fit the spirit of the SNMP Framework, a subjective judgement was made to leave out the objects from those standards that are most 'costly' to implement in an agent and least 'essential' for fault and configuration management. The omissions are described in section 3 below π
Historical note π
The original bridge MIB [BRIDGEMIB] used these principles for deciding whether an object goes into the BRIDGE-MIB module:
- Start with a small set of essential objects, and add more only as they're needed.
- Require that objects be essential for either fault or configuration management.
- Consider evidence of current use and/or utility.
- Limit the total number of objects.
- Exclude objects that are simply derivable from others in this or other MIBs.
- Avoid causing critical sections to be heavily instrumented. The guideline that was followed is one counter per critical section per layer.
3. Structure of MIBs π§
this document defines additional objects on top of the ones in the original BRIDGE-MIB module defined in [BRIDGEMIB]. That MIB module is to be maintained unchanged for backwards compatibility π Section 3.4.3 of this document has some recommendations about how devices implementing these enhancements should use objects from the original bridge MIB.
Two MIB modules are defined here:
- Managed objects for an extended bridge MIB module, P-BRIDGE-MIB, for the traffic class and multicast filtering enhancements defined by IEEE 802.1D-1998 [802.1D].
- Managed objects for a virtual bridge MIB module, Q-BRIDGE-MIB, for the Virtual LAN bridging enhancements defined by IEEE 802.1Q-1998 [802.1Q].
3.1. Structure of Extended Bridge MIB module π·
objects in this MIB are arranged into groups. Each group is organized as a set of related objects. The overall structure, and how objects are assigned to their groups, is shown below β¨
3.1.1. Relationship to IEEE 802.1D-1998 Manageable Objects π
okay so this section is the cross-reference bit π§ It maps the objects from IEEE 802.1D-1998 [802.1D] to the ones in this MIB, and it also spills the tea on which of those objects didn't make the cut because they aren't considered necessary here π
some of the 802.1D-1998 objects ended up in the virtual bridge MIB module instead of this one π¦ the entries in dot1qTpGroupTable, dot1qForwardAllTable and dot1qForwardUnregisteredTable are needed for virtual bridged LANs with extra indexing (like per-VLAN or per-FDB), so they aren't defined here.
but if a device doesn't do virtual bridged LANs and only does the Extended Forwarding Services from IEEE 802.1D (so, dynamically learning multicast group addresses and group service requirements in the filtering database) then it should implement these tables with a fixed value for dot1qFdbId (the value 1 is recommended) or dot1qVlanIndex (the value 1 is recommended) πΈ and devices that support Extended Filtering Services should support dot1qTpGroupTable, dot1qForwardAllTable and dot1qForwardUnregisteredTable π«Ά
here's the mapping table:
Extended Bridge MIB Name IEEE 802.1D-1998 Name
dot1dExtBase Bridge
dot1dDeviceCapabilities
dot1dExtendedFilteringServices
dot1dTrafficClasses
dot1dTrafficClassesEnabled
dot1dGmrpStatus .ApplicantAdministrativeControl
dot1dPriority
dot1dPortPriorityTable
dot1dPortDefaultUserPriority .UserPriority
dot1dPortNumTrafficClasses
dot1dUserPriorityRegenTable .UserPriorityRegenerationTable
dot1dUserPriority
dot1dRegenUserPriority
dot1dTrafficClassTable .TrafficClassTable
dot1dTrafficClassPriority
dot1dTrafficClass
dot1dPortOutboundAccessPriorityTable
.OutboundAccessPriorityTable
dot1dPortOutboundAccessPriority
dot1dGarp
dot1dPortGarpTable
dot1dPortGarpJoinTime .JoinTime
dot1dPortGarpLeaveTime .LeaveTime
dot1dPortGarpLeaveAllTime .LeaveAllTime
dot1dGmrp
dot1dPortGmrpTable
dot1dPortGmrpStatus .ApplicantAdministrativeControl
dot1dPortGmrpFailedRegistrations .FailedRegistrations
dot1dPortGmrpLastPduOrigin .OriginatorOfLastPDU
dot1dTp
dot1dTpHCPortTable
dot1dTpHCPortInFrames .BridgePort.FramesReceived
dot1dTpHCPortOutFrames .ForwardOutBound
dot1dTpHCPortInDiscards .DiscardInbound
dot1dTpPortOverflowTable
dot1dTpPortInOverflowFrames .BridgePort.FramesReceived
dot1dTpPortOutOverflowFrames .ForwardOutBound
dot1dTpPortInOverflowDiscards .DiscardInbound
and these 802.1D-1998 management objects didn't make it into the Bridge MIB, for the reasons listed here π
IEEE 802.1D-1998 Object Disposition
Bridge.StateValue not considered useful
Bridge.ApplicantAdministrativeControl
not provided per-attribute
(e.g. per-VLAN, per-Group).
Only per-{device,port,application}
control is provided in this MIB.
3.1.2. Relationship to IEEE 802.1Q Manageable Objects β¨
this section is basically a section-number cross-reference for the manageable objects in IEEE 802.1Q-1998 [802.1Q] π¦ these objects got included in this MIB because they're a natural fit next to the IEEE 802.1D objects they live alongside, so it's giving cohesive π
Extended Bridge MIB Name IEEE 802.1Q-1998 Section and Name
dot1dExtBase Bridge
dot1dDeviceCapabilities
dot1qStaticEntryIndividualPort 5.2 implementation options
dot1qIVLCapable
dot1qSVLCapable
dot1qHybridCapable
dot1qConfigurablePvidTagging 12.10.1.1 read bridge vlan
config
dot1dLocalVlanCapable
dot1dPortCapabilitiesTable
dot1dPortCapabilities
dot1qDot1qTagging 5.2 implementation options
dot1qConfigurableAcceptableFrameTypes
5.2 implementation options
dot1qIngressFiltering 5.2 implementation options
3.1.3. The dot1dExtBase Group π
this group holds the objects that apply to every bridge implementing the traffic class and multicast filtering features of IEEE 802.1D-1998 [802.1D] π it includes per-device configuration for GARP and GMRP. this group will be implemented by all devices that implement the extensions defined in 802.1D-1998, so no skipping it, bestie π«Ά
3.1.4. The dot1dPriority Group πΈ
this group is all about configuring and reporting the status of priority-based queuing mechanisms in a bridge β it covers per-port user_priority treatment, mapping user_priority in frames into internal traffic classes, and outbound user_priority and access_priority. main character energy π
3.1.5. The dot1dGarp Group π§
this group holds the objects for configuring and reporting on the operation of the Generic Attribute Registration Protocol (GARP) π
3.1.6. The dot1dGmrp Group π
this group holds the objects for configuring and reporting on the operation of the GARP Multicast Registration Protocol (GMRP) β¨
3.1.7. The dot1dTpHCPortTable π¦
this table extends the dot1dTp group from the original bridge MIB [BRIDGEMIB] and holds the objects for reporting port bridging statistics for high capacity network interfaces π₯
3.1.8. The dot1dTpPortOverflowTable π
this table also extends the dot1dTp group from the original bridge MIB [BRIDGEMIB] π it holds the objects for reporting the upper bits of port bridging statistics on high capacity network interfaces, for when 32-bit counters are inadequate π
3.2. Structure of Virtual Bridge MIB module π
objects in this MIB are arranged into groups, and each group is organized as a set of related objects π the overall structure and the assignment of objects to their groups is shown below. some manageable objects defined in the original bridge MIB [BRIDGEMIB] need to be indexed differently when they're used in a VLAN bridging environment. so these objects are effectively duplicated by new objects with different indexing, which are defined in the Virtual Bridge MIB π«Ά
3.2.1. Relationship to IEEE 802.1Q Manageable Objects β¨
okay so this bit is basically a map πΊοΈ It shows which Virtual Bridge MIB objects line up with the manageable objects in clause 12 of IEEE 802.1Q-1998 [802.1Q], and it also lists the ones this MIB module decided it doesn't really need π
Note: unlike IEEE 802.1D-1998, IEEE 802.1Q-1998 [802.1Q] did not define exact syntax for a set of managed objects. So the cross-references below just point to the section numbers where the management operations are described in clause 12 of that document. π§
Here's the mapping, bestie:
Virtual Bridge MIB object IEEE 802.1Q-1998 Reference
dot1qBase
dot1qVlanVersionNumber 12.10.1.1 read bridge vlan config
dot1qMaxVlanId 12.10.1.1 read bridge vlan config
dot1qMaxSupportedVlans 12.10.1.1 read bridge vlan config
dot1qNumVlans
dot1qGvrpStatus 12.9.2.1/2 read/set garp
applicant controls
dot1qTp
dot1qFdbTable
dot1qFdbId
dot1qFdbDynamicCount 12.7.1.1.3 read filtering d/base
dot1qTpFdbTable
dot1qTpFdbAddress
dot1qTpFdbPort
dot1qTpFdbStatus
dot1qTpGroupTable 12.7.7.1 read filtering entry
dot1qTpGroupAddress
dot1qTpGroupEgressPorts
dot1qTpGroupLearnt
dot1qForwardAllTable 12.7.7.1 read filtering entry
dot1qForwardAllPorts
dot1qForwardAllStaticPorts
dot1qForwardAllForbiddenPorts
dot1qForwardUnregisteredTable 12.7.7.1 read filtering entry
dot1qForwardUnregisteredPorts
dot1qForwardUnregisteredStaticPorts
dot1qForwardUnregisteredForbiddenPorts
dot1qStatic
dot1qStaticUnicastTable 12.7.7.1 create/delete/read
filtering entry
12.7.6.1 read permanent database
dot1qStaticUnicastAddress
dot1qStaticUnicastReceivePort
dot1qStaticUnicastAllowedToGoTo
dot1qStaticUnicastStatus
dot1qStaticMulticastTable 12.7.7.1 create/delete/read
filtering entry
12.7.6.1 read permanent database
dot1qStaticMulticastAddress
dot1qStaticMulticastReceivePort
dot1qStaticMulticastStaticEgressPorts
dot1qStaticMulticastForbiddenEgressPorts
dot1qStaticMulticastStatus
dot1qVlan
dot1qVlanNumDeletes
dot1qVlanCurrentTable 12.10.2.1 read vlan configuration
12.10.3.5 read VID to FID
allocations
12.10.3.6 read FID allocated to
VID
12.10.3.7 read VIDs allocated to
FID
dot1qVlanTimeMark
dot1qVlanIndex
dot1qVlanFdbId
dot1qVlanCurrentEgressPorts
dot1qVlanCurrentUntaggedPorts
dot1qVlanStatus
dot1qVlanCreationTime
dot1qVlanStaticTable 12.7.7.1/2/3 create/delete/read
filtering entry
12.7.6.1 read permanent database
12.10.2.2 create vlan config
12.10.2.3 delete vlan config
dot1qVlanStaticName 12.4.1.3 set bridge name
dot1qVlanStaticEgressPorts
dot1qVlanForbiddenEgressPorts
dot1qVlanStaticUntaggedPorts
dot1qVlanStaticRowStatus
dot1qNextFreeLocalVlanIndex
dot1qPortVlanTable 12.10.1.1 read bridge vlan
configuration
dot1qPvid 12.10.1.2 configure PVID values
dot1qPortAcceptableFrameTypes 12.10.1.3 configure acceptable
frame types parameter
dot1qPortIngressFiltering 12.10.1.4 configure ingress
filtering parameters
dot1qPortGvrpStatus 12.9.2.2 read/set garp applicant
controls
dot1qPortGvrpFailedRegistrations
dot1qPortGvrpLastPduOrigin
dot1qPortVlanStatisticsTable 12.6.1.1 read forwarding port
counters
dot1qTpVlanPortInFrames
dot1qTpVlanPortOutFrames
dot1qTpVlanPortInDiscards
dot1qTpVlanPortInOverflowFrames
dot1qTpVlanPortOutOverflowFrames
dot1qTpVlanPortInOverflowDiscards
dot1qPortVlanHCStatisticsTable 12.6.1.1 read forwarding port
counters
dot1qTpVlanPortHCInFrames
dot1qTpVlanPortHCOutFrames
dot1qTpVlanPortHCInDiscards
dot1qLearningConstraintsTable 12.10.3.1/3/4 read/set/delete
vlan learning constraints
12.10.3.2 read vlan learning
constraints for VID
dot1qConstraintVlan
dot1qConstraintSet
dot1qConstraintType
dot1qConstraintStatus
dot1qConstraintSetDefault
dot1qConstraintTypeDefault
Now for the stuff that got left out on purpose π ββοΈ The IEEE 802.1Q management objects below were NOT brought into the Bridge MIB, and each one has its reason listed:
IEEE 802.1Q-1998 Operation Disposition
reset bridge (12.4.1.4) not considered useful
reset vlan bridge (12.10.1.5) not considered useful
read forwarding port counters (12.6.1.1)
discard on error details not considered useful
read permanent database (12.7.6.1)
permanent database size not considered useful
number of static filtering count rows in
entries dot1qStaticUnicastTable +
dot1qStaticMulticastTable
number of static VLAN count rows in
registration entries dot1qVlanStaticTable
read filtering entry range use GetNext operation.
(12.7.7.4)
read filtering database (12.7.1.1)
filtering database size not considered useful
number of dynamic group address count rows applicable to each
entries (12.7.1.3) FDB in dot1dTpGroupTable
read garp state (12.9.3.1) not considered useful
notify vlan registration failure not considered useful
(12.10.1.6)
notify learning constraint violation
(12.10.3.10) not considered useful
3.2.2. The dot1qBase Group
this one's the mandatory group π«Ά It holds the objects that apply to every bridge running IEEE 802.1Q virtual LANs.
3.2.3. The dot1qTp Group
this group is all about transparent bridging πΈ It controls how things run and reports how they're doing, including managing the dynamic Filtering Databases for both unicast and multicast forwarding. Every bridge that does destination-address filtering will implement this group.
3.2.4. The dot1qStatic Group
this group handles the static config for transparent bridging π It manages the static entries in the Filtering Databases for both unicast and multicast forwarding.
3.2.5. The dot1qVlan Group
this one's a whole vibe π¦ It controls the configuration and reports the status of the Virtual LANs a bridge knows about. That covers statically configured VLANs and also VLANs found some other way, like GVRP. It handles the per-port VLAN stuff and reports traffic statistics too, plus management of the VLAN Learning Constraints.
3.3. Textual Conventions
the datatypes MacAddress, BridgeId, Timeout, EnabledStatus, PortList, VlanIndex and VlanId are used as textual conventions in this document β¨ Here's the tea: these textual conventions have NO effect on the syntax or the semantics of any managed object π
Objects using them are always encoded using the rules for their primitive type. So no changes to the SMI or SNMP are needed. They're only there so readers have an easier time.
3.4. Relationship to Other MIBs
as we said above π some IEEE 802.1D management objects didn't make it into this MIB, because they overlap with objects in other MIBs that apply to a bridge running this one. A bridge implementing this MIB is assumed to also implement (at least) the 'system' group defined in MIB-II [MIB2], the 'interfaces' group defined in [INTERFACEMIB], and the original bridge MIB [BRIDGEMIB].
3.4.1. Relationship to the 'system' group
in MIB-II, the 'system' group is mandatory for all systems, so each managed entity has one instance of every object in it π§ That means those objects describe the entity as a whole, whether the entity only bridges or bridging is just one of its jobs.
3.4.2. Relation to Interfaces MIB
Okay so the Interfaces Group MIB [INTERFACEMIB] says any MIB that's an adjunct of it has to clarify specific areas within it π. Those areas were left intentionally vague in the Interfaces Group MIB so it wouldn't over-constrain things and accidentally block management of certain media-types π«Ά.
The Interfaces Group MIB lists several areas that a media-specific MIB needs to clarify β¨. Each one gets its own subsection below. If you want the general vibe behind them, go read the Interfaces Group MIB itself π.
In the Interfaces Group MIB, the 'interfaces' group is mandatory for all systems π
. It holds info on an entity's interfaces, and each interface is thought of as attached to a subnetwork. (Don't mix this up with subnet, which is an addressing partitioning scheme in the Internet suite of protocols π.) This memo uses the term 'segment' for such a subnetwork, whether it's an Ethernet segment, a 'ring', a WAN link, or even an X.25 virtual circuit π.
This Extended Bridge MIB implicitly assumes that a bridge has ports π¦. Each port is associated with one interface in the 'interfaces' group (one row in ifTable). Most of the time each port maps to a different interface, but sometimes several ports share the same interface π. For example, several ports could each map one-to-one to several X.25 virtual circuits, all living on the same interface π.
Each port is uniquely identified by a port number β¨. A port number doesn't have to match an interface number, but in the simple case the port number has the same value as the interface's interface number πΈ. Port numbers are in the range (1..dot1dBaseNumPorts).
Some entities do other stuff besides bridging, like sending and receiving data on their interfaces π. In those cases, only a subset of the data sent or received on an interface falls under the entity's bridging functionality π§. That subset is split up by protocol: some protocols get bridged and others don't π. For example, an entity that only bridges would treat every protocol as bridged π. But an entity that does IP routing on IP datagrams and bridges everything else would only count the non-IP data as bridged π. So this Extended Bridge MIB (and especially its counters) only applies to the subset of data on an entity's interfaces that's sent or received for a bridged protocol π . All of that data goes through the bridge's ports π.
3.4.2.1. Layering Model
This memo reads the Interfaces Group the way the Interfaces Group MIB [INTERFACEMIB] does πΈ. That means the interfaces table (ifTable) holds info on the managed resource's interfaces, and every sub-layer below the internetwork layer of a network interface counts as an interface β¨.
This document recommends that, inside an entity, VLANs that get instantiated as an entry in dot1qVlanCurrentTable are NOT also represented by an entry in ifTable π . That's true whether they were set up through management configuration via dot1qVlanStaticTable or created dynamically (for example, through GVRP) π¦.
If an entity has higher-layer protocol entities, like IP-layer interfaces that send and receive traffic to and from a VLAN, those should be represented in the ifTable as interfaces of type propVirtual(53) π§. Protocol-specific types like l3ipxvlan(137) should not be used here π
ββοΈ. The reason is that there's no implication the bridge will do any protocol filtering before delivering stuff up to these virtual interfaces π.
3.4.2.2. ifStackTable
The Interfaces Group MIB [INTERFACEMIB] also defines a table called 'ifStackTable' that describes how logical interfaces inside an entity relate to each other π. Implementors are expected to use it to describe how things like IP interfaces bind to physical ports π. But ngl, VLANs make it a little less than perfect for showing connectivity π. The ifStackTable can't represent the full capability of the IEEE 802.1Q VLAN bridging standard [802.1Q], because that standard distinguishes VLAN bindings on 'ingress' into a port from bindings on 'egress' out of a port π. Those relationships might or might not be symmetrical, while Interface MIB Evolution assumes a symmetrical binding for transmit and receive π. So it's necessary to define other manageable objects for configuring which ports are members of which VLANs π.
3.4.2.3. ifRcvAddressTable
This table holds all MAC addresses (unicast, multicast, and broadcast) that an interface will receive packets for and forward up to a higher layer entity for local consumption β¨. It's giving "the local stack is the main character" π. Note that this doesn't include addresses for data-link layer control protocols like Spanning-Tree, GMRP, or GVRP π ββοΈ. The format of the address in ifRcvAddressAddress is the same as for ifPhysAddress π.
This table also doesn't include unicast or multicast addresses that are accepted for possible forwarding out some other port π§. It's explicitly not meant to be a bridge address filtering mechanism, so don't use it for that π .
3.4.3. Relation to Original Bridge MIB
This section explains how objects in the original bridge MIB module [BRIDGEMIB] should be represented on devices that implement the extensions π. Some of the old objects are less useful on those devices, but they still have to be implemented for backwards compatibility π«Ά. Formal conformance statements for that MIB module don't exist, since it's defined in SMIv1 π.
3.4.3.1. The dot1dBase Group
This mandatory group holds the objects that apply to all types of bridges πΈ. Interpretation of this group is unchanged β¨.
3.4.3.2. The dot1dStp Group
This group holds the objects that show the bridge's state with respect to the Spanning Tree Protocol π¦. Interpretation of this group is unchanged π.
3.4.3.3. The dot1dTp Group
This group holds objects describing the entity's state with respect to transparent bridging π§.
In a device operating with a single Filtering Database, interpretation of this group is unchanged π.
In a device supporting multiple Filtering Databases, this group is interpreted as follows π :
dot1dTpLearnedEntryDiscards: The number of times that any of the FDBs became full π³.dot1dTpAgingTime: This applies to all Filtering Databases π.dot1dTpFdbTable: Report MAC addresses learned on each port, no matter which Filtering Database they were learnt in π. If an address was learnt in multiple databases on a single port, report it only once π. If an address was learnt in multiple databases on more than one port, report the entry on any one of the valid ports π.dot1dTpPortTable: This table is port-based and isn't affected by multiple Filtering Databases or multiple VLANs π. The counters should include frames received or transmitted for all VLANs β¨. Equivalent 64-bit port statistics counters, plus other objects that represent the upper 32 bits of these counters, are defined in this document for high capacity network interfaces π¦. They have conformance statements that say which interface speeds require them π«Ά.
3.4.3.4. The dot1dStatic Group
This optional group holds objects that describe the configuration of destination-address filtering πΈ.
In a device operating with a single Filtering Database, interpretation of this group is unchanged π.
In a device supporting multiple Filtering Databases, this group is interpreted as follows π§:
dot1dStaticTable: Entries read from this table include all static entries from all of the Filtering Databases π. Entries for the same MAC address and receive port in more than one Filtering Database must appear only once, since those are the indices of this table π . This table should be implemented as read-only on devices that support multiple Forwarding Databases π. Write access should be provided instead through dot1qStaticUnicastTable and dot1qStaticMulticastTable, as defined in this document β¨.
3.4.3.5. Additions to the Original Bridge MIB
On top of the objects in the original bridge MIB [BRIDGEMIB], this document adds π:
- support for multiple traffic classes and dynamic multicast filtering, as per IEEE 802.1D-1998 [802.1D] π .
- support for bridged Virtual LANs, as per IEEE 802.1Q-1998 [802.1Q] π.
- support for 64-bit versions of the original bridge MIB [BRIDGEMIB] port counters π¦.
4. Definitions for Extended Bridge MIB β¨
Time for the MIB itself π§. This part starts with the module header and the textual conventions π.
P-BRIDGE-MIB DEFINITIONS ::= BEGIN
-- -------------------------------------------------------------
-- MIB for IEEE 802.1p devices
-- -------------------------------------------------------------
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32, Counter64
FROM SNMPv2-SMI
TruthValue, TimeInterval, MacAddress, TEXTUAL-CONVENTION
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
dot1dTp, dot1dTpPort, dot1dBridge,
dot1dBasePortEntry, dot1dBasePort
FROM BRIDGE-MIB;
pBridgeMIB MODULE-IDENTITY
LAST-UPDATED "9908250000Z"
ORGANIZATION "IETF Bridge MIB Working Group"
CONTACT-INFO
" Les Bell
Postal: 3Com Europe Ltd.
3Com Centre, Boundary Way
Hemel Hempstead, Herts. HP2 7YU
UK
Phone: +44 1442 438025
Email: Les_Bell@3Com.com
Andrew Smith
Postal: Extreme Networks
3585 Monroe St.
Santa Clara CA 95051
USA
Phone: +1 408 579 2821
Email: andrew@extremenetworks.com
Paul Langille
Postal: Newbridge Networks
5 Corporate Drive
Andover, MA 01810
USA
Phone: +1 978 691 4665
Email: langille@newbridge.com
Anil Rijhsinghani
Postal: Cabletron Systems
50 Minuteman Road
Andover, MA 01810
USA
Phone: +1 978 684 1295
Email: anil@cabletron.com
Keith McCloghrie
Postal: cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
Phone: +1 408 526 5260
Email: kzm@cisco.com"
DESCRIPTION
"The Bridge MIB Extension module for managing Priority
and Multicast Filtering, defined by IEEE 802.1D-1998."
-- revision history
REVISION "9908250000Z"
DESCRIPTION
"Initial version, published as RFC 2674."
::= { dot1dBridge 6 }
pBridgeMIBObjects OBJECT IDENTIFIER ::= { pBridgeMIB 1 }
-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------
EnabledStatus ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A simple status value for the object."
SYNTAX INTEGER { enabled(1), disabled(2) }
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- groups in the P-BRIDGE MIB
Okay bestie, the big MIB groups start here. The dot1dExtBase, dot1dPriority and friends are basically the menu for everything that follows π
π
-- -------------------------------------------------------------
dot1dExtBase OBJECT IDENTIFIER ::= { pBridgeMIBObjects 1 }
dot1dPriority OBJECT IDENTIFIER ::= { pBridgeMIBObjects 2 }
dot1dGarp OBJECT IDENTIFIER ::= { pBridgeMIBObjects 3 }
dot1dGmrp OBJECT IDENTIFIER ::= { pBridgeMIBObjects 4 }
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- the dot1dExtBase group
-- -------------------------------------------------------------
dot1dDeviceCapabilities OBJECT-TYPE
SYNTAX BITS {
dot1dExtendedFilteringServices(0),
-- can perform filtering of
-- individual multicast addresses
-- controlled by GMRP.
dot1dTrafficClasses(1),
-- can map user priority to
-- multiple traffic classes.
dot1qStaticEntryIndividualPort(2),
-- dot1qStaticUnicastReceivePort &
-- dot1qStaticMulticastReceivePort
-- can represent non-zero entries.
dot1qIVLCapable(3), -- Independent VLAN Learning.
dot1qSVLCapable(4), -- Shared VLAN Learning.
dot1qHybridCapable(5),
-- both IVL & SVL simultaneously.
dot1qConfigurablePvidTagging(6),
-- whether the implementation
-- supports the ability to
-- override the default PVID
-- setting and its egress status
-- (VLAN-Tagged or Untagged) on
-- each port.
dot1dLocalVlanCapable(7)
-- can support multiple local
-- bridges, outside of the scope
-- of 802.1Q defined VLANs.
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the optional parts of IEEE 802.1D and 802.1Q
that are implemented by this device and are manageable
through this MIB. Capabilities that are allowed on a
per-port basis are indicated in dot1dPortCapabilities."
REFERENCE
"ISO/IEC 15802-3 Section 5.2,
IEEE 802.1Q/D11 Section 5.2, 12.10.1.1.3/b/2"
::= { dot1dExtBase 1 }
dot1dTrafficClassesEnabled OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The value true(1) indicates that Traffic Classes are
enabled on this bridge. When false(2), the bridge
operates with a single priority level for all traffic."
DEFVAL { true }
::= { dot1dExtBase 2 }
dot1dGmrpStatus OBJECT-TYPE
SYNTAX EnabledStatus
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The administrative status requested by management for
GMRP. The value enabled(1) indicates that GMRP should
be enabled on this device, in all VLANs, on all ports
for which it has not been specifically disabled. When
disabled(2), GMRP is disabled, in all VLANs, on all
ports and all GMRP packets will be forwarded
transparently. This object affects both Applicant and
Registrar state machines. A transition from disabled(2)
to enabled(1) will cause a reset of all GMRP state
machines on all ports."
DEFVAL { enabled }
::= { dot1dExtBase 3 }
-- -------------------------------------------------------------
-- Port Capabilities Table
-- -------------------------------------------------------------
dot1dPortCapabilitiesTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dPortCapabilitiesEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains capabilities information about
every port that is associated with this bridge."
::= { dot1dExtBase 4 }
dot1dPortCapabilitiesEntry OBJECT-TYPE
SYNTAX Dot1dPortCapabilitiesEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A set of capabilities information about this port
indexed by dot1dBasePort."
AUGMENTS { dot1dBasePortEntry }
::= { dot1dPortCapabilitiesTable 1 }
Dot1dPortCapabilitiesEntry ::=
SEQUENCE {
dot1dPortCapabilities
BITS
}
dot1dPortCapabilities OBJECT-TYPE
SYNTAX BITS {
dot1qDot1qTagging(0), -- supports 802.1Q VLAN tagging of
-- frames and GVRP.
dot1qConfigurableAcceptableFrameTypes(1),
-- allows modified values of
-- dot1qPortAcceptableFrameTypes.
dot1qIngressFiltering(2)
-- supports the discarding of any
-- frame received on a Port whose
-- VLAN classification does not
-- include that Port in its Member
-- set.
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the parts of IEEE 802.1D and 802.1Q that are
optional on a per-port basis that are implemented by
this device and are manageable through this MIB."
REFERENCE
"ISO/IEC 15802-3 Section 5.2,
IEEE 802.1Q/D11 Section 5.2"
::= { dot1dPortCapabilitiesEntry 1 }
-- -------------------------------------------------------------
-- the dot1dPriority group
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- Port Priority Table
-- -------------------------------------------------------------
dot1dPortPriorityTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dPortPriorityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains information about every port that
is associated with this transparent bridge."
::= { dot1dPriority 1 }
dot1dPortPriorityEntry OBJECT-TYPE
SYNTAX Dot1dPortPriorityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of Default User Priorities for each port of a
transparent bridge. This is indexed by dot1dBasePort."
AUGMENTS { dot1dBasePortEntry }
::= { dot1dPortPriorityTable 1 }
Dot1dPortPriorityEntry ::=
SEQUENCE {
dot1dPortDefaultUserPriority
INTEGER,
dot1dPortNumTrafficClasses
INTEGER
}
dot1dPortDefaultUserPriority OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The default ingress User Priority for this port. This
only has effect on media, such as Ethernet, that do not
support native User Priority."
::= { dot1dPortPriorityEntry 1 }
dot1dPortNumTrafficClasses OBJECT-TYPE
SYNTAX INTEGER (1..8)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The number of egress traffic classes supported on this
port. This object may optionally be read-only."
::= { dot1dPortPriorityEntry 2 }
-- -------------------------------------------------------------
-- User Priority Regeneration Table
-- -------------------------------------------------------------
dot1dUserPriorityRegenTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dUserPriorityRegenEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of Regenerated User Priorities for each received
User Priority on each port of a bridge. The Regenerated
User Priority value may be used to index the Traffic
Class Table for each input port. This only has effect
on media that support native User Priority. The default
values for Regenerated User Priorities are the same as
the User Priorities."
REFERENCE
"ISO/IEC 15802-3 Section 6.4"
::= { dot1dPriority 2 }
dot1dUserPriorityRegenEntry OBJECT-TYPE
SYNTAX Dot1dUserPriorityRegenEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A mapping of incoming User Priority to a Regenerated
User Priority."
INDEX { dot1dBasePort, dot1dUserPriority }
::= { dot1dUserPriorityRegenTable 1 }
Dot1dUserPriorityRegenEntry ::=
SEQUENCE {
dot1dUserPriority
INTEGER,
dot1dRegenUserPriority
INTEGER
}
dot1dUserPriority OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The User Priority for a frame received on this port."
::= { dot1dUserPriorityRegenEntry 1 }
dot1dRegenUserPriority OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The Regenerated User Priority the incoming User
Priority is mapped to for this port."
::= { dot1dUserPriorityRegenEntry 2 }
-- -------------------------------------------------------------
-- Traffic Class Table
-- -------------------------------------------------------------
dot1dTrafficClassTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dTrafficClassEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table mapping evaluated User Priority to Traffic
Class, for forwarding by the bridge. Traffic class is a
number in the range (0..(dot1dPortNumTrafficClasses-1))."
REFERENCE
"ISO/IEC 15802-3 Table 7-2"
::= { dot1dPriority 3 }
dot1dTrafficClassEntry OBJECT-TYPE
SYNTAX Dot1dTrafficClassEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"User Priority to Traffic Class mapping."
INDEX { dot1dBasePort, dot1dTrafficClassPriority }
::= { dot1dTrafficClassTable 1 }
Dot1dTrafficClassEntry ::=
SEQUENCE {
dot1dTrafficClassPriority
INTEGER,
dot1dTrafficClass
INTEGER
}
dot1dTrafficClassPriority OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Priority value determined for the received frame.
This value is equivalent to the priority indicated in
the tagged frame received, or one of the evaluated
priorities, determined according to the media-type.
For untagged frames received from Ethernet media, this
value is equal to the dot1dPortDefaultUserPriority value
for the ingress port.
For untagged frames received from non-Ethernet media,
this value is equal to the dot1dRegenUserPriority value
for the ingress port and media-specific user priority."
::= { dot1dTrafficClassEntry 1 }
dot1dTrafficClass OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The Traffic Class the received frame is mapped to."
::= { dot1dTrafficClassEntry 2 }
-- -------------------------------------------------------------
-- Outbound Access Priority Table
-- -------------------------------------------------------------
dot1dPortOutboundAccessPriorityTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dPortOutboundAccessPriorityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table mapping Regenerated User Priority to Outbound
Access Priority. This is a fixed mapping for all port
types, with two options for 802.5 Token Ring."
REFERENCE
"ISO/IEC 15802-3 Table 7-3"
::= { dot1dPriority 4 }
Okay bestie, the Outbound Access Priority entry is still in progress, so we pick up right where it left off π«Ά
dot1dPortOutboundAccessPriorityEntry OBJECT-TYPE
SYNTAX Dot1dPortOutboundAccessPriorityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Regenerated User Priority to Outbound Access Priority
mapping."
INDEX { dot1dBasePort, dot1dRegenUserPriority }
::= { dot1dPortOutboundAccessPriorityTable 1 }
Dot1dPortOutboundAccessPriorityEntry ::=
SEQUENCE {
dot1dPortOutboundAccessPriority
INTEGER
}
dot1dPortOutboundAccessPriority OBJECT-TYPE
SYNTAX INTEGER (0..7)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Outbound Access Priority the received frame is
mapped to."
::= { dot1dPortOutboundAccessPriorityEntry 1 }
the dot1dGarp group π
Next up is the dot1dGarp group, and we're starting with the GARP Port Table, which holds GARP control info for every bridge port π
The GARP Port Table π¦
-- -------------------------------------------------------------
-- the dot1dGarp group
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- The GARP Port Table
-- -------------------------------------------------------------
dot1dPortGarpTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dPortGarpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of GARP control information about every bridge
port. This is indexed by dot1dBasePort."
::= { dot1dGarp 1 }
dot1dPortGarpEntry OBJECT-TYPE
SYNTAX Dot1dPortGarpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"GARP control information for a bridge port."
AUGMENTS { dot1dBasePortEntry }
::= { dot1dPortGarpTable 1 }
Dot1dPortGarpEntry ::=
SEQUENCE {
dot1dPortGarpJoinTime
TimeInterval,
dot1dPortGarpLeaveTime
TimeInterval,
dot1dPortGarpLeaveAllTime
TimeInterval
}
dot1dPortGarpJoinTime OBJECT-TYPE
SYNTAX TimeInterval
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The GARP Join time, in centiseconds."
DEFVAL { 20 }
::= { dot1dPortGarpEntry 1 }
dot1dPortGarpLeaveTime OBJECT-TYPE
SYNTAX TimeInterval
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The GARP Leave time, in centiseconds."
DEFVAL { 60 }
::= { dot1dPortGarpEntry 2 }
dot1dPortGarpLeaveAllTime OBJECT-TYPE
SYNTAX TimeInterval
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The GARP LeaveAll time, in centiseconds."
DEFVAL { 1000 }
::= { dot1dPortGarpEntry 3 }
The GMRP Port Configuration and Status Table πΈ
Now we're on to GMRP, which covers the per-port control and status info, and this one is the most detailed bit of the whole section so pay attention π
-- -------------------------------------------------------------
-- The GMRP Port Configuration and Status Table
-- -------------------------------------------------------------
dot1dPortGmrpTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dPortGmrpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of GMRP control and status information about
every bridge port. Augments the dot1dBasePortTable."
::= { dot1dGmrp 1 }
dot1dPortGmrpEntry OBJECT-TYPE
SYNTAX Dot1dPortGmrpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"GMRP control and status information for a bridge port."
AUGMENTS { dot1dBasePortEntry }
::= { dot1dPortGmrpTable 1 }
Dot1dPortGmrpEntry ::=
SEQUENCE {
dot1dPortGmrpStatus
EnabledStatus,
dot1dPortGmrpFailedRegistrations
Counter32,
dot1dPortGmrpLastPduOrigin
MacAddress
}
dot1dPortGmrpStatus OBJECT-TYPE
SYNTAX EnabledStatus
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The administrative state of GMRP operation on this port. The
value enabled(1) indicates that GMRP is enabled on this port
in all VLANs as long as dot1dGmrpStatus is also enabled(1).
A value of disabled(2) indicates that GMRP is disabled on
this port in all VLANs: any GMRP packets received will
be silently discarded and no GMRP registrations will be
propagated from other ports. Setting this to a value of
enabled(1) will be stored by the agent but will only take
effect on the GMRP protocol operation if dot1dGmrpStatus
also indicates the value enabled(1). This object affects
all GMRP Applicant and Registrar state machines on this
port. A transition from disabled(2) to enabled(1) will
cause a reset of all GMRP state machines on this port."
DEFVAL { enabled }
::= { dot1dPortGmrpEntry 1 }
dot1dPortGmrpFailedRegistrations OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of failed GMRP registrations, for any
reason, in all VLANs, on this port."
::= { dot1dPortGmrpEntry 2 }
dot1dPortGmrpLastPduOrigin OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Source MAC Address of the last GMRP message
received on this port."
::= { dot1dPortGmrpEntry 3 }
High Capacity Port Table for Transparent Bridges π
This is the stats table for high capacity ports on a transparent bridge, with 64-bit counters π₯
-- -------------------------------------------------------------
-- High Capacity Port Table for Transparent Bridges
-- -------------------------------------------------------------
dot1dTpHCPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dTpHCPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains information about every high
capacity port that is associated with this transparent
bridge."
::= { dot1dTp 5 }
dot1dTpHCPortEntry OBJECT-TYPE
SYNTAX Dot1dTpHCPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Statistics information for each high capacity port of a
transparent bridge."
INDEX { dot1dTpPort }
::= { dot1dTpHCPortTable 1 }
Dot1dTpHCPortEntry ::=
SEQUENCE {
dot1dTpHCPortInFrames
Counter64,
dot1dTpHCPortOutFrames
Counter64,
dot1dTpHCPortInDiscards
Counter64
}
dot1dTpHCPortInFrames OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of frames that have been received by this
port from its segment. Note that a frame received on
the interface corresponding to this port is only counted
by this object if and only if it is for a protocol being
processed by the local bridging function, including
bridge management frames."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpHCPortEntry 1 }
dot1dTpHCPortOutFrames OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of frames that have been transmitted by this
port to its segment. Note that a frame transmitted on
the interface corresponding to this port is only counted
by this object if and only if it is for a protocol being
processed by the local bridging function, including
bridge management frames."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpHCPortEntry 2 }
dot1dTpHCPortInDiscards OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Count of valid frames that have been received by this
port from its segment which were discarded (i.e.,
filtered) by the Forwarding Process."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpHCPortEntry 3 }
Upper part of High Capacity Port Table for Transparent Bridges π§
This is the overflow table, which carries the most-significant bits of those same counters so SNMPv1 agents can still give you 64-bit-ish data π
-- ----------------------------------------------------
-- Upper part of High Capacity Port Table for Transparent Bridges
-- ----------------------------------------------------
dot1dTpPortOverflowTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1dTpPortOverflowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains the most-significant bits of
statistics counters for ports that are associated with this
transparent bridge that are on high capacity interfaces, as
defined in the conformance clauses for this table. This table
is provided as a way to read 64-bit counters for agents which
support only SNMPv1.
Note that the reporting of most-significant and
least-significant counter bits separately runs the risk of
missing an overflow of the lower bits in the interval between
sampling. The manager must be aware of this possibility, even
within the same varbindlist, when interpreting the results of
a request or asynchronous notification."
::= { dot1dTp 6 }
dot1dTpPortOverflowEntry OBJECT-TYPE
SYNTAX Dot1dTpPortOverflowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The most significant bits of statistics counters for a high
capacity interface of a transparent bridge. Each object is
associated with a corresponding object in dot1dTpPortTable
which indicates the least significant bits of the counter."
INDEX { dot1dTpPort }
::= { dot1dTpPortOverflowTable 1 }
Dot1dTpPortOverflowEntry ::=
SEQUENCE {
dot1dTpPortInOverflowFrames
Counter32,
dot1dTpPortOutOverflowFrames
Counter32,
dot1dTpPortInOverflowDiscards
Counter32
}
dot1dTpPortInOverflowFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated dot1dTpPortInFrames
counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpPortOverflowEntry 1 }
dot1dTpPortOutOverflowFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated dot1dTpPortOutFrames
counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpPortOverflowEntry 2 }
dot1dTpPortInOverflowDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated
dot1dTpPortInDiscards counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1dTpPortOverflowEntry 3 }
IEEE 802.1p MIB - Conformance Information π
Time for the conformance bits: the groups and compliance nodes that hang off pBridgeMIB β¨
-- -------------------------------------------------------------
-- IEEE 802.1p MIB - Conformance Information
-- -------------------------------------------------------------
pBridgeConformance OBJECT IDENTIFIER ::= { pBridgeMIB 2 }
pBridgeGroups OBJECT IDENTIFIER ::= { pBridgeConformance 1 }
pBridgeCompliances OBJECT IDENTIFIER
::= { pBridgeConformance 2 }
units of conformance π
These are the three object groups, covering extended capabilities, GMRP device control, and priority device control π
-- -------------------------------------------------------------
-- units of conformance
-- -------------------------------------------------------------
pBridgeExtCapGroup OBJECT-GROUP
OBJECTS {
dot1dDeviceCapabilities,
dot1dPortCapabilities
}
STATUS current
DESCRIPTION
"A collection of objects indicating the optional
capabilites of the device."
::= { pBridgeGroups 1 }
pBridgeDeviceGmrpGroup OBJECT-GROUP
OBJECTS {
dot1dGmrpStatus
}
STATUS current
DESCRIPTION
"A collection of objects providing device-level control
for the Multicast Filtering extended bridge services."
::= { pBridgeGroups 2 }
pBridgeDevicePriorityGroup OBJECT-GROUP
OBJECTS {
dot1dTrafficClassesEnabled
}
STATUS current
DESCRIPTION
"A collection of objects providing device-level control
for the Priority services."
::= { pBridgeGroups 3 }
pBridgeDefaultPriorityGroup OBJECT-GROUP
OBJECTS {
dot1dPortDefaultUserPriority
}
STATUS current
DESCRIPTION
"A collection of objects defining the User Priority
applicable to each port for media which do not support
native User Priority."
::= { pBridgeGroups 4 }
pBridgeRegenPriorityGroup OBJECT-GROUP
OBJECTS {
dot1dRegenUserPriority
}
STATUS current
DESCRIPTION
"A collection of objects defining the User Priorities
applicable to each port for media which support native
User Priority."
::= { pBridgeGroups 5 }
pBridgePriorityGroup OBJECT-GROUP
OBJECTS {
dot1dPortNumTrafficClasses,
dot1dTrafficClass
}
STATUS current
DESCRIPTION
"A collection of objects defining the traffic classes
within a bridge for each evaluated User Priority."
::= { pBridgeGroups 6 }
pBridgeAccessPriorityGroup OBJECT-GROUP
OBJECTS {
dot1dPortOutboundAccessPriority
}
STATUS current
DESCRIPTION
"A collection of objects defining the media dependent
outbound access level for each priority."
::= { pBridgeGroups 7 }
pBridgePortGarpGroup OBJECT-GROUP
OBJECTS {
dot1dPortGarpJoinTime,
dot1dPortGarpLeaveTime,
dot1dPortGarpLeaveAllTime
}
STATUS current
DESCRIPTION
"A collection of objects providing port level control
and status information for GARP operation."
::= { pBridgeGroups 8 }
pBridgePortGmrpGroup OBJECT-GROUP
OBJECTS {
dot1dPortGmrpStatus,
dot1dPortGmrpFailedRegistrations,
dot1dPortGmrpLastPduOrigin
}
STATUS current
DESCRIPTION
"A collection of objects providing port level control
and status information for GMRP operation."
::= { pBridgeGroups 9 }
pBridgeHCPortGroup OBJECT-GROUP
OBJECTS {
dot1dTpHCPortInFrames,
dot1dTpHCPortOutFrames,
dot1dTpHCPortInDiscards
}
STATUS current
DESCRIPTION
"A collection of objects providing 64-bit statistics
counters for high capacity bridge ports."
::= { pBridgeGroups 10 }
pBridgePortOverflowGroup OBJECT-GROUP
OBJECTS {
dot1dTpPortInOverflowFrames,
dot1dTpPortOutOverflowFrames,
dot1dTpPortInOverflowDiscards
}
STATUS current
DESCRIPTION
"A collection of objects providing overflow statistics
counters for high capacity bridge ports."
::= { pBridgeGroups 11 }
-- -------------------------------------------------------------
-- compliance statements
-- -------------------------------------------------------------
pBridgeCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for device support of Priority
and Multicast Filtering extended bridging services."
MODULE
MANDATORY-GROUPS { pBridgeExtCapGroup }
GROUP pBridgeDeviceGmrpGroup
DESCRIPTION
"This group is mandatory for devices supporting the GMRP
application, defined by IEEE 802.1D Extended Filtering
Services."
GROUP pBridgeDevicePriorityGroup
DESCRIPTION
"This group is mandatory only for devices supporting
the priority forwarding operations defined by IEEE
802.1D."
GROUP pBridgeDefaultPriorityGroup
DESCRIPTION
"This group is mandatory only for devices supporting
the priority forwarding operations defined by the
extended bridge services with media types, such as
Ethernet, that do not support native User Priority."
GROUP pBridgeRegenPriorityGroup
DESCRIPTION
"This group is mandatory only for devices supporting
the priority forwarding operations defined by IEEE 802.1D
and which have interface media types that support
native User Priority e.g. IEEE 802.5."
GROUP pBridgePriorityGroup
DESCRIPTION
"This group is mandatory only for devices supporting
the priority forwarding operations defined by IEEE 802.1D."
GROUP pBridgeAccessPriorityGroup
DESCRIPTION
"This group is optional and is relevant only for devices
supporting the priority forwarding operations defined by
IEEE 802.1D and which have interface media types that support
native Access Priority e.g. IEEE 802.5."
GROUP pBridgePortGarpGroup
DESCRIPTION
"This group is mandatory for devices supporting any
of the GARP applications: e.g. GMRP, defined by the
extended filtering services of 802.1D; or GVRP,
defined by 802.1Q (refer to the Q-BRIDGE-MIB for
conformance statements for GVRP)."
GROUP pBridgePortGmrpGroup
DESCRIPTION
"This group is mandatory for devices supporting the
GMRP application, as defined by IEEE 802.1D Extended
Filtering Services."
GROUP pBridgeHCPortGroup
DESCRIPTION
"Support for this group in a device is mandatory for those
bridge ports which map to network interfaces that have the
value of the corresponding instance of ifSpeed
greater than 650,000,000 bits/second."
GROUP pBridgePortOverflowGroup
DESCRIPTION
"Support for this group in a device is mandatory for those
bridge ports which map to network interfaces that have the
value of the corresponding instance of ifSpeed
greater than 650,000,000 bits/second."
OBJECT dot1dPortNumTrafficClasses
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT dot1dTrafficClass
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT dot1dRegenUserPriority
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { pBridgeCompliances 1 }
END
5. Definitions for Virtual Bridge MIB β¨
okay this is where the vibe shifts to the VLAN side π the Q-BRIDGE MIB is the one for IEEE 802.1Q devices, so it's all about managing Virtual Bridged LANs π¦ hot tip: the IMPORTS block at the top is just the list of stuff this module borrows from other MIBs, so don't panic about it π
Q-BRIDGE-MIB DEFINITIONS ::= BEGIN
-- -------------------------------------------------------------
-- MIB for IEEE 802.1Q Devices
-- -------------------------------------------------------------
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
Counter32, Counter64, Unsigned32, TimeTicks
FROM SNMPv2-SMI
RowStatus, TruthValue, TEXTUAL-CONVENTION, MacAddress
FROM SNMPv2-TC
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
dot1dBridge, dot1dBasePortEntry, dot1dBasePort
FROM BRIDGE-MIB
EnabledStatus
FROM P-BRIDGE-MIB
TimeFilter
FROM RMON2-MIB;
qBridgeMIB MODULE-IDENTITY
LAST-UPDATED "9908250000Z"
ORGANIZATION "IETF Bridge MIB Working Group"
CONTACT-INFO
" Les Bell
Postal: 3Com Europe Ltd.
3Com Centre, Boundary Way
Hemel Hempstead, Herts. HP2 7YU
UK
Phone: +44 1442 438025
Email: Les_Bell@3Com.com
Andrew Smith
Postal: Extreme Networks
3585 Monroe St.
Santa Clara CA 95051
USA
Phone: +1 408 579 2821
Email: andrew@extremenetworks.com
Paul Langille
Postal: Newbridge Networks
5 Corporate Drive
Andover, MA 01810
USA
Phone: +1 978 691 4665
Email: langille@newbridge.com
Anil Rijhsinghani
Postal: Cabletron Systems
50 Minuteman Road
Andover, MA 01810
USA
Phone: +1 978 684 1295
Email: anil@cabletron.com
Keith McCloghrie
Postal: cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
Phone: +1 408 526 5260
Email: kzm@cisco.com"
DESCRIPTION
"The VLAN Bridge MIB module for managing Virtual Bridged
Local Area Networks, as defined by IEEE 802.1Q-1998."
-- revision history
REVISION "9908250000Z"
DESCRIPTION
"Initial version, published as RFC 2674."
::= { dot1dBridge 7 }
qBridgeMIBObjects OBJECT IDENTIFIER ::= { qBridgeMIB 1 }
-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------
PortList ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Each octet within this value specifies a set of eight
ports, with the first octet specifying ports 1 through
8, the second octet specifying ports 9 through 16, etc.
Within each octet, the most significant bit represents
the lowest numbered port, and the least significant bit
represents the highest numbered port. Thus, each port
of the bridge is represented by a single bit within the
value of this object. If that bit has a value of '1'
then that port is included in the set of ports; the port
is not included if its bit has a value of '0'."
SYNTAX OCTET STRING
VlanIndex ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A value used to index per-VLAN tables: values of 0 and
4095 are not permitted; if the value is between 1 and
4094 inclusive, it represents an IEEE 802.1Q VLAN-ID with
global scope within a given bridged domain (see VlanId
textual convention). If the value is greater than 4095
then it represents a VLAN with scope local to the
particular agent, i.e. one without a global VLAN-ID
assigned to it. Such VLANs are outside the scope of
IEEE 802.1Q but it is convenient to be able to manage them
in the same way using this MIB."
SYNTAX Unsigned32
VlanId ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A 12-bit VLAN ID used in the VLAN Tag header."
SYNTAX INTEGER (1..4094)
-- -------------------------------------------------------------
-- groups in the Q-BRIDGE MIB
-- -------------------------------------------------------------
dot1qBase OBJECT IDENTIFIER ::= { qBridgeMIBObjects 1 }
dot1qTp OBJECT IDENTIFIER ::= { qBridgeMIBObjects 2 }
dot1qStatic OBJECT IDENTIFIER ::= { qBridgeMIBObjects 3 }
dot1qVlan OBJECT IDENTIFIER ::= { qBridgeMIBObjects 4 }
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- dot1qBase group
-- -------------------------------------------------------------
dot1qVlanVersionNumber OBJECT-TYPE
SYNTAX INTEGER {
version1(1)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The version number of IEEE 802.1Q that this device
supports."
REFERENCE
"IEEE 802.1Q/D11 Section 12.10.1.1"
::= { dot1qBase 1 }
dot1qMaxVlanId OBJECT-TYPE
SYNTAX VlanId
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum IEEE 802.1Q VLAN ID that this device
supports."
REFERENCE
"IEEE 802.1Q/D11 Section 9.3.2.3"
::= { dot1qBase 2 }
dot1qMaxSupportedVlans OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of IEEE 802.1Q VLANs that this
device supports."
REFERENCE
"IEEE 802.1Q/D11 Section 12.10.1.1"
::= { dot1qBase 3 }
Okay so dot1qNumVlans is literally the device's VLAN count, and it's read-only, bestie π§π Next up is GVRP, which gets a little spicy because flipping it on resets every GVRP state machine ππ₯
dot1qNumVlans OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of IEEE 802.1Q VLANs that are
configured in this device."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.1.1"
::= { dot1qBase 4 }
dot1qGvrpStatus OBJECT-TYPE
SYNTAX EnabledStatus
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The administrative status requested by management for
GVRP. The value enabled(1) indicates that GVRP should
be enabled on this device, on all ports for which it has
not been specifically disabled. When disabled(2), GVRP
is disabled on all ports and all GVRP packets will be
forwarded transparently. This object affects all GVRP
Applicant and Registrar state machines. A transition
from disabled(2) to enabled(1) will cause a reset of all
GVRP state machines on all ports."
DEFVAL { enabled }
::= { dot1qBase 5 }
-- -------------------------------------------------------------
-- the dot1qTp group
-- -------------------------------------------------------------
-- -------------------------------------------------------------
-- the current Filtering Database Table
-- -------------------------------------------------------------
dot1qFdbTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qFdbEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains configuration and control
information for each Filtering Database currently
operating on this device. Entries in this table appear
automatically when VLANs are assigned FDB IDs in the
dot1qVlanCurrentTable."
::= { dot1qTp 1 }
dot1qFdbEntry OBJECT-TYPE
SYNTAX Dot1qFdbEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a specific Filtering Database."
INDEX { dot1qFdbId }
::= { dot1qFdbTable 1 }
Dot1qFdbEntry ::=
SEQUENCE {
dot1qFdbId
Unsigned32,
dot1qFdbDynamicCount
Counter32
}
dot1qFdbId OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The identity of this Filtering Database."
::= { dot1qFdbEntry 1 }
dot1qFdbDynamicCount OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of dynamic entries in this
Filtering Database."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.1.1.3"
::= { dot1qFdbEntry 2 }
-- -------------------------------------------------------------
-- Multiple Forwarding Databases for 802.1Q Transparent devices
-- This table is an alternative to the dot1dTpFdbTable,
-- previously defined for 802.1D devices which only support a
-- single Forwarding Database.
-- -------------------------------------------------------------
dot1qTpFdbTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qTpFdbEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table that contains information about unicast entries
for which the device has forwarding and/or filtering
information. This information is used by the
transparent bridging function in determining how to
propagate a received frame."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.7"
::= { dot1qTp 2 }
dot1qTpFdbEntry OBJECT-TYPE
SYNTAX Dot1qTpFdbEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a specific unicast MAC address for
which the device has some forwarding and/or filtering
information."
INDEX { dot1qFdbId, dot1qTpFdbAddress }
::= { dot1qTpFdbTable 1 }
Dot1qTpFdbEntry ::=
SEQUENCE {
dot1qTpFdbAddress
MacAddress,
dot1qTpFdbPort
INTEGER,
dot1qTpFdbStatus
INTEGER
}
dot1qTpFdbAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A unicast MAC address for which the device has
forwarding and/or filtering information."
::= { dot1qTpFdbEntry 1 }
dot1qTpFdbPort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Either the value '0', or the port number of the port on
which a frame having a source address equal to the value
of the corresponding instance of dot1qTpFdbAddress has
been seen. A value of '0' indicates that the port
number has not been learned but that the device does
have some forwarding/filtering information about this
address (e.g. in the dot1qStaticUnicastTable).
Implementors are encouraged to assign the port value to
this object whenever it is learned even for addresses
for which the corresponding value of dot1qTpFdbStatus is
not learned(3)."
::= { dot1qTpFdbEntry 2 }
dot1qTpFdbStatus OBJECT-TYPE
SYNTAX INTEGER {
other(1),
invalid(2),
learned(3),
self(4),
mgmt(5)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The status of this entry. The meanings of the values
are:
other(1) - none of the following. This may include
the case where some other MIB object (not the
corresponding instance of dot1qTpFdbPort, nor an
entry in the dot1qStaticUnicastTable) is being
used to determine if and how frames addressed to
the value of the corresponding instance of
dot1qTpFdbAddress are being forwarded.
invalid(2) - this entry is no longer valid (e.g., it
was learned but has since aged out), but has not
yet been flushed from the table.
learned(3) - the value of the corresponding instance
of dot1qTpFdbPort was learned and is being used.
self(4) - the value of the corresponding instance of
dot1qTpFdbAddress represents one of the device's
addresses. The corresponding instance of
dot1qTpFdbPort indicates which of the device's
ports has this address.
mgmt(5) - the value of the corresponding instance of
dot1qTpFdbAddress is also the value of an
existing instance of dot1qStaticAddress."
::= { dot1qTpFdbEntry 3 }
-- -------------------------------------------------------------
-- Dynamic Group Registration Table
-- -------------------------------------------------------------
dot1qTpGroupTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qTpGroupEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing filtering information for VLANs
configured into the bridge by (local or network)
management, or learnt dynamically, specifying the set of
ports to which frames received on a VLAN for this FDB
and containing a specific Group destination address are
allowed to be forwarded."
::= { dot1qTp 3 }
dot1qTpGroupEntry OBJECT-TYPE
SYNTAX Dot1qTpGroupEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Filtering information configured into the bridge by
management, or learnt dynamically, specifying the set of
ports to which frames received on a VLAN and containing
a specific Group destination address, are allowed to be
forwarded. The subset of these ports learnt dynamically
is also provided."
INDEX { dot1qVlanIndex, dot1qTpGroupAddress }
::= { dot1qTpGroupTable 1 }
Dot1qTpGroupEntry ::=
SEQUENCE {
dot1qTpGroupAddress
MacAddress,
dot1qTpGroupEgressPorts
PortList,
dot1qTpGroupLearnt
PortList
}
dot1qTpGroupAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The destination Group MAC address in a frame to which
this entry's filtering information applies."
::= { dot1qTpGroupEntry 1 }
dot1qTpGroupEgressPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The complete set of ports, in this VLAN, to which
frames destined for this Group MAC address are currently
being explicitly forwarded. This does not include ports
for which this address is only implicitly forwarded, in
the dot1qForwardAllPorts list."
::= { dot1qTpGroupEntry 2 }
dot1qTpGroupLearnt OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The subset of ports in dot1qTpGroupEgressPorts which
were learnt by GMRP or some other dynamic mechanism, in
this Filtering database."
::= { dot1qTpGroupEntry 3 }
-- -------------------------------------------------------------
-- Service Requirements Group
-- -------------------------------------------------------------
dot1qForwardAllTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qForwardAllEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing forwarding information for each
VLAN, specifying the set of ports to which forwarding of
all multicasts applies, configured statically by
management or dynamically by GMRP. An entry appears in
this table for all VLANs that are currently
instantiated."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.2, 12.7.7"
::= { dot1qTp 4 }
dot1qForwardAllEntry OBJECT-TYPE
SYNTAX Dot1qForwardAllEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Forwarding information for a VLAN, specifying the set
of ports to which all multicasts should be forwarded,
configured statically by management or dynamically by
GMRP."
INDEX { dot1qVlanIndex }
::= { dot1qForwardAllTable 1 }
Dot1qForwardAllEntry ::=
SEQUENCE {
dot1qForwardAllPorts
PortList,
dot1qForwardAllStaticPorts
PortList,
dot1qForwardAllForbiddenPorts
PortList
}
dot1qForwardAllPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The complete set of ports in this VLAN to which all
multicast group-addressed frames are to be forwarded.
This includes ports for which this need has been
determined dynamically by GMRP, or configured statically
by management."
::= { dot1qForwardAllEntry 1 }
dot1qForwardAllStaticPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The set of ports configured by management in this VLAN
to which all multicast group-addressed frames are to be
forwarded. Ports entered in this list will also appear
in the complete set shown by dot1qForwardAllPorts. This
value will be restored after the device is reset. This
only applies to ports that are members of the VLAN,
defined by dot1qVlanCurrentEgressPorts. A port may not
be added in this set if it is already a member of the
set of ports in dot1qForwardAllForbiddenPorts. The
default value is a string of ones of appropriate length,
to indicate standard non-EFS behaviour, i.e. forward
all multicasts to all ports."
::= { dot1qForwardAllEntry 2 }
Forward All, Forbidden Ports π«β¨
Okay bestie, the Forward All group ends with this one. Forbidden Ports is the "absolutely not" list π ββοΈ for ports that GMRP can't dynamically register for Forward All Multicast Groups. Management sets it, it sticks around after a reset, and a port can't be in both this list and dot1qForwardAllStaticPorts (no double-dipping π ).
dot1qForwardAllForbiddenPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The set of ports configured by management in this VLAN
for which the Service Requirement attribute Forward All
Multicast Groups may not be dynamically registered by
GMRP. This value will be restored after the device is
reset. A port may not be added in this set if it is
already a member of the set of ports in
dot1qForwardAllStaticPorts. The default value is a
string of zeros of appropriate length."
::= { dot1qForwardAllEntry 3 }
Forward Unregistered π¦
Now we're getting into Forward Unregistered, which is basically the fallback for multicast group-addressed frames that don't have any more specific forwarding info. Think of it as the catch-all rule for every VLAN πΈ. The table has one entry for each VLAN that's currently instantiated, and it's set up by management or figured out dynamically by GMRP. The reference points at IEEE 802.1Q/D11 Sections 12.7.2 and 12.7.7 π₯.
dot1qForwardUnregisteredTable
dot1qForwardUnregisteredTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qForwardUnregisteredEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing forwarding information for each
VLAN, specifying the set of ports to which forwarding of
multicast group-addressed frames for which there is no
more specific forwarding information applies. This is
configured statically by management and determined
dynamically by GMRP. An entry appears in this table for
all VLANs that are currently instantiated."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.2, 12.7.7"
::= { dot1qTp 5 }
dot1qForwardUnregisteredEntry
dot1qForwardUnregisteredEntry OBJECT-TYPE
SYNTAX Dot1qForwardUnregisteredEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Forwarding information for a VLAN, specifying the set
of ports to which all multicasts for which there is no
more specific forwarding information shall be forwarded.
This is configured statically by management or
dynamically by GMRP."
INDEX { dot1qVlanIndex }
::= { dot1qForwardUnregisteredTable 1 }
Dot1qForwardUnregisteredEntry ::=
SEQUENCE {
dot1qForwardUnregisteredPorts
PortList,
dot1qForwardUnregisteredStaticPorts
PortList,
dot1qForwardUnregisteredForbiddenPorts
PortList
}
This entry is indexed by dot1qVlanIndex, so there's one row per VLAN, and it holds the set of ports that every multicast without more specific info is supposed to go out of. Three columns, three vibes β¨.
dot1qForwardUnregisteredPorts
dot1qForwardUnregisteredPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The complete set of ports in this VLAN to which
multicast group-addressed frames for which there is no
more specific forwarding information will be forwarded.
This includes ports for which this need has been
determined dynamically by GMRP, or configured statically
by management."
::= { dot1qForwardUnregisteredEntry 1 }
This one's the full guest list π. It's read-only, and it includes ports that GMRP figured out on its own plus ports that management set by hand.
dot1qForwardUnregisteredStaticPorts
dot1qForwardUnregisteredStaticPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The set of ports configured by management, in this
VLAN, to which multicast group-addressed frames for
which there is no more specific forwarding information
are to be forwarded. Ports entered in this list will
also appear in the complete set shown by
dot1qForwardUnregisteredPorts. This value will be
restored after the device is reset. A port may not be
added in this set if it is already a member of the set
of ports in dot1qForwardUnregisteredForbiddenPorts. The
default value is a string of zeros of appropriate
length, although this has no effect with the default
value of dot1qForwardAllStaticPorts."
::= { dot1qForwardUnregisteredEntry 2 }
These are the ports management hand-picked π§. Anything in here also shows up in the full list. It survives a reset, and a port can't be in here if it's already in the Forbidden list. The default is all zeros, but the spec notes that default has no effect when dot1qForwardAllStaticPorts is at its default too, so keep that in mind π.
dot1qForwardUnregisteredForbiddenPorts
dot1qForwardUnregisteredForbiddenPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The set of ports configured by management in this VLAN
for which the Service Requirement attribute Forward
Unregistered Multicast Groups may not be dynamically
registered by GMRP. This value will be restored after
the device is reset. A port may not be added in this
set if it is already a member of the set of ports in
dot1qForwardUnregisteredStaticPorts. The default value
is a string of zeros of appropriate length."
::= { dot1qForwardUnregisteredEntry 3 }
Same energy as the Forward All Forbidden list, just for Forward Unregistered π«π. GMRP can't dynamically register these ports, it survives a reset, and a port can't be in both this list and the Static list.
The Static (Destination-Address Filtering) Database π
Next up is the Static database, where management writes its own filtering rules for destination addresses. It's a whole vibe β¨.
-- -------------------------------------------------------------
-- The Static (Destination-Address Filtering) Database
-- -------------------------------------------------------------
dot1qStaticUnicastTable
dot1qStaticUnicastTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qStaticUnicastEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing filtering information for Unicast
MAC addresses for each Filtering Database, configured
into the device by (local or network) management
specifying the set of ports to which frames received
from specific ports and containing specific unicast
destination addresses are allowed to be forwarded. A
value of zero in this table as the port number from
which frames with a specific destination address are
received, is used to specify all ports for which there
is no specific entry in this table for that particular
destination address. Entries are valid for unicast
addresses only."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.7,
ISO/IEC 15802-3 Section 7.9.1"
::= { dot1qStatic 1 }
This is the table for unicast addresses, one set of filtering rules per Filtering Database π¦. Port 0 is the wildcard: it means "all ports that don't have their own specific entry for that destination." Only unicast addresses go in here, no exceptions π
.
dot1qStaticUnicastEntry
dot1qStaticUnicastEntry OBJECT-TYPE
SYNTAX Dot1qStaticUnicastEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Filtering information configured into the device by
(local or network) management specifying the set of
ports to which frames received from a specific port and
containing a specific unicast destination address are
allowed to be forwarded."
INDEX {
dot1qFdbId,
dot1qStaticUnicastAddress,
dot1qStaticUnicastReceivePort
}
::= { dot1qStaticUnicastTable 1 }
Dot1qStaticUnicastEntry ::=
SEQUENCE {
dot1qStaticUnicastAddress
MacAddress,
dot1qStaticUnicastReceivePort
INTEGER,
dot1qStaticUnicastAllowedToGoTo
PortList,
dot1qStaticUnicastStatus
INTEGER
}
Each row is identified by the Filtering Database ID, the unicast address, and the receive port. The row says which ports a frame with that address, arriving on that port, is allowed to go out of π.
dot1qStaticUnicastAddress
dot1qStaticUnicastAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The destination MAC address in a frame to which this
entry's filtering information applies. This object must
take the value of a unicast address."
::= { dot1qStaticUnicastEntry 1 }
This is the destination MAC address the rule applies to. It has to be a unicast address, full stop π ββοΈ.
dot1qStaticUnicastReceivePort
dot1qStaticUnicastReceivePort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Either the value '0', or the port number of the port
from which a frame must be received in order for this
entry's filtering information to apply. A value of zero
indicates that this entry applies on all ports of the
device for which there is no other applicable entry."
::= { dot1qStaticUnicastEntry 2 }
This is either 0 (the "any port" wildcard) or a specific port number. If the specific port is set, the frame has to arrive on that exact port for the rule to kick in π.
dot1qStaticUnicastAllowedToGoTo
dot1qStaticUnicastAllowedToGoTo OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The set of ports for which a frame with a specific
unicast address will be flooded in the event that it
has not been learned. It also specifies the set of
ports a specific unicast address may be dynamically
learnt on. The dot1qTpFdbTable will have an equivalent
entry with a dot1qTpFdbPort value of '0' until this
address has been learnt, when it will be updated with
the port the address has been seen on. This only
applies to ports that are members of the VLAN, defined
by dot1qVlanCurrentEgressPorts. The default value of
this object is a string of ones of appropriate length."
REFERENCE
"IEEE 802.1Q/D11 Table 8-5, ISO/IEC 15802-3 Table 7-5"
::= { dot1qStaticUnicastEntry 3 }
This column does two jobs π₯. It's the set of ports where an unlearned unicast address gets flooded, and it's also the set of ports where that address is allowed to be learnt dynamically. Until the address is learnt, the matching dot1qTpFdbTable entry sits at port 0, and once it's seen, that entry gets updated with the real port. It only covers ports that are part of the VLAN (per dot1qVlanCurrentEgressPorts), and the default is all ones β¨.
dot1qStaticUnicastStatus
dot1qStaticUnicastStatus OBJECT-TYPE
SYNTAX INTEGER {
other(1),
invalid(2),
permanent(3),
deleteOnReset(4),
deleteOnTimeout(5)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object indicates the status of this entry.
other(1) - this entry is currently in use but
the conditions under which it will remain
so differ from the following values.
invalid(2) - writing this value to the object
removes the corresponding entry.
permanent(3) - this entry is currently in use
and will remain so after the next reset of
the bridge.
deleteOnReset(4) - this entry is currently in
use and will remain so until the next
reset of the bridge.
deleteOnTimeout(5) - this entry is currently in
use and will remain so until it is aged out."
DEFVAL { permanent }
::= { dot1qStaticUnicastEntry 4 }
This is the lifecycle tracker for each entry π. other(1) covers the in-between cases. Writing invalid(2) deletes the row, permanent(3) keeps it through a reset, deleteOnReset(4) keeps it only until the next reset, and deleteOnTimeout(5) keeps it until it ages out. The default is permanent π.
dot1qStaticMulticastTable
dot1qStaticMulticastTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qStaticMulticastEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing filtering information for Multicast
and Broadcast MAC addresses for each VLAN, configured
into the device by (local or network) management
specifying the set of ports to which frames received
from specific ports and containing specific Multicast
and Broadcast destination addresses are allowed to be
forwarded. A value of zero in this table as the port
number from which frames with a specific destination
address are received, is used to specify all ports for
which there is no specific entry in this table for that
particular destination address. Entries are valid for
Multicast and Broadcast addresses only."
REFERENCE
"IEEE 802.1Q/D11 Section 12.7.7,
ISO/IEC 15802-3 Section 7.9.1"
::= { dot1qStatic 2 }
Okay, this is the multicast and broadcast twin of the unicast table πΈ. It's per VLAN, port 0 is the wildcard again, and it only takes multicast and broadcast addresses.
dot1qStaticMulticastEntry
dot1qStaticMulticastEntry OBJECT-TYPE
SYNTAX Dot1qStaticMulticastEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Filtering information configured into the device by
(local or network) management specifying the set of
ports to which frames received from this specific port
for this VLAN and containing this Multicast or Broadcast
destination address are allowed to be forwarded."
INDEX {
dot1qVlanIndex,
dot1qStaticMulticastAddress,
dot1qStaticMulticastReceivePort
}
::= { dot1qStaticMulticastTable 1 }
Dot1qStaticMulticastEntry ::=
SEQUENCE {
dot1qStaticMulticastAddress
MacAddress,
dot1qStaticMulticastReceivePort
INTEGER,
dot1qStaticMulticastStaticEgressPorts
PortList,
dot1qStaticMulticastForbiddenEgressPorts
PortList,
dot1qStaticMulticastStatus
INTEGER
}
This one is indexed by dot1qVlanIndex, the multicast/broadcast address, and the receive port, so the VLAN is part of the key here π§.
dot1qStaticMulticastAddress
dot1qStaticMulticastAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The destination MAC address in a frame to which this
entry's filtering information applies. This object must
take the value of a Multicast or Broadcast address."
::= { dot1qStaticMulticastEntry 1 }
The address has to be a multicast or broadcast address. Unicast is not invited to this party π.
dot1qStaticMulticastReceivePort
dot1qStaticMulticastReceivePort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Either the value '0', or the port number of the port
from which a frame must be received in order for this
entry's filtering information to apply. A value of zero
indicates that this entry applies on all ports of the
device for which there is no other applicable entry."
::= { dot1qStaticMulticastEntry 2 }
Same receive-port logic as the unicast side: 0 means "any port with no better match," and a specific number means the frame has to come in on exactly that port π¦.
dot1qStaticMulticastStaticEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-write STATUS current DESCRIPTION "The set of ports to which frames received from a specific port and destined for a specific Multicast or Broadcast MAC address must be forwarded, regardless of any dynamic information e.g. from GMRP. A port may not be added in this set if it is already a member of the set of ports in dot1qStaticMulticastForbiddenEgressPorts. The default value of this object is a string of ones of appropriate length." ::= { dot1qStaticMulticastEntry 3 }
dot1qStaticMulticastForbiddenEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-write STATUS current DESCRIPTION "The set of ports to which frames received from a specific port and destined for a specific Multicast or Broadcast MAC address must not be forwarded, regardless of any dynamic information e.g. from GMRP. A port may not be added in this set if it is already a member of the set of ports in dot1qStaticMulticastStaticEgressPorts. The default value of this object is a string of zeros of appropriate length." ::= { dot1qStaticMulticastEntry 4 }
dot1qStaticMulticastStatus OBJECT-TYPE SYNTAX INTEGER { other(1), invalid(2), permanent(3), deleteOnReset(4), deleteOnTimeout(5) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but the conditions under which it will remain so differ from the following values. invalid(2) - writing this value to the object removes the corresponding entry. permanent(3) - this entry is currently in use and will remain so after the next reset of the bridge.
deleteOnReset(4) - this entry is currently in use and will remain so until the next reset of the bridge. deleteOnTimeout(5) - this entry is currently in use and will remain so until it is aged out." DEFVAL { permanent } ::= { dot1qStaticMulticastEntry 5 }
-- The Current VLAN Database
dot1qVlanNumDeletes OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of times a VLAN entry has been deleted from the dot1qVlanCurrentTable (for any reason). If an entry is deleted, then inserted, and then deleted, this counter will be incremented by 2." ::= { dot1qVlan 1 }
dot1qVlanCurrentTable OBJECT-TYPE SYNTAX SEQUENCE OF Dot1qVlanCurrentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing current configuration information for each VLAN currently configured into the device by (local or network) management, or dynamically created as a result of GVRP requests received." ::= { dot1qVlan 2 }
dot1qVlanCurrentEntry OBJECT-TYPE SYNTAX Dot1qVlanCurrentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information for a VLAN configured into the device by (local or network) management, or dynamically created as a result of GVRP requests received." INDEX { dot1qVlanTimeMark, dot1qVlanIndex } ::= { dot1qVlanCurrentTable 1 }
Dot1qVlanCurrentEntry ::= SEQUENCE { dot1qVlanTimeMark TimeFilter, dot1qVlanIndex VlanIndex, dot1qVlanFdbId Unsigned32, dot1qVlanCurrentEgressPorts PortList, dot1qVlanCurrentUntaggedPorts PortList, dot1qVlanStatus INTEGER, dot1qVlanCreationTime TimeTicks }
dot1qVlanTimeMark OBJECT-TYPE SYNTAX TimeFilter MAX-ACCESS not-accessible STATUS current DESCRIPTION "A TimeFilter for this entry. See the TimeFilter textual convention to see how this works." ::= { dot1qVlanCurrentEntry 1 }
dot1qVlanIndex OBJECT-TYPE SYNTAX VlanIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The VLAN-ID or other identifier refering to this VLAN." ::= { dot1qVlanCurrentEntry 2 }
dot1qVlanFdbId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The Filtering Database used by this VLAN. This is one of the dot1qFdbId values in the dot1qFdbTable. This value is allocated automatically by the device whenever the VLAN is created: either dynamically by GVRP, or by management, in dot1qVlanStaticTable. Allocation of this value follows the learning constraints defined for this VLAN in dot1qLearningConstraintsTable." ::= { dot1qVlanCurrentEntry 3 }
dot1qVlanCurrentEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-only STATUS current DESCRIPTION "The set of ports which are transmitting traffic for this VLAN as either tagged or untagged frames." REFERENCE "IEEE 802.1Q/D11 Section 12.10.2.1" ::= { dot1qVlanCurrentEntry 4 }
dot1qVlanCurrentUntaggedPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-only STATUS current DESCRIPTION "The set of ports which are transmitting traffic for this VLAN as untagged frames." REFERENCE "IEEE 802.1Q/D11 Section 12.10.2.1" ::= { dot1qVlanCurrentEntry 5 }
dot1qVlanStatus OBJECT-TYPE SYNTAX INTEGER { other(1), permanent(2), dynamicGvrp(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the status of this entry. other(1) - this entry is currently in use but the conditions under which it will remain so differ from the following values. permanent(2) - this entry, corresponding to an entry in dot1qVlanStaticTable, is currently in use and will remain so after the next reset of the device. The port lists for this entry include ports from the equivalent dot1qVlanStaticTable entry and ports learnt dynamically. dynamicGvrp(3) - this entry is currently in use
and will remain so until removed by GVRP. There is no static entry for this VLAN and it will be removed when the last port leaves the VLAN." ::= { dot1qVlanCurrentEntry 6 }
dot1qVlanCreationTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when this VLAN was created." ::= { dot1qVlanCurrentEntry 7 }
-- The Static VLAN Database
dot1qVlanStaticTable OBJECT-TYPE SYNTAX SEQUENCE OF Dot1qVlanStaticEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing static configuration information for each VLAN configured into the device by (local or network) management. All entries are permanent and will be restored after the device is reset." ::= { dot1qVlan 3 }
dot1qVlanStaticEntry OBJECT-TYPE SYNTAX Dot1qVlanStaticEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Static information for a VLAN configured into the device by (local or network) management." INDEX { dot1qVlanIndex } ::= { dot1qVlanStaticTable 1 }
Dot1qVlanStaticEntry ::= SEQUENCE { dot1qVlanStaticName SnmpAdminString, dot1qVlanStaticEgressPorts PortList, dot1qVlanForbiddenEgressPorts PortList,
dot1qVlanStaticUntaggedPorts PortList, dot1qVlanStaticRowStatus RowStatus }
dot1qVlanStaticName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "An administratively assigned string, which may be used to identify the VLAN." REFERENCE "IEEE 802.1Q/D11 Section 12.10.2.1" ::= { dot1qVlanStaticEntry 1 }
dot1qVlanStaticEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-create STATUS current DESCRIPTION "The set of ports which are permanently assigned to the egress list for this VLAN by management. Changes to a bit in this object affect the per-port per-VLAN Registrar control for Registration Fixed for the relevant GVRP state machine on each port. A port may not be added in this set if it is already a member of the set of ports in dot1qVlanForbiddenEgressPorts. The default value of this object is a string of zeros of appropriate length, indicating not fixed." REFERENCE "IEEE 802.1Q/D11 Section 12.7.7.3, 11.2.3.2.3" ::= { dot1qVlanStaticEntry 2 }
dot1qVlanForbiddenEgressPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-create STATUS current DESCRIPTION "The set of ports which are prohibited by management from being included in the egress list for this VLAN. Changes to this object that cause a port to be included or excluded affect the per-port per-VLAN Registrar control for Registration Forbidden for the relevant GVRP state machine on each port. A port may not be added in this set if it is already a member of the set of ports in dot1qVlanStaticEgressPorts. The default value of this object is a string of zeros of appropriate length, excluding all ports from the forbidden set." REFERENCE "IEEE 802.1Q/D11 Section 12.7.7.3, 11.2.3.2.3" ::= { dot1qVlanStaticEntry 3 }
dot1qVlanStaticUntaggedPorts OBJECT-TYPE SYNTAX PortList MAX-ACCESS read-create STATUS current DESCRIPTION "The set of ports which should transmit egress packets for this VLAN as untagged. The default value of this object for the default VLAN (dot1qVlanIndex = 1) is a string of appropriate length including all ports. There is no specified default for other VLANs. If a device agent cannot support the set of ports being set then it will reject the set operation with an error. An example might be if a manager attempts to set more than one VLAN to be untagged on egress where the device does not support this IEEE 802.1Q option." REFERENCE "IEEE 802.1Q/D11 Section 12.10.2.1" ::= { dot1qVlanStaticEntry 4 }
dot1qVlanStaticRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the status of this entry." ::= { dot1qVlanStaticEntry 5 }
okay so dot1qNextFreeLocalVlanIndex is basically the "take a number" ticket machine for local VLANs π«β¨ It tells you the next free index, or 0 if you can't make a new one. Heads up, bestie: someone else might grab that number before you do π
dot1qNextFreeLocalVlanIndex OBJECT-TYPE
SYNTAX INTEGER (0|4096..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The next available value for dot1qVlanIndex of a local
VLAN entry in dot1qVlanStaticTable. This will report
values >=4096 if a new Local VLAN may be created or else
the value 0 if this is not possible.
A row creation operation in this table for an entry with a local
VlanIndex value may fail if the current value of this object
is not used as the index. Even if the value read is used,
there is no guarantee that it will still be the valid index
when the create operation is attempted - another manager may
have already got in during the intervening time interval.
In this case, dot1qNextFreeLocalVlanIndex should be re-read
and the creation re-tried with the new value.
This value will automatically change when the current value is
used to create a new row."
::= { dot1qVlan 4 }
-- -------------------------------------------------------------
-- The VLAN Port Configuration Table
-- -------------------------------------------------------------
dot1qPortVlanTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qPortVlanEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing per port control and status
information for VLAN configuration in the device."
::= { dot1qVlan 5 }
dot1qPortVlanEntry OBJECT-TYPE
SYNTAX Dot1qPortVlanEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information controlling VLAN configuration for a port
on the device. This is indexed by dot1dBasePort."
AUGMENTS { dot1dBasePortEntry }
::= { dot1qPortVlanTable 1 }
Dot1qPortVlanEntry ::=
SEQUENCE {
dot1qPvid
VlanIndex,
dot1qPortAcceptableFrameTypes
INTEGER,
dot1qPortIngressFiltering
TruthValue,
dot1qPortGvrpStatus
EnabledStatus,
dot1qPortGvrpFailedRegistrations
Counter32,
dot1qPortGvrpLastPduOrigin
MacAddress
}
Next up is the per port PVID stuff π The PVID is the VLAN that untagged and priority-tagged frames get when they show up on a port π
dot1qPvid OBJECT-TYPE
SYNTAX VlanIndex
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The PVID, the VLAN ID assigned to untagged frames or
Priority-Tagged frames received on this port."
REFERENCE
"IEEE 802.1Q/D11 Section 12.10.1.1"
DEFVAL { 1 }
::= { dot1qPortVlanEntry 1 }
dot1qPortAcceptableFrameTypes OBJECT-TYPE
SYNTAX INTEGER {
admitAll(1),
admitOnlyVlanTagged(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"When this is admitOnlyVlanTagged(2) the device will
discard untagged frames or Priority-Tagged frames
received on this port. When admitAll(1), untagged
frames or Priority-Tagged frames received on this port
will be accepted and assigned to the PVID for this port.
This control does not affect VLAN independent BPDU
frames, such as GVRP and STP. It does affect VLAN
dependent BPDU frames, such as GMRP."
REFERENCE
"IEEE 802.1Q/D11 Section 12.10.1.3"
DEFVAL { admitAll }
::= { dot1qPortVlanEntry 2 }
dot1qPortIngressFiltering OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"When this is true(1) the device will discard incoming
frames for VLANs which do not include this Port in its
Member set. When false(2), the port will accept all
incoming frames.
This control does not affect VLAN independent BPDU
frames, such as GVRP and STP. It does affect VLAN
dependent BPDU frames, such as GMRP."
REFERENCE
"IEEE 802.1Q/D11 Section 12.10.1.4"
DEFVAL { false }
::= { dot1qPortVlanEntry 3 }
π¨ ingress filtering is where the device drops frames for VLANs the port isn't in. Very strict, very iconic. π
GVRP era πΏ Here's the status, the failed-registration counter, and the last origin MAC, all per port:
dot1qPortGvrpStatus OBJECT-TYPE
SYNTAX EnabledStatus
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The state of GVRP operation on this port. The value
enabled(1) indicates that GVRP is enabled on this port,
as long as dot1qGvrpStatus is also enabled for this
device. When disabled(2) but dot1qGvrpStatus is still
enabled for the device, GVRP is disabled on this port:
any GVRP packets received will be silently discarded and
no GVRP registrations will be propagated from other
ports. This object affects all GVRP Applicant and
Registrar state machines on this port. A transition
from disabled(2) to enabled(1) will cause a reset of all
GVRP state machines on this port."
DEFVAL { enabled }
::= { dot1qPortVlanEntry 4 }
dot1qPortGvrpFailedRegistrations OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of failed GVRP registrations, for any
reason, on this port."
::= { dot1qPortVlanEntry 5 }
dot1qPortGvrpLastPduOrigin OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Source MAC Address of the last GVRP message
received on this port."
::= { dot1qPortVlanEntry 6 }
-- -------------------------------------------------------------
-- Per port VLAN Statistics Table
-- -------------------------------------------------------------
dot1qPortVlanStatisticsTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qPortVlanStatisticsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing per-port, per-VLAN statistics for
traffic received. Separate objects are provided for both the
most-significant and least-significant bits of statistics
counters for ports that are associated with this transparent
bridge. The most-significant bit objects are only required on
high capacity interfaces, as defined in the conformance clauses
for these objects. This mechanism is provided as a way to read
64-bit counters for agents which support only SNMPv1.
Note that the reporting of most-significant and least-
significant counter bits separately runs the risk of missing
an overflow of the lower bits in the interval between sampling.
The manager must be aware of this possibility, even within the
same varbindlist, when interpreting the results of a request or
asynchronous notification."
::= { dot1qVlan 6 }
dot1qPortVlanStatisticsEntry OBJECT-TYPE
SYNTAX Dot1qPortVlanStatisticsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Traffic statistics for a VLAN on an interface."
INDEX { dot1dBasePort, dot1qVlanIndex }
::= { dot1qPortVlanStatisticsTable 1 }
Dot1qPortVlanStatisticsEntry ::=
SEQUENCE {
dot1qTpVlanPortInFrames
Counter32,
dot1qTpVlanPortOutFrames
Counter32,
dot1qTpVlanPortInDiscards
Counter32,
dot1qTpVlanPortInOverflowFrames
Counter32,
dot1qTpVlanPortOutOverflowFrames
Counter32,
dot1qTpVlanPortInOverflowDiscards
Counter32
}
dot1qTpVlanPortInFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of valid frames received by this port from
its segment which were classified as belonging to this
VLAN. Note that a frame received on this port is
counted by this object if and only if it is for a
protocol being processed by the local forwarding process
for this VLAN. This object includes received bridge
management frames classified as belonging to this VLAN
(e.g. GMRP, but not GVRP or STP)."
REFERENCE
"IEEE 802.1Q/D11 Section 12.6.1.1.3(a)"
::= { dot1qPortVlanStatisticsEntry 1 }
dot1qTpVlanPortOutFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of valid frames transmitted by this port to
its segment from the local forwarding process for this
VLAN. This includes bridge management frames originated
by this device which are classified as belonging to this
VLAN (e.g. GMRP, but not GVRP or STP)."
REFERENCE
"IEEE 802.1Q/D11 Section 12.6.1.1.3(d)"
::= { dot1qPortVlanStatisticsEntry 2 }
dot1qTpVlanPortInDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of valid frames received by this port from
its segment which were classified as belonging to this
VLAN which were discarded due to VLAN related reasons.
Specifically, the IEEE 802.1Q counters for Discard
Inbound and Discard on Ingress Filtering."
REFERENCE
"IEEE 802.1Q/D11 Section 12.6.1.1.3"
::= { dot1qPortVlanStatisticsEntry 3 }
dot1qTpVlanPortInOverflowFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated
dot1qTpVlanPortInFrames counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1qPortVlanStatisticsEntry 4 }
dot1qTpVlanPortOutOverflowFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated
dot1qTpVlanPortOutFrames counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1qPortVlanStatisticsEntry 5 }
dot1qTpVlanPortInOverflowDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the associated
dot1qTpVlanPortInDiscards counter has overflowed."
REFERENCE
"ISO/IEC 15802-3 Section 14.6.1.1.3"
::= { dot1qPortVlanStatisticsEntry 6 }
dot1qPortVlanHCStatisticsTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot1qPortVlanHCStatisticsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing per port, per VLAN statistics for
traffic on high capacity interfaces."
::= { dot1qVlan 7 }
dot1qPortVlanHCStatisticsEntry OBJECT-TYPE
SYNTAX Dot1qPortVlanHCStatisticsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Traffic statistics for a VLAN on a high capacity
interface."
INDEX { dot1dBasePort, dot1qVlanIndex }
::= { dot1qPortVlanHCStatisticsTable 1 }
Dot1qPortVlanHCStatisticsEntry ::=
SEQUENCE {
dot1qTpVlanPortHCInFrames
Counter64,
dot1qTpVlanPortHCOutFrames
Counter64,
dot1qTpVlanPortHCInDiscards
Counter64
}
dot1qTpVlanPortHCInFrames OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of valid frames received by this port from
its segment which were classified as belonging to this
VLAN. Note that a frame received on this port is
counted by this object if and only if it is for a
protocol being processed by the local forwarding process
for this VLAN. This object includes received bridge
management frames classified as belonging to this VLAN
(e.g. GMRP, but not GVRP or STP)."
REFERENCE
"IEEE 802.1Q/D11 Section 12.6.1.1.3(a)"
::= { dot1qPortVlanHCStatisticsEntry 1 }
dot1qTpVlanPortHCOutFrames OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of valid frames transmitted by this port to its segment from the local forwarding process for this VLAN. This includes bridge management frames originated by this device which are classified as belonging to this VLAN (e.g. GMRP, but not GVRP or STP)." REFERENCE "IEEE 802.1Q/D11 Section 12.6.1.1.3(d)" ::= { dot1qPortVlanHCStatisticsEntry 2 }
dot1qTpVlanPortHCInDiscards OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of valid frames received by this port from its segment which were classified as belonging to this VLAN which were discarded due to VLAN related reasons. Specifically, the IEEE 802.1Q counters for Discard Inbound and Discard on Ingress Filtering." REFERENCE "IEEE 802.1Q/D11 Section 12.6.1.1.3" ::= { dot1qPortVlanHCStatisticsEntry 3 }
okay so next up is the learning constraints table, and it's giving main character energy πβ¨
-- The VLAN Learning Constraints Table
dot1qLearningConstraintsTable OBJECT-TYPE SYNTAX SEQUENCE OF Dot1qLearningConstraintsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing learning constraints for sets of Shared and Independendent VLANs." REFERENCE "IEEE 802.1Q/D11 Section 12.10.3.1" ::= { dot1qVlan 8 }
dot1qLearningConstraintsEntry OBJECT-TYPE SYNTAX Dot1qLearningConstraintsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A learning constraint defined for a VLAN." INDEX { dot1qConstraintVlan, dot1qConstraintSet } ::= { dot1qLearningConstraintsTable 1 }
Dot1qLearningConstraintsEntry ::= SEQUENCE { dot1qConstraintVlan VlanIndex, dot1qConstraintSet INTEGER, dot1qConstraintType INTEGER, dot1qConstraintStatus RowStatus }
dot1qConstraintVlan OBJECT-TYPE SYNTAX VlanIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of the row in dot1qVlanCurrentTable for the VLAN constrained by this entry." ::= { dot1qLearningConstraintsEntry 1 }
dot1qConstraintSet OBJECT-TYPE SYNTAX INTEGER (0..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The identity of the constraint set to which dot1qConstraintVlan belongs. These values may be chosen by the management station." ::= { dot1qLearningConstraintsEntry 2 }
dot1qConstraintType OBJECT-TYPE SYNTAX INTEGER { independent(1), shared(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of constraint this entry defines. independent(1) - the VLAN, dot1qConstraintVlan, uses an independent filtering database from all other VLANs in the same set, defined by dot1qConstraintSet. shared(2) - the VLAN, dot1qConstraintVlan, shares the same filtering database as all other VLANs in the same set, defined by dot1qConstraintSet." ::= { dot1qLearningConstraintsEntry 3 }
dot1qConstraintStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this entry." ::= { dot1qLearningConstraintsEntry 4 }
dot1qConstraintSetDefault OBJECT-TYPE SYNTAX INTEGER (0..65535) MAX-ACCESS read-write STATUS current DESCRIPTION "The identity of the constraint set to which a VLAN belongs, if there is not an explicit entry for that VLAN in dot1qLearningConstraintsTable." ::= { dot1qVlan 9 }
dot1qConstraintTypeDefault OBJECT-TYPE SYNTAX INTEGER { independent(1), shared(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The type of constraint set to which a VLAN belongs, if there is not an explicit entry for that VLAN in dot1qLearningConstraintsTable. The types are as defined for dot1qConstraintType." ::= { dot1qVlan 10 }
the conformance section is where the spec gets organised into neat little groups, bestie π
-- IEEE 802.1Q MIB - Conformance Information
qBridgeConformance OBJECT IDENTIFIER ::= { qBridgeMIB 2 }
qBridgeGroups OBJECT IDENTIFIER ::= { qBridgeConformance 1 }
qBridgeCompliances OBJECT IDENTIFIER ::= { qBridgeConformance 2 }
-- units of conformance
qBridgeBaseGroup OBJECT-GROUP OBJECTS { dot1qVlanVersionNumber, dot1qMaxVlanId, dot1qMaxSupportedVlans, dot1qNumVlans, dot1qGvrpStatus } STATUS current DESCRIPTION "A collection of objects providing device level control and status information for the Virtual LAN bridge services." ::= { qBridgeGroups 1 }
qBridgeFdbUnicastGroup OBJECT-GROUP OBJECTS { dot1qFdbDynamicCount, dot1qTpFdbPort, dot1qTpFdbStatus } STATUS current DESCRIPTION "A collection of objects providing information about all unicast addresses, learnt dynamically or statically configured by management, in each Filtering Database." ::= { qBridgeGroups 2 }
qBridgeFdbMulticastGroup OBJECT-GROUP OBJECTS { dot1qTpGroupEgressPorts, dot1qTpGroupLearnt } STATUS current DESCRIPTION "A collection of objects providing information about all multicast addresses, learnt dynamically or statically configured by management, in each Filtering Database." ::= { qBridgeGroups 3 }
qBridgeServiceRequirementsGroup OBJECT-GROUP OBJECTS { dot1qForwardAllPorts, dot1qForwardAllStaticPorts, dot1qForwardAllForbiddenPorts, dot1qForwardUnregisteredPorts, dot1qForwardUnregisteredStaticPorts, dot1qForwardUnregisteredForbiddenPorts } STATUS current DESCRIPTION "A collection of objects providing information about service requirements, learnt dynamically or statically configured by management, in each Filtering Database." ::= { qBridgeGroups 4 }
qBridgeFdbStaticGroup OBJECT-GROUP OBJECTS { dot1qStaticUnicastAllowedToGoTo, dot1qStaticUnicastStatus, dot1qStaticMulticastStaticEgressPorts, dot1qStaticMulticastForbiddenEgressPorts, dot1qStaticMulticastStatus } STATUS current DESCRIPTION "A collection of objects providing information about unicast and multicast addresses statically configured by management, in each Filtering Database or VLAN." ::= { qBridgeGroups 5 }
qBridgeVlanGroup OBJECT-GROUP OBJECTS { dot1qVlanNumDeletes, dot1qVlanFdbId, dot1qVlanCurrentEgressPorts, dot1qVlanCurrentUntaggedPorts, dot1qVlanStatus, dot1qVlanCreationTime } STATUS current DESCRIPTION "A collection of objects providing information about all VLANs currently configured on this device." ::= { qBridgeGroups 6 }
qBridgeVlanStaticGroup OBJECT-GROUP OBJECTS { dot1qVlanStaticName, dot1qVlanStaticEgressPorts, dot1qVlanForbiddenEgressPorts, dot1qVlanStaticUntaggedPorts, dot1qVlanStaticRowStatus, dot1qNextFreeLocalVlanIndex } STATUS current DESCRIPTION "A collection of objects providing information about VLANs statically configured by management." ::= { qBridgeGroups 7 }
qBridgePortGroup OBJECT-GROUP OBJECTS { dot1qPvid, dot1qPortAcceptableFrameTypes, dot1qPortIngressFiltering, dot1qPortGvrpStatus, dot1qPortGvrpFailedRegistrations, dot1qPortGvrpLastPduOrigin } STATUS current DESCRIPTION "A collection of objects providing port level VLAN control and status information for all ports." ::= { qBridgeGroups 8 }
qBridgeVlanStatisticsGroup OBJECT-GROUP OBJECTS { dot1qTpVlanPortInFrames, dot1qTpVlanPortOutFrames, dot1qTpVlanPortInDiscards } STATUS current DESCRIPTION "A collection of objects providing per-port packet statistics for all VLANs currently configured on this device." ::= { qBridgeGroups 9 }
qBridgeVlanStatisticsOverflowGroup OBJECT-GROUP OBJECTS { dot1qTpVlanPortInOverflowFrames, dot1qTpVlanPortOutOverflowFrames, dot1qTpVlanPortInOverflowDiscards } STATUS current DESCRIPTION "A collection of objects providing overflow counters for per-port packet statistics for all VLANs currently configured on this device for high capacity interfaces, defined as those that have the value of the corresponding instance of ifSpeed greater than 650,000,000 bits/second." ::= { qBridgeGroups 10 }
qBridgeVlanHCStatisticsGroup OBJECT-GROUP OBJECTS { dot1qTpVlanPortHCInFrames, dot1qTpVlanPortHCOutFrames, dot1qTpVlanPortHCInDiscards } STATUS current DESCRIPTION "A collection of objects providing per-port packet statistics for all VLANs currently configured on this device for high capacity interfaces, defined as those that have the value of the corresponding instance of ifSpeed greater than 650,000,000 bits/second." ::= { qBridgeGroups 11 }
qBridgeLearningConstraintsGroup OBJECT-GROUP OBJECTS { dot1qConstraintType, dot1qConstraintStatus } STATUS current DESCRIPTION "A collection of objects defining the Filtering Database constraints all VLANs have with each other." ::= { qBridgeGroups 12 }
qBridgeLearningConstraintDefaultGroup OBJECT-GROUP OBJECTS { dot1qConstraintSetDefault, dot1qConstraintTypeDefault } STATUS current DESCRIPTION "A collection of objects defining the default Filtering Database constraints for VLANs which have no specific constraints defined." ::= { qBridgeGroups 13 }
up next: the compliance statements, and we're almost at the finish line π«Άπ
-- compliance statements
qBridgeCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for device support of Virtual
LAN Bridge services."
MODULE
MANDATORY-GROUPS {
qBridgeBaseGroup,
qBridgeVlanGroup,
qBridgeVlanStaticGroup,
qBridgePortGroup
}
GROUP qBridgeFdbUnicastGroup
DESCRIPTION
"This group is mandatory for bridges that implement
802.1Q transparent bridging."
GROUP qBridgeFdbMulticastGroup
DESCRIPTION
"This group is mandatory for bridges that implement
802.1Q transparent bridging."
GROUP qBridgeServiceRequirementsGroup
DESCRIPTION
"This group is mandatory for bridges that implement
extended filtering services. All objects must be
read-write if extended-filtering services are
enabled."
GROUP qBridgeFdbStaticGroup
DESCRIPTION
"This group is optional."
GROUP qBridgeVlanStatisticsGroup
DESCRIPTION
"This group is optional as there may be significant
implementation cost associated with its support."
GROUP qBridgeVlanStatisticsOverflowGroup
DESCRIPTION
"This group is optional as there may be significant
implementation cost associated with its support. It is most
relevant for high capacity interfaces where the SNMP agent
supports only SNMPv1."
GROUP qBridgeVlanHCStatisticsGroup
DESCRIPTION
"This group is optional as there may be significant
implementation cost associated with its support. It is most
relevant for high capacity interfaces."
GROUP qBridgeLearningConstraintsGroup
DESCRIPTION
"This group is mandatory for devices implementing
both Independent VLAN Learning (IVL) and Shared
VLAN Learning (SVL) modes of operation of the
filtering database, as defined by IEEE 802.1Q."
GROUP qBridgeLearningConstraintDefaultGroup
DESCRIPTION
"This group is mandatory for devices implementing
both Independent VLAN Learning (IVL) and Shared
VLAN Learning (SVL) modes of operation of the
filtering database, as defined by IEEE 802.1Q."
OBJECT dot1qPortAcceptableFrameTypes
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required as this is an optional
capability in IEEE 802.1Q."
OBJECT dot1qPortIngressFiltering
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required as this is an optional
capability in IEEE 802.1Q."
OBJECT dot1qConstraintSetDefault
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required as this is an optional
capability in IEEE 802.1Q."
OBJECT dot1qConstraintTypeDefault
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required as this is an optional
capability in IEEE 802.1Q."
::= { qBridgeCompliances 1 }
END
6. Acknowledgments β¨
okay so this section is the thank-you list π«Ά This doc builds on earlier work that gave us the original bridge MIB [BRIDGEMIB] πΈ
A huge chunk of the groundwork came from the IEEE 802.1 working group while they were putting together the IEEE 802.1D updates [802.1D] and IEEE 802.1Q [802.1Q]. Iconic behaviour from them π
The authors wanted to thank the members of the Bridge Working Group, and David Harrington especially, for all their comments and suggestions that made this whole effort better. π
7. Security Considerations π₯
okay bestie, this is a serious section and I'm not going to pretend it isn't π There are a bunch of management objects in this MIB with a MAX-ACCESS clause of read-write and/or read-create. Those objects may be sensitive or vulnerable in some network environments. Supporting SET operations in a non-secure environment without proper protection can have a negative effect on network operations. π
SNMPv1 by itself is not a secure environment. Even if the network itself is secure (for example by using IPSec), there is still no control over who on that secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB. Not me being scared of this π
It is recommended that implementers consider the security features provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model [USM] and the View-based Access Control Model [VACM] is recommended. β¨
Then it is a customer/user responsibility to make sure the SNMP entity giving access to an instance of this MIB is properly configured, so the objects are only accessible to the principals (users) who have legitimate rights to GET or SET (change/create/delete) them. Main character energy means locking this down ππ
8. References π
[ARCH] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999.
[V1PROTO] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.
[V1SMI] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.
[V1CONCISE] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.
[V1TRAPS] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.
[V2SMI] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
[V2TC] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
[V2CONFORM] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
[V2COMMUNITY] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.
[V2TRANS] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
[V2PROTO] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
[V3INTRO] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999.
[V3MPC] Case, J., Harrington D., Presuhn, R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2572, April 1999.
[V3USM] Blumenthal, U. and B. Wijnen, "The User-Based Security Model (USM) for Version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, April 1999.
[V3APPS] Levi, D., Meyer, P. and B. Stewart, "SNMP Applications", RFC 2573, April 1999.
[V3VACM] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model for the Simple Network Management Protocol (SNMP)", RFC 2575, April 1999.
[ASN1] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization, International Standard 8824, December 1987.
[ASN1BER] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization, International Standard 8825, December 1987.
[802.1D-ORIG] ISO/IEC 10038, ANSI/IEEE Std 802.1D-1993 "MAC Bridges".
[802.1D] "Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3: Media Access Control (MAC) Bridges: Revision. This is a revision of ISO/IEC 10038: 1993, 802.1j-1992 and 802.6k-1992. It incorporates P802.11c, P802.1p and P802.12e." ISO/IEC 15802-3: 1998.
[802.1Q] ANSI/IEEE Standard 802.1Q, "IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks", 1998.
[BRIDGEMIB] Decker, E., Langille, P., Rijsinghani, A. and K. McCloghrie, "Definitions of Managed Objects for Bridges", RFC 1493, July 1993.
[INTERFACEMIB] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB using SMIv2", RFC 2233, November 1997.
[SRBRIDGEMIB] Decker, E., McCloghrie, K., Langille, P. and A. Rijsinghani, "Definitions of Managed Objects for Source Routing Bridges", RFC 1525, September 1993.
[MIB2] McCloghrie K. and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets", STD 17, RFC 1213, March 1991.
9. Authors' Addresses π§
Les Bell
3Com Europe Limited
3Com Centre, Boundary Way
Hemel Hempstead
Herts. HP2 7YU
UK
Phone: +44 1442 438025
EMail: Les_Bell@3Com.com
Andrew Smith
Extreme Networks
3585 Monroe St.
Santa Clara, CA 95051
USA
Phone: +1 408 579 2821
EMail: andrew@extremenetworks.com
Paul Langille
Newbridge Networks
5 Corporate Drive
Andover, MA 01810
USA
Phone: +1 978 691 4665
EMail: langille@newbridge.com
Anil Rijhsinghani
Cabletron Systems
50 Minuteman Road
Andover, MA 01810
USA
Phone: +1 978 684 1295
EMail: anil@cabletron.com
Keith McCloghrie
cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
Phone: +1 408 526 5260
EMail: kzm@cisco.com
10. Intellectual Property π
The IETF doesn't take a position on whether any intellectual property or other rights that might be claimed to apply to the technology in this document are valid or in scope, or whether any license for those rights is or isn't available. It also doesn't claim it has tried to identify any such rights. For how the IETF handles rights in standards-track and standards-related documents, check out BCP-11. Copies of claims of rights made available for publication, any assurances of licences to be made available, or the result of any attempt to get a general license or permission for implementers or users of this specification to use such proprietary rights can all be obtained from the IETF Secretariat. π
The IETF also invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that might cover technology required to practise this standard. Send that info to the IETF Executive Director. π¦
11. Full Copyright Statement π
Okay bestie, this is the legal bit, so read it with me π
Copyright (C) The Internet Society (1999). All Rights Reserved. π¦
Anyone can copy this document and share it with others. You can also make derivative works that comment on it, explain it, or help people implement it, and publish and distribute those however you like, in whole or in part, with no restrictions. The one catch is that the copyright notice and this paragraph have to stay on every copy and every derivative work. β¨
You still can't modify this document itself. That means no removing the copyright notice or the references to the Internet Society or other Internet organizations. The exceptions are when you need it for developing Internet standards, where the procedures for copyrights defined in the Internet Standards process must be followed, or when you're translating it into a language other than English. πΈ
The permissions above are perpetual. The Internet Society, its successors, and its assigns will never revoke them. π
Here's the disclaimer, and it's giving "no promises, sorry not sorry" π
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement π
Funding for the RFC Editor function is currently provided by the Internet Society. π«Ά Thank you to whoever keeps the RFC lights on, you're iconic π
π¦ where this page comes from
- ietf: rfc2674 1999-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms