-- extracted from draft-carthic-mpbundle-mib-00.txt
-- at Tue Jul 23 06:10:09 2002

     MP-BUNDLE-MIB DEFINITIONS ::= BEGIN

     IMPORTS

            MODULE-IDENTITY,
            OBJECT-TYPE,
            Integer32,
            Counter32,
            mib-2                    FROM SNMPv2-SMI

            MODULE-COMPLIANCE,
            OBJECT-GROUP             FROM SNMPv2-CONF

            TEXTUAL-CONVENTION,
            RowStatus                FROM SNMPv2-TC

            InterfaceIndex, ifIndex  FROM IF-MIB;

    mpBundleMIB  MODULE-IDENTITY
              LAST-UPDATED "200207040000Z"
              ORGANIZATION "HCL Technologies Ltd (Cisco ODC)"
              CONTACT-INFO
                         "       Carthic Sundararaj
                          Email: csundara@cisco.com

                         "
              DESCRIPTION
                   "The MIB to manage PPP Multilink Bundles."
              REVISION   "200207040000Z"
              DESCRIPTION
                   "Initial version of the MP-BUNDLE-MIB."

              ::= { mib-2 xx } -- to be assigned by RFC Editor

    mpBundleObjects  OBJECT IDENTIFIER ::= { mpBundleMIB 1 }

    MpLinkState ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
                "State of PPP multilink bundle link."
        SYNTAX  INTEGER {
                      active(1),
                      inactive(2)
                }

    --
    -- PPP Multilink Bundle Objects
    --

    mpBundleNextIndex  OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "This object contains the next appropriate value to be
             used for mpBundleIndex when creating entries in
             mpBundleTable. A manager must first retrieve the value of
             this object. The agent should modify the value of this
             object to reflect the next unassigned index after each
             retrieval by the manager. If the number of unassigned
             entries is exhausted, this object will take a value of 0."
    ::= { mpBundleObjects 1 }

    mpBundleTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF MpBundleEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "This table provides the management information applicable
             to a PPP Multilink Bundle. It provides a means to create
             new PPP Multilink bundles and existing bundles can be
             removed."
    ::= { mpBundleObjects 2 }
    mpBundleEntry  OBJECT-TYPE
        SYNTAX  MpBundleEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "An entry in mpBundleTable."
        INDEX { mpBundleIndex }
    ::= { mpBundleTable 1 }

    MpBundleEntry ::= SEQUENCE {
        mpBundleIndex            Integer32,
        mpBundleIfIndex          InterfaceIndex,
        mpBundleRowStatus        RowStatus,
        mpBundleMRRU             Integer32,
        mpBundleSeqNumSize       INTEGER,
        mpBundleEndpointIDClass  INTEGER,
        mpBundleEndpointID       OCTET STRING,
        mpBundleFragmentation    INTEGER,
        mpBundleMaxFragmentSize  Integer32,
        mpBundleLinksMin         Integer32,
        mpBundleLinksMax         Integer32,
        mpBundleLinksConfigured  Integer32,
        mpBundleLinksActive      Integer32,
        mpBundleTxSeqNum         Integer32,
        mpBundleRxSeqNum         Integer32,
        mpBundleFragmentLoss     Counter32,
        mpBundleFragmentDiscards Counter32
    }

    mpBundleIndex  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "A unique index identifying this entry in mpBundleTable."
    ::= { mpBundleEntry 1 }

    mpBundleIfIndex  OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The 'ifIndex' corresponding to this bundle."
   ::= { mpBundleEntry 2 }
    mpBundleRowStatus  OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The status of this conceptual row."
   ::= { mpBundleEntry 3 }

    mpBundleMRRU  OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        UNITS  "Octets"
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The Maximum Received Reconstructed Unit for this bundle. It
             specifies the maximum number of octets in the Information
             fields of reassembled packets."
        REFERENCE
                "RFC 1990, Section 5.1.1"
   ::= { mpBundleEntry 4 }

    mpBundleSeqNumSize  OBJECT-TYPE
        SYNTAX  INTEGER { shortSeqNum(1),
                          longSeqNum(2)
                        }
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The sequence number format to be used when packets are
              fragmented.

                   shortSeqNum - 12 bit sequence number format

                   longSeqNum  - 24 bit sequence number format
            "
        REFERENCE
                "RFC 1990, Section 5.1.2"
        DEFVAL { longSeqNum }
   ::= { mpBundleEntry 5 }
    mpBundleEndpointIDClass  OBJECT-TYPE
        SYNTAX  INTEGER {
                        nullClass(1),
                        localAddress(2),
                        ipAddress(3),
                        ieee802dot1GlobalMACAddress(4),
                        pppMagicNumberBlock(5),
                        psnDirectoryNumber(6)
                }
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Class of Endpoint Discriminator/Identifier address
             space used for this bundle."
        REFERENCE
                "RFC 1990, Section 5.1.3"
        DEFVAL { nullClass }
   ::= { mpBundleEntry 6 }

    mpBundleEndpointID  OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..20))
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The Endpoint Discriminator/Identifier used for this
             bundle."
        REFERENCE
                "RFC 1990, Section 5.1.3"
   ::= { mpBundleEntry 7 }

    mpBundleFragmentation  OBJECT-TYPE
        SYNTAX  INTEGER { enable(1),
                          disable(2)
                        }
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The object providing control to enable or disable
             fragmentation."
        DEFVAL { disable }
   ::= { mpBundleEntry 8 }
    mpBundleMaxFragmentSize  OBJECT-TYPE
        SYNTAX  Integer32 (-1..2147483647)
        UNITS "Octets"
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
           "The maximum fragment size for this bundle. This object
            is valid only when fragmentation is enabled on the
            bundle.

            The object must return a value of -1 if fragmentation
            is disabled. A value of 0 is not valid fragment size."
        DEFVAL { -1 }
   ::= { mpBundleEntry 9 }

    mpBundleLinksMin  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The minimum number of member links required to be active
             for this bundle to be active."
   ::= { mpBundleEntry 10 }

    mpBundleLinksMax  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The maximum number of links that can be configured as
             members of this bundle."
   ::= { mpBundleEntry 11 }

    mpBundleLinksConfigured OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of links configured as members of this bundle."
   ::= { mpBundleEntry 12 }

    mpBundleLinksActive  OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The number of member links that are currently active."
   ::= { mpBundleEntry 13 }
    mpBundleTxSeqNum  OBJECT-TYPE
        SYNTAX Integer32 (0..16777215)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The sequence number of the last transmitted fragment."
   ::= { mpBundleEntry 14 }

    mpBundleRxSeqNum  OBJECT-TYPE
        SYNTAX Integer32 (0..16777215)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The sequence number of the last received fragment."
   ::= { mpBundleEntry 15 }

   mpBundleFragmentLoss  OBJECT-TYPE
       SYNTAX  Counter32
       MAX-ACCESS read-only
       STATUS  current
       DESCRIPTION
           "The count of lost fragments for this bundle. Fragments may
            be lost due to corruption of individual packets or link
            failure."
       REFERENCE
               "RFC 1990, Section 4.1"
  ::= { mpBundleEntry 16 }

   mpBundleFragmentDiscards  OBJECT-TYPE
       SYNTAX  Counter32
       MAX-ACCESS read-only
       STATUS  current
       DESCRIPTION
           "The count of fragments that were discarded on this bundle.
           Fragments are discarded if a fragmented multilink PPP packet
           could not be reassembled."
       REFERENCE
               "RFC 1990, Section 4.1"
  ::= { mpBundleEntry 17 }
    --
    -- PPP Multilink Bundle Link Objects
    --

    mpBundleLinkTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF MpBundleLinkEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "This table provides means to configure member links to a
             bundle."
    ::= { mpBundleObjects 3 }

    mpBundleLinkEntry  OBJECT-TYPE
        SYNTAX  MpBundleLinkEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "An entry in mpBundleLinkTable."
        INDEX  { mpBundleLinkIfIndex }
    ::= { mpBundleLinkTable 1 }

    MpBundleLinkEntry ::= SEQUENCE {
        mpBundleLinkIfIndex      InterfaceIndex,
        mpBundleLinkBundleIndex  Integer32,
        mpBundleLinkRowStatus    RowStatus,
        mpBundleLinkDiffDelay    Integer32,
        mpBundleLinkState        MpLinkState
    }

    mpBundleLinkIfIndex  OBJECT-TYPE
       SYNTAX  InterfaceIndex
       MAX-ACCESS not-accessible
       STATUS  current
       DESCRIPTION
           "The 'ifIndex' corresponding to this link."
    ::= { mpBundleLinkEntry 1 }

    mpBundleLinkBundleIndex  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The mpBundleIndex of the bundle of which this link a
             member."
    ::= { mpBundleLinkEntry 2 }
    mpBundleLinkRowStatus  OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The status of this conceptual row."
    ::= { mpBundleLinkEntry 3 }

    mpBundleLinkDiffDelay  OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        UNITS  "milliseconds"
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "This object provides the delay for this link relative to
             the link with the longest delay. The value will be 0 for
             the link with the longest delay."
        REFERENCE
                "RFC 1990, Section 4.2"
    ::= { mpBundleLinkEntry 4 }

    mpBundleLinkState  OBJECT-TYPE
        SYNTAX  MpLinkState
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the multilink state of the link."
   ::= { mpBundleLinkEntry 5 }

    --
    -- Mapping Objects
    --

    mpBundleIfIndexMappingTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF MpBundleIfIndexMappingEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "A table mapping the 'ifIndex' values of 'mpBundleIfIndex'
             values to its corresponding 'mpBundleIndex' values."
    ::= { mpBundleObjects 4 }

    mpBundleIfIndexMappingEntry  OBJECT-TYPE
        SYNTAX MpBundleIfIndexMappingEntry
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION
            "An entry in mpBundleIfIndexMappingTable."

        INDEX { ifIndex }
    ::= { mpBundleIfIndexMappingTable 1 }

    MpBundleIfIndexMappingEntry ::= SEQUENCE {
        mpBundleIfIndexMapping  Integer32
    }

    mpBundleIfIndexMapping  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
            "The 'mpBundleIndex' value corresponding to the 'ifIndex'
             value of this row."
    ::= { mpBundleIfIndexMappingEntry 1 }

    -- Conformance Information

    mpBundleMIBConformance OBJECT IDENTIFIER ::= { mpBundleMIB 2 }

    mpBundleMIBCompliances OBJECT IDENTIFIER
                                        ::= { mpBundleMIBConformance 1 }

    mpBundleMIBGroups OBJECT IDENTIFIER ::= { mpBundleMIBConformance 2 }

    -- Compliance Statements

    mpBundleMIBCompliance  MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                 MP-BUNDLE-MIB."
        MODULE -- this module

        MANDATORY-GROUPS  { mpBundleGroup,
                            mpBundleLinkGroup
                          }
        OBJECT  mpBundleSeqNumSize
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT mpBundleMRRU
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleEndpointIDClass
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleEndpointID
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleFragmentation
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleMaxFragmentSize
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleLinksMin
        MIN-ACCESS  read-only
        DESCRIPTION
                "Write access is not required."

        OBJECT  mpBundleLinkDiffDelay
        MIN-ACCESS not-accessible
        DESCRIPTION
                "This is an optional attribute."
   ::= { mpBundleMIBCompliances 1 }

    -- Units of Conformance

    mpBundleGroup  OBJECT-GROUP
        OBJECTS {
           mpBundleIfIndex,
           mpBundleRowStatus,
           mpBundleSeqNumSize,
           mpBundleMRRU,
           mpBundleEndpointIDClass,
           mpBundleEndpointID,
           mpBundleFragmentation,
           mpBundleMaxFragmentSize,
           mpBundleLinksMin,
           mpBundleLinksMax,
           mpBundleLinksConfigured,
           mpBundleLinksActive,
           mpBundleTxSeqNum,
           mpBundleRxSeqNum,
           mpBundleFragmentLoss,
           mpBundleFragmentDiscards,
           mpBundleIfIndexMapping
        }
        STATUS  current
        DESCRIPTION
                "Objects in mpBundleTable and
                 mpBundleIfIndexMappingTable."
    ::= { mpBundleMIBGroups 1 }

    mpBundleLinkGroup  OBJECT-GROUP
        OBJECTS {
            mpBundleLinkBundleIndex,
            mpBundleLinkRowStatus,
            mpBundleLinkDiffDelay,
            mpBundleLinkState
        }
        STATUS  current
        DESCRIPTION
                "Object in mpBundleLinkTable."
    ::= { mpBundleMIBGroups 2 }


    END

-- 
--     Copyright (C) The Internet Society (2002).  All Rights Reserved.
-- 
--     This document and translations of it may be copied and furnished to
--     others, and derivative works that comment on or otherwise explain
--     it or assist in its implementation may be prepared, copied,
--     published and distributed, in whole or in part, without restriction
--     of any kind, provided that the above copyright notice and this
--     paragraph are included on all such copies and derivative works.
--     However, this document itself may not be modified in any way, such
--     as by removing the copyright notice or references to the Internet
--     Society or other Internet organizations, except as needed for the
--     purpose of developing Internet standards in which case the
--     procedures for copyrights defined in the Internet Standards process
--     must be followed, or as required to translate it into languages
--     other than English.
-- 
--     The limited permissions granted above are perpetual and will not be
--     revoked by the Internet Society or its successors or assigns.
-- 
--     This document and the information contained herein is provided on
--     an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
--     ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
--     IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
--     THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
--     WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

