RFC 4878
Definitions and Managed Objects for Operations, Administration, and Maintenance (OAM) Functions on Ethernet-Like Interfaces
RFC 4878: Definitions and Managed Objects for Operations, Administration, and Maintenance (OAM) Functions on Ethernet-Like Interfaces π
Okay bestie, this one comes from the Network Working Group π«Ά
- Author: M. Squire, Hatteras Networks
- Category: Standards Track
- Date: June 2007
- Obsoletes / Updates: none listed on this title block
Status of This Memo π
This doc specifies an Internet standards track protocol for the whole Internet community, and it's literally asking for discussion and suggestions to make it better π For the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share away π¦
Copyright Notice Β©οΈ
Copyright (C) The IETF Trust (2007).
Abstract β¨
This doc defines objects for managing Operations, Administration, and Maintenance (OAM) capabilities on Ethernet-like interfaces. These interfaces follow the Ethernet OAM functionality from the Ethernet in the First Mile (EFM) clauses of the Ethernet standards π
Ethernet OAM is complementary to SNMP because it focuses on a small set of link-specific functions for directly connected Ethernet interfaces. The doc defines objects for controlling those link OAM functions, and for sharing their results and status with management entities π§
Table of Contents ποΈ
1. Introduction ....................................................2
2. The Internet-Standard Management Framework ......................2
3. Overview ........................................................3
3.1. Remote Fault Indication ....................................4
3.2. Link Monitoring ............................................4
3.3. Remote Loopback ............................................5
3.4. Ethernet OAM Protocol Data Units ...........................5
4. Relation to the Other MIB Modules ...............................5
4.1. Relation to Other MIB Modules ..............................5
4.2. Relation to Other EFM MIB Modules ..........................6
4.3. Mapping of IEEE 802.3ah Managed Objects ....................6
5. MIB Structure ...................................................7
6. MIB Definition ..................................................8
7. Security Considerations ........................................47
8. IANA Considerations ............................................49
9. References .....................................................49
9.1. Normative References ......................................49
9.2. Informative References ....................................50
10. Acknowledgments ...............................................51
1. Introduction πΈ
So the IEEE 802.3ah Ethernet in the First Mile (EFM) taskforce gave Ethernet-like interfaces some new management powers π The goal was to add basic Ordered Aggregate (OA) function on Ethernet media. The new functionality covers discovery, error signaling, loopback, and link monitoring π This memo defines a chunk of the Management Information Base (MIB) so network management protocols in the Internet community can manage these shiny new Ethernet interface capabilities π
Conventions Used in This Document π
The BCP 14 key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document get interpreted the way RFC 2119 [RFC2119] describes β¨
2. The Internet-Standard Management Framework π‘
For a detailed tour of the docs behind the current Internet-Standard Management Framework, check out section 7 of RFC 3410 [RFC3410] π«Ά
Managed objects live in a virtual information store called the Management Information Base, or MIB. You usually reach MIB objects through the Simple Network Management Protocol (SNMP) π
Objects in the MIB are defined with the mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] π¦
3. Overview π§
Ethernet networks have come a long way in the past 30 years, going from simple LANs to all sorts of other applications, including wide-area networks π To handle these emerging markets, the IEEE 802.3ah taskforce defined extra clauses in [802.3ah] for the IEEE 802.3 standard [802.3-2002], so Ethernet works better in public-access networks. Ethernet-access deployments were the main motivation, but the taskforce results aren't strictly limited to that. Ethernet OAM can also be implemented on Ethernet links that are not EFM π
The Ethernet in the First Mile (EFM) taskforce had four somewhat independent objectives for better Ethernet access deployments: optics, copper, Ethernet passive optical networks (Ethernet PON, or EPON), and operations, administration, and maintenance (OAM) π The optics sub-taskforce built new optical physical layers that serve the long-reach outside plant networks typically found in the access network. These include physical layers that operate up to 20 Km and handle the environmental conditions of access deployments. The copper sub-taskforce built two new physical layers that run Ethernet natively over existing twisted pair wires, the ones that have been carrying voice services for decades π The EPON sub-taskforce built a new point-to-multipoint Ethernet physical layer that uses Ethernet framing natively over a time-division multiple-access (TDMA) infrastructure. The OAM sub-taskforce added some basic management functionality to an Ethernet link, so you can monitor and maintain Ethernet networks spread across geographically disparate networks πΊοΈ
This document defines the management objects needed to bring Ethernet OAM functionality into the SNMP management framework π
Ethernet OAM is made up of a core set of functions plus a set of optional functional groups. The mandatory functions cover discovery operations (figuring out whether the other end of the link is OA capable and which OAM functions it supports), state machine implementation, and some critical event flows. The optional functional groups are for (a) link events, (b) remote loopback, and (c) variable retrieval and response. Each optional functional group is controlled by a separate MIB table or tables π
Ethernet OAM is complementary with SNMP management because it gives you some basic management functions at layer two. SNMP instead uses layer three and above, as required over an IP infrastructure. Ethernet OAM is single-hop, meaning it only works between two directly connected Ethernet stations. SNMP can manage the Ethernet OAM interactions of one Ethernet station with another π«Ά
Ethernet OAM has three functional objectives, detailed in the next three sections. The definition of a basic Ethernet OA protocol data unit is in Section 3.4 π§
3.1. Remote Fault Indication π¨
Remote fault indication lets one end of an Ethernet link signal the other end that its receive path is non-operational. Some Ethernet physical layers offer ways to signal this at the physical layer. Ethernet OAM added a mechanism so some Ethernet physical layers can run in unidirectional mode, letting frames go out in one direction even when the other direction is non-operational. Normally, Ethernet PHYs don't allow frame transmission in one direction if the other direction isn't operational π With this mode, Ethernet OAM allows frame-based signaling of remote fault conditions, while higher-layer applications still aren't aware of the unidirectional capability. This document includes mechanisms for capturing that fault information and reflecting it in objects and notifications within the SNMP management framework π
3.2. Link Monitoring π
Ethernet OAM has event signaling, so one end of an Ethernet link can tell the other end when certain important events happen. This happens through layer two protocols. This document defines ways to bring these layer two events, at both the local end and the far end of the link, into the SNMP management framework π
Ethernet OAM also has mechanisms for one Ethernet station to ask another directly connected Ethernet station about the status of its Ethernet interface variables and status. This document does not include mechanisms for controlling how one Ethernet endpoint uses this to query the status or statistics of a peer Ethernet entity π€
3.3. Remote Loopback π
Remote loopback is a link state where the peer Ethernet entity echoes every received packet back onto the link without modifications. Remote loopback is intrusive, because the other end of the link isn't forwarding traffic from higher layers out over the link π¬ This document defines objects that control loopback operation and read the status of the loopback state β¨
3.4. Ethernet OAM Protocol Data Units π¦
An Ethernet OAM protocol data unit is a valid Ethernet frame with a destination Media Access Control (MAC) address equal to the reserved MAC address for Slow Protocols (See 43B of [802.3ah]). Its lengthOrType field is equal to the reserved type for Slow Protocols, and its Slow Protocols subtype is equal to the subtype reserved for Ethernet OAM π§
This document uses OAMPDU as shorthand for Ethernet OAM protocol data unit. OAMPDUs are the mechanism by which two directly connected Ethernet interfaces swap OA information π«Ά
4. Relation to the Other MIB Modules π§©
The definitions here are based on Clauses 30 and 57 of [802.3ah]. These clauses describe many of these variables and their effects on the MAC layer πΈ In some cases there's a one-to-one relationship between an object in this document and an object in the Clause 30 MIB of [802.3ah]. In other cases, an object in this document reflects a more complex entity, so it's reflected by more than one object in the Clause 30 MIB of [802.3ah] π
4.1. Relation to Other MIB Modules π
The objects defined in this document manage OAM functionality introduced in [802.3ah]. They don't overlap with the interfaces MIB [RFC2863], the Ethernet-like interfaces MIB [RFC3635], or any other MIB currently used to manage various aspects of an Ethernet interface π
The objects here are defined for Ethernet-like interfaces only, and they use the same ifIndex as the associated Ethernet interface. Ethernet OAM can be implemented on any Ethernet-like interface π
4.2. Relation to Other EFM MIB Modules π
The Ethernet OAM functionality and MIB module are independent of the other functionality and MIB modules derived from [802.3ah] for copper [802.3ah-copper] and EPON [802.3ah-epon]. Ethernet OAM may be implemented (or not) on the new EFM interface types, just as it can be on any other Ethernet interface β¨
4.3. Mapping of IEEE 802.3ah Managed Objects πΊοΈ
Okay so this part is basically the cheat sheet, bestie π«Ά It maps every managed object from [802.3ah] Clause 30 to the matching object in this document, so you can see exactly where each one ends up. Iykyk, and if you don't, here it is:
IEEE 802.3 Managed Object Corresponding SNMP object
oOA
.aOAMID IF-MIB ifIndex
.aOAMAdminState dot3OamAdminState
.aOAMMode dot3OamMode
.aOAMDiscoveryState dot3OamOperStatus
.aOAMRemoteMACAddress dot3OamPeerMacAddress
.aOAMLocalConfiguration dot3OamFunctionsSupported
.aOAMRemoteConfiguration dot3OamPeerFunctionsSupported,
dot3OamPeerMode
.aOAMLocalPDUConfiguration dot3OamMaxOamPduSize
.aOAMRemotePDUConfiguration dot3OamPeerMaxOamPduSize
.aOAMLocalFlagsField dot3OamOperStatus,
dot3OamEventLogEntry
.aOAMRemoteFlagsField dot3OamOperStatus,
dot3OamEventLogEntry
.aOAMLocalRevision dot3OamConfigRevision
.aOAMRemoteRevision dot3OamPeerConfigRevision
.aOAMLocalState dot3OamLoopbackStatus
.aOAMRemoteState dot3OamLoopbackStatus
.aOAMRemoteVendorOUI dot3OamPeerVendorOui
.aOAMRemoteVendorSpecificInfo dot3OamPeerVendorInfo
.aOAMUnsupportedCodesTx dot3OamUnsupportedCodesTx
.aOAMUnsupportedCodesRx dot3OamUnsupportedCodesRx
.aOAMInformationTx dot3OamInformationTx
.aOAMInformationRx dot3OamInformationRx
.aOAMUniqueEventNotificationTx dot3OamUniqueEventNotificationTx
.aOAMUniqueEventNotificationRx dot3OamUniqueEventNotificationRx
.aOAMDuplicateEventNotificationTx
dot3OamDuplicateEventNotificationTx
.aOAMDuplicateEventNotificationRx
dot3OamDuplicateEventNotificationRx
.aOAMLoopbackControlTx dot3OamLoopbackControlTx
.aOAMLoopbackControlRx dot3OamLoopbackControlRx
.aOAMVariableRequestTx dot3OamVariableRequestTx
.aOAMVariableRequestRx dot3OamVariableRequestRx
.aOAMVariableResponseTx dot3OamVariableResponseTx
.aOAMVariableResponseRx dot3OamVariableResponseRx
.aOAMOrganizationSpecificTx dot3OamOrgSpecificTx
.aOAMOrganizationSpecificRx dot3OamOrgSpecificTx
.aOAMLocalErrSymPeriodConfig dot3OamErrSymPeriodWindow,
dot3OamErrSymPeriodThreshold
.aOAMLocalErrSymPeriodEvent dot3OamEventLogEntry
.aOAMLocalErrFrameConfig dot3OamErrFrameWindow,
dot3OamErrFrameThreshold
.aOAMLocalErrFrameEvent dot3OamEventLogEntry
.aOAMLocalErrFramePeriodConfig dot3OamErrFramePeriodWindow,
dot3OamErrFramePeriodThreshold
.aOAMLocalErrFramePeriodEvent dot3OamEventLogEntry
.aOAMLocalErrFrameSecsSummaryConfig
dot3OamErrFrameSecsSummaryWindow,
dot3OamErrFrameSecssummaryThreshold
.aOAMLocalErrFrameSecsSummaryEvent
dot3OamEventLogEntry
.aOAMRemoteErrSymPeriodEvent dot3OamEventLogEntry
.aOAMRemoteErrFrameEvent dot3OamEventLogEntry
.aOAMRemoteErrFramePeriodEvent dot3OamEventLogEntry
.aOAMRemoteErrFrameSecsSummaryEvent
dot3OamEventLogEntry
.aFramesLostDueToOAmError dot3OamFramesLostDueToOam
.acOAMAdminControl dot3OamAdminState
There are no IEEE 802.3ah managed objects that aren't reflected in this MIB Module in some way. Every single one has a home β¨π
5. MIB Structure π§©
Ngl, this is the part where the MIB gets organized. The Ethernet OAM MIB objects in this memo are all about the OA capabilities that [802.3ah] brought in, and they're split into six MIB groups π
The dot3OamTable group is the main event π It holds the primary OAM objects for the Ethernet interface, controls the state and status of OA, and sets the mode it runs in.
The dot3OamPeerTable keeps the current info on the status and config of the peer OAM entity on that Ethernet interface. It tracks the capabilities and functions the peer has available, which is so useful, literally.
The dot3OamLoopbackTable manages the loopback function from [802.3ah]. It controls turning loopback on and off, and it shows the loopback status of Ethernet OAM on the interface π
The dot3OamStatsTable is the stats queen π It tracks the number and type of Ethernet OAM frames sent and received on the Ethernet interface.
The dot3OamEventConfigTable defines the objects for managing the event notification feature in Ethernet OAM. Basically, one device can send notifications to its peers whenever something important happens on the local device π This table is where you decide which events trigger notifications over Ethernet OAM, over SNMP, or both.
The dot3OamEventLogTable tracks the current status of local and remote events that Ethernet OAM detects. It gets updated whenever Ethernet OAM spots a local event, or whenever it receives Ethernet OAM Event Notifications from the peer OA entity π
There are two notifications defined to report Ethernet OAM events: one for threshold crossing events and one for non-threshold crossing events. Both of them live in the same conformance group, so they're giving neighbours π«Ά
6. MIB Definition π
Here's the actual MIB module, copied exactly as it's written so nothing gets lost in translation π
DOT3-OAM-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, mib-2, OBJECT-TYPE, Counter32, Unsigned32,
Integer32, NOTIFICATION-TYPE
FROM SNMPv2-SMI
-- from [RFC2578]
TEXTUAL-CONVENTION, MacAddress, TimeStamp, TruthValue
FROM SNMPv2-TC
-- from [RFC2579]
CounterBasedGauge64
FROM HCNUM-TC
-- from [RFC2856]
ifIndex
FROM IF-MIB
-- from [RFC2863]
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF;
-- from [RFC2580]
dot3OamMIB MODULE-IDENTITY
LAST-UPDATED "200706140000Z" -- June 14,2007"
ORGANIZATION
"IETF Ethernet Interfaces and Hub MIB Working Group"
CONTACT-INFO
"WG Charter:
http://www.ietf.org/html.charters/hubmib-charter.html
Mailing lists:
General Discussion: hubmib@ietf.org
To Subscribe: hubmib-requests@ietf.org
In Body: subscribe your_email_address
Chair: Bert Wijnen
Alcatel-Lucent
Email: bwijnen at alcatel-lucent dot com
Editor: Matt Squire
Hatteras Networks
E-mail: msquire at hatterasnetworks dot com
"
DESCRIPTION
"The MIB module for managing the new Ethernet OAM features
introduced by the Ethernet in the First Mile taskforce (IEEE
802.3ah). The functionality presented here is based on IEEE
802.3ah [802.3ah], released in October, 2004. [802.3ah] was
prepared as an addendum to the standing version of IEEE 802.3
[802.3-2002]. Since then, [802.3ah] has been
merged into the base IEEE 802.3 specification in [802.3-2005].
In particular, this MIB focuses on the new OAM functions
introduced in Clause 57 of [802.3ah]. The OAM functionality
of Clause 57 is controlled by new management attributes
introduced in Clause 30 of [802.3ah]. The OAM functions are
not specific to any particular Ethernet physical layer, and
can be generically applied to any Ethernet interface of
[802.3-2002].
An Ethernet OAM protocol data unit is a valid Ethernet frame
with a destination MAC address equal to the reserved MAC
address for Slow Protocols (See 43B of [802.3ah]), a
lengthOrType field equal to the reserved type for Slow
Protocols, and a Slow Protocols subtype equal to that of the
subtype reserved for Ethernet OAM. OAMPDU is used throughout
this document as an abbreviation for Ethernet OAM protocol
data unit.
The following reference is used throughout this MIB module:
[802.3ah] refers to:
IEEE Std 802.3ah-2004: 'Draft amendment to -
Information technology - Telecommunications and
information exchange between systems - Local and
metropolitan area networks - Specific requirements - Part
3: Carrier sense multiple access with collision detection
(CSMA/CD) access method and physical layer specifications
- Media Access Control Parameters, Physical Layers and
Management Parameters for subscriber access networks',
October 2004.
[802.3-2002] refers to:
IEEE Std 802.3-2002:
'Information technology - Telecommunications and
information exchange between systems - Local and
metropolitan area networks - Specific requirements - Part
3: Carrier sense multiple access with collision detection
(CSMA/CD) access method and physical layer specifications
- Media Access Control Parameters, Physical Layers and
Management Parameters for subscriber access networks',
March 2002.
[802.3-2005] refers to:
IEEE Std 802.3-2005:
'Information technology - Telecommunications and
information exchange between systems - Local and
metropolitan area networks - Specific requirements - Part
3: Carrier sense multiple access with collision detection
(CSMA/CD) access method and physical layer specifications
- Media Access Control Parameters, Physical Layers and
Management Parameters for subscriber access networks',
December 2005.
[802-2001] refers to:
'IEEE Standard for LAN/MAN (Local Area
Network/Metropolitan Area Network): Overview and
Architecture', IEEE 802, June 2001.
Copyright (c) The IETF Trust (2007). This version of
this MIB module is part of RFC 4878; See the RFC itself for
full legal notices. "
REVISION "200706140000Z" -- June 14, 2007"
DESCRIPTION "Initial version, published as RFC 4878."
::= { mib-2 158 }
--
-- Sections of the Ethernet OAM MIB
--
dot3OamNotifications OBJECT IDENTIFIER ::= { dot3OamMIB 0 }
dot3OamObjects OBJECT IDENTIFIER ::= { dot3OamMIB 1 }
dot3OamConformance OBJECT IDENTIFIER ::= { dot3OamMIB 2 }
--
-- Textual conventions for the OAM MIB
--
EightOTwoOui ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"24-bit Organizationally Unique Identifier. Information on
OUIs can be found in IEEE 802-2001 [802-2001], Clause 9."
SYNTAX OCTET STRING(SIZE(3))
-- ***************************************************************
--
-- Ethernet OAM Control group
--
dot3OamTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot3OamEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains the primary controls and status for the
OAM capabilities of an Ethernet-like interface. There will be
one row in this table for each Ethernet-like interface in the
system that supports the OAM functions defined in [802.3ah].
"
::= { dot3OamObjects 1 }
Okay so this is where the MIB objects really start to shine π Each dot3OamEntry is a row for one Ethernet-like interface that supports OAM, and bestie, the rows get created automatically π§
dot3OamEntry OBJECT-TYPE
SYNTAX Dot3OamEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the table that contains information on the
Ethernet OAM function for a single Ethernet like interface.
Entries in the table are created automatically for each
interface supporting Ethernet OAM. The status of the row
entry can be determined from dot3OamOperStatus.
A dot3OamEntry is indexed in the dot3OamTable by the ifIndex
object of the Interfaces MIB.
"
INDEX { ifIndex }
::= { dot3OamTable 1 }
Dot3OamEntry ::=
SEQUENCE {
dot3OamAdminState INTEGER,
dot3OamOperStatus INTEGER,
dot3OamMode INTEGER,
dot3OamMaxOamPduSize Unsigned32,
dot3OamConfigRevision Unsigned32,
dot3OamFunctionsSupported BITS
}
dot3OamAdminState OBJECT-TYPE
SYNTAX INTEGER {
enabled(1),
disabled(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object is used to provision the default administrative
OAM mode for this interface. This object represents the
desired state of OAM for this interface.
The dot3OamAdminState always starts in the disabled(2) state
until an explicit management action or configuration
information retained by the system causes a transition to the
enabled(1) state. When enabled(1), Ethernet OAM will attempt
to operate over this interface.
"
REFERENCE "[802.3ah], 30.3.6.1.2"
::= { dot3OamEntry 1 }
So dot3OamAdminState is basically the wish π It's the state you want OAM to be in, and it always starts out disabled(2) until something (a management action or saved config) flips it to enabled(1) β¨
dot3OamOperStatus OBJECT-TYPE
SYNTAX INTEGER {
disabled(1),
linkFault(2),
passiveWait(3),
activeSendLocal(4),
sendLocalAndRemote(5),
sendLocalAndRemoteOk(6),
oamPeeringLocallyRejected(7),
oamPeeringRemotelyRejected(8),
operational(9),
nonOperHalfDuplex(10)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"At initialization and failure conditions, two OAM entities on
the same full-duplex Ethernet link begin a discovery phase to
determine what OAM capabilities may be used on that link. The
progress of this initialization is controlled by the OA
sublayer.
This value is always disabled(1) if OAM is disabled on this
interface via the dot3OamAdminState.
If the link has detected a fault and is transmitting OAMPDUs
with a link fault indication, the value is linkFault(2).
Also, if the interface is not operational (ifOperStatus is
not up(1)), linkFault(2) is returned. Note that the object
ifOperStatus may not be up(1) as a result of link failure or
administrative action (ifAdminState being down(2) or
testing(3)).
The passiveWait(3) state is returned only by OAM entities in
passive mode (dot3OamMode) and reflects the state in which the
OAM entity is waiting to see if the peer device is OA
capable. The activeSendLocal(4) value is used by active mode
devices (dot3OamMode) and reflects the OAM entity actively
trying to discover whether the peer has OAM capability but has
not yet made that determination.
The state sendLocalAndRemote(5) reflects that the local OA
entity has discovered the peer but has not yet accepted or
rejected the configuration of the peer. The local device can,
for whatever reason, decide that the peer device is
unacceptable and decline OAM peering. If the local OAM entity
rejects the peer OAM entity, the state becomes
oamPeeringLocallyRejected(7). If the OAM peering is allowed
by the local device, the state moves to
sendLocalAndRemoteOk(6). Note that both the
sendLocalAndRemote(5) and oamPeeringLocallyRejected(7) states
fall within the state SEND_LOCAL_REMOTE of the Discovery state
diagram [802.3ah, Figure 57-5], with the difference being
whether the local OAM client has actively rejected the peering
or has just not indicated any decision yet. Whether a peering
decision has been made is indicated via the local flags field
in the OAMPDU (reflected in the aOAMLocalFlagsField of
30.3.6.1.10).
If the remote OAM entity rejects the peering, the state
becomes oamPeeringRemotelyRejected(8). Note that both the
sendLocalAndRemoteOk(6) and oamPeeringRemotelyRejected(8)
states fall within the state SEND_LOCAL_REMOTE_OK of the
Discovery state diagram [802.3ah, Figure 57-5], with the
difference being whether the remote OAM client has rejected
the peering or has just not yet decided. This is indicated
via the remote flags field in the OAMPDU (reflected in the
aOAMRemoteFlagsField of 30.3.6.1.11).
When the local OAM entity learns that both it and the remote
OAM entity have accepted the peering, the state moves to
operational(9) corresponding to the SEND_ANY state of the
Discovery state diagram [802.3ah, Figure 57-5].
Since Ethernet OAM functions are not designed to work
completely over half-duplex interfaces, the value
nonOperHalfDuplex(10) is returned whenever Ethernet OAM is
enabled (dot3OamAdminState is enabled(1)), but the interface
is in half-duplex operation.
"
REFERENCE "[802.3ah], 30.3.6.1.4, 30.3.6.1.10, 30.3.6.1.11"
::= { dot3OamEntry 2 }
Okay, dot3OamOperStatus is the main character π It's read-only and tells you where the discovery dance is at right now. Here's the vibe check:
disabled(1)means OAM is turned off on this interface throughdot3OamAdminStateπlinkFault(2)means a fault was detected and OAMPDUs are carrying a link fault indication, or the interface isn't up (ifOperStatus isn't up(1)) πpassiveWait(3)only shows up in passive mode, while the device waits to see whether the peer is OA capable πactiveSendLocal(4)is for active mode devices that are still trying to figure out whether the peer has OAM πsendLocalAndRemote(5)means the peer was found but nobody has accepted or rejected the config yet, andoamPeeringLocallyRejected(7)is when the local side says "nope" π ββοΈsendLocalAndRemoteOk(6)means the local side said yes, andoamPeeringRemotelyRejected(8)is when the remote side says "nope" instead πoperational(9)is the full slay, where both sides accepted the peering πnonOperHalfDuplex(10)shows up when OAM is enabled but the interface is running half-duplex, because OAM isn't designed to fully work over half-duplex π
dot3OamMode OBJECT-TYPE
SYNTAX INTEGER {
passive(1),
active(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object configures the mode of OAM operation for this
Ethernet-like interface. OAM on Ethernet interfaces may be in
'active' mode or 'passive' mode. These two modes differ in
that active mode provides additional capabilities to initiate
monitoring activities with the remote OAM peer entity, while
passive mode generally waits for the peer to initiate OA
actions with it. As an example, an active OAM entity can put
the remote OAM entity in a loopback state, where a passive OA
entity cannot.
The default value of dot3OamMode is dependent on the type of
system on which this Ethernet-like interface resides. The
default value should be 'active(2)' unless it is known that
this system should take on a subservient role to the other
device connected over this interface.
Changing this value results in incrementing the configuration
revision field of locally generated OAMPDUs (30.3.6.1.12) and
potentially re-doing the OAM discovery process if the
dot3OamOperStatus was already operational(9).
"
REFERENCE "[802.3ah], 30.3.6.1.3"
::= { dot3OamEntry 3 }
dot3OamMode is the personality setting π Active mode can start monitoring stuff with its peer, like putting the remote side into a loopback state, while passive mode mostly waits for the peer to make the first move. The default should be active(2) unless the system is known to be the sidekick in that link π§ Changing it bumps the config revision in locally generated OAMPDUs, and if the link was already operational(9), discovery might run again.
dot3OamMaxOamPduSize OBJECT-TYPE
SYNTAX Unsigned32 (64..1518)
UNITS "octets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The largest OAMPDU that the OAM entity supports. OA
entities exchange maximum OAMPDU sizes and negotiate to use
the smaller of the two maximum OAMPDU sizes between the peers.
This value is determined by the local implementation.
"
REFERENCE "[802.3ah], 30.3.6.1.8"
::= { dot3OamEntry 4 }
dot3OamConfigRevision OBJECT-TYPE
SYNTAX Unsigned32(0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The configuration revision of the OAM entity as reflected in
the latest OAMPDU sent by the OAM entity. The config revision
is used by OAM entities to indicate that configuration changes
have occurred, which might require the peer OAM entity to
re-evaluate whether OAM peering is allowed.
"
REFERENCE "[802.3ah], 30.3.6.1.12"
::= { dot3OamEntry 5 }
dot3OamFunctionsSupported OBJECT-TYPE
SYNTAX BITS {
unidirectionalSupport (0),
loopbackSupport(1),
eventSupport(2),
variableSupport(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The OAM functions supported on this Ethernet-like interface.
OAM consists of separate functional sets beyond the basic
discovery process that is always required. These functional
groups can be supported independently by any implementation.
These values are communicated to the peer via the local
configuration field of Information OAMPDUs.
Setting 'unidirectionalSupport(0)' indicates that the OA
entity supports the transmission of OAMPDUs on links that are
operating in unidirectional mode (traffic flowing in one
direction only). Setting 'loopbackSupport(1)' indicates that
the OAM entity can initiate and respond to loopback commands.
Setting 'eventSupport(2)' indicates that the OAM entity can
send and receive Event Notification OAMPDUs. Setting
'variableSupport(3)' indicates that the OAM entity can send
and receive Variable Request and Response OAMPDUs.
"
REFERENCE "[802.3ah], 30.3.6.1.6"
::= { dot3OamEntry 6 }
Okay the size, revision, and feature bits are the supporting cast π« dot3OamMaxOamPduSize runs from 64 to 1518 octets, and the two peers agree on the smaller of their two maximums π dot3OamConfigRevision is a 0 to 65535 counter that tells the peer "hey, something changed, maybe re-check whether we're cool" π And dot3OamFunctionsSupported is a little bit field menu of what the device can do: unidirectional support, loopback, events, and variables π
-- ***************************************************************
--
-- Ethernet OAM Peer group
--
dot3OamPeerTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot3OamPeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains information about the OAM peer for a
particular Ethernet-like interface. OAM entities communicate
with a single OAM peer entity on Ethernet links on which OA
is enabled and operating properly. There is one entry in this
table for each entry in the dot3OamTable for which information
on the peer OAM entity is available.
"
::= { dot3OamObjects 2 }
dot3OamPeerEntry OBJECT-TYPE
SYNTAX Dot3OamPeerEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the table containing information on the peer OA
entity for a single Ethernet-like interface.
Note that there is at most one OAM peer for each Ethernet-like
interface. Entries are automatically created when information
about the OAM peer entity becomes available, and automatically
deleted when the OAM peer entity is no longer in
communication. Peer information is not available when
dot3OamOperStatus is disabled(1), linkFault(2),
passiveWait(3), activeSendLocal(4), or nonOperHalfDuplex(10).
"
INDEX { ifIndex }
::= { dot3OamPeerTable 1 }
okay so this next bit is the peer table π¦ it's basically the cheat sheet for whatever is on the other end of the wire. then the loopback group shows up and things get a little intense π
Dot3OamPeerEntry ::=
SEQUENCE {
dot3OamPeerMacAddress MacAddress,
dot3OamPeerVendorOui EightOTwoOui,
dot3OamPeerVendorInfo Unsigned32,
dot3OamPeerMode INTEGER,
dot3OamPeerMaxOamPduSize Unsigned32,
dot3OamPeerConfigRevision Unsigned32,
dot3OamPeerFunctionsSupported BITS
}
dot3OamPeerMacAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The MAC address of the peer OAM entity. The MAC address is
derived from the most recently received OAMPDU.
"
REFERENCE "[802.3ah], 30.3.6.1.5."
::= { dot3OamPeerEntry 1 }
dot3OamPeerVendorOui OBJECT-TYPE
SYNTAX EightOTwoOui
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The OUI of the OAM peer as reflected in the latest
Information OAMPDU received with a Local Information TLV. The
OUI can be used to identify the vendor of the remote OA
entity. This value is initialized to three octets of zero
before any Local Information TLV is received.
"
REFERENCE "[802.3ah], 30.3.6.1.16."
::= { dot3OamPeerEntry 2 }
dot3OamPeerVendorInfo OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Vendor Info of the OAM peer as reflected in the latest
Information OAMPDU received with a Local Information TLV.
The semantics of the Vendor Information field is proprietary
and specific to the vendor (identified by the
dot3OamPeerVendorOui). This information could, for example,
be used to identify a specific product or product family.
This value is initialized to zero before any Local
Information TLV is received.
"
REFERENCE "[802.3ah], 30.3.6.1.17."
::= { dot3OamPeerEntry 3 }
dot3OamPeerMode OBJECT-TYPE
SYNTAX INTEGER {
passive(1),
active(2),
unknown(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The mode of the OAM peer as reflected in the latest
Information OAMPDU received with a Local Information TLV. The
mode of the peer can be determined from the Configuration
field in the Local Information TLV of the last Information
OAMPDU received from the peer. The value is unknown(3)
whenever no Local Information TLV has been received. The
values of active(2) and passive(1) are returned when a Local
Information TLV has been received indicating that the peer is
in active or passive mode, respectively.
"
REFERENCE "[802.3ah], 30.3.6.1.7."
::= { dot3OamPeerEntry 4 }
dot3OamPeerMaxOamPduSize OBJECT-TYPE
SYNTAX Unsigned32 (0 | 64..1518)
UNITS "octets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum size of OAMPDU supported by the peer as reflected
in the latest Information OAMPDU received with a Local
Information TLV. Ethernet OAM on this interface must not use
OAMPDUs that exceed this size. The maximum OAMPDU size can be
determined from the PDU Configuration field of the Local
Information TLV of the last Information OAMPDU received from
the peer. A value of zero is returned if no Local Information
TLV has been received. Otherwise, the value of the OAM peer's
maximum OAMPDU size is returned in this value.
"
REFERENCE "[802.3ah], 30.3.6.1.9."
::= { dot3OamPeerEntry 5 }
dot3OamPeerConfigRevision OBJECT-TYPE
SYNTAX Unsigned32(0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The configuration revision of the OAM peer as reflected in
the latest OAMPDU. This attribute is changed by the peer
whenever it has a local configuration change for Ethernet OA
on this interface. The configuration revision can be
determined from the Revision field of the Local Information
TLV of the most recently received Information OAMPDU with
a Local Information TLV. A value of zero is returned if
no Local Information TLV has been received.
"
REFERENCE "[802.3ah], 30.3.6.1.13."
::= { dot3OamPeerEntry 6 }
dot3OamPeerFunctionsSupported OBJECT-TYPE
SYNTAX BITS {
unidirectionalSupport (0),
loopbackSupport(1),
eventSupport(2),
variableSupport(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The OAM functions supported on this Ethernet-like interface.
OAM consists of separate functionality sets above the basic
discovery process. This value indicates the capabilities of
the peer OAM entity with respect to these functions. This
value is initialized so all bits are clear.
If unidirectionalSupport(0) is set, then the peer OAM entity
supports sending OAM frames on Ethernet interfaces when the
receive path is known to be inoperable. If
loopbackSupport(1) is set, then the peer OAM entity can send
and receive OAM loopback commands. If eventSupport(2) is set,
then the peer OAM entity can send and receive event OAMPDUs to
signal various error conditions. If variableSupport(3) is
set, then the peer OAM entity can send and receive variable
requests to monitor the attribute value as described in Clause
57 of [802.3ah].
The capabilities of the OAM peer can be determined from the
configuration field of the Local Information TLV of the most
recently received Information OAMPDU with a Local Information
TLV. All zeros are returned if no Local Information TLV has
yet been received.
"
REFERENCE "[802.3ah], REFERENCE 30.3.6.1.7."
::= { dot3OamPeerEntry 7 }
-- ***************************************************************
--
-- Ethernet OAM Loopback group
--
dot3OamLoopbackTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot3OamLoopbackEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains controls for the loopback state of the
local link as well as indicates the status of the loopback
function. There is one entry in this table for each entry in
dot3OamTable that supports loopback functionality (where
dot3OamFunctionsSupported includes the loopbackSupport bit
set).
Loopback can be used to place the remote OAM entity in a state
where every received frame (except OAMPDUs) is echoed back
over the same interface on which they were received. In this
state, at the remote entity, 'normal' traffic is disabled as
only the looped back frames are transmitted on the interface.
Loopback is thus an intrusive operation that prohibits normal
data flow and should be used accordingly.
"
::= { dot3OamObjects 3 }
dot3OamLoopbackEntry OBJECT-TYPE
SYNTAX Dot3OamLoopbackEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the table, containing information on the loopback
status for a single Ethernet-like interface. Entries in the
table are automatically created whenever the local OAM entity
supports loopback capabilities. The loopback status on the
interface can be determined from the dot3OamLoopbackStatus
object.
"
INDEX { ifIndex }
::= { dot3OamLoopbackTable 1 }
Dot3OamLoopbackEntry ::=
SEQUENCE {
dot3OamLoopbackStatus INTEGER,
dot3OamLoopbackIgnoreRx INTEGER
}
dot3OamLoopbackStatus OBJECT-TYPE
SYNTAX INTEGER {
-- all values, except where noted, can be read
-- but cannot be written
noLoopback (1),
-- initiatingLoopback can be read or written
initiatingLoopback (2),
remoteLoopback (3),
-- terminatingLoopback can be read or written
terminatingLoopback (4),
localLoopback (5),
unknown (6)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The loopback status of the OAM entity. This status is
determined by a combination of the local parser and
multiplexer states, the remote parser and multiplexer states,
as well as by the actions of the local OAM client. When
operating in normal mode with no loopback in progress, the
status reads noLoopback(1).
The values initiatingLoopback(2) and terminatingLoopback(4)
can be read or written. The other values can only be read -
they can never be written. Writing initiatingLoopback causes
the local OAM entity to start the loopback process with its
peer. This value can only be written when the status is
noLoopback(1). Writing the value initiatingLoopback(2) in any
other state has no effect. When in remoteLoopback(3), writing
terminatingLoopback(4) causes the local OAM entity to initiate
the termination of the loopback state. Writing
terminatingLoopack(4) in any other state has no effect.
If the OAM client initiates a loopback and has sent a
Loopback OAMPDU and is waiting for a response, where the local
parser and multiplexer states are DISCARD (see [802.3ah,
57.2.11.1]), the status is 'initiatingLoopback'. In this
case, the local OAM entity has yet to receive any
acknowledgment that the remote OAM entity has received its
loopback command request.
If the local OAM client knows that the remote OAM entity is in
loopback mode (via the remote state information as described
in [802.3ah, 57.2.11.1, 30.3.6.1.15]), the status is
remoteLoopback(3). If the local OAM client is in the process
of terminating the remote loopback [802.3ah, 57.2.11.3,
30.3.6.1.14] with its local multiplexer and parser states in
DISCARD, the status is terminatingLoopback(4). If the remote
OAM client has put the local OAM entity in loopback mode as
indicated by its local parser state, the status is
localLoopback(5).
The unknown(6) status indicates that the parser and
multiplexer combination is unexpected. This status may be
returned if the OAM loopback is in a transition state but
should not persist.
The values of this attribute correspond to the following
values of the local and remote parser and multiplexer states.
the state table is next, and that's where the loopback logic really clicks β¨
value LclPrsr LclMux RmtPrsr RmtMux noLoopback FWD FWD FWD FWD initLoopback DISCARD DISCARD FWD FWD rmtLoopback DISCARD FWD LPBK DISCARD tmtngLoopback DISCARD DISCARD LPBK DISCARD lclLoopback LPBK DISCARD DISCARD FWD unknown * any other combination * " REFERENCE "[802.3ah], REFERENCE 57.2.11, 30.3.61.14, 30.3.6.1.15" ::= { dot3OamLoopbackEntry 1 }
dot3OamLoopbackIgnoreRx OBJECT-TYPE SYNTAX INTEGER { ignore(1), process(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Since OAM loopback is a disruptive operation (user traffic does not pass), this attribute provides a mechanism to provide controls over whether received OAM loopback commands are processed or ignored. When the value is ignore(1), received loopback commands are ignored. When the value is process(2), OAM loopback commands are processed. The default value is to ignore loopback commands (ignore(1)). " REFERENCE "[802.3ah], REFERENCE 57.2.11, 30.3.61.14, 30.3.6.1.15" ::= { dot3OamLoopbackEntry 2 }
-- *** -- -- Ethernet OAM Statistics group --
dot3OamStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF Dot3OamStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistics for the OAM function on a particular Ethernet-like interface. There is an entry in the table for every entry in the dot3OamTable.
The counters in this table are defined as 32-bit entries to match the counter size as defined in [802.3ah]. Given that the OA protocol is a slow protocol, the counters increment at a slow rate. " ::= { dot3OamObjects 4 }
dot3OamStatsEntry OBJECT-TYPE SYNTAX Dot3OamStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the table containing statistics information on the Ethernet OAM function for a single Ethernet-like interface. Entries are automatically created for every entry in the dot3OamTable. Counters are maintained across transitions in dot3OamOperStatus. " INDEX { ifIndex } ::= { dot3OamStatsTable 1 }
Dot3OamStatsEntry ::= SEQUENCE { dot3OamInformationTx Counter32, dot3OamInformationRx Counter32, dot3OamUniqueEventNotificationTx Counter32, dot3OamUniqueEventNotificationRx Counter32, dot3OamDuplicateEventNotificationTx Counter32, dot3OamDuplicateEventNotificationRx Counter32, dot3OamLoopbackControlTx Counter32, dot3OamLoopbackControlRx Counter32, dot3OamVariableRequestTx Counter32, dot3OamVariableRequestRx Counter32, dot3OamVariableResponseTx Counter32, dot3OamVariableResponseRx Counter32, dot3OamOrgSpecificTx Counter32, dot3OamOrgSpecificRx Counter32, dot3OamUnsupportedCodesTx Counter32, dot3OamUnsupportedCodesRx Counter32, dot3OamFramesLostDueToOam Counter32 }
dot3OamInformationTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Information OAMPDUs transmitted on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.20." ::= { dot3OamStatsEntry 1 }
dot3OamInformationRx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Information OAMPDUs received on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.21." ::= { dot3OamStatsEntry 2 }
dot3OamUniqueEventNotificationTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of unique Event OAMPDUs transmitted on this interface. Event Notifications may be sent in duplicate to increase the probability of successfully being received, given the possibility that a frame may be lost in transit. Duplicate Event Notification transmissions are counted by dot3OamDuplicateEventNotificationTx.
A unique Event Notification OAMPDU is indicated as an Event Notification OAMPDU with a Sequence Number field that is distinct from the previously transmitted Event Notification OAMPDU Sequence Number.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.22." ::= { dot3OamStatsEntry 3 }
dot3OamUniqueEventNotificationRx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of unique Event OAMPDUs received on this interface. Event Notification OAMPDUs may be sent in duplicate to increase the probability of successfully being received, given the possibility that a frame may be lost in transit. Duplicate Event Notification receptions are counted by dot3OamDuplicateEventNotificationRx.
A unique Event Notification OAMPDU is indicated as an Event Notification OAMPDU with a Sequence Number field that is distinct from the previously received Event Notification OAMPDU Sequence Number.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.24." ::= { dot3OamStatsEntry 4 }
dot3OamDuplicateEventNotificationTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of duplicate Event OAMPDUs transmitted on this interface. Event Notification OAMPDUs may be sent in duplicate to increase the probability of successfully being received, given the possibility that a frame may be lost in transit.
A duplicate Event Notification OAMPDU is indicated as an Event Notification OAMPDU with a Sequence Number field that is identical to the previously transmitted Event Notification OAMPDU Sequence Number.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.23." ::= { dot3OamStatsEntry 5 }
dot3OamDuplicateEventNotificationRx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of duplicate Event OAMPDUs received on this interface. Event Notification OAMPDUs may be sent in duplicate to increase the probability of successfully being received, given the possibility that a frame may be lost in transit.
A duplicate Event Notification OAMPDU is indicated as an Event Notification OAMPDU with a Sequence Number field that is identical to the previously received Event Notification OAMPDU Sequence Number.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.25." ::= { dot3OamStatsEntry 6 }
dot3OamLoopbackControlTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Loopback Control OAMPDUs transmitted on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.26." ::= { dot3OamStatsEntry 7 }
dot3OamLoopbackControlRx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Loopback Control OAMPDUs received on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.27." ::= { dot3OamStatsEntry 8 }
dot3OamVariableRequestTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Variable Request OAMPDUs transmitted on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.28." ::= { dot3OamStatsEntry 9 }
dot3OamVariableRequestRx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Variable Request OAMPDUs received on this interface.
Discontinuities of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime. " REFERENCE "[802.3ah], 30.3.6.1.29." ::= { dot3OamStatsEntry 10 }
dot3OamVariableResponseTx OBJECT-TYPE SYNTAX Counter32 UNITS "frames" MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of Variable Response OAMPDUs transmitted on this interface.
okay bestie, the counters are wrapping up and the event thresholds are about to get spicy π β¨
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.30."
::= { dot3OamStatsEntry 11 }
dot3OamVariableResponseRx OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of Variable Response OAMPDUs received
on this interface.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.31."
::= { dot3OamStatsEntry 12 }
dot3OamOrgSpecificTx OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of Organization Specific OAMPDUs
transmitted on this interface.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.32."
::= { dot3OamStatsEntry 13 }
dot3OamOrgSpecificRx OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of Organization Specific OAMPDUs
received on this interface.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.33."
::= { dot3OamStatsEntry 14 }
dot3OamUnsupportedCodesTx OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of OAMPDUs transmitted on this
interface with an unsupported op-code.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.18."
::= { dot3OamStatsEntry 15 }
dot3OamUnsupportedCodesRx OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of OAMPDUs received on this interface
with an unsupported op-code.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.19."
::= { dot3OamStatsEntry 16 }
dot3OamFramesLostDueToOam OBJECT-TYPE
SYNTAX Counter32
UNITS "frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of the number of frames that were dropped by the OA
multiplexer. Since the OAM multiplexer has multiple inputs
and a single output, there may be cases where frames are
dropped due to transmit resource contention. This counter is
incremented whenever a frame is dropped by the OAM layer.
Note that any Ethernet frame, not just OAMPDUs, may be dropped
by the OAM layer. This can occur when an OAMPDU takes
precedence over a 'normal' frame resulting in the 'normal'
frame being dropped.
When this counter is incremented, no other counters in this
MIB are incremented.
Discontinuities of this counter can occur at re-initialization
of the management system, and at other times as indicated by
the value of the ifCounterDiscontinuityTime.
"
REFERENCE "[802.3ah], 30.3.6.1.46."
::= { dot3OamStatsEntry 17 }
the stats table is done, and now we get to the Event Configuration group π¦
-- ***************************************************************
--
-- Ethernet OAM Event Configuration group
--
dot3OamEventConfigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Dot3OamEventConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Ethernet OAM includes the ability to generate and receive
Event Notification OAMPDUs to indicate various link problems.
This table contains the mechanisms to enable Event
Notifications and configure the thresholds to generate the
standard Ethernet OAM events. There is one entry in the table
for every entry in dot3OamTable that supports OAM events
(where dot3OamFunctionsSupported includes the eventSupport
bit set). The values in the table are maintained across
changes to dot3OamOperStatus.
The standard threshold crossing events are:
- Errored Symbol Period Event. Generated when the number of
symbol errors exceeds a threshold within a given window
defined by a number of symbols (for example, 1,000 symbols
out of 1,000,000 had errors).
- Errored Frame Period Event. Generated when the number of
frame errors exceeds a threshold within a given window
defined by a number of frames (for example, 10 frames out
of 1000 had errors).
- Errored Frame Event. Generated when the number of frame
errors exceeds a threshold within a given window defined
by a period of time (for example, 10 frames in 1 second
had errors).
- Errored Frame Seconds Summary Event. Generated when the
number of errored frame seconds exceeds a threshold within
a given time period (for example, 10 errored frame seconds
within the last 100 seconds). An errored frame second is
defined as a 1 second interval which had >0 frame errors.
There are other events (dying gasp, critical events) that are
not threshold crossing events but which can be
enabled/disabled via this table.
"
::= { dot3OamObjects 5 }
dot3OamEventConfigEntry OBJECT-TYPE
SYNTAX Dot3OamEventConfigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entries are automatically created and deleted from this
table, and exist whenever the OAM entity supports Ethernet OA
events (as indicated by the eventSupport bit in
dot3OamFunctionsSuppported). Values in the table are
maintained across changes to the value of dot3OamOperStatus.
Event configuration controls when the local management entity
sends Event Notification OAMPDUs to its OAM peer, and when
certain event flags are set or cleared in OAMPDUs.
"
INDEX { ifIndex }
::= { dot3OamEventConfigTable 1 }
Dot3OamEventConfigEntry ::=
SEQUENCE {
dot3OamErrSymPeriodWindowHi Unsigned32,
dot3OamErrSymPeriodWindowLo Unsigned32,
dot3OamErrSymPeriodThresholdHi Unsigned32,
dot3OamErrSymPeriodThresholdLo Unsigned32,
dot3OamErrSymPeriodEvNotifEnable TruthValue,
dot3OamErrFramePeriodWindow Unsigned32,
dot3OamErrFramePeriodThreshold Unsigned32,
dot3OamErrFramePeriodEvNotifEnable TruthValue,
dot3OamErrFrameWindow Unsigned32,
dot3OamErrFrameThreshold Unsigned32,
dot3OamErrFrameEvNotifEnable TruthValue,
dot3OamErrFrameSecsSummaryWindow Integer32,
dot3OamErrFrameSecsSummaryThreshold Integer32,
dot3OamErrFrameSecsEvNotifEnable TruthValue,
dot3OamDyingGaspEnable TruthValue,
dot3OamCriticalEventEnable TruthValue
}
dot3OamErrSymPeriodWindowHi OBJECT-TYPE
SYNTAX Unsigned32
UNITS "2^32 symbols"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The two objects dot3OamErrSymPeriodWindowHi and
dot3OamErrSymPeriodLo together form an unsigned 64-bit
integer representing the number of symbols over which this
threshold event is defined. This is defined as
dot3OamErrSymPeriodWindow = ((2^32)*dot3OamErrSymPeriodWindowHi)
+ dot3OamErrSymPeriodWindowLo
If dot3OamErrSymPeriodThreshold symbol errors occur within a
window of dot3OamErrSymPeriodWindow symbols, an Event
Notification OAMPDU should be generated with an Errored Symbol
Period Event TLV indicating that the threshold has been
crossed in this window.
The default value for dot3OamErrSymPeriodWindow is the number
of symbols in one second for the underlying physical layer.
"
REFERENCE "[802.3ah], 30.3.6.1.34"
::= { dot3OamEventConfigEntry 1 }
dot3OamErrSymPeriodWindowLo OBJECT-TYPE
SYNTAX Unsigned32
UNITS "symbols"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The two objects dot3OamErrSymPeriodWindowHi and
dot3OamErrSymPeriodWindowLo together form an unsigned 64-bit
integer representing the number of symbols over which this
threshold event is defined. This is defined as
dot3OamErrSymPeriodWindow = ((2^32)*dot3OamErrSymPeriodWindowHi)
+ dot3OamErrSymPeriodWindowLo
If dot3OamErrSymPeriodThreshold symbol errors occur within a
window of dot3OamErrSymPeriodWindow symbols, an Event
Notification OAMPDU should be generated with an Errored Symbol
Period Event TLV indicating that the threshold has been
crossed in this window.
The default value for dot3OamErrSymPeriodWindow is the number
of symbols in one second for the underlying physical layer.
"
REFERENCE "[802.3ah], 30.3.6.1.34"
::= { dot3OamEventConfigEntry 2 }
dot3OamErrSymPeriodThresholdHi OBJECT-TYPE
SYNTAX Unsigned32
UNITS "2^32 symbols"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The two objects dot3OamErrSymPeriodThresholdHi and
dot3OamErrSymPeriodThresholdLo together form an unsigned
64-bit integer representing the number of symbol errors that
must occur within a given window to cause this event.
This is defined as
dot3OamErrSymPeriodThreshold =
((2^32) * dot3OamErrSymPeriodThresholdHi)
+ dot3OamErrSymPeriodThresholdLo
If dot3OamErrSymPeriodThreshold symbol errors occur within a
window of dot3OamErrSymPeriodWindow symbols, an Event
Notification OAMPDU should be generated with an Errored Symbol
Period Event TLV indicating that the threshold has been
crossed in this window.
that's where this part stops, so keep an eye out for the next chunk, it's where the threshold objects get their tails πΈ
okay so the threshold objects are where the event config gets really specific π β¨
The default value for dot3OamErrSymPeriodThreshold is one
symbol errors. If the threshold value is zero, then an Event
Notification OAMPDU is sent periodically (at the end of every
window). This can be used as an asynchronous notification to
the peer OAM entity of the statistics related to this
threshold crossing alarm.
"
REFERENCE "[802.3ah], 30.3.6.1.34"
::= { dot3OamEventConfigEntry 3 }
dot3OamErrSymPeriodThresholdLo OBJECT-TYPE
SYNTAX Unsigned32
UNITS "symbols"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The two objects dot3OamErrSymPeriodThresholdHi and
dot3OamErrSymPeriodThresholdLo together form an unsigned
64-bit integer representing the number of symbol errors that
must occur within a given window to cause this event.
This is defined as
dot3OamErrSymPeriodThreshold =
((2^32) * dot3OamErrSymPeriodThresholdHi)
+ dot3OamErrSymPeriodThresholdLo
If dot3OamErrSymPeriodThreshold symbol errors occur within a
window of dot3OamErrSymPeriodWindow symbols, an Event
Notification OAMPDU should be generated with an Errored Symbol
Period Event TLV indicating that the threshold has been
crossed in this window.
The default value for dot3OamErrSymPeriodThreshold is one
symbol error. If the threshold value is zero, then an Event
Notification OAMPDU is sent periodically (at the end of every
window). This can be used as an asynchronous notification to
the peer OAM entity of the statistics related to this
threshold crossing alarm.
"
REFERENCE "[802.3ah], 30.3.6.1.34"
::= { dot3OamEventConfigEntry 4 }
dot3OamErrSymPeriodEvNotifEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the OAM entity should send an Event Notification
OAMPDU when an Errored Symbol Period Event occurs.
By default, this object should have the value true for
Ethernet-like interfaces that support OAM. If the OAM layer
does not support Event Notifications (as indicated via the
dot3OamFunctionsSupported attribute), this value is ignored.
"
::= { dot3OamEventConfigEntry 5 }
dot3OamErrFramePeriodWindow OBJECT-TYPE
SYNTAX Unsigned32
UNITS "frames"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The number of frames over which the threshold is defined.
The default value of the window is the number of minimum size
Ethernet frames that can be received over the physical layer
in one second.
If dot3OamErrFramePeriodThreshold frame errors occur within a
window of dot3OamErrFramePeriodWindow frames, an Event
Notification OAMPDU should be generated with an Errored Frame
Period Event TLV indicating that the threshold has been
crossed in this window.
"
REFERENCE "[802.3ah], 30.3.6.1.38"
::= { dot3OamEventConfigEntry 6 }
dot3OamErrFramePeriodThreshold OBJECT-TYPE
SYNTAX Unsigned32
UNITS "frames"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The number of frame errors that must occur for this event to
be triggered. The default value is one frame error. If the
threshold value is zero, then an Event Notification OAMPDU is
sent periodically (at the end of every window). This can be
used as an asynchronous notification to the peer OAM entity of
the statistics related to this threshold crossing alarm.
If dot3OamErrFramePeriodThreshold frame errors occur within a
window of dot3OamErrFramePeriodWindow frames, an Event
Notification OAMPDU should be generated with an Errored Frame
Period Event TLV indicating that the threshold has been
crossed in this window.
"
REFERENCE "[802.3ah], 30.3.6.1.38"
::= { dot3OamEventConfigEntry 7 }
dot3OamErrFramePeriodEvNotifEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the OAM entity should send an Event Notification
OAMPDU when an Errored Frame Period Event occurs.
By default, this object should have the value true for
Ethernet-like interfaces that support OAM. If the OAM layer
does not support Event Notifications (as indicated via the
dot3OamFunctionsSupported attribute), this value is ignored.
"
::= { dot3OamEventConfigEntry 8 }
dot3OamErrFrameWindow OBJECT-TYPE
SYNTAX Unsigned32
UNITS "tenths of a second"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The amount of time (in 100ms increments) over which the
threshold is defined. The default value is 10 (1 second).
If dot3OamErrFrameThreshold frame errors occur within a window
of dot3OamErrFrameWindow seconds (measured in tenths of
seconds), an Event Notification OAMPDU should be generated
with an Errored Frame Event TLV indicating that the threshold
has been crossed in this window.
"
REFERENCE "[802.3ah], 30.3.6.1.36"
DEFVAL { 10 }
::= { dot3OamEventConfigEntry 9 }
dot3OamErrFrameThreshold OBJECT-TYPE
SYNTAX Unsigned32
UNITS "frames"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The number of frame errors that must occur for this event to
be triggered. The default value is one frame error. If the
threshold value is zero, then an Event Notification OAMPDU is
sent periodically (at the end of every window). This can be
used as an asynchronous notification to the peer OAM entity of
the statistics related to this threshold crossing alarm.
If dot3OamErrFrameThreshold frame errors occur within a window
of dot3OamErrFrameWindow (in tenths of seconds), an Event
Notification OAMPDU should be generated with an Errored Frame
Event TLV indicating the threshold has been crossed in this
window.
"
REFERENCE "[802.3ah], 30.3.6.1.36"
DEFVAL { 1 }
::= { dot3OamEventConfigEntry 10 }
dot3OamErrFrameEvNotifEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the OAM entity should send an Event Notification
OAMPDU when an Errored Frame Event occurs.
By default, this object should have the value true for
Ethernet-like interfaces that support OAM. If the OAM layer
does not support Event Notifications (as indicated via the
dot3OamFunctionsSupported attribute), this value is ignored.
"
DEFVAL { true }
::= { dot3OamEventConfigEntry 11 }
dot3OamErrFrameSecsSummaryWindow OBJECT-TYPE
SYNTAX Integer32 (100..9000)
UNITS "tenths of a second"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The amount of time (in 100 ms intervals) over which the
threshold is defined. The default value is 100 (10 seconds).
If dot3OamErrFrameSecsSummaryThreshold frame errors occur
within a window of dot3OamErrFrameSecsSummaryWindow (in tenths
of seconds), an Event Notification OAMPDU should be generated
with an Errored Frame Seconds Summary Event TLV indicating
that the threshold has been crossed in this window.
"
REFERENCE "[802.3ah], 30.3.6.1.40"
DEFVAL { 100 }
::= { dot3OamEventConfigEntry 12 }
dot3OamErrFrameSecsSummaryThreshold OBJECT-TYPE
SYNTAX Integer32 (1..900)
UNITS "errored frame seconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The number of errored frame seconds that must occur for this
event to be triggered. The default value is one errored frame
second. If the threshold value is zero, then an Event
Notification OAMPDU is sent periodically (at the end of every
window). This can be used as an asynchronous notification to
the peer OAM entity of the statistics related to this
threshold crossing alarm.
If dot3OamErrFrameSecsSummaryThreshold frame errors occur
within a window of dot3OamErrFrameSecsSummaryWindow (in tenths
of seconds), an Event Notification OAMPDU should be generated
with an Errored Frame Seconds Summary Event TLV indicating
that the threshold has been crossed in this window.
"
REFERENCE "[802.3ah], 30.3.6.1.40"
DEFVAL { 1 }
::= { dot3OamEventConfigEntry 13 }
dot3OamErrFrameSecsEvNotifEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the local OAM entity should send an Event
Notification OAMPDU when an Errored Frame Seconds Event
occurs.
By default, this object should have the value true for
Ethernet-like interfaces that support OAM. If the OAM layer
does not support Event Notifications (as indicated via the
dot3OamFunctionsSupported attribute), this value is ignored.
"
DEFVAL { true }
::= { dot3OamEventConfigEntry 14 }
dot3OamDyingGaspEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the local OAM entity should attempt to indicate a
dying gasp via the OAMPDU flags field to its peer OAM entity
when a dying gasp event occurs. The exact definition of a
dying gasp event is implementation dependent. If the system
does not support dying gasp capability, setting this object
has no effect, and reading the object should always result in
'false'.
By default, this object should have the value true for
Ethernet-like interfaces that support OAM. If the OAM layer
does not support Event Notifications (as indicated via the
dot3OamFunctionsSupported attribute), this value is ignored.
"
DEFVAL { true }
::= { dot3OamEventConfigEntry 15 }
dot3OamCriticalEventEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"If true, the local OAM entity should attempt to indicate a
critical event via the OAMPDU flags to its peer OAM entity
when a critical event occurs. The exact definition of a
critical event is implementation dependent. If the system
does not support critical event capability, setting this
object has no effect, and reading the object should always
result in 'false'.
By default, this object should have the value true for Ethernet-like interfaces that support OAM. If the OAM layer does not support Event Notifications (as indicated via the dot3OamFunctionsSupported attribute), this value is ignored. " DEFVAL { true } ::= { dot3OamEventConfigEntry 16 }
-- ** -- -- Ethernet OAM Event Log group --
dot3OamEventLogTable OBJECT-TYPE SYNTAX SEQUENCE OF Dot3OamEventLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table records a history of the events that have occurred at the Ethernet OAM level. These events can include locally detected events, which may result in locally generated OAMPDUs, and remotely detected events, which are detected by the OAM peer entity and signaled to the local entity via Ethernet OAM. Ethernet OAM events can be signaled by Event Notification OAMPDUs or by the flags field in any OAMPDU.
This table contains both threshold crossing events and non-threshold crossing events. The parameters for the threshold window, threshold value, and actual value (dot3OamEventLogWindowXX, dot3OamEventLogThresholdXX, dot3OamEventLogValue) are only applicable to threshold crossing events, and are returned as all F's (2^32 - 1) for non-threshold crossing events.
Entries in the table are automatically created when such events are detected. The size of the table is implementation dependent. When the table reaches its maximum size, older entries are automatically deleted to make room for newer entries. " ::= { dot3OamObjects 6 }
dot3OamEventLogEntry OBJECT-TYPE SYNTAX Dot3OamEventLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the dot3OamEventLogTable. Entries are automatically created whenever Ethernet OAM events occur at the local OAM entity, and when Event Notification OAMPDUs are received at the local OAM entity (indicating that events have occurred at the peer OAM entity). The size of the table is implementation dependent, but when the table becomes full, older events are automatically deleted to make room for newer events. The table index dot3OamEventLogIndex increments for each new entry, and when the maximum value is reached, the value restarts at zero. " INDEX { ifIndex, dot3OamEventLogIndex } ::= { dot3OamEventLogTable 1 }
Dot3OamEventLogEntry ::= SEQUENCE { dot3OamEventLogIndex Unsigned32, dot3OamEventLogTimestamp TimeStamp, dot3OamEventLogOui EightOTwoOui, dot3OamEventLogType Unsigned32, dot3OamEventLogLocation INTEGER, dot3OamEventLogWindowHi Unsigned32, dot3OamEventLogWindowLo Unsigned32, dot3OamEventLogThresholdHi Unsigned32, dot3OamEventLogThresholdLo Unsigned32, dot3OamEventLogValue CounterBasedGauge64, dot3OamEventLogRunningTotal CounterBasedGauge64, dot3OamEventLogEventTotal Unsigned32 }
dot3OamEventLogIndex OBJECT-TYPE SYNTAX Unsigned32(1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary integer for identifying individual events within the event log. " ::= { dot3OamEventLogEntry 1 }
dot3OamEventLogTimestamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time of the logged event. For locally generated events, the time of the event can be accurately retrieved from sysUpTime. For remotely generated events, the time of the event is indicated by the reception of the Event Notification OAMPDU indicating that the event occurred on the peer. A system may attempt to adjust the timestamp value to more accurately reflect the time of the event at the peer OAM entity by using other information, such as that found in the timestamp found of the Event Notification TLVs, which provides an indication of the relative time between events at the peer entity. " ::= { dot3OamEventLogEntry 2 }
dot3OamEventLogOui OBJECT-TYPE SYNTAX EightOTwoOui MAX-ACCESS read-only STATUS current DESCRIPTION "The OUI of the entity defining the object type. All IEEE 802.3 defined events (as appearing in [802.3ah] except for the Organizationally Unique Event TLVs) use the IEEE 802.3 OUI of 0x0180C2. Organizations defining their own Event Notification TLVs include their OUI in the Event Notification TLV that gets reflected here. " ::= { dot3OamEventLogEntry 3 }
dot3OamEventLogType OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The type of event that generated this entry in the event log. When the OUI is the IEEE 802.3 OUI of 0x0180C2, the following event types are defined: erroredSymbolEvent(1), erroredFramePeriodEvent(2), erroredFrameEvent(3), erroredFrameSecondsEvent(4), linkFault(256), dyingGaspEvent(257), criticalLinkEvent(258) The first four are considered threshold crossing events, as they are generated when a metric exceeds a given value within a specified window. The other three are not threshold crossing events.
When the OUI is not 71874 (0x0180C2 in hex), then some other organization has defined the event space. If event subtyping is known to the implementation, it may be reflected here. Otherwise, this value should return all F's (2^32 - 1). " REFERENCE "[802.3ah], 30.3.6.1.10 and 57.5.3." ::= { dot3OamEventLogEntry 4 }
dot3OamEventLogLocation OBJECT-TYPE SYNTAX INTEGER { local(1), remote(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "Whether this event occurred locally (local(1)), or was received from the OAM peer via Ethernet OAM (remote(2)). " ::= { dot3OamEventLogEntry 5 }
dot3OamEventLogWindowHi OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "If the event represents a threshold crossing event, the two objects dot3OamEventWindowHi and dot3OamEventWindowLo, form an unsigned 64-bit integer yielding the window over which the value was measured for the threshold crossing event (for example, 5, when 11 occurrences happened in 5 seconds while the threshold was 10). The two objects are combined as:
dot3OamEventLogWindow = ((2^32) * dot3OamEventLogWindowHi)
- dot3OamEventLogWindowLo
Otherwise, this value is returned as all F's (2^32 - 1) and adds no useful information. " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 6 }
dot3OamEventLogWindowLo OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "If the event represents a threshold crossing event, the two objects dot3OamEventWindowHi and dot3OamEventWindowLo form an unsigned 64-bit integer yielding the window over which the value was measured for the threshold crossing event (for example, 5, when 11 occurrences happened in 5 seconds while the threshold was 10). The two objects are combined as:
dot3OamEventLogWindow = ((2^32) * dot3OamEventLogWindowHi)
- dot3OamEventLogWindowLo
Otherwise, this value is returned as all F's (2^32 - 1) and adds no useful information. " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 7 }
dot3OamEventLogThresholdHi OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "If the event represents a threshold crossing event, the two objects dot3OamEventThresholdHi and dot3OamEventThresholdLo form an unsigned 64-bit integer yielding the value that was crossed for the threshold crossing event (for example, 10, when 11 occurrences happened in 5 seconds while the threshold was 10). The two objects are combined as:
dot3OamEventLogThreshold = ((2^32) * dot3OamEventLogThresholdHi)
- dot3OamEventLogThresholdLo
Otherwise, this value is returned as all F's (2^32 -1) and adds no useful information. "
REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 8 }
dot3OamEventLogThresholdLo OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "If the event represents a threshold crossing event, the two objects dot3OamEventThresholdHi and dot3OamEventThresholdLo form an unsigned 64-bit integer yielding the value that was crossed for the threshold crossing event (for example, 10, when 11 occurrences happened in 5 seconds while the threshold was 10). The two objects are combined as:
dot3OamEventLogThreshold = ((2^32) * dot3OamEventLogThresholdHi)
- dot3OamEventLogThresholdLo
Otherwise, this value is returned as all F's (2^32 - 1) and adds no useful information. " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 9 }
dot3OamEventLogValue OBJECT-TYPE SYNTAX CounterBasedGauge64 MAX-ACCESS read-only STATUS current DESCRIPTION "If the event represents a threshold crossing event, this value indicates the value of the parameter within the given window that generated this event (for example, 11, when 11 occurrences happened in 5 seconds while the threshold was 10).
Otherwise, this value is returned as all F's (2^64 - 1) and adds no useful information. " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 10 }
dot3OamEventLogRunningTotal OBJECT-TYPE SYNTAX CounterBasedGauge64 MAX-ACCESS read-only STATUS current DESCRIPTION "Each Event Notification TLV contains a running total of the number of times an event has occurred, as well as the number of times an Event Notification for the event has been transmitted. For non-threshold crossing events, the number of events (dot3OamLogRunningTotal) and the number of resultant Event Notifications (dot3OamLogEventTotal) should be identical.
For threshold crossing events, since multiple occurrences may be required to cross the threshold, these values are likely different. This value represents the total number of times this event has happened since the last reset (for example, 3253, when 3253 symbol errors have occurred since the last reset, which has resulted in 51 symbol error threshold crossing events since the last reset). " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 11 }
dot3OamEventLogEventTotal OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "Each Event Notification TLV contains a running total of the number of times an event has occurred, as well as the number of times an Event Notification for the event has been transmitted. For non-threshold crossing events, the number of events (dot3OamLogRunningTotal) and the number of resultant Event Notifications (dot3OamLogEventTotal) should be identical.
For threshold crossing events, since multiple occurrences may be required to cross the threshold, these values are likely different. This value represents the total number of times one or more of these occurrences have resulted in an Event Notification (for example, 51 when 3253 symbol errors have occurred since the last reset, which has resulted in 51 symbol error threshold crossing events since the last reset). " REFERENCE "[802.3ah], 30.3.6.1.37 and 57.5.3.2." ::= { dot3OamEventLogEntry 12 }
-- *** -- -- Ethernet OAM Notifications --
dot3OamThresholdEvent NOTIFICATION-TYPE OBJECTS { dot3OamEventLogTimestamp, dot3OamEventLogOui, dot3OamEventLogType, dot3OamEventLogLocation, dot3OamEventLogWindowHi, dot3OamEventLogWindowLo, dot3OamEventLogThresholdHi, dot3OamEventLogThresholdLo, dot3OamEventLogValue, dot3OamEventLogRunningTotal, dot3OamEventLogEventTotal } STATUS current DESCRIPTION "A dot3OamThresholdEvent notification is sent when a local or remote threshold crossing event is detected. A local threshold crossing event is detected by the local entity, while a remote threshold crossing event is detected by the reception of an Ethernet OAM Event Notification OAMPDU that indicates a threshold event.
This notification should not be sent more than once per second.
The OAM entity can be derived from extracting the ifIndex from the variable bindings. The objects in the notification correspond to the values in a row instance in the dot3OamEventLogTable.
The management entity should periodically check dot3OamEventLogTable to detect any missed events." ::= { dot3OamNotifications 1 }
dot3OamNonThresholdEvent NOTIFICATION-TYPE OBJECTS { dot3OamEventLogTimestamp, dot3OamEventLogOui, dot3OamEventLogType, dot3OamEventLogLocation, dot3OamEventLogEventTotal } STATUS current DESCRIPTION "A dot3OamNonThresholdEvent notification is sent when a local or remote non-threshold crossing event is detected. A local event is detected by the local entity, while a remote event is detected by the reception of an Ethernet OAM Event Notification OAMPDU that indicates a non-threshold crossing event.
This notification should not be sent more than once per second.
The OAM entity can be derived from extracting the ifIndex from the variable bindings. The objects in the notification correspond to the values in a row instance of the dot3OamEventLogTable.
The management entity should periodically check dot3OamEventLogTable to detect any missed events." ::= { dot3OamNotifications 2 }
-- *** -- -- Ethernet OAM Compliance group --
dot3OamGroups OBJECT IDENTIFIER ::= { dot3OamConformance 1 } dot3OamCompliances OBJECT IDENTIFIER ::= { dot3OamConformance 2 }
-- Compliance statements
dot3OamCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for managed entities supporting OAM on Ethernet-like interfaces. " MODULE -- this module MANDATORY-GROUPS { dot3OamControlGroup, dot3OamPeerGroup, dot3OamStatsBaseGroup }
GROUP dot3OamLoopbackGroup DESCRIPTION "This group is mandatory for all IEEE 802.3 OA implementations that support loopback functionality. "
GROUP dot3OamErrSymbolPeriodEventGroup DESCRIPTION "This group is mandatory for all IEEE 802.3 OA implementations that support event functionality. "
GROUP dot3OamErrFramePeriodEventGroup DESCRIPTION "This group is mandatory for all IEEE 802.3 OA implementations that support event functionality. "
GROUP dot3OamErrFrameEventGroup DESCRIPTION "This group is mandatory for all IEEE 802.3 OA implementations that support event functionality. "
GROUP dot3OamErrFrameSecsSummaryEventGroup DESCRIPTION "This group is mandatory for all IEEE 802.3 OA implementations that support event functionality. "
GROUP dot3OamFlagEventGroup DESCRIPTION "This group is optional for all IEEE 802.3 OA implementations. The ability to send critical events or dying gasp events is not required in any system."
GROUP dot3OamEventLogGroup DESCRIPTION "This group is optional for all IEEE 802.3 OA implementations. Entries in this table are dependent on what event functionality is supported in the local OA implementation. At least one type of event must be supported for entries to appear in this table. "
GROUP dot3OamNotificationGroup DESCRIPTION "This group is optional for all IEEE 802.3 OA implementations. Since the information in the notifications is dependent on the dot3OamEventLogTable, that table must be implemented for notifications. "
::= { dot3OamCompliances 1}
dot3OamControlGroup OBJECT-GROUP OBJECTS { dot3OamAdminState, dot3OamOperStatus, dot3OamMode, dot3OamMaxOamPduSize, dot3OamConfigRevision, dot3OamFunctionsSupported } STATUS current DESCRIPTION "A collection of objects providing the abilities, configuration, and status of an Ethernet OAM entity. " ::= { dot3OamGroups 1 }
dot3OamPeerGroup OBJECT-GROUP OBJECTS { dot3OamPeerMacAddress,
dot3OamPeerVendorOui, dot3OamPeerVendorInfo, dot3OamPeerMode, dot3OamPeerFunctionsSupported, dot3OamPeerMaxOamPduSize, dot3OamPeerConfigRevision } STATUS current DESCRIPTION "A collection of objects providing the abilities, configuration, and status of a peer Ethernet OAM entity. " ::= { dot3OamGroups 2 }
dot3OamStatsBaseGroup OBJECT-GROUP OBJECTS { dot3OamInformationTx, dot3OamInformationRx, dot3OamUniqueEventNotificationTx, dot3OamUniqueEventNotificationRx, dot3OamDuplicateEventNotificationTx, dot3OamDuplicateEventNotificationRx, dot3OamLoopbackControlTx, dot3OamLoopbackControlRx, dot3OamVariableRequestTx, dot3OamVariableRequestRx, dot3OamVariableResponseTx, dot3OamVariableResponseRx, dot3OamOrgSpecificTx, dot3OamOrgSpecificRx, dot3OamUnsupportedCodesTx, dot3OamUnsupportedCodesRx, dot3OamFramesLostDueToOam } STATUS current DESCRIPTION "A collection of objects providing the statistics for the number of various transmit and receive events for OAM on an Ethernet-like interface. Note that all of these counters must be supported even if the related function (as described in dot3OamFunctionsSupported) is not supported. " ::= { dot3OamGroups 3 }
dot3OamLoopbackGroup OBJECT-GROUP OBJECTS { dot3OamLoopbackStatus, dot3OamLoopbackIgnoreRx } STATUS current DESCRIPTION "A collection of objects for controlling the OAM remote loopback function. " ::= { dot3OamGroups 4 }
dot3OamErrSymbolPeriodEventGroup OBJECT-GROUP OBJECTS { dot3OamErrSymPeriodWindowHi, dot3OamErrSymPeriodWindowLo, dot3OamErrSymPeriodThresholdHi, dot3OamErrSymPeriodThresholdLo, dot3OamErrSymPeriodEvNotifEnable } STATUS current DESCRIPTION "A collection of objects for configuring the thresholds for an Errored Symbol Period Event.
Each [802.3ah] defined Event Notification TLV has its own conformance group because each event can be implemented independently of any other. " ::= { dot3OamGroups 5 }
dot3OamErrFramePeriodEventGroup OBJECT-GROUP OBJECTS { dot3OamErrFramePeriodWindow, dot3OamErrFramePeriodThreshold, dot3OamErrFramePeriodEvNotifEnable } STATUS current DESCRIPTION "A collection of objects for configuring the thresholds for an Errored Frame Period Event.
Each [802.3ah] defined Event Notification TLV has its own conformance group because each event can be implemented independently of any other. " ::= { dot3OamGroups 6 }
dot3OamErrFrameEventGroup OBJECT-GROUP
OBJECTS { dot3OamErrFrameWindow,
dot3OamErrFrameThreshold,
dot3OamErrFrameEvNotifEnable
}
STATUS current
DESCRIPTION
"A collection of objects for configuring the thresholds for an
Errored Frame Event.
Each [802.3ah] defined Event Notification TLV has its own
conformance group because each event can be implemented
independently of any other. "
::= { dot3OamGroups 7 }
dot3OamErrFrameSecsSummaryEventGroup OBJECT-GROUP
OBJECTS { dot3OamErrFrameSecsSummaryWindow,
dot3OamErrFrameSecsSummaryThreshold,
dot3OamErrFrameSecsEvNotifEnable
}
STATUS current
DESCRIPTION
"A collection of objects for configuring the thresholds for an
Errored Frame Seconds Summary Event.
Each [802.3ah] defined Event Notification TLV has its own
conformance group because each event can be implemented
independently of any other. "
::= { dot3OamGroups 8 }
dot3OamFlagEventGroup OBJECT-GROUP
OBJECTS { dot3OamDyingGaspEnable,
dot3OamCriticalEventEnable
}
STATUS current
DESCRIPTION
"A collection of objects for configuring the sending OAMPDUs
with the critical event flag or dying gasp flag enabled. "
::= { dot3OamGroups 9 }
dot3OamEventLogGroup OBJECT-GROUP
OBJECTS { dot3OamEventLogTimestamp,
dot3OamEventLogOui,
dot3OamEventLogType,
dot3OamEventLogLocation,
dot3OamEventLogWindowHi,
dot3OamEventLogWindowLo,
dot3OamEventLogThresholdHi,
dot3OamEventLogThresholdLo,
dot3OamEventLogValue,
dot3OamEventLogRunningTotal,
dot3OamEventLogEventTotal
}
STATUS current
DESCRIPTION
"A collection of objects for configuring the thresholds for an
Errored Frame Seconds Summary Event and maintaining the event
information. "
::= { dot3OamGroups 10 }
dot3OamNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS {
dot3OamThresholdEvent,
dot3OamNonThresholdEvent
}
STATUS current
DESCRIPTION
"A collection of notifications used by Ethernet OAM to signal
to a management entity that local or remote events have
occurred on a specified Ethernet link. "
::= { dot3OamGroups 11 }
END
That wraps up the conformance groups, numbered 7 through 11 under dot3OamGroups, and the MIB module closes with that END. β¨π
7. Security Considerations π
Okay, this part is seriously important, bestie. π The readable objects in this module can tell you stuff about network traffic, so treat them as sensitive. OAM can read IEEE 802.3 Clause 30 MIB attributes from a link partner through a specialized layer two protocol. Unlike SNMP, IEEE P802.3ah OAM has no encryption or authentication mechanisms, so it's only giving π«£ when the interface info isn't sensitive or the facility terminations are protected. The good news is that OAM is disabled on Ethernet-like interfaces by default, so it's not a risk unless someone turns it on.
IEEE 802.3ah OAM is built for access and enterprise networks. In access networks, one end of a link is the CO-side and the other is the CPE-side, and the facilities are often locked up in wiring cages or closets. Usually the CO-side is protected from the CPE-side, and that protection from remote access comes from setting the CPE-side to passive mode with the dot3OamMode attribute. That stops the CPE from reaching functions and info on the CO-side of the connection. In enterprise networks, read-only interface info is often considered non-sensitive. πΌ
The frequency of OAM PDUs on an Ethernet interface doesn't hurt data traffic, because OAM is a slow protocol with very limited bandwidth potential and isn't required for normal link operation. There are a bunch of read-write and read-create objects in this module, but they have limited effects on user data. π¦
Here's the spicy one: the loopback capability of OAM can be seriously disruptive. When remote loopback is enabled, the remote station automatically sends all received traffic back to the local station, except for OAM traffic. That completely wrecks higher layer protocols like bridging, IP, and SNMP π. So the dot3OamLoopbackIgnoreRx attribute exists to control whether the local station processes or ignores received loopback commands. Protect it! π‘οΈ
The administrative state and mode are read-write objects too. Disabling OAM can interrupt management activities between peer devices and potentially cause serious problems. Setting dot3OamMode to an undesired value can allow access to Ethernet monitoring, events, and functions that might not be acceptable for a given deployment. Beyond loopback, Ethernet interface statistics and events can be reached through the OAM protocol, which might not be what you want in some situations. π
OAM event configuration also has read-write objects. They control whether events are sent and at what thresholds. The frequency of event communication is limited by the frequency limits of Slow Protocols on Ethernet interfaces. The info available through OAM events is also available through OAM Variable Requests, and access to it through either route is controlled by the dot3OamAdminState and dot3OamMode objects. As mentioned earlier, if these variables aren't protected well enough, someone can get into link information and functions. π¨
SNMP versions before SNMPv3 didn't include adequate security. Even if the network itself is secure (for example, by using IPsec), there's still no control over who on that secure network is allowed to GET/SET (read/change/create/delete) the objects in this MIB module. Rude! π€
It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy. π
Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It's then a customer or operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is configured so the objects are only available to principals (users) with legitimate rights to GET or SET (change/create/delete) them. That's the bestie-approved way to keep your network drama-free π β¨
8. IANA Considerations πΈ
The Ethernet OAM MIB needs a single object identifier for its MODULE-IDENTITY under the MIB-2 tree. π
The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry:
Descriptor OBJECT IDENTIFIER
---------- -----------------
dot3OamMIB { mib-2 158 }
9. References π
9.1. Normative References
- [802.3ah] Institute of Electrical and Electronic Engineers, IEEE Std 802.3ah-2004, "Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications - Amendment: Media Access Control Parameters, Physical Layers and Management Parameters for Subscriber Access Networks", October 2004.
- [802.3-2002] Institute of Electrical and Electronic Engineers, IEEE Std 802.3-2003, "IEEE Standard for Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications - Draft amendment to - Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications - Media Access Control Parameters, Physical Layers and Management Parameters", March 2002.
- [802.3-2005] Institute of Electrical and Electronic Engineers, IEEE Std 802.3-2005, "IEEE Standard for Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications - Draft amendment to - Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications - Media Access Control Parameters, Physical Layers and Management Parameters", December 2005.
- [802-2001] Institute of Electrical and Electronic Engineers, IEEE Std 802-2001, "Standard for Local and Metropolitan Area Networks: Architecture and Overview", March 2002.
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
- [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
- [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
- [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual Conventions for Additional High Capacity Data Types", RFC 2856, June 2000.
- [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.
9.2. Informative References
- [802.3ah-copper] Beili, Ed, "Ethernet in the First Mile Copper (EFMCu) Interfaces MIB", Work in Progress, February 2007.
- [802.3ah-epon] Khermosh, L., "Managed Objects of Ethernet Passive Optical Networks (EPON)", RFC 4837, June 2007.
- [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
- [RFC3635] Flick, J., "Definitions of Managed Objects for the Ethernet-like Interface Types", RFC 3635, September 2003.
10. Acknowledgments β¨
okay bestie, this is the shoutout section π«Ά The author wants to thank everyone in the IEEE 802.3ah EFM (Ethernet in the First Mile) taskforce, and they call out some people whose leadership and dedication were literally iconic π
- Kevin Daines (Editor, IEEE 802.3ah OAM clauses)
- Ben Brown (Editor, IEEE 802.3ah Logic clauses)
- David Law (Editor, IEEE 802.3ah Management clauses)
- Scott Simon (Editor, IEEE 802.3ah Clause 45)
- Howard Frazier (Chair, IEEE 802.3ah)
- Hugh Barass (Vice-Chair, IEEE 802.3ah)
- Wael Diab (Editor, IEEE 802.3ah)
There were also some devoted attendees and contributors to the IEEE 802.3ah OAM sub-taskforce who deserve a spot in the spotlight πΈ There were loads of people, but these ones kept showing up and putting in the work over a long stretch of time, so they get a special mention:
- Brian Arnold
- Brad Booth
- Al Braga
- Floyd Gerhardt
- Bob Grow
- Eric Lynskey
- David Martin
- John Messenger
- Dan Romascanu (Ex-Chair, IETF HUBMIB WG)
- Jonathan Thatcher
- Geoff Thompson
Author's Address π
this is where you find the author, Matt Squire, at Hatteras Networks π
Matt Squire
Hatteras Networks
529 Davis Drive
Durham, NC 27713
EMail: msquire@hatterasnetworks.com
Full Copyright Statement π
the IETF Trust holds the copyright on this document (2007) π
This document is subject to the rights, licenses and restrictions in BCP 78. Other than what BCP 78 says, the authors keep all their rights.
This document and the info in it are provided on an "AS IS" basis, and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. no cap, that's a lot of disclaimers π
Intellectual Property π¦
the IETF doesn't take a side on whether any IPR claims are valid or how far they reach, and it doesn't say licenses are available either. It also hasn't done any independent digging to find out what rights might exist π If you want the rules for rights in RFC documents, check out BCP 78 and BCP 79.
Any IPR disclosures sent to the IETF Secretariat live in the IETF on-line IPR repository at http://www.ietf.org/ipr, along with any assurances of licenses. If someone tried to get a general license or permission to use proprietary rights for this spec, the result is posted there too π
The IETF also invites anyone to flag copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to ietf-ipr@ietf.org π
Acknowledgement π«Ά
the RFC Editor function is funded by the Internet Society for now β¨
π¦ where this page comes from
- ietf: rfc4878 2007-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms