<?xml version="1.0" encoding="US-ASCII" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc inline="yes" ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes"?>

<rfc category="std"
     ipr="trust200902"
     number="6765"
     submissionType="IETF"
     consensus="yes">
 
<front>

<title abbrev="G.Bond MIB">
  xDSL Multi-Pair Bonding (G.Bond) MIB
</title>

<author initials="E." surname="Beili" fullname="Edward Beili">
  <organization>Actelis Networks</organization>
  <address>
    <postal>
      <street>25 Bazel St.</street>
      <city>Petach-Tikva</city>
      <code>49103</code>
      <country>Israel</country>
    </postal>
    <phone>+972-3-924-3491</phone>
    <email>edward.beili@actelis.com</email>
  </address>
</author>

<author initials="M." surname="Morgenstern" fullname="Moti Morgenstern">
  <organization>ECI Telecom</organization>
  <address>
    <postal>
      <street>30 Hasivim St.</street>
      <city>Petach-Tikva</city>
      <code>4951169</code>
      <country>Israel</country>
    </postal>
    <phone>+972-3-926-6258</phone>
    <email>moti.morgenstern@ecitele.com</email>
  </address>
</author>

<date month="February" year="2013"/>

<area>Operations and Management</area>

<keyword>Network Management</keyword>
<keyword>Simple Network Management Protocol</keyword>
<keyword>SNMP</keyword>
<keyword>Management Information Base</keyword>
<keyword>MIB</keyword>
<keyword>G.Bond</keyword>
<keyword>bonding</keyword>
<keyword>xDSL bonding</keyword>
<keyword>aggregation</keyword>
<keyword>G.998</keyword>
<keyword>G.998.1</keyword>
<keyword>G.998.2</keyword>
<keyword>G.998.3</keyword>
<keyword>TDIM</keyword>
<keyword>IMA</keyword>
<keyword>EFM</keyword>



<abstract>
  <t>
   This document defines a Management Information Base (MIB) module for
   use with network management protocols in TCP/IP-based internets. This
   document defines an extension to 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 defining the bonding schemes are contained
   in a separate MIB module maintained by Internet Assigned Numbers Authority (IANA). 
   The MIB modules specific to each bonding technology are defined in
   G9981-MIB, G9982-MIB, and G9983-MIB, respectively.
  </t>
</abstract>

</front>
 
<middle>

<section title="Introduction">
  <t>
   xDSL Multi-pair bonding allows a service provider to provide
   high-bandwidth services to business and residential customers over
   multiple xDSL lines, with greater speed and resiliency than
   service over a single xDSL line, bridging the gap between xDSL and
   fiber-based transport.
  </t>
  <t>
   Currently, there are three xDSL Multi-pair bonding schemes, also
   known under the collective name "G.Bond":

   <list style='symbols'>
     <t>
      ATM-Based Multi-pair bonding, as specified in ITU-T Recommendation
      G.998.1 <xref target="G.998.1"/>, which defines a method
      for the bonding (or aggregating) of multiple xDSL lines (or
      individual bearer channels in multiple xDSL lines) into a single
      bidirectional logical link carrying an ATM stream.

      This specification can be viewed as an evolution of the legacy
      Inverse Multiplexing for ATM (IMA) technology
      <xref target="AF-PHY-0086"/>, applied to xDSL with
      variable rates on each line/bearer channel.
     </t>

     <t>
      Ethernet-Based Multi-pair bonding, as specified in ITU-T
      Recommendation G.998.2 <xref target="G.998.2"/>, which defines a
      method for the bonding (or aggregating) of multiple xDSL lines (or
      individual bearer channels in multiple xDSL lines) into a single
      bidirectional logical link carrying an Ethernet stream.

      This specification can be viewed as IEEE 802.3-2005
      <xref target="802.3"/> Clause 61, Physical Medium Entity (PME)
      Aggregation, generalized to work over any xDSL technology
      (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).
     </t>

     <t>
      Multi-pair bonding using Time-Division Inverse Multiplexing
      (TDIM), specified in ITU-T Recommendation G.998.3
      <xref target="G.998.3"/>, which defines a method for the bonding
      (or aggregating) of multiple xDSL lines into a single
      bidirectional logical link carrying a mix of various traffic
      streams (e.g., Ethernet, ATM, TDM).
     </t>
   </list>
  </t>
  <t>
   Architecturally, all three bonding schemes define a new "bonded"
   Transport Protocol Specific - Transmission Convergence (TPS-TC)
   sub-layer, stacked above multiple ATM-TC, Ethernet/Packet Transfer Mode-TC
   (PTM-TC), or Synchronous Transfer Mode-TC (STM-TC)
   (clear channel) sub-layers for the ATM, Ethernet, or TDIM bonding,
   respectively. Each underlying TPS-TC sub-layer represents a
   protocol-specific interface to an xDSL line or an individual bearer channel
   of an xDSL line. Bonding of multiple bearer channels in the same xDSL
   line is not allowed.
  </t>
  <t>
   All schemes allow bonding of up to 32 individual line/channel sub-layers with
   variable rates, providing common functionality for the configuration,
   initialization, operation, and monitoring of the bonded link.
  </t>
  <t>
   This document defines a MIB module common to all 3 schemes.
   Additional managed objects specific to each bonding technology are
   defined in the
   G9981-MIB <xref target="RFC6768"/>, 
   G9982-MIB <xref target="RFC6767"/>, and 
   G9983-MIB <xref target="RFC6766"/> modules.
  </t>
  <t>
   The textual conventions listing the bonding schemes are defined in a
   separate, IANA-maintained MIB module, the first version of which is provided
   in this document. This arrangement would allow for future bonding
   schemes to be easily supported, without the need to update the
   common GBOND-MIB module.
  </t>
</section>

<section title="The Internet-Standard Management Framework">
  <t>
   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to
   section 7 of RFC 3410 <xref target="RFC3410"/>.
  </t>
  <t>
   Managed objects are accessed via a virtual information store,
   termed 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
   defined in the Structure of Management Information (SMI).  This
   document specifies a MIB module that is compliant to the SMIv2, which
   is described in STD 58, RFC 2578 <xref target="RFC2578"/>,
   STD 58, RFC 2579 <xref target="RFC2579"/> and STD 58, RFC
   2580 <xref target="RFC2580"/>.
  </t>
  <t>
   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&nbsp;2119 <xref target="RFC2119"/>.
  </t>
</section>

<section title="The Broadband Forum Management Framework for xDSL Bonding">
  <t>
   This document makes use of the Broadband Forum technical report
   "Management Framework for xDSL Bonding" <xref target="TR-159"/>, defining a
   management model and a hierarchy of management objects for the
   bonded xDSL interfaces. 
  </t>
</section>

<section title="Relationship to Other MIB Modules">
 <t>
  This section outlines the relationship of the MIB modules defined in
  this document with other MIB modules
  described in the relevant RFCs. Specifically, the following MIB
  modules are discussed:
  the Interfaces Group MIB (IF-MIB),
  Inverse Stack Table MIB (IF-INVERTED-STACK-MIB),
  and Interface Stack Capability MIB (IF-CAP-STACK-MIB);
  G.Bond scheme-specific modules G.Bond/ATM (G9981-MIB),
  G.Bond/Ethernet (G9982-MIB), and G.Bond/TDIM (G9983-MIB);
  and 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).
 </t>
 <section title="Relationship to Interfaces Group MIB Module" anchor="if-grp">
  <t>
   A bonded xDSL port is a stacked (a.k.a. aggregated or bonded)
   interface and as such is managed
   using generic interface management objects defined in the
   IF-MIB <xref target="RFC2863"/>.
  </t>
  <t>
   The stack management, i.e., actual connection of the sub-layers to
   the top layer interface, is done via the ifStackTable, as defined in 
   the IF-MIB <xref target="RFC2863"/> and its inverse -- the
   ifInvStackTable, as defined in the IF-INVERTED-STACK-MIB
   <xref target="RFC2864"/>.
  </t>
  <t>
   The ifCapStackTable and its inverse -- the ifInvCapStackTable, as defined in
   the IF-CAP-STACK-MIB <xref target="RFC5066"/> --
   extend the stack management with an ability to describe
   possible connections or cross-connect capability, when a flexible
   cross-connect matrix is present between the interface layers.
  </t>
   <section title="Layering Model">
    <t>
     A G.Bond interface can aggregate up to 32 channel sub-layers,
     with each channel representing an xDSL line or an xDSL bearer
     channel. For the purpose of brevity we will refer to
     the bonded interface as the Generic Bonding Sub-layer (GBS) and to
     the channel sub-layer as the Bonding Channel Entity (BCE).
    </t>
    <t>
     A generic G.Bond device can have a number of GBS ports, each
     connected to a particular upper layer (e.g., a Media Access Control
     (MAC) interface for the G.998.2 scheme), while simultaneously
     cross-connected to a number of underlying BCEs, with a
     single-GBS-per-BCE relationship.
    </t>
    <t>
     A GBS port is represented in the Interfaces table (ifTable) as a
     separate interface with an ifType reflecting a particular bonding
     scheme, e.g., g9981(263), g9982(264), or g9983(265).
    </t>
    <t>
     Each BCE in the aggregated GBS port is represented in the
     ifTable as a separate interface with an ifType
     relevant to a particular xDSL technology, e.g., shdsl(169) or vdsl(97).
     The ifType values are defined in <xref target="IANAifType-MIB"/>.
    </t>

    <figure anchor="Figure 2" title="Use of ifTable for Bonded xDSL Interfaces">
      <preamble>The following figure shows the layering diagram and
                corresponding use of the ifTable for the bonded xDSL interfaces:</preamble>
        <artwork align='center'><![CDATA[
.-----------------------------.  -
|            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
   ]]></artwork>
    </figure>
    <t>
     The ifStackTable is indexed by the ifIndex values of the aggregated
     G.Bond port (GBS) and the BCEs connected to it. The ifStackTable allows a
     network management application to determine which BCEs are connected
     to a particular GBS and change connections (if supported by the 
     application). The ifInvStackTable, being an inverted version of
     the ifStackTable, provides an efficient means for a network
     management application to read a subset of the ifStackTable and
     thereby determine which GBS runs on top of a particular BCE.
    </t>
    <t>
     The ifCapStackTable, defined in the IF-CAP-STACK-MIB
     module, specifies for each higher-layer interface (e.g., GBS port)
     a list of lower-layer interfaces (e.g., BCEs), which can possibly
     be cross-connected to that higher-layer interface,
     determined by the cross-connect
     capability of the device. This table, modeled after the ifStackTable, is
     read only, reflecting current cross-connect capability of a
     stacked interface, which
     can be dynamic in some implementations (e.g., if xDSL lines are located
     on a pluggable module and the module is pulled out).
     Note that BCE availability per GBS, described by the
     ifCapStackTable, can be constrained by other parameters --
     for example, by the aggregation capacity of a GBS or by the BCE in
     question being already connected to another GBS. So, in
     order to ensure that a particular BCE can be connected to the GBS,
     all respective parameters (e.g., ifCapStackTable,
     ifStackTable, and gBondPortCapCapacity) SHALL be inspected.
    </t>
    <t>
     The ifInvCapStackTable, also defined in the IF-CAP-STACK-MIB module,
     describes which higher-layer interfaces (e.g., GBS ports) can possibly
     be connected to a particular lower-layer interface (e.g., BCE),
     providing inverted mapping of the ifCapStackTable.
     While it contains no additional information beyond that already
     contained in the ifCapStackTable, the ifInvCapStackTable has the
     ifIndex values in its INDEX clause in the reverse order, i.e., the
     lower-layer interface first, and the higher-layer interface
     second, providing efficient means for a network management
     application to read a subset of the ifCapStackTable and thereby
     determine which interfaces can be connected to run on top of a
     particular interface.
    </t>
   </section>

   <section title="xDSL Bonding">
    <t>
     The G.998.x Bonding allows a number of BCEs to be
     aggregated onto a single logical GBS port by splitting the
     incoming traffic into multiple streams, transmitting each stream
     over a specific BCE, and combining the streams at the remote GBS port,
     preserving the original traffic order.
    </t>
    <t>  
     The Ethernet frames MAY be fragmented before the transmission and
     reassembled at the remote end to minimize transportation delay.
     The G.998.2 (G.Bond/Ethernet) ports with multiple BCEs MUST
     perform the fragmentation and reassembly of the Ethernet frames.
     However, for single-BCE G.998.2 ports this function MAY be
     omitted (a.k.a. bonding bypass), to minimize fragmentation overhead and
     additional processing delay as well as to be able to interoperate
     with non-G.998 DSL equipment.
    </t>
    <t>
     The agent is REQUIRED to indicate all supported bonding schemes 
     (for example, ATM, Ethernet, and TDIM), including OPTIONAL support for the
     bonding bypass in G.998.2 single-BCE ports.
    </t>
    <t>
     The GBOND-MIB module allows a network management application to query
     Bonding capability and enable/disable it if supported. Note that
     enabling Bonding (by setting the value of the gBondPortConfAdminScheme and
     gBondPortConfPeerAdminScheme objects to any supported bonding scheme
     other than 'none') effectively turns on the fragmentation and reassembly
     function, even on a single-BCE port.
    </t>
   </section>

   <section title="Discovery Operation">
    <t>
     The G.Bond ports may optionally support a discovery operation
     whereby BCEs, during initialization, exchange information about their
     respective aggregation groups (GBS), via the <xref target="G.994.1"/>
     handshake (G.hs) protocol. This information can then be used to detect
     copper
     misconnections or for an automatic assignment of the local BCEs
     into aggregation groups instead of a fixed preconfiguration.
    </t>
    <t>
     The MIB module defined in this document allows a network
     management application to control the G.Bond discovery mechanism and query
     its results.
    </t>
    <t>
     Two tables are used by the G.Bond discovery mechanism: the ifStackTable
     and the ifCapStackTable. The following pseudocode gives
     an example of the discovery and automatic BCE assignment for a generic
     multi-GBS G.Bond device, located at the Central Office
     (CO), using objects defined in this MIB module as well as 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]:
     </t>
    <figure>
      <artwork><![CDATA[
// 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;
    }
  }
}
   ]]></artwork>
    </figure>

    <t>
     An SNMP agent for a G.Bond device builds the ifCapStackTable
     and its inverse -- the ifInvCapStackTable -- on device initialization,
     according to the cross-connect capabilities of the device.
    </t>
    <t>
     Adding a BCE to the ifStackTable row for a specific GBS involves
     actual connection of the BCE to the GBS.
    </t>
    <t>
     Note that 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 with an available BCE being
     initialized first (by setting its ifAdminStatus to 'up') and then
     added to an operationally 'up' GBS port, by modifying a respective
     ifStackTable (and respective ifInvStackTable) entry.
    </t>
    <t>
     It is RECOMMENDED that removal of the last operationally 'up' BCE
     from an operationally 'up' GBS, i.e., modification of a respective entry 
     in the ifStackTable, and a corresponding entry in the ifInvStackTable,
     would be rejected by the implementation
     (in the case of SNMP, with the error inconsistentValue),
     as this action would completely drop the link.
    </t>
    <t>
     In addition to the standard handshake-based discovery described above,
     <xref target="G.998.2"/> defines an optional frame-based discovery and pair
     management. These frame-based methods are discussed in
     <xref target="RFC6767"/>.
    </t>
  </section>

  <section title="Initialization of G.Bond Ports">
   <t>
    G.Bond ports built on top of xDSL technology require a
    lengthy initialization or 'training' process before any data can
    pass. During this initialization, both ends of a link (peers) work
    cooperatively to achieve a required data rate on a particular copper
    pair. Sometimes, when the copper line is too long or the noise
    on the line is too high, that 'training' process may fail
    to achieve a specific target rate with required characteristics.
   </t>
   <t>
    The ifAdminStatus object from the IF-MIB controls
    the desired state of a GBS with all the BCEs connected to it or of
    an individual BCE port. Setting this object to 'up'
    instructs a particular GBS or a BCE to start the initialization process,
    which may take tens of seconds for G.Bond ports. The ifOperStatus
    object from the IF-MIB shows the operational state of an
    interface for the GBS, extended by the gBondPortStatFltStatus object
    defined in this document, and a corresponding *Status object from a
    relevant xDSL line MIB for BCE interfaces.
   </t>
   <t>
    A disconnected BCE may be initialized by changing the ifAdminStatus
    from 'down' to 'up'. Changing the ifAdminStatus to 'up' on the
    GBS initializes all BCEs connected to that particular GBS.
    Note that in the case of bonding, some interfaces may fail to initialize
    while others succeed. The GBS is considered operationally 'up' if at
    least one bonded BCE is operationally 'up'. When all
    BCEs connected to the GBS are 'down', the GBS SHALL be considered
    operationally 'lowerLayerDown'. The GBS SHALL be considered
    operationally 'notPresent' if it is not connected to any BCE.
    The GBS/BCE interface SHALL remain operationally 'down' during
    initialization, indicated by the 'init' value of the
    gBondPortStatFltStatus object.
   </t>
  </section>
  <section title="Usage of the ifTable">
   <t>
    Both BCE and GBS interfaces are managed using
    interface-specific management objects defined in the GBOND-MIB module and
    generic interface objects from the ifTable of the IF-MIB, with all
    management table entries referenced by the interface index ifIndex.
   </t>
   <t>
    The following table summarizes G.Bond-specific interpretations for
    some of the ifTable objects specified by the mandatory
    ifGeneralInformationGroup:
   </t>

   <texttable anchor='table1' style='all'
              title='G.Bond Interpretation of IF-MIB Objects'>
    <ttcol align='left'>IF-MIB Object</ttcol>
    <ttcol align='left'>G.Bond Interpretation</ttcol>
    <c>ifIndex</c><c>Interface index.&nbsp; 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.</c>
    <c>ifType</c><c>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.</c>
    <c>ifSpeed</c><c>Operating data rate for the BCE.&nbsp; 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).&nbsp; 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.
   </c>
    <c>ifAdminStatus</c><c>Setting this object to 'up' instructs a
                           particular GBS (with all BCEs connected to it)
                           or a BCE to start the initialization process.</c>
    <c>ifOperStatus</c><c>A relevant *Status object from a particular
                          line MIB supplements the value of ifOperStatus
                          for BCEs.&nbsp; gBondPortStatFltStatus supplements
                          the value of ifOperStatus for a GBS.&nbsp; 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.</c>
   </texttable>
   </section>
  </section>

  <section title="Relationship to G.Bond ATM, ETH, and TDIM MIB Modules" anchor="gbond-modules">
    <t>
     The MIB module defined in this document is common to all
     G.998 bonding schemes. It MUST be used in conjunction with a
     bonding scheme-specific MIB module:
     <list style='symbols'>
       <t>
        G9981-MIB <xref target="RFC6768"/>
        for a G.998.1 bonded interface.
       </t>
       <t>
        G9982-MIB <xref target="RFC6767"/> 
        for a G.998.2 bonded interface.
       </t>
       <t>
        G9983-MIB <xref target="RFC6766"/> 
        for a G.998.3 bonded interface.
       </t>
     </list>
   </t>
  </section> 

  <section title="Relationship to xDSL MIB Modules" anchor="xdsl-modules">
   <t>
    Each xDSL technology is described in a relevant xDSL line MIB module:
    e.g., the HDSL2-SHDSL-LINE-MIB <xref target="RFC4319"/> for G.SHDSL,
    ADSL-LINE-EXT-MIB <xref target="RFC3440"/> for ADSL,
    ADSL2-LINE-MIB <xref target="RFC4706"/> for ADSL2,
    VDSL-LINE-MIB <xref target="RFC3728"/> for VDSL, or
    VDSL2-LINE-MIB <xref target="RFC5650"/> for VDSL2.
   </t>
   <t>
    These MIB modules are used to manage individual xDSL lines/channels (BCEs).
   </t>
  </section>

  <section title="Addition of New Bonding Schemes">
   <t>
     In case a new bonding scheme is introduced in a revision of G.998,
     IANA can update the IANA-maintained MIB module, adding the
     corresponding new value to the IANAgBondScheme and IANAgBondSchemeList 
     textual conventions, as well as listing the new scheme-specific 
     MIB module's name (e.g., G998x-MIB).
   </t>
   <t>
     Any scheme-specific aspect of an existing GBOND-MIB object SHALL
     be described in the corresponding G998x-MIB module, to prevent an
     unnecessary reissue of the GBOND-MIB module. For example, an
     exact definition of an Errored Second (ES) or a Severely Errored
     Second (SES) can be bonding-scheme specific; see the definitions
     for the gBondPortPmCurES and gBondPortPmCurSES objects.
   </t>
  </section>

</section>

 <section title="MIB Structure">
  <section title="Overview">
    <t>
     The main management objects defined in the GBOND-MIB module are
     split into 2 groups, structured as recommended by RFC 4181
     <xref target="RFC4181"/>:
     <list style='symbols'>
       <t>
        gBondPort - containing objects for configuration,
        capabilities, status, historical Performance Monitoring, and
        notifications, common to all G.Bond ports (GBS).
       </t>
       <t>
        gBondBce - containing a single common object for configuration
        of the remote discovery code per BCE. Note that the rest of the
        objects for BCE configuration, capabilities, status, and notifications
        are located in relevant xDSL line MIB modules as well as in the
        bonding scheme-specific MIB modules.
       </t>
     </list>
    </t>
  </section>

  <section title="Performance Monitoring">
    <t>
     The OPTIONAL Performance Monitoring counters, thresholds, and history
     buckets (interval-counters) defined in <xref target="TR-159"/>
     are implemented using the textual conventions defined in the
     HC-PerfHist-TC-MIB <xref target="RFC3705"/>. The
     HC-PerfHist-TC-MIB defines 64-bit versions of the textual
     conventions found in the PerfHist-TC-MIB <xref target="RFC3593"/>.
    </t>
    <t>
     The agent SHOULD align the beginning of each interval to a
     fifteen-minute boundary of a wall clock. Likewise, the beginning of each
     one-day interval SHOULD be aligned with the start of a day.
    </t>
    <t>
     The rationale behind this is to simplify collection and analysis of
     Performance Monitoring (PM) from multiple agents by a network management
     system (NMS) -- each PM
     interval can be "time-stamped" using the gBond*IntervalIndex object,
     from the fact that the 1-day interval starts at 00:00 and the 15-minute
     intervals are aligned with each 1/4 hour and the network-wide
     "wall clock", typically distributed via NTP or the Simple Network Time
     Protocol (SNTP) <xref target="RFC5905"/>. If the agent does not have
     access to the wall clock, a local clock can be used. In this case, as well
     as when coping with multiple time zones, the NMS would have to correlate
     the difference between the agent's local clock (available, for
     example, via the hrSystemDate object from the HOST-RESOURCES-MIB
     <xref target="RFC2790"/>) and the wall clock.
    </t>
    <t>
     Counters are not reset when a GBS is re-initialized, but rather only
     when the agent is reset or re-initialized.
    </t>
    <t>
     Note that the accumulation of certain performance events for a
     monitored entity is inhibited (counting stops) during periods of
     service unavailability on that monitored entity. The DESCRIPTION
     clause of Performance Monitoring counters in this MIB module 
     specifies which of the counters are inhibited during periods of
     service unavailability. 
    </t>
  </section>

  <section title="Mapping of Broadband Forum TR-159 Managed Objects">
    <t>
     This section contains the mapping between relevant managed objects
     (attributes) defined in <xref target="TR-159"/> and managed
     objects defined in this document and in associated MIB modules,
     i.e., the IF-MIB <xref target="RFC2863"/>.
    </t>

<figure><artwork><![CDATA[

+--------------------------------+------------------------------------+
| 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)    |
+--------------------------------+------------------------------------+
| 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
]]></artwork></figure>

  </section>
</section>

<section title="xDSL Multi-Pair Bonding MIB Definitions">

<t>The GBOND-MIB module IMPORTS objects from SNMPv2-SMI
<xref target="RFC2578"/>, SNMPv2-TC <xref target="RFC2579"/>,
SNMPv2-CONF <xref target="RFC2580"/>, SNMP-FRAMEWORK-MIB <xref
target="RFC3411"/>, IF-MIB <xref target="RFC2863"/>, and
HC-PerfHist-TC-MIB <xref target="RFC3705"/>. The&nbsp;module has
been structured as recommended by <xref target="RFC4181"/>.</t>

<figure><artwork><![CDATA[
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 "201211290000Z"  -- Nov 29, 2012
    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    "201211290000Z"  -- Nov 29, 2012
    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}

   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}

   -- 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 }

   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 }

   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 }

   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 }


   -- 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.

       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 }

   -- 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 }

   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
]]></artwork></figure>

</section>

<section title="IANA-Maintained G.Bond TC Definitions">

<t>The IANA-GBOND-TC-MIB module IMPORTS objects from
SNMPv2-SMI <xref target="RFC2578"/> and SNMPv2-TC <xref target="RFC2579"/>.</t>

<figure><artwork><![CDATA[
IANA-GBOND-TC-MIB DEFINITIONS ::= BEGIN

  IMPORTS
    MODULE-IDENTITY,
    mib-2
      FROM SNMPv2-SMI
    TEXTUAL-CONVENTION
      FROM SNMPv2-TC
    ;
------------------------------------------------------------------------
  ianaGBondTcMIB MODULE-IDENTITY
    LAST-UPDATED "201211290000Z"  -- Nov 29, 2012
    ORGANIZATION "IANA"
    CONTACT-INFO "        Internet Assigned Numbers Authority

                  Postal: ICANN
                          4676 Admiralty Way, Suite 330
                          Marina del Rey, CA  90292

                     Tel: +1-310-823-9358
                   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    "201211290000Z"  -- Nov 29, 2012
    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
]]></artwork></figure>

</section>

<section title="Security Considerations">

 <t>
   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and objects and their
   sensitivity/vulnerability:

  <list style='symbols'>
   <t>Changing of the gBondPortConfAdminScheme object may lead to a
      potential locking of the link, if the peer device does not
      support the desired bonding scheme.</t>
   <t>Changing of the gBondPortConfDiscoveryCode object, before the
      discovery operation,
      may lead to a wrongful discovery -- for example, when two CO ports
      are connected to the same multi-channel RT port, while both CO ports
      have the same discovery register value.</t>
   <t>Changing of the target upstream/downstream data rate via 
      gBondPortConfTargetUpDataRate/gBondPortConfTargetDnDataRate
      may lead to anything from degradation of link quality and data rate to a
      complete link initialization failure, as the ability of a G.Bond port
      to support a particular configuration depends on the copper
      environment.</t>
   <t>Activation of a specific line/channel may cause a severe degradation of
      service for another G.Bond port, whose channel(s) may be affected by
      the cross-talk from the newly activated channel.</t>
   <t>Removal of a channel from an operationally 'up' G.Bond port,
      aggregating several channels, may cause degradation of the port's
      data rate.</t>
  </list>
 </t>
 <t>
  Some of the readable objects in this MIB module (i.e., those with
  MAX-ACCESS other than not-accessible) may be considered sensitive or
  vulnerable in some network environments since, collectively, they provide
  information about the performance of network interfaces and can reveal
  some aspects of their configuration.
 </t>
 <t>
  In particular, since a bonded xDSL port can be comprised of multiple
  Unshielded Twisted Pair (UTP) voice-grade copper, located in the same
  bundle with other pairs belonging to another operator/customer, it is
  theoretically possible to eavesdrop on a G.Bond transmission, simply by
  "listening" to cross-talk from the bonded pairs, especially if the
  operating parameters of the G.Bond link in question are known.
 </t>
 <t>
  It is thus important to control even GET and/or NOTIFY access to these
  objects and possibly to even encrypt the values of these objects when sending
  them over the network via SNMP. These are the tables and objects and their
  sensitivity/vulnerability:
  <list style='symbols'>
   <t>gBondPortStatTable - objects in this table provide status
      information for the G.Bond port, which may aid in identification of
      the pairs belonging to the bonded port and eavesdropping on the traffic
      over that port.</t>
  </list>
 </t>
 <t>
   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.
 </t>
 <t>
   Implementations SHOULD provide the security features described by the   
   SNMPv3 framework (see <xref target="RFC3410"/>), and implementations
   claiming compliance to the SNMPv3 standard MUST include full support
   for authentication and privacy via the User-based Security Model (USM)
   <xref target="RFC3414"/> with the AES cipher algorithm
   <xref target="RFC3826"/>.
   Implementations MAY also provide support for the Transport Security Model
   (TSM) <xref target="RFC5591"/> in combination with a secure transport such
   as SSH <xref target="RFC5592"/> or TLS/DTLS <xref target="RFC6353"/>.
 </t>
 <t>
  Further, deployment of SNMP versions prior to SNMPv3 is NOT
  RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
  enable cryptographic security.  It is then a customer/operator
  responsibility to ensure that the SNMP entity giving access to an
  instance of this MIB module is properly configured to give access to
  the objects only to those principals (users) that have legitimate
  rights to indeed GET or SET (change/create/delete) them.
 </t>
</section>

<section title="IANA Considerations">
 <t>
  Three new values of IANAifType -- g9981(263), g9982(264), and g9983(265) --
  have been allocated by IANA <eref target="http://www.iana.org/"/>
  in the IANAifType-MIB module <xref target="IANAifType-MIB"/>.
 </t>
 <t>
  An object identifier for gBondMIB MODULE-IDENTITY
  has been allocated by IANA in the MIB-2 transmission sub-tree (211).
 </t>
 <t>
This document defines the first version of the IANA-maintained
IANA-GBOND-TC-MIB module. It is 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-maintaned MIB module, provided
that it is suitable for being managed by the base objects in the GBOND-MIB
module. An object identifier for ianaGBondTcMIB MODULE-IDENTITY has
been allocated by IANA in the MIB-2 transmission sub-tree (215).
</t>
 <t>
  For each new bonding scheme added, a short description of the bonding
  protocol and, wherever possible, a reference to a publicly
  available specification SHOULD be specified. An Expert Review, as
  defined in <xref target="RFC5226"/>, is REQUIRED for each modification.
 </t>
</section>

<section title="Acknowledgments">
 <t>
   This document was produced by the <xref target="ADSLMIB"/> working group.
 </t>
 <t>
   Special thanks to Dan Romascanu for his meticulous review of this text.
 </t>
</section>

</middle>

<back>

<?rfc rfcedstyle="no"?>
<references title="Normative References">

  <?rfc include="reference.RFC.2119.xml"?>
  <?rfc include="reference.RFC.2578.xml"?>
  <?rfc include="reference.RFC.2579.xml"?>
  <?rfc include="reference.RFC.2580.xml"?>
  <?rfc include="reference.RFC.2863.xml"?>
  <?rfc include="reference.RFC.3411.xml"?>
  <?rfc include="reference.RFC.3414.xml"?>
  <?rfc include="reference.RFC.3705.xml"?>
  <?rfc include="reference.RFC.3826.xml"?>
  <?rfc include="reference.RFC.5226.xml"?>
  <?rfc include="reference.RFC.5591.xml"?>
  <?rfc include="reference.RFC.5592.xml"?>
  <?rfc include="reference.RFC.6353.xml"?>

  <reference anchor="TR-159" target="http://www.broadband-forum.org/technical/download/TR-159.pdf">
    <front>
      <title>
        Management Framework for xDSL Bonding
      </title>
      <author initials="E" surname="Beili" fullname="Edward Beili">
        <organization>Actelis Networks</organization>
      </author>
      <author initials="M" surname="Morgenstern" fullname="Moti Morgenstern">
        <organization>ECI Telecom</organization>
      </author>
      <date month="December" year="2008"/>
    </front>
    <seriesInfo name="Broadband Forum Technical Report" value="TR-159"/>
  </reference>

</references>

<references title="Informative References">

  <?rfc include="reference.RFC.2790.xml"?>
  <?rfc include="reference.RFC.2864.xml"?>
  <?rfc include="reference.RFC.3410.xml"?>
  <?rfc include="reference.RFC.3593.xml"?>
  <?rfc include="reference.RFC.4181.xml"?>
  <?rfc include="reference.RFC.5066.xml"?>
  <?rfc include="reference.RFC.5905.xml"?>

<!-- ADSL-LINE-EXT-MIB extends ADSL-LINE-MIB (RFC 2662) -->
  <?rfc include="reference.RFC.3440.xml"?>

<!-- HDSL2-SHDSL-LINE-MIB obsoletes SHDSL-LINE-MIB (RFC 3276) -->
  <?rfc include="reference.RFC.4319.xml"?>

<!-- VDSL-LINE-MIB -->
  <?rfc include="reference.RFC.3728.xml"?>
<!-- RFC 3728 is extended by RFC 4070 (VDSL-EXT-MCM-MIB)
  <?rfc include="reference.RFC.4070.xml"?>
-->

<!-- ADSL2-LINE-MIB -->
  <?rfc include="reference.RFC.4706.xml"?>
<!-- VDSL2-LINE-MIB -->
  <?rfc include="reference.RFC.5650.xml"?>


  <reference anchor="IANAifType-MIB"
             target="http://www.iana.org/assignments/ianaiftype-mib">
    <front>
      <title>IANAifType Textual Convention definition</title>
      <author >
        <organization>Internet Assigned Numbers Authority (IANA)</organization>
      </author>
    </front>
  </reference>

<!-- draft-ietf-adslmib-gbond-atm-mib (companion doc.) -->
  <reference anchor="RFC6768">
    <front>
      <title>ATM-Based xDSL Bonded Interfaces MIB</title>
      <author initials="E" surname="Beili" fullname="Edward Beili">
        <organization>Actelis Networks</organization>
      </author>
      <date month="February" year="2013" />
    </front>
    <seriesInfo name="RFC" value="6768" />
  </reference>

<!-- draft-ietf-adslmib-gbond-eth-mib (companion doc.) -->
  <reference anchor="RFC6767">
    <front>
      <title>Ethernet-Based xDSL Multi-Pair Bonding (G.Bond/Ethernet) MIB</title>
      <author initials="E" surname="Beili" fullname="Edward Beili">
        <organization>Actelis Networks</organization>
      </author>
      <author initials="M" surname="Morgenstern" fullname="Moti Morgenstern">
        <organization>ECI Telecom</organization>
      </author>
      <date month="February" year="2013" />
    </front>
    <seriesInfo name="RFC" value="6767" />
  </reference>

<!-- draft-ietf-adslmib-gbond-tdim-mib (companion doc.) -->
  <reference anchor="RFC6766">
    <front>
      <title>xDSL Multi-Pair Bonding Using Time-Division Inverse Multiplexing
(G.Bond/TDIM) MIB</title>
      <author initials="E" surname="Beili" fullname="Edward Beili">
        <organization>Actelis Networks</organization>
      </author>
      <date month="February" year="2013" />
    </front>
    <seriesInfo name="RFC" value="6766" />
  </reference>

  <reference anchor="G.998.1" target="http://www.itu.int/rec/T-REC-G.998.1/en">
    <front>
      <title>
        ATM-based multi-pair bonding
      </title>
      <author>
        <organization>ITU-T</organization>
      </author>
      <date month="January" year="2005"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.998.1"/>
  </reference>

  <reference anchor="G.998.2" target="http://www.itu.int/rec/T-REC-G.998.2/en">
    <front>
      <title>
        Ethernet-based multi-pair bonding
      </title>
      <author>
        <organization>ITU-T</organization>
      </author>
      <date month="January" year="2005"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.998.2"/>
  </reference>

  <reference anchor="G.998.3" target="http://www.itu.int/rec/T-REC-G.998.3/en">
    <front>
      <title>
        Multi-pair bonding using time-division inverse multiplexing
      </title>
      <author>
        <organization>ITU-T</organization>
      </author>
      <date month="January" year="2005"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.998.3"/>
  </reference>

  <reference anchor="G.994.1" target="http://www.itu.int/rec/T-REC-G.994.1/en">
    <front>
      <title>
        Handshake procedures for digital subscriber line (DSL) transceivers
      </title>
      <author>
        <organization>ITU-T</organization>
      </author>
      <date month="June" year="2012"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.994.1"/>
  </reference>

  <reference anchor="AF-PHY-0086" target="http://www.broadband-forum.org/ftp/pub/approved-specs/af-phy-0086.001.pdf">
    <front>
      <title>
        Inverse Multiplexing for ATM (IMA) Specification Version 1.1
      </title>
      <author>
        <organization>ATM Forum</organization>
      </author>
      <date month="March" year="1999"/>
    </front>
    <seriesInfo name="ATM Forum specification" value="af-phy-0086.001"/>
  </reference>

  <reference anchor="802.3">
    <front>
      <title>
        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
      </title>
      <author>
        <organization>IEEE</organization>
      </author>
      <date day="12" month="December" year="2005"/>
    </front>
    <seriesInfo name="IEEE Std" value="802.3-2005"/>
    <format type="PDF"
     target="http://standards.ieee.org/getieee802/802.3.html" />
  </reference>

  <reference anchor="ADSLMIB" target="http://datatracker.ietf.org/wg/adslmib/charter/">
    <front>
      <title>ADSL MIB (adslmib) Charter</title>
      <author >
        <organization>IETF</organization>
      </author>
    </front>
  </reference>

</references>
<?rfc rfcedstyle="yes"?>

</back>

</rfc>
