-- *****************************************************************
-- QTECH-MPLS-VPN-MGMT-MIB.mib:  Qtech MPLS VPN MGMT MIB file
--
-- Jan 2013, Daizhibin
--
-- Copyright (c) 2013 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-MPLS-VPN-MGMT-MIB DEFINITIONS ::= BEGIN
IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        IpAddress,
        Unsigned32,
        Gauge32,
        Counter32
                FROM SNMPv2-SMI
        DisplayString,
        RowStatus
                FROM SNMPv2-TC
        TimeStamp, StorageType
                FROM SNMPv2-TC          -- [RFC2579]
        InetAddressPrefixLength,
        InetAddressType,
        InetAddress,
        InetPortNumber
             FROM INET-ADDRESS-MIB      --  [RFC3291]                
        MODULE-COMPLIANCE,
        OBJECT-GROUP
            FROM SNMPv2-CONF       
        Dscp
          FROM DIFFSERV-DSCP-TC      -- [RFC3289]
        VPNIdOrZero
        FROM VPN-TC-STD-MIB                                  -- [RFC4265]
        mplsL3VpnVrfName
            FROM MPLS-L3VPN-STD-MIB
        qtechMgmt
                FROM QTECH-SMI;

qtechMplsVPNMgmtMIB MODULE-IDENTITY
        LAST-UPDATED "201301280000Z"
        ORGANIZATION "Qtech Networks Co.,Ltd."
        CONTACT-INFO
                " 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech mpls VPN management mibs."
        REVISION      "201301280000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 122 }

qtechMplsVPNMgmtMIBObjects     OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtMIB 1 }
qtechMplsVPNMgmtMIBConformance OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtMIB 2 }
--****************************************************************

qtechMplsVPNMgmtVrf            OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtMIBObjects 1 }
qtechMplsVPNMgmtRoute          OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtMIBObjects 2 }
qtechMplsVPNMgmtQos            OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtMIBObjects 3 }

--****************************************************************
-- MPLS VPN Management Vrf Configure Objects
--****************************************************************


qtechMplsVPNMgmtVrfTable OBJECT-TYPE
    SYNTAX SEQUENCE OF QtechMplsVPNMgmtVrfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table specified qtech mpls l3vpn vrf information."
    ::={ qtechMplsVPNMgmtVrf 1 }

qtechMplsVPNMgmtVrfEntry OBJECT-TYPE
    SYNTAX  QtechMplsVPNMgmtVrfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Each entry in this table is meant to correspond to an entry in the Vrf table."
    INDEX { mplsL3VpnVrfName }
    ::= { qtechMplsVPNMgmtVrfTable 1 }

QtechMplsVPNMgmtVrfEntry ::=
    SEQUENCE {
        qtechMplsVPNMgmtVrfName            DisplayString,
        qtechMplsVPNMgmtVrfIntfFault       Unsigned32,
        qtechMplsVPNMgmtVrfVpnId           VPNIdOrZero,
        qtechMplsVPNMgmtVrfVpnIdType       INTEGER
    }

qtechMplsVPNMgmtVrfName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The human-readable name of this VPN."
    ::= { qtechMplsVPNMgmtVrfEntry 1 }

qtechMplsVPNMgmtVrfIntfFault OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Indicates the number of fault in the interface binding this vrf."
    ::= { qtechMplsVPNMgmtVrfEntry 2 }

qtechMplsVPNMgmtVrfVpnId OBJECT-TYPE
    SYNTAX VPNIdOrZero
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The VPN ID as specified in [RFC2685].  If a VPN ID
        has not been specified for this VRF, then this
        variable SHOULD be set to a zero-length OCTET
        STRING."
    ::= { qtechMplsVPNMgmtVrfEntry 3 }

qtechMplsVPNMgmtVrfVpnIdType OBJECT-TYPE
    SYNTAX INTEGER {
        l3vpn(1),
        l2vpn(2),
        other(3)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The VPN ID Type"
    ::= { qtechMplsVPNMgmtVrfEntry 4 }


--****************************************************************
-- MPLS VPN Management Vrf route Objects
--****************************************************************

qtechMplsVPNMgmtVrfRteTable OBJECT-TYPE
    SYNTAX SEQUENCE OF QtechMplsVPNMgmtVrfRteEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table specified MPLS L3VPN VRF table routing information."
    REFERENCE 
        "[RFC4382]"
    ::= { qtechMplsVPNMgmtRoute 1 }


qtechMplsVPNMgmtVrfRteEntry OBJECT-TYPE
    SYNTAX QtechMplsVPNMgmtVrfRteEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Each entry in this table contained the routing infomation in one's vrf."
    INDEX { mplsL3VpnVrfName, qtechMplsVPNMgmtRteDestType, qtechMplsVPNMgmtRteDest, qtechMplsVPNMgmtRtePfxLen, qtechMplsVPNMgmtRtePolicy,
        qtechMplsVPNMgmtRteNHopType, qtechMplsVPNMgmtRteNextHop }
    ::= { qtechMplsVPNMgmtVrfRteTable 1 }

QtechMplsVPNMgmtVrfRteEntry ::= 
    SEQUENCE {
        qtechMplsVPNMgmtRteDestType     InetAddressType,
        qtechMplsVPNMgmtRteDest         InetAddress,
        qtechMplsVPNMgmtRtePfxLen       InetAddressPrefixLength,
        qtechMplsVPNMgmtRtePolicy       OBJECT IDENTIFIER,
        qtechMplsVPNMgmtRteNHopType     InetAddressType,
        qtechMplsVPNMgmtRteNextHop      InetAddress,
        qtechMplsVPNMgmtRteDscp         Dscp,
        qtechMplsVPNMgmtRteStorageType  StorageType
    }

qtechMplsVPNMgmtRteDestType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of the qtechMplsVPNMgmtRteDest address, as
        defined in the InetAddress MIB.
        Only those address types that may appear in an actual
        routing table are allowed as values of this object."
    REFERENCE
        "[RFC4001]"
    ::= { qtechMplsVPNMgmtVrfRteEntry 1 }

qtechMplsVPNMgmtRteDest  OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The destination IP address of this route.
        The type of this address is determined by the value of
        the qtechMplsVPNMgmtRteDestType object."
    ::= { qtechMplsVPNMgmtVrfRteEntry 2 }

qtechMplsVPNMgmtRtePfxLen OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength (0..128)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates the number of leading one bits that form the
        mask to be logical-ANDed with the destination address
        before being compared to the value in the
        qtechMplsVPNMgmtRteDest field."
    ::= { qtechMplsVPNMgmtVrfRteEntry 3 }


qtechMplsVPNMgmtRtePolicy OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object is an opaque object without any defined
        semantics.  Its purpose is to serve as an additional
        index that may delineate between multiple entries to
        the same destination.  The value { 0 0 } shall be used
        as the default value for this object."
    ::= { qtechMplsVPNMgmtVrfRteEntry 4 }


qtechMplsVPNMgmtRteNHopType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of the qtechMplsVPNMgmtRteNextHop address,
        as defined in the InetAddress MIB.
        Value should be set to unknown(0) for non-remote
        routes.
        Only those address types that may appear in an actual
        routing table are allowed as values of this object."
    REFERENCE "RFC4001"
    ::= { qtechMplsVPNMgmtVrfRteEntry 5 }

qtechMplsVPNMgmtRteNextHop OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "On remote routes, the address of the next system en
        route.  For non-remote routes, a zero-length string.
        The type of this address is determined by the value of
        the qtechMplsVPNMgmtRteNHopType object."
    ::= { qtechMplsVPNMgmtVrfRteEntry 6 }

qtechMplsVPNMgmtRteDscp OBJECT-TYPE
    SYNTAX  Dscp
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Differentiated Services Code-Point of this vrf route."
    ::= { qtechMplsVPNMgmtVrfRteEntry 7 }

qtechMplsVPNMgmtRteStorageType OBJECT-TYPE
    SYNTAX StorageType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The storage type of this vrf route entry."
    ::= { qtechMplsVPNMgmtVrfRteEntry 8 }


qtechMplsVPNMgmtQosLSP     OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtQos 1 }
qtechMplsVPNMgmtQosFault   OBJECT IDENTIFIER ::= { qtechMplsVPNMgmtQos 2 }
    

qtechMplsVPNMgmtLSPNum  OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the working LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 1 }

qtechMplsVPNMgmtBackupLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the backup LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 2 }

qtechMplsVPNMgmtLDPLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the LDP LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 3 }

qtechMplsVPNMgmtBGPLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the BGP LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 4 }

qtechMplsVPNMgmtStaticLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the static LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 5 }

qtechMplsVPNMgmtCRLDPLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the CR-LDP LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 6 }

qtechMplsVPNMgmtRsvpLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the RSVP LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 7 }

qtechMplsVPNMgmtBFDLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the LSP which detecting by BFD."
    ::= { qtechMplsVPNMgmtQosLSP  8 }

qtechMplsVPNMgmtOAMLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the LSP which detecting by OAM."
    ::= { qtechMplsVPNMgmtQosLSP 9 }

qtechMplsVPNMgmtIngressLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION 
        "Total number of the Ingress LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 10 }

qtechMplsVPNMgmtTransitLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the transit LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 11 }
     
qtechMplsVPNMgmtEgressLSPNum OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of the Egress LSPs."
    ::= { qtechMplsVPNMgmtQosLSP 12 }

qtechMplsLSPFaultBFD OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The count of the fault which is detected by BFD."
    ::= { qtechMplsVPNMgmtQosFault 1 }

qtechMplsLSPFaultOAM OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The count of the fault which is detected by OAM."
    ::= { qtechMplsVPNMgmtQosFault 2 }

qtechMplsVrfFault OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The count of the L3VPN VRF fault."
    ::= { qtechMplsVPNMgmtQosFault 3 }


qtechMplsPWFault OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The count of the L2VPN PW fault."
    ::= { qtechMplsVPNMgmtQosFault 4 }


END
                
