-- ************************************************************
-- CISCO-CABLE-L2VPN-MIB.my: Cisco Cable L2VPN MIB file
--   
-- Feb 2009,   Ajey  Patil
--   
-- Copyright (c) 2009 by cisco Systems, Inc.
-- All rights reserved.
--   
-- ************************************************************

CISCO-CABLE-L2VPN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    MacAddress,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    CpwVcIDType,
    CpwVcType
        FROM CISCO-IETF-PW-TC-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoCableL2vpnMIB MODULE-IDENTITY
    LAST-UPDATED    "200906170000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service
            Postal: 170 W Tasman Drive
            San Jose, CA 95134
            USA

            Tel: +1 800 553-NETS
            E-mail: cs-ubr@cisco.com"
    DESCRIPTION
        "This MIB module defines managed objects that facilitate
        the management of Cisco devices complying to the DOCSIS
        L2VPN Feature for IP/MPLS pseudo-wire. The Cisco CMTS
        implementation of IP/MPLS pseudo-wire is based on DOCSIS
        BSOD L2VPN specification.

        The information available through this MIB includes:
        Mapping information between various configuration of the
        pseudo-wire pertaining to DOCSIS BSOD L2VPN. The MIB
        tables implemented give quick access to information using
        either Cable Modem MAC address/VPN, peer IP address/VCID
        or L2vpnIndex as index in tables.

        Glossary:

        CMTS   - Cable Modem Termination System
        VCID   - Virtual Circuit Identifier
        MPLS   - Multi-Protocol Label Switching
        AToM   - Any Transport Over MPLS
        DOCSIS - Data over Cable Service Interface Specification
        BSOD   - Business Services over DOCSIS
        L2VPN  - Layer 2 Virtual Private Network
        pseudo-wire - Layer 2 connection over IP/MPLS backbone"
    REVISION        "200906170000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 700 }



CiscoCableL2vpnIndex ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An integer value locally generated by the CMTS for each
        known pseudo-wire. It is intended to be used as a short
        index for tables in this MIB module. This index is allocated
        at runtime from a pool of indices for each pseudo-wire and
        is unique to that pseudo-wire only between every creation
        and deletion of that pseudo-wire."
    SYNTAX          Unsigned32 (1..4294967295)
ciscoCableL2vpnMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoCableL2vpnMIB 0 }

ciscoCableL2vpnMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoCableL2vpnMIB 1 }

ciscoCableL2vpnMIBConform  OBJECT IDENTIFIER
    ::= { ciscoCableL2vpnMIB 2 }


ccl2vpnMacVpnIdL2vpnIndexTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF Ccl2vpnMacVpnIdL2vpnIndexEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Every L2VPN provisioned Cable Modem can be a part of
        multiple VPNs and the CMTS assigns a L2vpnIndex for
        each {Cable Modem MAC address, VPN-id} pair. This table
        maps {Cable Modem MAC address, VPN-id} to the L2vpnIndex."
    ::= { ciscoCableL2vpnMIBObjects 1 }

ccl2vpnMacVpnIdL2vpnIndexEntry OBJECT-TYPE
    SYNTAX          Ccl2vpnMacVpnIdL2vpnIndexEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each row contains the Cable Modem MAC address and VPN
        identifier and the corresponding L2vpnIndex. Entry in 
        this table is populated for each one of the pseudo-wire
        provisioned on the CMTS."
    INDEX           {
                        ccl2vpnMac,
                        IMPLIED ccl2vpnVpnId
                    } 
    ::= { ccl2vpnMacVpnIdL2vpnIndexTable 1 }

Ccl2vpnMacVpnIdL2vpnIndexEntry ::= SEQUENCE {
        ccl2vpnMac                  MacAddress,
        ccl2vpnVpnId                OCTET STRING,
        ccl2vpnMacVpnIdToL2vpnIndex CiscoCableL2vpnIndex
}

ccl2vpnMac OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the Cable Modem MAC address." 
    ::= { ccl2vpnMacVpnIdL2vpnIndexEntry 1 }

ccl2vpnVpnId OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (1..16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the VPN provisioned for L2VPN
        Cable Modem." 
    ::= { ccl2vpnMacVpnIdL2vpnIndexEntry 2 }

ccl2vpnMacVpnIdToL2vpnIndex OBJECT-TYPE
    SYNTAX          CiscoCableL2vpnIndex
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the L2vpnIndex assigned for this Cable
        Modem MAC Address/VPN pair by the CMTS." 
    ::= { ccl2vpnMacVpnIdL2vpnIndexEntry 3 }
 


ccl2vpnPWL2vpnIndexTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF Ccl2vpnPWL2vpnIndexEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Every L2VPN Cable Modem can be provisioned with multiple
        VPNs and for each {Cable Modem MAC address, VPN-id} pair,
        there is a IP/MPLS pseudo-wire established. The pseudo-wire
        is specified by {peer IP address, VCID}. This table maps
        {peer IP address, VCID} to the L2vpnIndex."
    ::= { ciscoCableL2vpnMIBObjects 2 }

ccl2vpnPWL2vpnIndexEntry OBJECT-TYPE
    SYNTAX          Ccl2vpnPWL2vpnIndexEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each row contains the pseudo-wire peer IP address and
        Virtual Circuit Identifier (VCID) and the corresponding
        L2vpnIndex. Entry in this table is populated for each one
        of the pseudo-wire provisioned on the CMTS."
    INDEX           {
                        ccl2vpnPseudoWireType,
                        ccl2vpnPeerIPAddressType,
                        ccl2vpnPeerIPAddress,
                        ccl2vpnVCID
                    } 
    ::= { ccl2vpnPWL2vpnIndexTable 1 }

Ccl2vpnPWL2vpnIndexEntry ::= SEQUENCE {
        ccl2vpnPseudoWireType    CpwVcType,
        ccl2vpnPeerIPAddressType InetAddressType,
        ccl2vpnPeerIPAddress     InetAddress,
        ccl2vpnVCID              CpwVcIDType,
        ccl2vpnPWToL2vpnIndex    CiscoCableL2vpnIndex
}

ccl2vpnPseudoWireType OBJECT-TYPE
    SYNTAX          CpwVcType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire type." 
    ::= { ccl2vpnPWL2vpnIndexEntry 1 }

ccl2vpnPeerIPAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire peer IP address
        type provisioned for L2VPN." 
    ::= { ccl2vpnPWL2vpnIndexEntry 2 }

ccl2vpnPeerIPAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire peer IP address
        provisioned for L2VPN. The type of this address is
        determined by the value of ccl2vpnPeerIPAddressType
        object." 
    ::= { ccl2vpnPWL2vpnIndexEntry 3 }

ccl2vpnVCID OBJECT-TYPE
    SYNTAX          CpwVcIDType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the Virtual Circuit Identifier
        (VCID) of the pseudo-wire." 
    ::= { ccl2vpnPWL2vpnIndexEntry 4 }

ccl2vpnPWToL2vpnIndex OBJECT-TYPE
    SYNTAX          CiscoCableL2vpnIndex
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the L2vpnIndex assigned by CMTS
        for this pseudo-wire peer IP address/VCID pair and for
        this Cable Modem MAC Address/VPN." 
    ::= { ccl2vpnPWL2vpnIndexEntry 5 }
 


ccl2vpnL2vpnIndexPWTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF Ccl2vpnL2vpnIndexPWEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "For every VPN provisioned for the L2VPN Cable Modem,
        the CMTS establishes pseudo-wire. This table maps L2vpnIndex
        to pseudo-wire configuration parameters."
    ::= { ciscoCableL2vpnMIBObjects 3 }

ccl2vpnL2vpnIndexPWEntry OBJECT-TYPE
    SYNTAX          Ccl2vpnL2vpnIndexPWEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each row contains the L2vpnIndex for the pseudo-wire and
        the corresponding configuration paramters including the
        Cable Modem MAC address, VPN identifier, peer IP address,
        Virtual Circuit Identifier (VCID) and pseudo-wire type.
        Entry in this table is populated for each one of the
        pseudo-wire provisioned on the CMTS."
    INDEX           { ccl2vpnL2vpnIndex } 
    ::= { ccl2vpnL2vpnIndexPWTable 1 }

Ccl2vpnL2vpnIndexPWEntry ::= SEQUENCE {
        ccl2vpnL2vpnIndex          CiscoCableL2vpnIndex,
        ccl2vpnPWMAC               MacAddress,
        ccl2vpnPWVpnId             OCTET STRING,
        ccl2vpnPWPeerIPAddressType InetAddressType,
        ccl2vpnPWPeerIPAddress     InetAddress,
        ccl2vpnPWType              CpwVcType,
        ccl2vpnPWVCID              CpwVcIDType
}

ccl2vpnL2vpnIndex OBJECT-TYPE
    SYNTAX          CiscoCableL2vpnIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies the L2vpnIndex assigned for this
        Cable Modem MAC Address/VPN pair by the CMTS." 
    ::= { ccl2vpnL2vpnIndexPWEntry 1 }

ccl2vpnPWMAC OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the Cable Modem MAC address." 
    ::= { ccl2vpnL2vpnIndexPWEntry 2 }

ccl2vpnPWVpnId OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (1..16))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the VPN Identifier provisioned for
        L2VPN Cable Modem." 
    ::= { ccl2vpnL2vpnIndexPWEntry 3 }

ccl2vpnPWPeerIPAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire peer IP address type." 
    ::= { ccl2vpnL2vpnIndexPWEntry 4 }

ccl2vpnPWPeerIPAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire peer IP address.
        The type of this address is determined by the value of 
        ccl2vpnPWPeerIPAddressType object." 
    ::= { ccl2vpnL2vpnIndexPWEntry 5 }

ccl2vpnPWType OBJECT-TYPE
    SYNTAX          CpwVcType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the pseudo-wire type." 
    ::= { ccl2vpnL2vpnIndexPWEntry 6 }

ccl2vpnPWVCID OBJECT-TYPE
    SYNTAX          CpwVcIDType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the Virtual Circuit Identifier (VCID)
        for pseudo-wire." 
    ::= { ccl2vpnL2vpnIndexPWEntry 7 }
 

ccl2vpnMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoCableL2vpnMIBConform 1 }

ccl2vpnMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoCableL2vpnMIBConform 2 }


ccl2vpnMIBCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for the CISCO-CABLE-L2VPN-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS { ccl2vpnPWMappingGroup }
    ::= { ccl2vpnMIBCompliances 1 }

-- Units of Conformance

ccl2vpnPWMappingGroup OBJECT-GROUP
    OBJECTS         {
                        ccl2vpnPWMAC,
                        ccl2vpnPWVpnId,
                        ccl2vpnPWPeerIPAddressType,
                        ccl2vpnPWPeerIPAddress,
                        ccl2vpnPWType,
                        ccl2vpnPWVCID,
                        ccl2vpnMacVpnIdToL2vpnIndex,
                        ccl2vpnPWToL2vpnIndex
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing Cable L2VPN pseudo-wire
        configuration."
    ::= { ccl2vpnMIBGroups 1 }

END
