RFC 6765
xDSL Multi-Pair Bonding (G.Bond) MIB
RFC 6765: xDSL Multi-Pair Bonding (G.Bond) MIB ๐
Okay bestie, here's the header situation ๐
- Internet Engineering Task Force (IETF)
- Request for Comments: 6765
- Authors: E. Beili (Actelis Networks) and M. Morgenstern (ECI Telecom)
- Category: Standards Track
- ISSN: 2070-1721
- Date: February 2013
- Obsoletes and updates: the title block doesn't list anything here, so there's nothing to obsolete or update ๐
Abstract
Okay so this doc defines a Management Information Base (MIB) module, which is basically the list of things network management protocols can read and poke at, for use in TCP/IP-based internets. It extends the Interfaces Group MIB with a set of common objects for managing multi-pair bonded Digital Subscriber Line (xDSL) interfaces, as defined in ITU-T Recommendations G.998.1, G.998.2, and G.998.3. โจ
The textual conventions that define the bonding schemes live in a separate MIB module that's maintained by the Internet Assigned Numbers Authority (IANA). The MIB modules for each bonding technology are G9981-MIB, G9982-MIB, and G9983-MIB, respectively. The vibes are very organized ๐
Status of This Memo
This is an Internet Standards Track document. ๐ฅ
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6765. Bookmark that one ๐
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Read the fine print, it matters ๐
Table of Contents
1. Introduction ....................................................3
2. The Internet-Standard Management Framework ......................4
3. The Broadband Forum Management Framework for xDSL Bonding .......4
4. Relationship to Other MIB Modules ...............................5
4.1. Relationship to Interfaces Group MIB Module ................5
4.1.1. Layering Model ......................................5
4.1.2. xDSL Bonding ........................................7
4.1.3. Discovery Operation .................................8
4.1.4. Initialization of G.Bond Ports .....................10
4.1.5. Usage of the ifTable ...............................11
4.2. Relationship to G.Bond ATM, ETH, and TDIM MIB Modules .....13
4.3. Relationship to xDSL MIB Modules ..........................13
4.4. Addition of New Bonding Schemes ...........................13
5. MIB Structure ..................................................13
5.1. Overview ..................................................13
5.2. Performance Monitoring ....................................14
5.3. Mapping of Broadband Forum TR-159 Managed Objects .........14
6. xDSL Multi-Pair Bonding MIB Definitions ........................19
7. IANA-Maintained G.Bond TC Definitions ..........................65
8. Security Considerations ........................................67
9. IANA Considerations ............................................69
10. Acknowledgments ...............................................69
11. References ....................................................70
11.1. Normative References .....................................70
11.2. Informative References ...................................71
1. Introduction โจ
xDSL multi-pair bonding lets a service provider deliver high-bandwidth services to business and residential customers over multiple xDSL lines. You get more speed and resiliency than a single xDSL line can give you, which bridges the gap between xDSL and fiber-based transport. Iconic bridge energy ๐
Right now there are three xDSL multi-pair bonding schemes, which are also known together as "G.Bond" ๐
- ATM-Based Multi-pair bonding is specified in ITU-T Recommendation G.998.1 [G.998.1]. It defines a method for bonding (or aggregating) multiple xDSL lines, or individual bearer channels in multiple xDSL lines, into a single bidirectional logical link that carries an ATM stream. You can think of it as an evolution of the legacy Inverse Multiplexing for ATM (IMA) technology [AF-PHY-0086], applied to xDSL with variable rates on each line or bearer channel ๐ฆ
- Ethernet-Based Multi-pair bonding is specified in ITU-T Recommendation G.998.2 [G.998.2]. It defines a method for bonding (or aggregating) multiple xDSL lines, or individual bearer channels in multiple xDSL lines, into a single bidirectional logical link that carries an Ethernet stream. This one can be viewed as IEEE 802.3-2005 [802.3] Clause 61, Physical Medium Entity (PME) Aggregation, generalized to work over any xDSL technology. (The 2Base-TL and 10Pass-TS interfaces defined by IEEE use G.SHDSL (Single-pair High-speed DSL) and VDSL (Very high speed DSL) technology, respectively.) ๐
- Multi-pair bonding using Time-Division Inverse Multiplexing (TDIM) is specified in ITU-T Recommendation G.998.3 [G.998.3]. It defines a method for bonding (or aggregating) multiple xDSL lines into a single bidirectional logical link that carries a mix of traffic streams, such as Ethernet, ATM, and TDM. Mixed traffic, no problem ๐ง
Architecturally, all three bonding schemes define a new "bonded" Transport Protocol Specific - Transmission Convergence (TPS-TC) sub-layer. It sits above multiple ATM-TC, Ethernet/Packet Transfer Mode-TC (PTM-TC), or Synchronous Transfer Mode-TC (STM-TC) (clear channel) sub-layers, for ATM, Ethernet, or TDIM bonding respectively. Each underlying TPS-TC sub-layer represents a protocol-specific interface to an xDSL line or to an individual bearer channel of an xDSL line. Bonding multiple bearer channels in the same xDSL line is not allowed. Nope, not happening ๐ โโ๏ธ
All schemes allow bonding of up to 32 individual line/channel sub-layers with variable rates. They also provide common functionality for configuring, initializing, operating, and monitoring the bonded link. Main character energy ๐
This document defines a MIB module that's common to all 3 schemes. The additional managed objects that are specific to each bonding technology are defined in the G9981-MIB [RFC6768], G9982-MIB [RFC6767], and G9983-MIB [RFC6766] modules. โจ
The textual conventions that list the bonding schemes are defined in a separate, IANA-maintained MIB module. The first version of that module is provided in this document. This setup means future bonding schemes can be supported easily, without needing to update the common GBOND-MIB module. Future-proofed, ate ๐
2. The Internet-Standard Management Framework ๐ธ
For a detailed overview of the documents that describe the current Internet-Standard Management Framework, check out Section 7 of RFC 3410 [RFC3410]. ๐
Managed objects are accessed through a virtual information store called the Management Information Base, or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms in the Structure of Management Information (SMI). This document specifies a MIB module that is compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579], and STD 58, RFC 2580 [RFC2580]. ๐ง
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119]. These are the official capital-letter power words, so they're not up for debate ๐ซถ
3. The Broadband Forum Management Framework for xDSL Bonding ๐ฆ
This document makes use of the Broadband Forum technical report "Management Framework for xDSL Bonding" [TR-159]. That report defines a management model and a hierarchy of management objects for the bonded xDSL interfaces. Blueprint vibes ๐บ๏ธ
4. Relationship to Other MIB Modules ๐ง
This section outlines how the MIB modules defined in this document relate to other MIB modules described in the relevant RFCs. Specifically, the following MIB modules are discussed:
- The Interfaces Group MIB (
IF-MIB), the Inverse Stack Table MIB (IF-INVERTED-STACK-MIB), and the Interface Stack Capability MIB (IF-CAP-STACK-MIB) - The G.Bond scheme-specific modules: G.Bond/ATM (
G9981-MIB), G.Bond/Ethernet (G9982-MIB), and G.Bond/TDIM (G9983-MIB) - The DSL-specific MIB modules: ADSL (
ADSL-LINE-EXT-MIB), ADSL2 (ADSL2-LINE-MIB), SHDSL (HDSL2-SHDSL-LINE-MIB), VDSL (VDSL-LINE-MIB), and VDSL2 (VDSL2-LINE-MIB)
It's a whole web of relationships, so keep this list handy ๐ธ๏ธ
4.1. Relationship to Interfaces Group MIB Module ๐
A bonded xDSL port is a stacked (a.k.a. aggregated or bonded) interface. As such, it's managed using the generic interface management objects defined in the IF-MIB [RFC2863]. Generic is still giving organized ๐
The stack management, meaning the actual connection of the sub-layers to the top layer interface, is done via the ifStackTable, as defined in the IF-MIB [RFC2863]. Its inverse is the ifInvStackTable, as defined in the IF-INVERTED-STACK-MIB [RFC2864]. โจ
The ifCapStackTable and its inverse, the ifInvCapStackTable, are defined in the IF-CAP-STACK-MIB [RFC5066]. They extend stack management by describing possible connections, or cross-connect capability, when a flexible cross-connect matrix is present between the interface layers. This is where the flexibility comes in, and it's giving big options energy ๐
4.1.1. Layering Model
okay so a G.Bond interface can glue together up to 32 channel sub-layers ๐โจ each channel is either an xDSL line or an xDSL bearer channel. to keep things short, we'll call the bonded interface the Generic Bonding Sub-layer (GBS) and each channel sub-layer the Bonding Channel Entity (BCE) ๐ฆ
a generic G.Bond device can have a bunch of GBS ports ๐ each one talks to a particular upper layer (for example, a Media Access Control (MAC) interface for the G.998.2 scheme) and is cross-connected to several underlying BCEs at the same time. the rule is one GBS per BCE ๐
a GBS port shows up in the Interfaces table (ifTable) as its own interface, with an ifType that matches the bonding scheme, like g9981(263), g9982(264), or g9983(265) ๐ธ
every BCE inside that aggregated GBS port also gets its own ifTable entry, but with an ifType for its specific xDSL technology, like shdsl(169) or vdsl(97) ๐ the ifType values are defined in [IANAifType-MIB] ๐
here's the layering diagram and how the ifTable is used for the bonded xDSL interfaces ๐
.-----------------------------. -
| GBS | ^ 1 ifEntry
| (TPS-TC) | v ifType: g9981(263), g9982(264),
+-----------------+---+-------+ - g9983(265), etc.
| TPS-TC \ | | | ^
+---------\ | | | | N ifEntry (N=1..32)
| PMS-TC )BCE 1 |...| BCE N | ) ifType: adsl(94), shdsl(169),
+---------/ | | | | vdsl(97), vdsl2(251),
| PMD / | | | v etc.
'-----------------+---+-------' -
BCE - Bonding Channel Entity
GBS - Generic Bonding Sub-layer
PMD - Physical Medium Dependent
TPS-TC - Transport Protocol Specific - Transmission Convergence
PMS-TC - Physical Media Specific - Transmission Convergence
Figure 1: Use of ifTable for Bonded xDSL Interfaces
the ifStackTable is indexed by the ifIndex values of the aggregated G.Bond port (GBS) and of the BCEs hooked up to it ๐งฉ it lets a network management app figure out which BCEs are connected to a given GBS, and change those connections (if the app supports that) ๐ง the ifInvStackTable is the flipped version of the ifStackTable ๐ it gives a quick way to read a subset of the ifStackTable and find out which GBS is running on top of a particular BCE โจ
now the ifCapStackTable, which is defined in the IF-CAP-STACK-MIB module ๐ for each higher-layer interface (like a GBS port), it lists the lower-layer interfaces (like BCEs) that could possibly be cross-connected to it, based on what the device is capable of ๐ modeled after the ifStackTable, it's read only, and it shows the current cross-connect capability of a stacked interface. this can change dynamically on some devices (for example, if the xDSL lines are on a pluggable module and somebody yanks the module out) ๐ญ also, BCE availability per GBS, as described by the ifCapStackTable, can be limited by other stuff, like the aggregation capacity of a GBS, or a BCE already being connected to a different GBS ๐ so, to make sure a particular BCE can actually be connected to a GBS, all the relevant parameters (for example, ifCapStackTable, ifStackTable, and gBondPortCapCapacity) SHALL be inspected ๐ซถ
and last but not least, the ifInvCapStackTable is also defined in the IF-CAP-STACK-MIB module ๐ it tells you which higher-layer interfaces (like GBS ports) could possibly be connected to a particular lower-layer interface (like a BCE), so it's the inverted mapping of the ifCapStackTable ๐ฆ it doesn't hold any extra info beyond what's already in the ifCapStackTable, but its INDEX clause has the ifIndex values in reverse order: the lower-layer interface comes first, and the higher-layer interface second ๐
that makes it efficient for a management app to read a subset of the ifCapStackTable and work out which interfaces can run on top of a particular interface ๐ธ
4.1.2. xDSL Bonding
the G.998.x Bonding lets a bunch of BCEs get aggregated onto one logical GBS port ๐ the incoming traffic gets split into multiple streams, each stream goes out over a specific BCE, and then the streams get combined back together at the remote GBS port, with the original traffic order preserved โจ
the Ethernet frames MAY be fragmented before transmission and reassembled at the remote end, which helps keep transportation delay down ๐ the G.998.2 (G.Bond/Ethernet) ports with multiple BCEs MUST do the fragmentation and reassembly of the Ethernet frames ๐ช but for single-BCE G.998.2 ports, this function MAY be left out (aka bonding bypass) ๐ that cuts down on fragmentation overhead and extra processing delay, and it also lets the port play nicely with non-G.998 DSL equipment ๐ซถ
the agent is REQUIRED to indicate all the bonding schemes it supports (for example, ATM, Ethernet, and TDIM) ๐ฃ that includes OPTIONAL support for bonding bypass on G.998.2 single-BCE ports ๐
the GBOND-MIB module lets a network management app query the bonding capability and turn it on or off, if the device supports it ๐ heads up though: turning bonding on (by setting gBondPortConfAdminScheme and gBondPortConfPeerAdminScheme to any supported bonding scheme other than 'none') effectively switches on the fragmentation and reassembly function, even on a single-BCE port โ ๏ธ
โ ๏ธ bonding on a single-BCE port means fragmentation and reassembly are on too, so don't be surprised when it happens ๐
4.1.3. Discovery Operation
the G.Bond ports may optionally support a discovery operation ๐ during initialization, the BCEs swap info about their aggregation groups (GBS) through the [G.994.1] handshake (G.hs) protocol ๐ค that info can then be used to catch copper misconnections, or to automatically sort the local BCEs into aggregation groups instead of relying on a fixed preconfiguration ๐ง
the MIB module in this document lets a network management app control the G.Bond discovery mechanism and check its results ๐
two tables are used by the G.Bond discovery mechanism: the ifStackTable and the ifCapStackTable ๐ the pseudocode below is an example of discovery and automatic BCE assignment for a generic multi-GBS G.Bond device sitting at the Central Office (CO) ๐ข it uses objects defined in this MIB module, plus the IF-CAP-STACK-MIB and IF-MIB modules [Note that automatic BCE assignment is only shown here for the purposes of the example. Fixed BCE pre-assignment, manual assignment, or auto-assignment using an alternative internal algorithm may be chosen by a particular implementation] ๐
// Go over all GBS ports in the CO device
FOREACH gbs[i] IN CO_device
{ // Perform discovery and auto-assignment on GBS ports
// with room for more channels.
IF ( gbs[i].NumBCEs < gbs[i].BondCapacity )
{ // Assign a unique 6-octet local discovery code to the GBS,
// e.g., MAC address of the associated port or some other
// unique number specifically allocated for this purpose.
dc = gbs[i].DiscoveryCode = MAC[i];
// Go over all disconnected channels, which can
// potentially be connected to the GBS.
FOREACH bce[j] IN ifCapStackTable[gbs[i]] AND
NOT IN ifStackTable[gbs[i]] // not connected
{ // Try to grab the Remote Terminal device (RT) by writing the
// value of the local 6-byte discovery code to the remote
// discovery code register (via a handshake mechanism).
// This operation is an atomic Set-if-Clear action; i.e., it
// would succeed only if the remote discovery register was
// zero. Read the remote discovery code register via a Get
// operation to see if the RT, attached via the BCE,
// is indeed marked as being the CO_device peer.
bce[j].RemoteDiscoveryCode = dc; // Set-if-Clear
r = bce[j].RemoteDiscoveryCode; // Get
IF ( r == dc AND gbs[i].NumBCEs < gbs[i].BondCapacity )
{ // RT connected via BCE[j] is/was a peer
// for GBS[i], and there is room for another BCE in the
// GBS[i] aggregation group (max. Bonding capacity is
// not reached yet).
// Connect this BCE to the GBS (via the ifStackTable; the
// ifInvStackTable, which is the inverse of the ifStackTable,
// is updated automatically; i.e., gbs[i] is auto-added
// to ifInvStackTable[bce[j]]).
ADD bce[j] TO ifStackTable[gbs[i]];
gbs[i].NumBCEs = gbs[i].NumBCEs + 1;
// Discover all other disconnected BCEs
// attached to the same RT and connect them to
// the GBS, provided there is enough room for more BCEs.
FOREACH bce[k] IN ifCapStackTable[gbs[i]] and
NOT IN ifStackTable[gbs[i]]
{ // Get the remote discovery code from the BCE to see if
// it belongs to a connected RT "grabbed" by
// the CO_device.
r = bce[k].RemoteDiscoveryCode;
IF ( r == dc AND gbs[i].NumBCEs < gbs[i].BondCapacity )
{ // Physically connect the BCE to the GBS.
// (gbs[i] is auto-added TO ifInvStackTable[bce[k]]).
ADD bce[k] TO ifStackTable[gbs[i]];
gbs[i].NumBCEs = gbs[i].NumBCEs + 1;
}
}
}
// At this point we have discovered all local BCEs that
// are physically connected to the same RT and
// connected them to GBS[i]. Go to the next GBS.
BREAK;
}
}
}
an SNMP agent for a G.Bond device builds the ifCapStackTable and its inverse, the ifInvCapStackTable, during device initialization ๐ ๏ธ it's based on the device's cross-connect capabilities ๐
adding a BCE to the ifStackTable row for a specific GBS means the BCE actually gets connected to the GBS ๐
quick tea โ: a GBS port does NOT have to be operationally 'down' for the connection to succeed ๐
โโ๏ธ in fact, a dynamic BCE addition (and removal) MAY be implemented like this: an available BCE gets initialized first (by setting its ifAdminStatus to 'up'), and then it's added to an operationally 'up' GBS port by modifying the respective ifStackTable entry (and the respective ifInvStackTable entry) โจ
it is RECOMMENDED that removing the last operationally 'up' BCE from an operationally 'up' GBS (meaning modifying the respective entry in the ifStackTable, plus the corresponding entry in the ifInvStackTable) be rejected by the implementation ๐
(for SNMP, that means the error inconsistentValue) ๐ฑ because that action would completely drop the link ๐
and finally, on top of the standard handshake-based discovery above, [G.998.2] defines an optional frame-based discovery and pair management ๐ฆ those frame-based methods are covered in [RFC6767] ๐
4.1.4. Initialization of G.Bond Ports โจ
okay so G.Bond ports that run on xDSL need a loooong warm-up (the "training" process) before any data can move ๐ข during training, both ends of the link (the peers) work together to hit a required data rate on one copper pair. but if the copper run is too long or there's too much noise on the line, training can fail to reach a specific target rate with the characteristics that were asked for ๐ญ
the ifAdminStatus object from the IF-MIB is what controls the desired state of a GBS together with all the BCEs connected to it, or of one individual BCE port ๐ setting it to 'up' tells a GBS or a BCE to start initializing, which can take tens of seconds for G.Bond ports. the ifOperStatus object from the IF-MIB shows the operational state of the interface for the GBS, extended by the gBondPortStatFltStatus object defined in this document. for BCE interfaces, it's a matching *Status object from the relevant xDSL line MIB ๐
a disconnected BCE can be initialized by changing ifAdminStatus from 'down' to 'up'. setting ifAdminStatus to 'up' on the GBS initializes all the BCEs hooked up to that GBS ๐ซถ and with bonding, it's totally possible for some interfaces to fail while others succeed (not a vibe, but it happens). the GBS counts as operationally 'up' if at least one bonded BCE is operationally 'up'. when every BCE connected to the GBS is 'down', the GBS SHALL be considered operationally 'lowerLayerDown' ๐ and the GBS SHALL be considered operationally 'notPresent' if it isn't connected to any BCE at all. lastly, the GBS/BCE interface SHALL remain operationally 'down' during initialization, which is flagged by the 'init' value of the gBondPortStatFltStatus object ๐ธ
4.1.5. Usage of the ifTable ๐ง
both BCE and GBS interfaces are managed through interface-specific management objects defined in the GBOND-MIB module, plus the generic interface objects from the ifTable of the IF-MIB. every management table entry is referenced by the interface index ifIndex ๐ฆ
here's the cheat sheet for how G.Bond reads some of the ifTable objects that come from the mandatory ifGeneralInformationGroup ๐
+---------------+---------------------------------------------------+
| IF-MIB Object | G.Bond Interpretation |
+---------------+---------------------------------------------------+
| ifIndex | Interface index. Note that each BCE and each GBS |
| | in the G.Bond PHY MUST have a unique index, as |
| | there are some GBS- and BCE-specific attributes |
| | accessible only on the GBS or BCE level. |
+---------------+---------------------------------------------------+
| ifType | g9981(263), g9982(264), or g9983(265) for the |
| | ATM, Ethernet, or TDIM GBS, respectively; |
| | shdsl(169) for the G.SHDSL BCE, vdsl(97) for the |
| | VDSL BCE, etc. |
+---------------+---------------------------------------------------+
| ifSpeed | Operating data rate for the BCE. For the GBS, it |
| | is the sum of the current operating data rates of |
| | all BCEs in the aggregation group, without the |
| | encapsulation overhead and G.Bond overhead, but |
| | accounting for Inter-Frame Gaps (IFG). When a |
| | GBS or a BCE is operating in an asymmetrical |
| | fashion (the upstream data rate differs from the |
| | downstream one), the lowest of the values is |
| | shown. |
+---------------+---------------------------------------------------+
| ifAdminStatus | Setting this object to 'up' instructs a |
| | particular GBS (with all BCEs connected to it) or |
| | a BCE to start the initialization process. |
+---------------+---------------------------------------------------+
| ifOperStatus | A relevant *Status object from a particular line |
| | MIB supplements the value of ifOperStatus for |
| | BCEs. gBondPortStatFltStatus supplements the |
| | value of ifOperStatus for a GBS. Note that both |
| | relevant objects shall be inspected to determine |
| | the real operational status of a BCE/GBS port, |
| | e.g., a GBS port may be operationally 'up' with |
| | gBondPortStatFltStatus indicating lowRate(4) |
| | fault condition, or 'down' with no gBond faults. |
+---------------+---------------------------------------------------+
Table 1: G.Bond Interpretation of IF-MIB Objects
4.2. Relationship to G.Bond ATM, ETH, and TDIM MIB Modules ๐
the MIB module in this document is shared across all G.998 bonding schemes. it MUST be used together with a bonding-scheme-specific MIB module ๐ so:
- G9981-MIB [RFC6768] is for a G.998.1 bonded interface.
- G9982-MIB [RFC6767] is for a G.998.2 bonded interface.
- G9983-MIB [RFC6766] is for a G.998.3 bonded interface.
4.3. Relationship to xDSL MIB Modules ๐
each xDSL technology gets described in its own relevant xDSL line MIB module, e.g., the HDSL2-SHDSL-LINE-MIB [RFC4319] for G.SHDSL, ADSL-LINE-EXT-MIB [RFC3440] for ADSL, ADSL2-LINE-MIB [RFC4706] for ADSL2, VDSL-LINE-MIB [RFC3728] for VDSL, or VDSL2-LINE-MIB [RFC5650] for VDSL2 ๐งโโ๏ธ
those MIB modules are what you use to manage the individual xDSL lines/channels (the BCEs) ๐
4.4. Addition of New Bonding Schemes ๐ฆ
if a new bonding scheme shows up in a revision of G.998, IANA can update the IANA-maintained MIB module. they add the new value to the IANAgBondScheme and IANAgBondSchemeList textual conventions, and list the new scheme-specific MIB module's name (e.g., G998x-MIB) ๐
any scheme-specific aspect of an existing GBOND-MIB object SHALL be described in the matching G998x-MIB module. this way the GBOND-MIB module doesn't need an unnecessary reissue ๐ โโ๏ธ for example, the exact definition of an Errored Second (ES) or a Severely Errored Second (SES) can depend on the bonding scheme. check the definitions for the gBondPortPmCurES and gBondPortPmCurSES objects ๐
5. MIB Structure ๐๏ธ
5.1. Overview ๐
the main management objects in the GBOND-MIB module are split into 2 groups, structured the way RFC 4181 [RFC4181] recommends ๐
- gBondPort - contains objects for configuration, capabilities, status, historical Performance Monitoring, and notifications, all shared by every G.Bond port (GBS).
- gBondBce - contains one common object for configuring the remote discovery code per BCE. the rest of the BCE configuration, capabilities, status, and notifications live in the relevant xDSL line MIB modules and in the bonding scheme-specific MIB modules ๐ซถ
5.2. Performance Monitoring ๐
the OPTIONAL Performance Monitoring counters, thresholds, and history buckets (interval-counters) defined in [TR-159] are implemented with the textual conventions from the HC-PerfHist-TC-MIB [RFC3705]. the HC-PerfHist-TC-MIB gives you 64-bit versions of the textual conventions found in the PerfHist-TC-MIB [RFC3593] โจ
the agent SHOULD line up the start of each interval with a fifteen-minute boundary on the wall clock. likewise, the start of each one-day interval SHOULD be lined up with the start of a day โฐ
why this matters: it makes life way easier for a network management system (NMS) to collect and analyze Performance Monitoring (PM) from lots of agents. each PM interval can be "time-stamped" with the gBond*IntervalIndex object, because the 1-day interval starts at 00:00 and the 15-minute intervals line up with each quarter hour on the network-wide "wall clock". that wall clock is typically distributed via NTP or the Simple Network Time Protocol (SNTP) [RFC5905] ๐ if the agent doesn't have access to the wall clock, a local clock can be used instead. in that case, and also when dealing with multiple time zones, the NMS has to work out the difference between the agent's local clock (you can get that from the hrSystemDate object in the HOST-RESOURCES-MIB [RFC2790], for example) and the wall clock ๐งฎ
counters don't reset when a GBS gets re-initialized. they only reset when the agent is reset or re-initialized ๐
one more thing: counting for certain performance events on a monitored entity is inhibited (the counting just stops) during periods of service unavailability on that entity. the DESCRIPTION clause of the Performance Monitoring counters in this MIB module says which counters get inhibited during those periods ๐
5.3. Mapping of Broadband Forum TR-159 Managed Objects ๐บ๏ธ
this section maps the relevant managed objects (attributes) defined in [TR-159] to the managed objects defined in this document and in the associated MIB modules, i.e., the IF-MIB [RFC2863] ๐
okay bestie, this is the big translation dictionary ๐บ๏ธโจ every row matches a G.Bond managed object with its SNMP buddy, so you can see which one is which ๐ the oBondingGroup and oLine packages are split into Basic (mandatory ๐ซถ) and PM or optional bits, and the table keeps that split ๐
+--------------------------------+------------------------------------+
| G.Bond Managed Object | Corresponding SNMP Object |
+--------------------------------+------------------------------------+
| oBondingGroup - Basic Package | |
| (Mandatory) | |
+--------------------------------+------------------------------------+
| aGroupID | ifIndex (IF-MIB) |
+--------------------------------+------------------------------------+
| aGroupBondSchemesSupported | gBondPortCapSchemesSupported |
+--------------------------------+------------------------------------+
| aGroupPeerBondSchemesSupported | gBondPortCapPeerSchemesSupported |
+--------------------------------+------------------------------------+
| aGroupAdminBondScheme | gBondPortConfAdminScheme |
+--------------------------------+------------------------------------+
| aGroupPeerAdminBondScheme | gBondPortConfPeerAdminScheme |
+--------------------------------+------------------------------------+
| aGroupOperBondScheme | gBondPortStatOperScheme |
+--------------------------------+------------------------------------+
| aGroupPeerOperBondScheme | gBondPortStatPeerOperScheme |
+--------------------------------+------------------------------------+
| aGroupEnd | gBondPortStatSide |
+--------------------------------+------------------------------------+
| aGroupOperState | ifOperStatus (IF-MIB) |
+--------------------------------+------------------------------------+
| aGroupAdminState | ifAdminStatus (IF-MIB) |
+--------------------------------+------------------------------------+
| aGroupStatus | gBondPortStatFltStatus |
+--------------------------------+------------------------------------+
| aGroupCapacity | gBondPortCapCapacity |
+--------------------------------+------------------------------------+
| aGroupPeerCapacity | gBondPortCapPeerCapacity |
+--------------------------------+------------------------------------+
| aGroupNumChannels | gBondPortStatNumBCEs |
+--------------------------------+------------------------------------+
| aGroupName | ifName (IF-MIB) |
+--------------------------------+------------------------------------+
| aGroupDiscoveryCode | gBondPortConfDiscoveryCode |
+--------------------------------+------------------------------------+
| aGroupUpRate | gBondPortStatUpDataRate |
+--------------------------------+------------------------------------+
| aGroupDownRate | gBondPortStatDnDataRate |
+--------------------------------+------------------------------------+
| aGroupTargetUpRate | gBondPortConfTargetUpDataRate |
+--------------------------------+------------------------------------+
| aGroupTargetDownRate | gBondPortConfTargetDnDataRate |
+--------------------------------+------------------------------------+
| aGroupThreshLowUpRate | gBondPortConfThreshLowUpRate |
+--------------------------------+------------------------------------+
+--------------------------------+------------------------------------+
| aGroupThreshLowDownRate | gBondPortConfThreshLowDnRate |
+--------------------------------+------------------------------------+
| aGroupLowRateCrossingEnable | gBondPortConfLowRateCrossingEnable |
+--------------------------------+------------------------------------+
| nGroupLowUpRateCrossing | gBondLowUpRateCrossing |
+--------------------------------+------------------------------------+
| nGroupLowDownRateCrossing | gBondLowDnRateCrossing |
+--------------------------------+------------------------------------+
| aGroupLinkUpDownEnable | ifLinkUpDownTrapEnable (IF-MIB) |
+--------------------------------+------------------------------------+
| nGroupLinkUp | linkUp (IF-MIB) |
+--------------------------------+------------------------------------+
| nGroupLinkDown | linkDown (IF-MIB) |
+--------------------------------+------------------------------------+
| oBondingGroup - PM Package | |
| (Optional) | |
+--------------------------------+------------------------------------+
| aGroupPerfES | gBondPortPmCurES |
+--------------------------------+------------------------------------+
| aGroupPerfSES | gBondPortPmCurSES |
+--------------------------------+------------------------------------+
| aGroupPerfUAS | gBondPortPmCurUAS |
+--------------------------------+------------------------------------+
| aGroupPerf15MinValidIntervals | gBondPortPmCur15MinValidIntervals |
+--------------------------------+------------------------------------+
| aGroupPerf15MinInvalidIntervals| gBondPortPmCur15MinInvalidIntervals|
+--------------------------------+------------------------------------+
| aGroupPerfCurr15MinTimeElapsed | gBondPortPmCur15MinTimeElapsed |
+--------------------------------+------------------------------------+
| aGroupPerfCurr15MinES | gBondPortPmCur15MinES |
+--------------------------------+------------------------------------+
| aGroupPerfCurr15MinSES | gBondPortPmCur15MinSES |
+--------------------------------+------------------------------------+
| aGroupPerfCurr15MinUAS | gBondPortPmCur15MinUAS |
+--------------------------------+------------------------------------+
| aGroupPerfTcaEnable | gBondPortConfPmTcaEnable |
+--------------------------------+------------------------------------+
| aGroupPerfThreshold15MinES | gBondPortPmTcaProfileThresh15MinES |
+--------------------------------+------------------------------------+
| aGroupPerfThreshold15MinSES | gBondPortPmTcaProfileThresh15MinSES|
+--------------------------------+------------------------------------+
| aGroupPerfThreshold15MinUAS | gBondPortPmTcaProfileThresh15MinUAS|
+--------------------------------+------------------------------------+
| nGroupPerfTca15MinES | gBondPmTca15MinESCrossing |
+--------------------------------+------------------------------------+
| nGroupPerfTca15MinSES | gBondPmTca15MinSESCrossing |
+--------------------------------+------------------------------------+
+--------------------------------+------------------------------------+
| nGroupPerfTca15MinUAS | gBondPmTca15MinUASCrossing |
+--------------------------------+------------------------------------+
| aGroupPerf1DayValidIntervals | gBondPortPmCur1DayValidIntervals |
+--------------------------------+------------------------------------+
| aGroupPerf1DayInvalidIntervals | gBondPortPmCur1DayInvalidIntervals |
+--------------------------------+------------------------------------+
| aGroupPerfCurr1DayTimeElapsed | gBondPortPmCur1DayTimeElapsed |
+--------------------------------+------------------------------------+
| aGroupPerfCurr1DayES | gBondPortPmCur1DayIntervalES |
+--------------------------------+------------------------------------+
| aGroupPerfCurr1DaySES | gBondPortPmCur1DayIntervalSES |
+--------------------------------+------------------------------------+
| aGroupPerfCurr1DayUAS | gBondPortPmCur1DayIntervalUAS |
+--------------------------------+------------------------------------+
| aGroupPerfThreshold1DayES | gBondPortPmTcaProfileThresh1DayES |
+--------------------------------+------------------------------------+
| aGroupPerfThreshold1DaySES | gBondPortPmTcaProfileThresh1DaySES |
+--------------------------------+------------------------------------+
| aGroupPerfThreshold1DayUAS | gBondPortPmTcaProfileThresh1DayUAS |
+--------------------------------+------------------------------------+
| nGroupPerfTca1DayES | gBondPmTca1DayESCrossing |
+--------------------------------+------------------------------------+
| nGroupPerfTca1DaySES | gBondPmTca1DaySESCrossing |
+--------------------------------+------------------------------------+
| nGroupPerfTca1DayUAS | gBondPmTca1DayUASCrossing |
+--------------------------------+------------------------------------+
| aGroupPerf15MinIntervalNumber | gBondPortPm15MinIntervalIndex |
+--------------------------------+------------------------------------+
| aGroupPerf15MinIntervalValid | gBondPortPm15MinIntervalValid |
+--------------------------------+------------------------------------+
| aGroupPerf15MinIntervalES | gBondPortPm15MinIntervalES |
+--------------------------------+------------------------------------+
| aGroupPerf15MinIntervalSES | gBondPortPm15MinIntervalSES |
+--------------------------------+------------------------------------+
| aGroupPerf15MinIntervalUAS | gBondPortPm15MinIntervalUAS |
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalNumber | gBondPortPm1DayIntervalIndex |
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalValid | gBondPortPm1DayIntervalValid |
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalMoniSecs | gBondPortPm1DayIntervalMoniTime |
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalES | gBondPortPm1DayIntervalES |
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalSES | gBondPortPm1DayIntervalSES |
+--------------------------------+------------------------------------+
+--------------------------------+------------------------------------+
| aGroupPerf1DayIntervalUAS | gBondPortPm1DayIntervalUAS |
+--------------------------------+------------------------------------+
| oLine - Basic Package | |
| (Mandatory) | |
+--------------------------------+------------------------------------+
| aLineID | ifIndex (IF-MIB) |
+--------------------------------+------------------------------------+
| aLineType | ifType (IF-MIB) |
+--------------------------------+------------------------------------+
| aLineOperState | ifOperStatus (IF-MIB) |
+--------------------------------+------------------------------------+
| aLineStatus | *dsl*CurrStatus (*DSL-LINE-MIB) |
+--------------------------------+------------------------------------+
| aLineEnd | *dsl*Side (*DSL-LINE-MIB) |
+--------------------------------+------------------------------------+
| aLineAdminState | ifAdminStatus (IF-MIB) |
+--------------------------------+------------------------------------+
| aLineRemoteDiscoveryCode | gBondBceConfRemoteDiscoveryCode |
+--------------------------------+------------------------------------+
| aLineUpDownEnable | ifLinkUpDownTrapEnable (IF-MIB) |
+--------------------------------+------------------------------------+
Okay bestie, the mapping table isn't done yet ๐ Here's the last bit of Table 2, the TR-159 to MIB cheat sheet, and then we're officially in Section 6 ๐
+--------------------------------+------------------------------------+
| nLineUp | LinkUp (IF-MIB) |
+--------------------------------+------------------------------------+
| nLineDown | LinkDown (IF-MIB) |
+--------------------------------+------------------------------------+
| oChannel - Basic Package | |
| (Mandatory) | |
+--------------------------------+------------------------------------+
| aChannelID | ifIndex (IF-MIB) |
+--------------------------------+------------------------------------+
| aChannelGroupID | |
+--------------------------------+------------------------------------+
| aChannelType | ifType (IF-MIB) |
+--------------------------------+------------------------------------+
| aChannelOperState | ifOperStatus (IF-MIB) |
+--------------------------------+------------------------------------+
| aChannelStatus | *dsl*CurrStatus (*DSL-LINE-MIB), |
| | xdsl2ChStatus*Status |
| | (VDSL2-LINE-MIB) |
+--------------------------------+------------------------------------+
Table 2: Mapping of TR-159 Managed Objects ๐ฆ
6. xDSL Multi-Pair Bonding MIB Definitions โจ
The GBOND-MIB module is where the actual goodies live ๐ง It IMPORTS a bunch of stuff from other MIB modules, which is basically borrowing their best outfits: SNMPv2-SMI [RFC2578], SNMPv2-TC [RFC2579], SNMPv2-CONF [RFC2580], SNMP-FRAMEWORK-MIB [RFC3411], IF-MIB [RFC2863], and HC-PerfHist-TC-MIB [RFC3705]. The module is structured the way [RFC4181] recommends, so it's giving organized ๐๐
Here's the full module, copied exactly as written:
GBOND-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-TYPE,
NOTIFICATION-TYPE,
mib-2,
Unsigned32,
Gauge32
FROM SNMPv2-SMI -- RFC 2578
TEXTUAL-CONVENTION,
TruthValue,
RowStatus,
PhysAddress
FROM SNMPv2-TC -- RFC 2579
MODULE-COMPLIANCE,
OBJECT-GROUP,
NOTIFICATION-GROUP
FROM SNMPv2-CONF -- RFC 2580
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB -- RFC 3411
ifIndex
FROM IF-MIB -- RFC 2863
HCPerfCurrentCount,
HCPerfIntervalCount,
HCPerfIntervalThreshold,
HCPerfValidIntervals,
HCPerfInvalidIntervals,
HCPerfTimeElapsed,
HCPerfTotalCount
FROM HC-PerfHist-TC-MIB -- RFC 3705
IANAgBondScheme,
IANAgBondSchemeList
FROM IANA-GBOND-TC-MIB
;
------------------------------------------------------------------------
gBondMIB MODULE-IDENTITY
LAST-UPDATED "201302200000Z" -- 20 February 2013
ORGANIZATION "IETF ADSL MIB Working Group"
CONTACT-INFO
"WG charter:
http://datatracker.ietf.org/wg/adslmib/charter/
Mailing Lists:
General Discussion: adslmib@ietf.org
To Subscribe: adslmib-request@ietf.org
In Body: subscribe your_email_address
Chair: Menachem Dodge
Postal: ECI Telecom, Ltd.
30 Hasivim St.
Petach-Tikva 4951169
Israel
Phone: +972-3-926-8421
EMail: menachemdodge1@gmail.com
Editor: Edward Beili
Postal: Actelis Networks, Inc.
25 Bazel St., P.O.B. 10173
Petach-Tikva 49103
Israel
Phone: +972-3-924-3491
EMail: edward.beili@actelis.com
Editor: Moti Morgenstern
Postal: ECI Telecom
30 Hasivim St.
Petach-Tikva 4951169
Israel
Phone: +972-3-926-6258
EMail: moti.morgenstern@ecitele.com"
DESCRIPTION
"The objects in this MIB module are used to manage the
multi-pair bonded xDSL interfaces, as defined in ITU-T
Recommendations G.998.1, G.998.2, and G.998.3.
This MIB module MUST be used in conjunction with a bonding
scheme-specific MIB module, that is, G9981-MIB, G9982-MIB,
or G9983-MIB.
The following references are used throughout this MIB module:
[G.998.1] refers to:
ITU-T Recommendation G.998.1: 'ATM-based multi-pair bonding',
January 2005.
[G.998.2] refers to:
ITU-T Recommendation G.998.2: 'Ethernet-based multi-pair
bonding', January 2005.
[G.998.3] refers to:
ITU-T Recommendation G.998.3: 'Multi-pair bonding using
time-division inverse multiplexing', January 2005.
[TR-159] refers to:
Broadband Forum Technical Report: 'Management Framework for
xDSL Bonding', December 2008.
Naming Conventions:
BCE - Bonding Channel Entity
BTU - Bonding Terminating Unit
BTU-C - Bonding Terminating Unit, CO side
BTU-R - Bonding Terminating Unit, Remote Terminal (CPE) side
CO - Central Office
CPE - Customer Premises Equipment
GBS - Generic Bonding Sub-layer
PM - Performance Monitoring
SNR - Signal to Noise Ratio
TCA - Threshold Crossing Alert
Copyright (c) 2013 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license
terms contained in, the Simplified BSD License set forth in Section
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info)."
REVISION "201302200000Z" -- 20 February 2013
DESCRIPTION "Initial version, published as RFC 6765."
::= { mib-2 211 }
-- Sections of the module
-- Structured as recommended by RFC 4181, Appendix D
gBondObjects OBJECT IDENTIFIER ::= { gBondMIB 1 }
gBondConformance OBJECT IDENTIFIER ::= { gBondMIB 2 }
-- Groups in the module
gBondPort OBJECT IDENTIFIER ::= { gBondObjects 1 }
gBondBce OBJECT IDENTIFIER ::= { gBondObjects 2 }
-- Textual Conventions
GBondPm1DayIntervalThreshold ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"This textual convention defines a range of values that may be
set in a fault threshold alarm control for a 1-day Performance
Monitoring interval.
As the number of seconds in a 1-day interval numbers at most
86400, objects of this type may have a range of 0...86400,
where the value of 0 disables the alarm."
SYNTAX Unsigned32 (0..86400)
-- Port Notifications group
gBondPortNotifications OBJECT IDENTIFIER ::= { gBondPort 0 }
gBondLowUpRateCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortStatUpDataRate,
gBondPortConfThreshLowUpRate
}
STATUS current
DESCRIPTION
"This notification indicates that the G.Bond port's upstream
data rate has reached/dropped below or exceeded the low
upstream rate threshold, specified by
gBondPortConfThreshLowUpRate.
This notification MAY be sent for the -O subtype ports
while the port is 'up', on the crossing event in both
directions: from normal (rate is above the threshold) to low
(rate equals the threshold or is below it) and from low to
normal. This notification is not applicable to the -R
subtypes.
It is RECOMMENDED that a small debouncing period of 2.5 sec,
between the detection of the condition and notification,
be implemented to prevent simultaneous LinkUp/LinkDown and
gBondLowUpRateCrossing notifications from being sent.
The adaptive nature of the G.Bond technology allows the port
to adapt itself to the changes in the copper environment;
e.g., an impulse noise, alien crosstalk, or a
micro-interruption may temporarily drop one or more BCEs in
the aggregation group, causing a rate degradation of the
aggregated G.Bond link. The dropped BCEs would then try to
re-initialize, possibly at a lower rate than before, adjusting
the rate to provide the required target SNR margin.
Generation of this notification is controlled by the
gBondPortConfLowRateCrossingEnable object.
This object maps to the TR-159 notification
nGroupLowUpRateCrossing."
REFERENCE
"[TR-159], Section 5.5.1.24"
::= { gBondPortNotifications 1 }
gBondLowDnRateCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortStatDnDataRate,
gBondPortConfThreshLowDnRate
}
STATUS current
DESCRIPTION
"This notification indicates that the G.Bond port's downstream
data rate has reached/dropped below or exceeded the low
downstream rate threshold, specified by
gBondPortConfThreshLowDnRate.
This notification MAY be sent for the -O subtype ports
while the port is 'up', on the crossing event in both
directions: from normal (rate is above the threshold) to low
(rate equals the threshold or is below it) and from low to
normal. This notification is not applicable to the -R
subtypes.
It is RECOMMENDED that a small debouncing period of 2.5 sec,
between the detection of the condition and notification,
be implemented to prevent simultaneous LinkUp/LinkDown and
gBondLowDnRateCrossing notifications from being sent.
The adaptive nature of the G.Bond technology allows the port
to adapt itself to the changes in the copper environment;
e.g., an impulse noise, alien crosstalk, or a
micro-interruption may temporarily drop one or more BCEs in
the aggregation group, causing a rate degradation of the
aggregated G.Bond link. The dropped BCEs would then try to
re-initialize, possibly at a lower rate than before,
adjusting the rate to provide the required target SNR margin.
Generation of this notification is controlled by the
gBondPortConfLowRateCrossingEnable object.
This object maps to the TR-159 notification
nGroupLowDownRateCrossing."
REFERENCE
"[TR-159], Section 5.5.1.25"
::= { gBondPortNotifications 2}
gBondPmTca15MinESCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur15MinES,
gBondPortPmTcaProfileThresh15MinES
}
STATUS current
DESCRIPTION
"This notification indicates that the Errored Seconds threshold,
specified by gBondPortPmTcaProfileThresh15MinES, has been
reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh15MinES objects.
This object maps to the TR-159 notification
nGroupPerfTca15MinES."
REFERENCE
"[TR-159], Section 5.5.1.42"
::= { gBondPortNotifications 3}
gBondPmTca15MinSESCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur15MinSES,
gBondPortPmTcaProfileThresh15MinSES
}
STATUS current
DESCRIPTION
"This notification indicates that the Severely Errored Seconds
threshold, specified by gBondPortPmTcaProfileThresh15MinSES,
has been reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh15MinSES objects.
This object maps to the TR-159 notification
nGroupPerfTca15MinSES."
REFERENCE
"[TR-159], Section 5.5.1.43"
::= { gBondPortNotifications 4}
The notification blocks above are the big ones: the low upstream and downstream rate crossings, plus the 15-minute ES and SES threshold crossings, all wired up under gBondPortNotifications ๐๐ธ
okay bestie, we're deep in the MIB now ๐ these first four blocks are the notifications, the little alarms that fire when a port's counters cross a threshold ๐จ and the config table starts right after ๐
gBondPmTca15MinUASCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur15MinUAS,
gBondPortPmTcaProfileThresh15MinUAS
}
STATUS current
DESCRIPTION
"This notification indicates that the Unavailable Seconds
threshold, specified by gBondPortPmTcaProfileThresh15MinUAS,
has been reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh15MinUAS objects.
This object maps to the TR-159 notification
nGroupPerfTca15MinUAS."
REFERENCE
"[TR-159], Section 5.5.1.44"
::= { gBondPortNotifications 5}
gBondPmTca1DayESCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur1DayES,
gBondPortPmTcaProfileThresh1DayES
}
STATUS current
DESCRIPTION
"This notification indicates that the Errored Seconds threshold,
specified by gBondPortPmTcaProfileThresh1DayES, has been
reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh1DayES objects.
This object maps to the TR-159 notification
nGroupPerfTca1DayES."
REFERENCE
"[TR-159], Section 5.5.1.54"
::= { gBondPortNotifications 6}
gBondPmTca1DaySESCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur1DaySES,
gBondPortPmTcaProfileThresh1DaySES
}
STATUS current
DESCRIPTION
"This notification indicates that the Severely Errored Seconds
threshold, specified by gBondPortPmTcaProfileThresh1DaySES,
has been reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh1DaySES objects.
This object maps to the TR-159 notification
nGroupPerfTca1DaySES."
REFERENCE
"[TR-159], Section 5.5.1.55"
::= { gBondPortNotifications 7}
gBondPmTca1DayUASCrossing NOTIFICATION-TYPE
OBJECTS {
-- ifIndex is not needed here, since we are under specific GBS
gBondPortPmCur1DayUAS,
gBondPortPmTcaProfileThresh1DayUAS
}
STATUS current
DESCRIPTION
"This notification indicates that the Unavailable Seconds
threshold, specified by gBondPortPmTcaProfileThresh1DayUAS,
has been reached or exceeded for the GBS port.
Generation of this notification is controlled by the
gBondPortConfPmTcaEnable and
gBondPortPmTcaProfileThresh1DayUAS objects.
This object maps to the TR-159 notification
nGroupPerfTca1DayUAS."
REFERENCE
"[TR-159], Section 5.5.1.56"
::= { gBondPortNotifications 8}
now the G.Bond Port (GBS) group ๐ธ this is where the config table lives, and it's all about setting up each port just right ๐ง
-- G.Bond Port (GBS) group
gBondPortConfTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table for configuration of G.Bond GBS ports. Entries in this
table MUST be maintained in a persistent manner."
::= { gBondPort 1 }
gBondPortConfEntry OBJECT-TYPE
SYNTAX GBondPortConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port Configuration table.
Each entry represents a G.Bond port indexed by the ifIndex.
Note that a G.Bond GBS port runs on top of a single
or multiple BCE port(s), which are also indexed by the ifIndex."
INDEX { ifIndex }
::= { gBondPortConfTable 1 }
GBondPortConfEntry ::=
SEQUENCE {
gBondPortConfAdminScheme IANAgBondScheme,
gBondPortConfPeerAdminScheme IANAgBondScheme,
gBondPortConfDiscoveryCode PhysAddress,
gBondPortConfTargetUpDataRate Unsigned32,
gBondPortConfTargetDnDataRate Unsigned32,
gBondPortConfThreshLowUpRate Unsigned32,
gBondPortConfThreshLowDnRate Unsigned32,
gBondPortConfLowRateCrossingEnable TruthValue,
gBondPortConfPmTcaConfProfile SnmpAdminString,
gBondPortConfPmTcaEnable TruthValue
}
gBondPortConfAdminScheme OBJECT-TYPE
SYNTAX IANAgBondScheme
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A desired bonding scheme for a G.Bond GBS port.
The following values instruct the port to use the corresponding
bonding scheme if supported:
none(0) - instructs the port not to use bonding
(only on a single-BCE G.998.2 GBS)
g9981(1) - instructs the port to use G.998.1 bonding
g9982(2) - instructs the port to use G.998.2 bonding
g9983(3) - instructs the port to use G.998.3 bonding
Changing of the gBondPortConfAdminScheme object MUST be
performed when the link is administratively 'down', as indicated
by the ifAdminStatus object in the IF-MIB.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), if the link is 'up' or
initializing. Attempts to change this object to an unsupported
bonding scheme (see gBondPortCapSchemesSupported) SHALL be
rejected (in the case of SNMP, with the error wrongValue).
Setting this object to the value of 'none' must be rejected for
GBS ports with multiple BCEs (with the error inconsistentValue).
This object maps to the TR-159 attribute aGroupAdminBondScheme."
REFERENCE
"[TR-159], Section 5.5.1.6; RFC 2863, IF-MIB, ifAdminStatus"
::= { gBondPortConfEntry 1 }
gBondPortConfPeerAdminScheme OBJECT-TYPE
SYNTAX IANAgBondScheme
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A desired bonding scheme for a peer (link partner) G.Bond
port (GBS).
The following values instruct the peer port to use the
corresponding bonding scheme if supported:
none(0) - instructs the port not to use bonding
(only on a single-BCE G.998.2 GBS)
g9981(1) - instructs the port to use G.998.1 bonding
g9982(2) - instructs the port to use G.998.2 bonding
g9983(3) - instructs the port to use G.998.3 bonding
Changing of this object MUST be performed when the link is
administratively 'down', as indicated by the ifAdminStatus
object in the IF-MIB.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), if the link is 'up' or
initializing. Attempts to change this object to an unsupported
bonding scheme (see gBondPortCapPeerSchemesSupported) SHALL be
rejected (in the case of SNMP, with the error wrongValue).
Setting this object to the value of 'none' must be rejected for
GBS ports with multiple BCEs (with the error inconsistentValue).
This object maps to the TR-159 attribute
aGroupPeerAdminBondScheme."
REFERENCE
"[TR-159], Section 5.5.1.7; RFC 2863, IF-MIB, ifAdminStatus"
::= { gBondPortConfEntry 2 }
gBondPortConfDiscoveryCode OBJECT-TYPE
SYNTAX PhysAddress (SIZE (6))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A discovery code of the G.Bond port (GBS).
A unique 6-octet-long code used by the Discovery function.
This object MUST be instantiated for the -O subtype GBS before
write operations on the gBondBceConfRemoteDiscoveryCode
(Set_if_Clear and Clear_if_Same) are performed by BCEs
associated with the GBS.
The initial value of this object for -R subtype ports after
reset is all zeroes. For -R subtype ports, the value of this
object cannot be changed directly. This value may be changed
as a result of a write operation on the
gBondBceConfRemoteDiscoveryCode object of a remote BCE of -O
subtype, connected to one of the local BCEs associated with
the GBS.
Discovery MUST be performed when the link is administratively
'down', as indicated by the ifAdminStatus object in the IF-MIB.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), if the link is 'up' or
initializing.
This object maps to the TR-159 attribute
aGroupDiscoveryCode."
REFERENCE
"[TR-159], Section 5.5.1.20; [802.3], Sections 61.2.2.8.3,
61.2.2.8.4, 45.2.6.6.1, 45.2.6.8, 61A.2;
RFC 2863, IF-MIB, ifAdminStatus"
::= { gBondPortConfEntry 3 }
gBondPortConfTargetUpDataRate OBJECT-TYPE
SYNTAX Unsigned32 (0|1..10000000)
UNITS "Kbps"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A desired G.Bond port data rate in the upstream direction,
in Kbps, to be achieved during initialization, under
restrictions placed upon the member BCEs by their respective
configuration settings.
This object represents a sum of individual BCE upstream data
rates, modified to compensate for fragmentation and
encapsulation overhead (e.g., for an Ethernet service, the
target data rate of 10 Mbps SHALL allow lossless transmission
of full-duplex 10-Mbps Ethernet frame stream with minimal
inter-frame gap).
Note that the target upstream data rate may not be achieved
during initialization (e.g., due to unavailability of required
BCEs) or the initial bandwidth could deteriorate, so that the
actual upstream data rate (gBondPortStatUpDataRate) could be less
than gBondPortConfTargetUpDataRate.
The value is limited above by 10 Gbps, to accommodate very
high speed bonded xDSL interfaces (e.g., 32 x 100 Mbps).
The value between 1 and 10000000 indicates that the total
upstream data rate of the G.Bond port after initialization
SHALL be equal to the target data rate or less, if the target
upstream data rate cannot be achieved under the restrictions
configured for BCEs. In cases where the copper environment
allows a higher upstream data rate to be achieved than that
specified by this object, the excess capability SHALL be
either converted to an additional SNR margin or reclaimed by
minimizing transmit power.
The value of 0 means that the target data rate is not
fixed and SHALL be set to the maximum attainable rate during
initialization (best effort), under specified spectral
restrictions and with a desired SNR margin per BCE.
This object is read-write for the -O subtype G.Bond ports.
It is irrelevant for the -R subtypes -- attempts to read or
change this object for such ports MUST be rejected (in the case
of SNMP, with the error inconsistentValue).
Changing of the target upstream data rate MUST be performed
when the link is administratively 'down', as indicated by the
ifAdminStatus object in the IF-MIB.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), if the link is 'up' or
initializing.
This object maps to the TR-159 attribute aGroupTargetUpRate."
REFERENCE
"[TR-159], Section 5.5.1.17; RFC 2863, IF-MIB, ifAdminStatus"
::= { gBondPortConfEntry 4 }
Okay bestie, the target data rate is the main character of this part ๐ It's the speed you're aiming for during initialization, and it's giving very "set your goals and then actually hit them" ๐
gBondPortConfTargetDnDataRate OBJECT-TYPE
SYNTAX Unsigned32 (0|1..10000000)
UNITS "Kbps"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A desired G.Bond port data rate in the downstream direction,
in Kbps, to be achieved during initialization, under
restrictions placed upon the member BCEs by their respective
configuration settings.
This object represents a sum of individual BCE downstream data
rates, modified to compensate for fragmentation and
encapsulation overhead (e.g., for an Ethernet service, the
target data rate of 10 Mbps SHALL allow lossless transmission
of full-duplex 10-Mbps Ethernet frame stream with minimal
inter-frame gap).
Note that the target downstream data rate may not be achieved
during initialization (e.g., due to unavailability of required
BCEs) or the initial bandwidth could deteriorate, so that the
actual downstream data rate (gBondPortStatDnDataRate) could be
less than gBondPortConfTargetDnDataRate.
The value is limited above by 10 Gbps, to accommodate very
high speed bonded xDSL interfaces (e.g., 32 x 100 Mbps).
The value between 1 and 10000000 indicates that the total
downstream data rate of the G.Bond port after initialization
SHALL be equal to the target data rate or less, if the target
downstream data rate cannot be achieved under the restrictions
configured for BCEs. In cases where the copper environment
allows a higher downstream data rate to be achieved than that
specified by this object, the excess capability SHALL be
either converted to an additional SNR margin or reclaimed by
minimizing transmit power.
The value of 0 means that the target data rate is not
fixed and SHALL be set to the maximum attainable rate during
initialization (best effort), under specified spectral
restrictions and with a desired SNR margin per BCE.
This object is read-write for the -O subtype G.Bond ports.
It is irrelevant for the -R subtypes -- attempts to read or
change this object for such ports MUST be rejected (in the case
of SNMP, with the error inconsistentValue).
Changing of the target downstream data rate MUST be performed
when the link is administratively 'down', as indicated by the
ifAdminStatus object in the IF-MIB.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), if the link is 'up' or
initializing.
This object maps to the TR-159 attribute aGroupTargetDownRate."
REFERENCE
"[TR-159], Section 5.5.1.18; RFC 2863, IF-MIB, ifAdminStatus"
::= { gBondPortConfEntry 5 }
Next up are the low rate threshold alarms ๐จ Think of them as your little "heads up, something's dipping" pings. They're only allowed to go off if the enable switch is on, so no surprise notifications, bestie ๐
gBondPortConfThreshLowUpRate OBJECT-TYPE
SYNTAX Unsigned32 (1..10000000)
UNITS "Kbps"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object configures the G.Bond port low upstream rate
crossing alarm threshold. When the current value of
gBondPortStatUpDataRate for this port reaches/drops below or
exceeds this threshold, a gBondLowUpRateCrossing notification
MAY be generated if enabled by
gBondPortConfLowRateCrossingEnable.
This object is read-write for the -O subtype G.Bond ports.
It is irrelevant for the -R subtypes -- attempts to read or
change this object for such ports MUST be rejected (in the case
of SNMP, with the error inconsistentValue).
This object maps to the TR-159 attribute
aGroupthreshLowUpRate."
REFERENCE
"[TR-159], Section 5.5.1.21"
::= { gBondPortConfEntry 6 }
gBondPortConfThreshLowDnRate OBJECT-TYPE
SYNTAX Unsigned32 (1..10000000)
UNITS "Kbps"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object configures the G.Bond port low downstream rate
crossing alarm threshold. When the current value of
gBondPortStatDnDataRate for this port reaches/drops below or
exceeds this threshold, a gBondLowDnRateCrossing notification
MAY be generated if enabled by
gBondPortConfLowRateCrossingEnable.
This object is read-write for the -O subtype G.Bond ports.
It is irrelevant for the -R subtypes -- attempts to read or
change this object for such ports MUST be rejected (in the case
of SNMP, with the error inconsistentValue).
This object maps to the TR-159 attribute
aGroupThreshLowDownRate."
REFERENCE
"[TR-159], Section 5.5.1.22"
::= { gBondPortConfEntry 7 }
gBondPortConfLowRateCrossingEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether gBondLowUpRateCrossing and
gBondLowDnRateCrossing notifications should be generated
for this interface.
A value of true(1) indicates that the notifications are
enabled. A value of false(2) indicates that the notifications
are disabled.
This object is read-write for the -O subtype G.Bond ports.
It is irrelevant for the -R subtypes -- attempts to read or
change this object for such ports MUST be rejected (in the case
of SNMP, with the error inconsistentValue).
This object maps to the TR-159 attribute
aGroupLowRateCrossingEnable."
REFERENCE
"[TR-159], Section 5.5.1.23"
::= { gBondPortConfEntry 8 }
gBondPortConfPmTcaConfProfile OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (1..32))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The value of this object is the index of the row in the GBS
Port Alarm Configuration Profile table for Performance Monitoring
Threshold Crossing Alerts -- the gBondPortAlarmConfProfileTable,
which applies to this GBS port."
DEFVAL { "DEFVAL" }
::= { gBondPortConfEntry 9 }
gBondPortConfPmTcaEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether the gBondPerfTca*Crossing set of
notifications should be generated for this interface.
A value of true(1) indicates that the notifications are
enabled. A value of false(2) indicates that the notifications
are disabled.
This object maps to the TR-159 attribute aGroupPerfTcaEnable."
REFERENCE
"[TR-159], Section 5.5.1.38"
::= { gBondPortConfEntry 10 }
gBondPortCapTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortCapEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table for capabilities of G.Bond ports. Entries in this table
MUST be maintained in a persistent manner."
::= { gBondPort 2 }
gBondPortCapEntry OBJECT-TYPE
SYNTAX GBondPortCapEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port Capability table.
Each entry represents a G.Bond port indexed by the ifIndex.
Note that a G.Bond GBS port runs on top of a single
or multiple BCE port(s), which are also indexed by the ifIndex."
INDEX { ifIndex }
::= { gBondPortCapTable 1 }
GBondPortCapEntry ::=
SEQUENCE {
gBondPortCapSchemesSupported IANAgBondSchemeList,
gBondPortCapPeerSchemesSupported IANAgBondSchemeList,
gBondPortCapCapacity Unsigned32,
gBondPortCapPeerCapacity Unsigned32
}
gBondPortCapSchemesSupported OBJECT-TYPE
SYNTAX IANAgBondSchemeList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Bonding capability of the G.Bond port (GBS). This is a
read-only bitmap of the possible bonding schemes supported by
the GBS. The various bit positions are:
none(0) - GBS is capable of bonding bypass on a
single-BCE G.998.2 GBS
g9981(1) - GBS is capable of G.998.1 bonding
g9982(2) - GBS is capable of G.998.2 bonding
g9983(3) - GBS is capable of G.998.3 bonding
Note that for ports supporting multiple bonding schemes, the
actual administrative scheme is set via gBondPortConfAdminScheme
object. The current operating bonding scheme is reflected in
the gBondPortStatOperScheme object.
This object maps to the TR-159 attribute
aGroupBondSchemesSupported."
REFERENCE
"[TR-159], Section 5.5.1.2"
::= { gBondPortCapEntry 1 }
gBondPortCapPeerSchemesSupported OBJECT-TYPE
SYNTAX IANAgBondSchemeList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Bonding capability of the peer G.Bond port (GBS). This is a
read-only bitmap of the possible bonding schemes supported by
the link partner GBS. The various bit positions are:
none(0) - peer GBS does not support bonding, or
the peer unit could not be reached, or
peer GBS is capable of bonding bypass on a
single-BCE G.998.2 GBS
g9981(1) - peer GBS is capable of G.998.1 bonding
g9982(2) - peer GBS is capable of G.998.2 bonding
g9983(3) - peer GBS is capable of G.998.3 bonding
Note that for ports supporting multiple bonding schemes, the
actual administrative scheme is set via the
gBondPortConfPeerAdminScheme object. The current operating
bonding scheme is reflected in the gBondPortStatPeerOperScheme
object.
This object maps to the TR-159 attribute
aGroupPeerBondSchemesSupported."
REFERENCE
"[TR-159], Section 5.5.1.3"
::= { gBondPortCapEntry 2 }
gBondPortCapCapacity OBJECT-TYPE
SYNTAX Unsigned32 (1..32)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of BCEs that can be aggregated by the local GBS.
The number of BCEs currently assigned to a particular G.Bond
port (gBondPortStatNumBCEs) is never greater than
gBondPortCapCapacity.
This object maps to the TR-159 attribute aGroupCapacity."
REFERENCE
"[TR-159], Section 5.5.1.12"
::= { gBondPortCapEntry 3 }
gBondPortCapPeerCapacity OBJECT-TYPE
SYNTAX Unsigned32 (0|1..32)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of BCEs that can be aggregated by the peer GBS port.
A value of 0 is returned when peer Bonding capacity is unknown
(peer cannot be reached).
This object maps to the TR-159 attribute aGroupPeerCapacity."
REFERENCE
"[TR-159], Section 5.5.1.13"
::= { gBondPortCapEntry 4 }
gBondPortStatTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table provides overall status information of G.Bond
ports, complementing the generic status information from the
ifTable of the IF-MIB. Additional status information about
connected BCEs is available from the relevant line MIBs.
This table contains live data from the equipment. As such,
it is NOT persistent."
::= { gBondPort 3 }
gBondPortStatEntry OBJECT-TYPE
SYNTAX GBondPortStatEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port Status table.
Each entry represents a G.Bond port indexed by the ifIndex.
Note that a G.Bond GBS port runs on top of a single
or multiple BCE port(s), which are also indexed by the ifIndex."
INDEX { ifIndex }
::= { gBondPortStatTable 1 }
โจ okay that's the whole vibe for this chunk!! the capability and status tables are the iconic bits ๐ฆ
Okay bestie, the MIB module is still going strong, so let's keep the gBondPort stats rolling ๐ โจ
GBondPortStatEntry ::=
SEQUENCE {
gBondPortStatOperScheme IANAgBondScheme,
gBondPortStatPeerOperScheme IANAgBondScheme,
gBondPortStatUpDataRate Gauge32,
gBondPortStatDnDataRate Gauge32,
gBondPortStatFltStatus BITS,
gBondPortStatSide INTEGER,
gBondPortStatNumBCEs Unsigned32
}
gBondPortStatOperScheme OBJECT-TYPE
SYNTAX IANAgBondScheme
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current operating bonding scheme of a G.Bond port.
The possible values are:
none(0) - bonding bypass on a single-BCE G.998.2 GBS
g9981(1) - G.998.1 bonding
g9982(2) - G.998.2 bonding
g9983(3) - G.998.3 bonding
This object maps to the TR-159 attribute
aGroupOperBondScheme."
REFERENCE
"[TR-159], Section 5.5.1.4"
::= { gBondPortStatEntry 1 }
gBondPortStatPeerOperScheme OBJECT-TYPE
SYNTAX IANAgBondScheme
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current operating bonding scheme of a G.Bond port link partner.
The possible values are:
unknown(0) - peer cannot be reached due to the link state or
bonding bypass on a single-BCE G.998.2 GBS
g9981(1) - G.998.1 bonding
g9982(2) - G.998.2 bonding
g9983(3) - G.998.3 bonding
This object maps to the TR-159 attribute
aGroupPeerOperBondScheme."
REFERENCE
"[TR-159], Section 5.5.1.5"
::= { gBondPortStatEntry 2 }
gBondPortStatUpDataRate OBJECT-TYPE
SYNTAX Gauge32
UNITS "bps"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A current G.Bond port operational data rate in the upstream
direction, in bps.
This object represents an estimation of the sum of individual
BCE upstream data rates, modified to compensate for
fragmentation and encapsulation overhead (e.g., for an
Ethernet service, the target data rate of 10 Mbps SHALL allow
lossless transmission of full-duplex 10-Mbps Ethernet frame
stream with minimal inter-frame gap).
Note that for symmetrical interfaces, gBondPortStatUpDataRate ==
gBondPortStatDnDataRate == ifSpeed.
This object maps to the TR-159 attribute aGroupUpRate."
REFERENCE
"[TR-159], Section 5.5.1.15"
::= { gBondPortStatEntry 3 }
gBondPortStatDnDataRate OBJECT-TYPE
SYNTAX Gauge32
UNITS "bps"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A current G.Bond port operational data rate in the downstream
direction, in bps.
This object represents an estimation of the sum of individual
BCE downstream data rates, modified to compensate for
fragmentation and encapsulation overhead (e.g., for an
Ethernet service, the target data rate of 10 Mbps SHALL allow
lossless transmission of full-duplex 10-Mbps Ethernet frame
stream with minimal inter-frame gap).
Note that for symmetrical interfaces, gBondPortStatUpDataRate ==
gBondPortStatDnDataRate == ifSpeed.
This object maps to the TR-159 attribute aGroupDownRate."
REFERENCE
"[TR-159], Section 5.5.1.16"
::= { gBondPortStatEntry 4 }
gBondPortStatFltStatus OBJECT-TYPE
SYNTAX BITS {
noPeer(0),
peerPowerLoss(1),
peerBondSchemeMismatch(2),
bceSubTypeMismatch(3),
lowRate(4),
init(5),
ready(6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"G.Bond (GBS) port fault status. This is a bitmap of possible
conditions. The various bit positions are:
noPeer - Peer GBS cannot be reached (e.g.,
no BCEs attached, all BCEs are
'down', etc.).
peerPowerLoss - Peer GBS has indicated impending unit
failure due to loss of local power
('Dying Gasp').
peerBondSchemeMismatch - Operating bonding scheme of a peer
GBS is different from the local one.
bceSubTypeMismatch - Local BCEs in the aggregation group
are not of the same sub-type, e.g.,
some BCEs in the local device are -O
while others are -R subtype.
lowRate - gBondUpRate/gBondDnRate of the port
has reached or dropped below
gBondPortConfThreshLowUpRate/
gBondPortConfThreshLowDnRate.
init - The link is initializing, as a result
of ifAdminStatus being set to 'up'
for a particular BCE or a GBS
to which the BCE is connected.
ready - At least one BCE in the aggregation
group is detecting handshake tones.
This object is intended to supplement the ifOperStatus object
in the IF-MIB.
This object maps to the TR-159 attribute aGroupStatus."
REFERENCE
"[TR-159], Section 5.5.1.9; RFC 2863, IF-MIB, ifOperStatus"
::= { gBondPortStatEntry 5 }
gBondPortStatSide OBJECT-TYPE
SYNTAX INTEGER {
subscriber(1),
office(2),
unknown(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"G.Bond port mode of operation (subtype).
The value of 'subscriber' indicates that the port is
designated as '-R' subtype (all BCEs assigned to this port are of
subtype '-R').
The value of 'office' indicates that the port is designated
as '-O' subtype (all BCEs assigned to this port are of
subtype '-O').
The value of 'unknown' indicates that the port has no assigned
BCEs yet or that the assigned BCEs are not of the same side
(subTypeBCEMismatch).
This object maps to the TR-159 attribute aGroupEnd."
REFERENCE
"[TR-159], Section 5.5.1.11"
::= { gBondPortStatEntry 6 }
gBondPortStatNumBCEs OBJECT-TYPE
SYNTAX Unsigned32 (0..32)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of BCEs that are currently aggregated by the local GBS
(assigned to the G.Bond port using the ifStackTable).
This number is never greater than gBondPortCapCapacity.
This object SHALL be automatically incremented or decremented
when a BCE is added or deleted to/from the G.Bond port using
the ifStackTable.
This object maps to the TR-159 attribute aGroupNumChannels."
REFERENCE
"[TR-159], Section 5.5.1.14"
::= { gBondPortStatEntry 7 }
Next up is the performance monitoring group, which is where the ES, SES, and UAS counters live โจ๐
-- Performance Monitoring group
gBondPortPM OBJECT IDENTIFIER ::= { gBondPort 4 }
gBondPortPmCurTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortPmCurEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains current Performance Monitoring (PM)
information for a GBS port. This table contains live data from
the equipment and as such is NOT persistent."
::= { gBondPortPM 1 }
gBondPortPmCurEntry OBJECT-TYPE
SYNTAX GBondPortPmCurEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port PM table.
Each entry represents a G.Bond port indexed by the ifIndex.
Note that a G.Bond GBS port runs on top of a single
or multiple BCE port(s), which are also indexed by the ifIndex."
INDEX { ifIndex }
::= { gBondPortPmCurTable 1 }
GBondPortPmCurEntry ::=
SEQUENCE {
gBondPortPmCurES HCPerfTotalCount,
gBondPortPmCurSES HCPerfTotalCount,
gBondPortPmCurUAS HCPerfTotalCount,
gBondPortPmCur15MinValidIntervals HCPerfValidIntervals,
gBondPortPmCur15MinInvalidIntervals HCPerfInvalidIntervals,
gBondPortPmCur15MinTimeElapsed HCPerfTimeElapsed,
gBondPortPmCur15MinES HCPerfCurrentCount,
gBondPortPmCur15MinSES HCPerfCurrentCount,
gBondPortPmCur15MinUAS HCPerfCurrentCount,
gBondPortPmCur1DayValidIntervals Unsigned32,
gBondPortPmCur1DayInvalidIntervals Unsigned32,
gBondPortPmCur1DayTimeElapsed HCPerfTimeElapsed,
gBondPortPmCur1DayES HCPerfCurrentCount,
gBondPortPmCur1DaySES HCPerfCurrentCount,
gBondPortPmCur1DayUAS HCPerfCurrentCount
}
gBondPortPmCurES OBJECT-TYPE
SYNTAX HCPerfTotalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Errored Seconds (ES) on the GBS since the BTU was
last restarted.
An Errored Second for a G.998.x interface is defined as a count
of 1-second intervals during which one or more GBS errors are
declared. The errors are specific for each bonding scheme, e.g.,
- lost cells for the ATM bonding
- lost or discarded (due to an error or a buffer overflow)
fragments for the Ethernet bonding
- CRC-4, CRC-6, or CRC-8 errors for the TDIM bonding
This object is inhibited during Unavailable Seconds (UAS).
This object maps to the TR-159 attribute aGroupPerfES."
REFERENCE
"[TR-159], Section 5.5.1.29"
::= { gBondPortPmCurEntry 1 }
gBondPortPmCurSES OBJECT-TYPE
SYNTAX HCPerfTotalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Severely Errored Seconds (SES) on the GBS
since the BTU was last restarted.
A Severely Errored Second for a G.998.x interface is defined as
a count of 1-second intervals during which GBS errors cause at
least 1% traffic loss of the nominal bonded link rate or at
least 12 ms for the TDM traffic. The exact definition is
specific for each bonding scheme, e.g.,
- 234 lost cells for the ATM bonding with 10-Mbps nominal link
rate
- 60 lost/discarded fragments for the Ethernet bonding with
10-Mbps nominal link rate and fixed 192-byte-long fragment
size
- 6 or more CRC-4 errors, one or more CRC-6 errors, or one or
more CRC-8 errors for the TDM bonding
This object is inhibited during Unavailable Seconds (UAS).
This object maps to the TR-159 attribute aGroupPerfSES."
REFERENCE
"[TR-159], Section 5.5.1.30"
::= { gBondPortPmCurEntry 2 }
gBondPortPmCurUAS OBJECT-TYPE
SYNTAX HCPerfTotalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Unavailable Seconds (UAS) on the GBS since the BTU
was last restarted.
An Unavailable Second for a G.998.x interface is defined as a
count of 1-second intervals during which the bonded link is
unavailable. The G.998.x link becomes unavailable at the onset
of 10 contiguous SESs. The 10 SESs are included in the
unavailable time. Once unavailable, the G.998.x line becomes
available at the onset of 10 contiguous seconds with no SESs.
The 10 seconds with no SESs are excluded from the unavailable
time.
okay so the current-counter section is giving 15-minute and 1-day snapshots, and every single one of them maps back to TR-159 ๐
This object maps to the TR-159 attribute aGroupPerfUAS."
REFERENCE
"[TR-159], Section 5.5.1.31"
::= { gBondPortPmCurEntry 3 }
gBondPortPmCur15MinValidIntervals OBJECT-TYPE
SYNTAX HCPerfValidIntervals
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A number of 15-minute intervals for which data was collected.
The value of this object will be 96 or the maximum number of
15-minute history intervals collected by the implementation,
unless the measurement was (re)started recently, in which case
the value will be the number of complete 15-minute intervals
for which there are at least some data.
In certain cases, it is possible that some intervals are
unavailable. In this case, this object reports the maximum
interval number for which data is available.
This object maps to the TR-159 attribute
aGroupPerf15MinValidIntervals."
REFERENCE
"[TR-159], Section 5.5.1.32"
::= { gBondPortPmCurEntry 4 }
gBondPortPmCur15MinInvalidIntervals OBJECT-TYPE
SYNTAX HCPerfInvalidIntervals
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A number of 15-minute intervals for which data was not always
available. The value will typically be zero, except in cases
where the data for some intervals are not available.
This object maps to the TR-159 attribute
aGroupPerf15MinInvalidIntervals."
REFERENCE
"[TR-159], Section 5.5.1.33"
::= { gBondPortPmCurEntry 5 }
gBondPortPmCur15MinTimeElapsed OBJECT-TYPE
SYNTAX HCPerfTimeElapsed
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of seconds that have elapsed since the beginning of the
current 15-minute performance interval.
This object maps to the TR-159 attribute
aGroupPerfCurr15MinTimeElapsed."
REFERENCE
"[TR-159], Section 5.5.1.34"
::= { gBondPortPmCurEntry 6 }
gBondPortPmCur15MinES OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Errored Seconds (ES) on the GBS in the current
15-minute performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr15MinES."
REFERENCE
"[TR-159], Section 5.5.1.35"
::= { gBondPortPmCurEntry 7 }
gBondPortPmCur15MinSES OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Severely Errored Seconds (SES) on the GBS in the
current 15-minute performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr15MinSES."
REFERENCE
"[TR-159], Section 5.5.1.36"
::= { gBondPortPmCurEntry 8 }
gBondPortPmCur15MinUAS OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Unavailable Seconds (UAS) on the GBS in the current
15-minute performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr15MinUAS."
REFERENCE
"[TR-159], Section 5.5.1.37"
::= { gBondPortPmCurEntry 9 }
gBondPortPmCur1DayValidIntervals OBJECT-TYPE
SYNTAX Unsigned32 (0..7)
UNITS "days"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A number of 1-day intervals for which data was collected.
The value of this object will be 7 or the maximum number of
1-day history intervals collected by the implementation, unless
the measurement was (re)started recently, in which case the
value will be the number of complete 1-day intervals for which
there are at least some data.
In certain cases, it is possible that some intervals are
unavailable. In this case, this object reports the maximum
interval number for which data is available.
This object maps to the TR-159 attribute
aGroupPerf1DayValidIntervals."
REFERENCE
"[TR-159], Section 5.5.1.45"
::= { gBondPortPmCurEntry 10 }
gBondPortPmCur1DayInvalidIntervals OBJECT-TYPE
SYNTAX Unsigned32 (0..7)
UNITS "days"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A number of 1-day intervals for which data was not always
available. The value will typically be zero, except in cases
where the data for some intervals are not available.
This object maps to the TR-159 attribute
aGroupPerf1DayInvalidIntervals."
REFERENCE
"[TR-159], Section 5.5.1.46"
::= { gBondPortPmCurEntry 11 }
gBondPortPmCur1DayTimeElapsed OBJECT-TYPE
SYNTAX HCPerfTimeElapsed
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of seconds that have elapsed since the beginning of
the current 1-day performance interval.
This object maps to the TR-159 attribute
aGroupPerfCurr1DayTimeElapsed."
REFERENCE
"[TR-159], Section 5.5.1.47"
::= { gBondPortPmCurEntry 12 }
gBondPortPmCur1DayES OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Errored Seconds (ES) on the GBS in the current 1-day
performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr1DayES."
REFERENCE
"[TR-159], Section 5.5.1.48"
::= { gBondPortPmCurEntry 13 }
gBondPortPmCur1DaySES OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Severely Errored Seconds (SES) on the GBS in the
current 1-day performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr1DaySES."
REFERENCE
"[TR-159], Section 5.5.1.49"
::= { gBondPortPmCurEntry 14 }
gBondPortPmCur1DayUAS OBJECT-TYPE
SYNTAX HCPerfCurrentCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Unavailable Seconds (UAS) on the GBS in the current
1-day performance interval.
This object maps to the TR-159 attribute aGroupPerfCurr1DayUAS."
REFERENCE
"[TR-159], Section 5.5.1.50"
::= { gBondPortPmCurEntry 15 }
Next up is the history stuff, which is basically a logbook of past buckets ๐โจ The 15-minute table keeps up to 96 rows, and the 1-day table keeps up to 7, and both are lowkey demanding about persistence ๐
-- PM history: 15-min buckets
gBondPortPm15MinTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortPm15MinEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains historical 15-minute buckets of Performance
Monitoring information for a GBS port (a row for each 15-minute
interval, up to 96 intervals).
Entries in this table MUST be maintained in a persistent manner."
::= { gBondPortPM 2 }
gBondPortPm15MinEntry OBJECT-TYPE
SYNTAX GBondPortPm15MinEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port historical 15-minute PM table.
Each entry represents Performance Monitoring data for a GBS port,
indexed by the ifIndex, collected during a particular 15-minute
interval, indexed by the gBondPortPm15MinIntervalIndex."
INDEX { ifIndex, gBondPortPm15MinIntervalIndex }
::= { gBondPortPm15MinTable 1 }
GBondPortPm15MinEntry ::=
SEQUENCE {
gBondPortPm15MinIntervalIndex Unsigned32,
gBondPortPm15MinIntervalMoniTime HCPerfTimeElapsed,
gBondPortPm15MinIntervalES HCPerfIntervalCount,
gBondPortPm15MinIntervalSES HCPerfIntervalCount,
gBondPortPm15MinIntervalUAS HCPerfIntervalCount,
gBondPortPm15MinIntervalValid TruthValue
}
gBondPortPm15MinIntervalIndex OBJECT-TYPE
SYNTAX Unsigned32 (1..96)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Performance data interval number. 1 is the most recent
previous interval; interval 96 is 24 hours ago.
Intervals 2..96 are OPTIONAL.
This object maps to the TR-159 attribute
aGroupPerf15MinIntervalNumber."
REFERENCE
"[TR-159], Section 5.5.1.57"
::= { gBondPortPm15MinEntry 1 }
gBondPortPm15MinIntervalMoniTime OBJECT-TYPE
SYNTAX HCPerfTimeElapsed
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of seconds over which the performance data was actually
monitored. This value will be the same as the interval duration
(900 seconds), except in a situation where performance data
could not be collected for any reason."
::= { gBondPortPm15MinEntry 2 }
gBondPortPm15MinIntervalES OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Errored Seconds (ES) on the GBS in the 15-minute
performance history interval.
This object maps to the TR-159 attribute
aGroupPerf15MinIntervalES."
REFERENCE
"[TR-159], Section 5.5.1.59"
::= { gBondPortPm15MinEntry 3 }
gBondPortPm15MinIntervalSES OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Severely Errored Seconds (SES) on the GBS in the
15-minute performance history interval.
This object maps to the TR-159 attribute
aGroupPerf15MinIntervalSES."
REFERENCE
"[TR-159], Section 5.5.1.60"
::= { gBondPortPm15MinEntry 4 }
gBondPortPm15MinIntervalUAS OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Unavailable Seconds (UAS) on the GBS in the current
15-minute performance interval.
This object maps to the TR-159 attribute
aGroupPerf15MinIntervalUAS."
REFERENCE
"[TR-159], Section 5.5.1.61"
::= { gBondPortPm15MinEntry 5 }
gBondPortPm15MinIntervalValid OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A read-only object indicating whether or not this history
bucket contains valid data. A valid bucket is reported as
true(1) and an invalid bucket as false(2).
If this history bucket is invalid, the BTU-C MUST NOT produce
notifications based upon the value of the counters in this
bucket.
Note that an implementation may decide not to store invalid
history buckets in its database. In such a case, this object
is not required, as only valid history buckets are available
while invalid history buckets are simply not in the database.
This object maps to the TR-159 attribute
aGroupPerf15MinIntervalValid."
REFERENCE
"[TR-159], Section 5.5.1.58"
::= { gBondPortPm15MinEntry 6 }
-- PM history: 1-day buckets
gBondPortPm1DayTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortPm1DayEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains historical 1-day buckets of Performance
Monitoring information for a GBS port (a row for each 1-day
interval, up to 7 intervals).
Entries in this table MUST be maintained in a persistent manner."
::= { gBondPortPM 3 }
okay bestie, this stretch is pure MIB code, so every single character stays exactly as the spec wrote it ๐ ๐
gBondPortPm1DayEntry OBJECT-TYPE
SYNTAX GBondPortPm1DayEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond Port historical 1-day PM table.
Each entry represents Performance Monitoring data for a GBS port,
indexed by the ifIndex, collected during a particular 1-day
interval, indexed by the gBondPortPm1DayIntervalIndex."
INDEX { ifIndex, gBondPortPm1DayIntervalIndex }
::= { gBondPortPm1DayTable 1 }
GBondPortPm1DayEntry ::=
SEQUENCE {
gBondPortPm1DayIntervalIndex Unsigned32,
gBondPortPm1DayIntervalMoniTime HCPerfTimeElapsed,
gBondPortPm1DayIntervalES HCPerfIntervalCount,
gBondPortPm1DayIntervalSES HCPerfIntervalCount,
gBondPortPm1DayIntervalUAS HCPerfIntervalCount,
gBondPortPm1DayIntervalValid TruthValue
}
gBondPortPm1DayIntervalIndex OBJECT-TYPE
SYNTAX Unsigned32 (1..7)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Performance data interval number. 1 is the most recent
previous interval; interval 7 is 7 days ago.
Intervals 2..7 are OPTIONAL.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalNumber."
REFERENCE
"[TR-159], Section 5.5.1.62"
::= { gBondPortPm1DayEntry 1 }
gBondPortPm1DayIntervalMoniTime OBJECT-TYPE
SYNTAX HCPerfTimeElapsed
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of seconds over which the performance data was actually
monitored. This value will be the same as the interval duration
(86400 seconds), except in a situation where performance data
could not be collected for any reason.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalMoniSecs."
REFERENCE
"[TR-159], Section 5.5.1.64"
::= { gBondPortPm1DayEntry 2 }
gBondPortPm1DayIntervalES OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Errored Seconds (ES) on the GBS in the 1-day
performance history interval.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalES."
REFERENCE
"[TR-159], Section 5.5.1.65"
::= { gBondPortPm1DayEntry 3 }
gBondPortPm1DayIntervalSES OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Severely Errored Seconds (SES) on the GBS in the
1-day performance history interval.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalSES."
REFERENCE
"[TR-159], Section 5.5.1.66"
::= { gBondPortPm1DayEntry 4 }
gBondPortPm1DayIntervalUAS OBJECT-TYPE
SYNTAX HCPerfIntervalCount
UNITS "seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A count of Unavailable Seconds (UAS) on the GBS in the current
1-day performance interval.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalUAS."
REFERENCE
"[TR-159], Section 5.5.1.67"
::= { gBondPortPm1DayEntry 5 }
gBondPortPm1DayIntervalValid OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A read-only object indicating whether or not this history
bucket contains valid data. A valid bucket is reported as
true(1) and an invalid bucket as false(2).
If this history bucket is invalid, the BTU-C MUST NOT produce
notifications based upon the value of the counters in this
bucket.
Note that an implementation may decide not to store invalid
history buckets in its database. In such a case, this object
is not required, as only valid history buckets are available
while invalid history buckets are simply not in the database.
This object maps to the TR-159 attribute
aGroupPerf1DayIntervalValid."
REFERENCE
"[TR-159], Section 5.5.1.63"
::= { gBondPortPm1DayEntry 6 }
-- Performance Monitoring TCA Configuration profile
gBondPortPmTcaProfileTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondPortPmTcaProfileEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table supports definitions of Performance Monitoring (PM)
Threshold Crossing Alert (TCA) configuration profiles for GBS
ports.
Entries in this table MUST be maintained in a persistent manner."
::= { gBondPortPM 4 }
gBondPortPmTcaProfileEntry OBJECT-TYPE
SYNTAX GBondPortPmTcaProfileEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the GBS PM TCA Configuration table.
Each entry corresponds to a single TCA configuration profile.
Each profile contains a set of parameters for setting alarm
thresholds for various performance attributes monitored at GBS
ports. Profiles may be created/deleted using the row
creation/deletion mechanism via
gBondPortPmTcaProfileRowStatus. If an active entry is
referenced via gBondPortConfPmTcaConfProfile, the entry MUST
remain active until all references are removed.
A default profile with an index of 'DEFVAL' will always exist,
and its parameters will be set to vendor-specific values
unless otherwise specified in this document."
INDEX { gBondPortPmTcaProfileName }
::= { gBondPortPmTcaProfileTable 1 }
GBondPortPmTcaProfileEntry ::=
SEQUENCE {
gBondPortPmTcaProfileName SnmpAdminString,
gBondPortPmTcaProfileThresh15MinES HCPerfIntervalThreshold,
gBondPortPmTcaProfileThresh15MinSES HCPerfIntervalThreshold,
gBondPortPmTcaProfileThresh15MinUAS HCPerfIntervalThreshold,
gBondPortPmTcaProfileThresh1DayES GBondPm1DayIntervalThreshold,
gBondPortPmTcaProfileThresh1DaySES GBondPm1DayIntervalThreshold,
gBondPortPmTcaProfileThresh1DayUAS GBondPm1DayIntervalThreshold,
gBondPortPmTcaProfileRowStatus RowStatus
}
gBondPortPmTcaProfileName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE (1..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This object is a unique index (name) associated with this
GBS PM TCA profile."
::= { gBondPortPmTcaProfileEntry 1 }
gBondPortPmTcaProfileThresh15MinES OBJECT-TYPE
SYNTAX HCPerfIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Errored Seconds (ES)
within any given 15-minute performance data collection interval.
If the number of ESs in a particular 15-minute collection
interval reaches or exceeds this value, a
gBondPmTca15MinESCrossing notification MAY be generated if
enabled by gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca15MinESCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold15MinES."
REFERENCE
"[TR-159], Section 5.5.1.39"
::= { gBondPortPmTcaProfileEntry 2 }
gBondPortPmTcaProfileThresh15MinSES OBJECT-TYPE
SYNTAX HCPerfIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Severely Errored Seconds
(SES) within any given 15-minute performance data collection
interval.
If the number of SESs in a particular 15-minute collection
interval reaches or exceeds this value, a
gBondPmTca15MinSESCrossing notification MAY be generated if
enabled by gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca15MinSESCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold15MinSES."
REFERENCE
"[TR-159], Section 5.5.1.40"
::= { gBondPortPmTcaProfileEntry 3 }
gBondPortPmTcaProfileThresh15MinUAS OBJECT-TYPE
SYNTAX HCPerfIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Unavailable Seconds (UAS)
within any given 15-minute performance data collection interval.
If the number of UASs in a particular 15-minute collection
interval reaches or exceeds this value, a
gBondPmTca15MinUASCrossing notification MAY be generated if
enabled by gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca15MinUASCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold15MinUAS."
REFERENCE
"[TR-159], Section 5.5.1.41"
::= { gBondPortPmTcaProfileEntry 4 }
gBondPortPmTcaProfileThresh1DayES OBJECT-TYPE
SYNTAX GBondPm1DayIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Errored Seconds (ES)
within any given 1-day performance data collection interval.
If the number of ESs in a particular 1-day collection interval
reaches or exceeds this value, a gBondPmTca1DayESCrossing
notification MAY be generated if enabled by
gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca1DayESCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold1DayES."
REFERENCE
"[TR-159], Section 5.5.1.51"
::= { gBondPortPmTcaProfileEntry 5 }
gBondPortPmTcaProfileThresh1DaySES OBJECT-TYPE
SYNTAX GBondPm1DayIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Severely Errored Seconds
(SES) within any given 1-day performance data collection
interval.
If the number of SESs in a particular 1-day collection interval
reaches or exceeds this value, a gBondPmTca1DaySESCrossing
notification MAY be generated if enabled by
gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca1DaySESCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold1DaySES."
REFERENCE
"[TR-159], Section 5.5.1.52"
::= { gBondPortPmTcaProfileEntry 6 }
gBondPortPmTcaProfileThresh1DayUAS OBJECT-TYPE
SYNTAX GBondPm1DayIntervalThreshold
UNITS "seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A desired threshold for the number of Unavailable Seconds (UAS)
within any given 1-day performance data collection interval.
If the number of UASs in a particular 1-day collection interval
reaches or exceeds this value, a gBondPmTca1DayUASCrossing
notification MAY be generated if enabled by
gBondPortConfPmTcaEnable.
At most one notification can be sent per interval.
Setting this attribute to zero (default) effectively disables
the gBondPmTca1DayUASCrossing notification.
This object maps to the TR-159 attribute
aGroupPerfThreshold1DayUAS."
REFERENCE
"[TR-159], Section 5.5.1.53"
::= { gBondPortPmTcaProfileEntry 7 }
gBondPortPmTcaProfileRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object controls the creation, modification, or deletion
of the associated entry in the gBondPortPmTcaProfileTable
per the semantics of RowStatus.
If an 'active' entry is referenced via
gBondPortConfPmTcaConfProfile instance(s), the entry MUST
remain 'active'.
An 'active' entry SHALL NOT be modified. In order to modify an
existing entry, it MUST be taken out of service (by setting
this object to 'notInService'), modified, and set to 'active'
again."
::= { gBondPortPmTcaProfileEntry 8 }
-- The BCE group
gBondBceConfTable OBJECT-TYPE
SYNTAX SEQUENCE OF GBondBceConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table for configuration of G.Bond common aspects for the
Bonding Channel Entity (BCE) ports (modems/channels).
Entries in this table MUST be maintained in a persistent
manner."
::= { gBondBce 1 }
gBondBceConfEntry OBJECT-TYPE
SYNTAX GBondBceConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the G.Bond BCE Configuration table.
Each entry represents common aspects of a G.Bond BCE port
indexed by the ifIndex. Note that a G.Bond BCE port can be
stacked below a single GBS port, also indexed by the ifIndex,
possibly together with other BCE ports if bonding is enabled."
INDEX { ifIndex }
::= { gBondBceConfTable 1 }
GBondBceConfEntry ::=
SEQUENCE {
gBondBceConfRemoteDiscoveryCode PhysAddress
}
gBondBceConfRemoteDiscoveryCode OBJECT-TYPE
SYNTAX PhysAddress (SIZE (0|6))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A remote discovery code of the BCE port at the CO.
A 6-octet-long discovery code of the peer GBS connected via
the BCE.
Reading this object results in a Discovery Get operation.
Setting this object to all zeroes results in a Discovery
Clear_if_Same operation (the value of gBondPortConfDiscoveryCode
at the peer GBS SHALL be the same as gBondPortConfDiscoveryCode
of the local GBS associated with the BCE for the operation to
succeed).
Writing a non-zero value to this object results in a
Discovery Set_if_Clear operation.
A zero-length octet string SHALL be returned on an attempt to
read this object when bonding is not enabled.
This object is irrelevant in BCE-R port subtypes (CPE side):
in this case, a zero-length octet string SHALL be returned on
an attempt to read this object. An attempt to change this
object MUST be rejected (in the case of SNMP, with the error
inconsistentValue).
Discovery MUST be performed when the link is 'down'.
Attempts to change this object MUST be rejected (in the case of
SNMP, with the error inconsistentValue), If the link is 'up' or
initializing.
This object maps to the TR-159 attribute
aLineRemoteDiscoveryCode."
REFERENCE
"[TR-159], Section 5.5.6.7"
::= { gBondBceConfEntry 1 }
--
-- Conformance Statements
--
gBondGroups OBJECT IDENTIFIER ::= { gBondConformance 1 }
gBondCompliances OBJECT IDENTIFIER ::= { gBondConformance 2 }
-- Object Groups
gBondBasicGroup OBJECT-GROUP
OBJECTS {
gBondPortStatOperScheme,
gBondPortStatUpDataRate,
gBondPortStatDnDataRate,
gBondPortConfTargetUpDataRate,
gBondPortConfTargetDnDataRate,
gBondPortCapSchemesSupported,
gBondPortCapCapacity,
gBondPortStatNumBCEs,
gBondPortStatSide,
gBondPortStatFltStatus
}
STATUS current
DESCRIPTION
"A collection of objects representing management information
common to all types of G.Bond ports."
::= { gBondGroups 1 }
gBondDiscoveryGroup OBJECT-GROUP
OBJECTS {
gBondPortStatPeerOperScheme,
gBondPortCapPeerSchemesSupported,
gBondPortCapPeerCapacity,
gBondPortConfDiscoveryCode,
gBondBceConfRemoteDiscoveryCode
}
STATUS current
DESCRIPTION
"A collection of objects supporting OPTIONAL G.Bond discovery
in G.Bond ports."
::= { gBondGroups 2 }
gBondMultiSchemeGroup OBJECT-GROUP
OBJECTS {
gBondPortConfAdminScheme,
gBondPortConfPeerAdminScheme
}
STATUS current
DESCRIPTION
"A collection of objects providing OPTIONAL management
information for G.Bond ports supporting multiple bonding
schemes."
::= { gBondGroups 3 }
gBondTcaConfGroup OBJECT-GROUP
OBJECTS {
gBondPortConfThreshLowUpRate,
gBondPortConfThreshLowDnRate,
gBondPortConfLowRateCrossingEnable
}
STATUS current
DESCRIPTION
"A collection of objects required for configuration of alarm
thresholds and notifications in G.Bond ports."
::= { gBondGroups 4 }
gBondTcaNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS {
gBondLowUpRateCrossing,
gBondLowDnRateCrossing
}
STATUS current
DESCRIPTION
"This group supports notifications of significant conditions
(non-PM threshold crossing alerts) associated with G.Bond ports."
::= { gBondGroups 5 }
gBondPmCurGroup OBJECT-GROUP
OBJECTS {
gBondPortPmCurES,
gBondPortPmCurSES,
gBondPortPmCurUAS,
gBondPortPmCur15MinValidIntervals,
gBondPortPmCur15MinInvalidIntervals,
gBondPortPmCur15MinTimeElapsed,
gBondPortPmCur15MinES,
gBondPortPmCur15MinSES,
gBondPortPmCur15MinUAS,
gBondPortPmCur1DayValidIntervals,
gBondPortPmCur1DayInvalidIntervals,
gBondPortPmCur1DayTimeElapsed,
gBondPortPmCur1DayES,
gBondPortPmCur1DaySES,
gBondPortPmCur1DayUAS
}
STATUS current
DESCRIPTION
"A collection of objects supporting OPTIONAL current Performance
Monitoring information for G.Bond ports."
::= { gBondGroups 6 }
gBondPm15MinGroup OBJECT-GROUP
OBJECTS {
gBondPortPm15MinIntervalMoniTime,
gBondPortPm15MinIntervalES,
gBondPortPm15MinIntervalSES,
gBondPortPm15MinIntervalUAS,
gBondPortPm15MinIntervalValid
}
STATUS current
DESCRIPTION
"A collection of objects supporting OPTIONAL historical
Performance Monitoring information for G.Bond ports, during
previous 15-minute intervals."
::= { gBondGroups 7 }
gBondPm1DayGroup OBJECT-GROUP
OBJECTS {
gBondPortPm1DayIntervalMoniTime,
gBondPortPm1DayIntervalES,
gBondPortPm1DayIntervalSES,
gBondPortPm1DayIntervalUAS,
gBondPortPm1DayIntervalValid
}
STATUS current
DESCRIPTION
"A collection of objects supporting OPTIONAL historical
Performance Monitoring information for G.Bond ports, during
previous 1-day intervals."
::= { gBondGroups 8 }
gBondPmTcaConfGroup OBJECT-GROUP
OBJECTS {
gBondPortConfPmTcaConfProfile,
gBondPortConfPmTcaEnable,
gBondPortPmTcaProfileThresh15MinES,
gBondPortPmTcaProfileThresh15MinSES,
gBondPortPmTcaProfileThresh15MinUAS,
gBondPortPmTcaProfileThresh1DayES,
gBondPortPmTcaProfileThresh1DaySES,
gBondPortPmTcaProfileThresh1DayUAS,
gBondPortPmTcaProfileRowStatus
}
STATUS current
DESCRIPTION
"A collection of objects required for configuration of
Performance Monitoring Threshold Crossing Alert notifications
in G.Bond ports."
::= { gBondGroups 9 }
gBondPmTcaNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS {
gBondPmTca15MinESCrossing,
gBondPmTca15MinSESCrossing,
gBondPmTca15MinUASCrossing,
gBondPmTca1DayESCrossing,
gBondPmTca1DaySESCrossing,
gBondPmTca1DayUASCrossing
}
STATUS current
DESCRIPTION
"This group supports notifications of Performance Monitoring
Threshold Crossing Alerts associated with G.Bond ports."
::= { gBondGroups 10 }
-- Compliance Statements
gBondCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for G.Bond interfaces.
Compliance with the following external compliance statements
is REQUIRED:
MIB Module Compliance Statement
---------- --------------------
IF-MIB ifCompliance3
Compliance with the following external compliance statements
is OPTIONAL for implementations supporting bonding with
flexible cross-connect between the GBS and BCE ports:
MIB Module Compliance Statement
---------- --------------------
IF-INVERTED-STACK-MIB ifInvCompliance
IF-CAP-STACK-MIB ifCapStackCompliance"
MODULE -- this module
MANDATORY-GROUPS {
gBondBasicGroup,
gBondTcaConfGroup,
gBondTcaNotificationGroup
}
GROUP gBondDiscoveryGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting the G.Bond Discovery function."
GROUP gBondMultiSchemeGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting multiple bonding schemes."
GROUP gBondPmCurGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting Performance Monitoring."
GROUP gBondPm15MinGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting 15-minute historical Performance Monitoring."
GROUP gBondPm1DayGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting 1-day historical Performance Monitoring."
GROUP gBondPmTcaConfGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting Performance Monitoring Threshold Crossing Alert
notifications."
GROUP gBondPmTcaNotificationGroup
DESCRIPTION
"Support for this group is only required for implementations
supporting Performance Monitoring Threshold Crossing Alert
notifications."
OBJECT gBondPortCapSchemesSupported
SYNTAX IANAgBondSchemeList
DESCRIPTION
"Support for all bonding scheme types is not required.
However, at least one value SHALL be supported."
OBJECT gBondPortCapPeerSchemesSupported
SYNTAX IANAgBondSchemeList
DESCRIPTION
"Support for all bonding scheme types is not required.
However, at least one value SHALL be supported."
::= { gBondCompliances 1 }
END
7. IANA-Maintained G.Bond TC Definitions โจ
okay so this section is where the IANA-maintained textual conventions live ๐ the IANA-GBOND-TC-MIB module pulls in its building blocks from SNMPv2-SMI [RFC2578] and SNMPv2-TC [RFC2579], so it's basically borrowing the good stuff from the core SNMP definitions ๐
IANA-GBOND-TC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
mib-2
FROM SNMPv2-SMI
TEXTUAL-CONVENTION
FROM SNMPv2-TC
;
okay so the MIB module is basically the list of bonding-scheme names that IANA keeps for us ๐ every new G.998 scheme gets added here later, so the names stay consistent across all the MIB modules ๐
------------------------------------------------------------------------
ianaGBondTcMIB MODULE-IDENTITY
LAST-UPDATED "201302200000Z" -- 20 February 2013
ORGANIZATION "IANA"
CONTACT-INFO " Internet Assigned Numbers Authority
Postal: ICANN
12025 Waterfront Drive, Suite 300
Los Angeles, CA 90094-2536
Tel: +1-310-301-5800
EMail: iana@iana.org"
DESCRIPTION
"This MIB module defines IANAgBondScheme and IANAgBondSchemeList
TEXTUAL-CONVENTIONs, specifying enumerated values of the
gBondPortConfAdminScheme, gBondPortConfPeerAdminScheme,
gBondPortStatOperScheme, gBondPortStatPeerOperScheme,
gBondPortCapSchemesSupported, and gBondPortCapPeerSchemesSupported
objects, respectively, as defined in the GBOND-MIB.
It is intended that each new bonding scheme defined by the
ITU-T Q4/SG15 working group and approved for publication in a
revision of the ITU-T G.998 specification will be added to this
MIB module, provided that it is suitable for being managed by the
base objects in the GBOND-MIB. An Expert Review, as defined in
RFC 5226, is REQUIRED for such additions.
The following references are used throughout this MIB module:
[G.998.1] refers to:
ITU-T Recommendation G.998.1: 'ATM-based multi-pair bonding',
January 2005.
[G.998.2] refers to:
ITU-T Recommendation G.998.2: 'Ethernet-based multi-pair
bonding', January 2005.
[G.998.3] refers to:
ITU-T Recommendation G.998.3: 'Multi-pair bonding using
time-division inverse multiplexing', January 2005.
Naming Conventions:
BCE - Bonding Channel Entity
GBS - Generic Bonding Sub-layer
These references should be updated as appropriate when a new
bonding scheme is added to this MIB module.
Copyright (c) 2013 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license
terms contained in, the Simplified BSD License set forth in
Section 4.c of the IETF Trust's Legal Provisions Relating to IETF
Documents (http://trustee.ietf.org/license-info)."
REVISION "201302200000Z" -- 20 February 2013
DESCRIPTION "Initial version, published as RFC 6765."
::= { mib-2 215 }
-- Textual Conventions
IANAgBondSchemeList ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This textual convention defines a bitmap of possible ITU-T
G.998 (G.Bond) bonding schemes. Currently, the following values
are defined for the corresponding bonding schemes:
g9981(1) - G.998.1 (G.Bond/ATM; see the G9981-MIB)
g9982(2) - G.998.2 (G.Bond/Ethernet; see the G9982-MIB)
g9983(3) - G.998.3 (G.Bond/TDIM; see the G9983-MIB)
An additional value of none(0) can be returned as a result
of a GET operation when a value of the object cannot be
determined (for example, a peer GBS cannot be reached), the port
does not support any kind of bonding, or when a single-BCE
G.998.2 GBS supports bonding (frame fragmentation/reassembly)
bypass."
SYNTAX BITS {
none(0),
g9981(1),
g9982(2),
g9983(3)
}
IANAgBondScheme ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This textual convention defines ITU-T G.998 bonding scheme
values. Possible values are:
none(0) - no bonding (e.g., on a single-BCE G.998.2 GBS)
or unknown
g9981(1) - G.998.1 (G.Bond/ATM)
g9982(2) - G.998.2 (G.Bond/Ethernet)
g9983(3) - G.998.3 (G.Bond/TDIM)"
SYNTAX INTEGER {
none(0),
g9981(1),
g9982(2),
g9983(3)
}
END
8. Security Considerations ๐
okay this section is serious bestie, the vibe is still dramatic but the facts are 100% real ๐จ There are a bunch of management objects in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. Those objects can be sensitive or vulnerable in some network environments. Turning on SET operations in a non-secure environment, without proper protection, can seriously mess with network operations. Here are the tables and objects, plus their sensitivity and vulnerability:
- Changing the gBondPortConfAdminScheme object may lead to a potential locking of the link, if the peer device does not support the desired bonding scheme.
- Changing the gBondPortConfDiscoveryCode object, before the discovery operation, may lead to a wrongful discovery. For example, this can happen when two CO ports are connected to the same multi-channel RT port while both CO ports have the same discovery register value.
- Changing the target upstream or downstream data rate via gBondPortConfTargetUpDataRate or gBondPortConfTargetDnDataRate may lead to anything from degradation of link quality and data rate to a complete link initialization failure. That's because whether a G.Bond port can support a particular configuration depends on the copper environment. ๐ญ
- Activating a specific line or channel may cause a severe degradation of service for another G.Bond port, whose channels may be hit by the cross-talk from the newly activated channel.
- Removing a channel from an operationally 'up' G.Bond port, which aggregates several channels, may cause degradation of the port's data rate.
Some of the readable objects in this MIB module (the ones with a MAX-ACCESS other than not-accessible) may be sensitive or vulnerable in some network environments. Together they give information about how network interfaces are performing and can reveal some aspects of their configuration. ๐
Here's the really spicy part ๐ถ๏ธ A bonded xDSL port can be made up of several Unshielded Twisted Pair (UTP) voice-grade copper pairs, all sitting in the same bundle as pairs that belong to another operator or customer. So it's theoretically possible to eavesdrop on a G.Bond transmission just by "listening" to the cross-talk from the bonded pairs, especially if the operating parameters of that G.Bond link are known. Yikes ๐
That's why it's important to control even GET and/or NOTIFY access to these objects, and possibly to encrypt the values of these objects when they're sent over the network via SNMP. Here are the tables and objects, plus their sensitivity and vulnerability:
- gBondPortStatTable: the objects in this table provide status information for the G.Bond port, which may help someone identify the pairs belonging to the bonded port and eavesdrop on the traffic over that port.
SNMP versions before SNMPv3 did not include adequate security. Even if the network itself is secure (for example, by using IPsec), there's no control over who on that secure network is allowed to access and GET or SET (read, change, create, or delete) the objects in this MIB module. Not it. ๐
Implementations SHOULD provide the security features described by the SNMPv3 framework (see [RFC3410]). Implementations that claim compliance with the SNMPv3 standard MUST include full support for authentication and privacy via the User-based Security Model (USM) [RFC3414] with the AES cipher algorithm [RFC3826]. Implementations MAY also provide support for the Transport Security Model (TSM) [RFC5591] in combination with a secure transport such as SSH [RFC5592] or TLS/DTLS [RFC6353]. ๐โจ
Also, deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It's then the customer or operator's responsibility to make sure that the SNMP entity giving access to an instance of this MIB module is configured properly, so that access to the objects is only given to the principals (users) who have legitimate rights to GET or SET (change, create, or delete) them. ๐ซถ
9. IANA Considerations ๐ฆ
Three new values of IANAifType have been allocated by IANA <http://www.iana.org/> in the IANAifType-MIB module [IANAifType-MIB]: g9981(263), g9982(264), and g9983(265). ๐
An object identifier for the gBondMIB MODULE-IDENTITY has been allocated by IANA in the MIB-2 transmission sub-tree (211). ๐ธ
This document defines the first version of the IANA-maintained IANA-GBOND-TC-MIB module. It's intended that each new G.998 bonding scheme defined by the ITU-T Q4/SG15 working group, and approved for publication in a revision of ITU-T G.998.x, will be added to the IANA-maintained MIB module. That only happens if it's suitable for being managed by the base objects in the GBOND-MIB module. An object identifier for the ianaGBondTcMIB MODULE-IDENTITY has been allocated by IANA in the MIB-2 transmission sub-tree (215). ๐
For each new bonding scheme added, a short description of the bonding protocol should be specified and, wherever possible, a reference to a publicly available specification SHOULD be specified. An Expert Review, as defined in [RFC5226], is REQUIRED for each modification. ๐ฅ
10. Acknowledgments ๐ซถ
This document was produced by the [ADSLMIB] working group. The ADSL MIB crew really did the work here, so big love to them. ๐ง
Special thanks to Dan Romascanu for his meticulous review of this text. Dan, you're literally iconic for that. ๐
11. References ๐
11.1. Normative References ๐
okay bestie, these are the normative refs, the ones this spec leans on hard ๐ซถ
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J.
Schoenwaelder, Ed., "Structure of Management Information
Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
[RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J.
Schoenwaelder, Ed., "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.
[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group
MIB", RFC 2863, June 2000.
[RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
Architecture for Describing Simple Network Management
Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
December 2002.
[RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model
(USM) for version 3 of the Simple Network Management
Protocol (SNMPv3)", STD 62, RFC 3414, December 2002.
[RFC3705] Ray, B. and R. Abbi, "High Capacity Textual Conventions
for MIB Modules Using Performance History Based on 15
Minute Intervals", RFC 3705, February 2004.
[RFC3826] Blumenthal, U., Maino, F., and K. McCloghrie, "The
Advanced Encryption Standard (AES) Cipher Algorithm in the
SNMP User-based Security Model", RFC 3826, June 2004.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
[RFC5591] Harrington, D. and W. Hardaker, "Transport Security Model
for the Simple Network Management Protocol (SNMP)",
RFC 5591, June 2009.
[RFC5592] Harrington, D., Salowey, J., and W. Hardaker, "Secure
Shell Transport Model for the Simple Network Management
Protocol (SNMP)", RFC 5592, June 2009.
[RFC6353] Hardaker, W., "Transport Layer Security (TLS) Transport
Model for the Simple Network Management Protocol (SNMP)",
RFC 6353, July 2011.
[TR-159] Beili, E. and M. Morgenstern, "Management Framework for
xDSL Bonding", Broadband Forum Technical Report TR-159,
December 2008, <http://www.broadband-forum.org/technical/
download/TR-159.pdf>.
11.2. Informative References ๐
this is the bonus reading list, the extra context the doc points to ๐ง
[802.3] IEEE, "IEEE Standard for 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", IEEE Std 802.3-2005, December 2005.
[ADSLMIB] IETF, "ADSL MIB (adslmib) Charter",
<http://datatracker.ietf.org/wg/adslmib/charter/>.
[AF-PHY-0086]
ATM Forum, "Inverse Multiplexing for ATM (IMA)
Specification Version 1.1", ATM Forum specification af-
phy-0086.001, March 1999, <http://www.broadband-forum.org/
ftp/pub/approved-specs/af-phy-0086.001.pdf>.
[G.994.1] ITU-T, "Handshake procedures for digital subscriber line
(DSL) transceivers", ITU-T Recommendation G.994.1,
June 2012, <http://www.itu.int/rec/T-REC-G.994.1/en>.
[G.998.1] ITU-T, "ATM-based multi-pair bonding", ITU-T
Recommendation G.998.1, January 2005,
<http://www.itu.int/rec/T-REC-G.998.1/en>.
[G.998.2] ITU-T, "Ethernet-based multi-pair bonding", ITU-T
Recommendation G.998.2, January 2005,
<http://www.itu.int/rec/T-REC-G.998.2/en>.
[G.998.3] ITU-T, "Multi-pair bonding using time-division inverse
multiplexing", ITU-T Recommendation G.998.3, January 2005,
<http://www.itu.int/rec/T-REC-G.998.3/en>.
[IANAifType-MIB]
Internet Assigned Numbers Authority (IANA), "IANAifType
Textual Convention definition",
<http://www.iana.org/assignments/ianaiftype-mib>.
[RFC2790] Waldbusser, S. and P. Grillo, "Host Resources MIB",
RFC 2790, March 2000.
[RFC2864] McCloghrie, K. and G. Hanson, "The Inverted Stack Table
Extension to the Interfaces Group MIB", RFC 2864,
June 2000.
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart,
"Introduction and Applicability Statements for Internet-
Standard Management Framework", RFC 3410, December 2002.
[RFC3440] Ly, F. and G. Bathrick, "Definitions of Extension Managed
Objects for Asymmetric Digital Subscriber Lines",
RFC 3440, December 2002.
[RFC3593] Tesink, K., "Textual Conventions for MIB Modules Using
Performance History Based on 15 Minute Intervals",
RFC 3593, September 2003.
[RFC3728] Ray, B. and R. Abbi, "Definitions of Managed Objects for
Very High Speed Digital Subscriber Lines (VDSL)",
RFC 3728, February 2004.
[RFC4181] Heard, C., "Guidelines for Authors and Reviewers of MIB
Documents", BCP 111, RFC 4181, September 2005.
[RFC4319] Sikes, C., Ray, B., and R. Abbi, "Definitions of Managed
Objects for High Bit-Rate DSL - 2nd generation (HDSL2) and
Single-Pair High-Speed Digital Subscriber Line (SHDSL)
Lines", RFC 4319, December 2005.
[RFC4706] Morgenstern, M., Dodge, M., Baillie, S., and U. Bonollo,
"Definitions of Managed Objects for Asymmetric Digital
Subscriber Line 2 (ADSL2)", RFC 4706, November 2006.
[RFC5066] Beili, E., "Ethernet in the First Mile Copper (EFMCu)
Interfaces MIB", RFC 5066, November 2007.
[RFC5650] Morgenstern, M., Baillie, S., and U. Bonollo, "Definitions
of Managed Objects for Very High Speed Digital Subscriber
Line 2 (VDSL2)", RFC 5650, September 2009.
[RFC5905] Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network
Time Protocol Version 4: Protocol and Algorithms
Specification", RFC 5905, June 2010.
[RFC6766] Beili, E., "xDSL Multi-Pair Bonding Using Time-Division
Inverse Multiplexing (G.Bond/TDIM) MIB", RFC 6766,
February 2013.
[RFC6767] Beili, E. and M. Morgenstern, "Ethernet-Based xDSL Multi-
Pair Bonding (G.Bond/Ethernet) MIB", RFC 6767,
February 2013.
[RFC6768] Beili, E., "ATM-Based xDSL Bonded Interfaces MIB",
RFC 6768, February 2013.
Authors' Addresses โจ
these are the people behind the spec ๐ซถ here's how to reach them:
Edward Beili
Actelis Networks
25 Bazel St.
Petach-Tikva 49103
Israel
Phone: +972-3-924-3491
EMail: edward.beili@actelis.com
Moti Morgenstern
ECI Telecom
30 Hasivim St.
Petach-Tikva 4951169
Israel
Phone: +972-3-926-6258
EMail: moti.morgenstern@ecitele.com
and that's the whole RFC, bestie ๐๐โจ
๐ฆ where this page comes from
- ietf: rfc6765 2013-02
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms