-- *****************************************************************
-- FS-MPLS-VPN-MGMT-MIB.mib:  FS MPLS VPN MGMT MIB file
--
-- Jan 2013, Daizhibin
--
-- Copyright (c) 2013 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-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
        fsMgmt
                FROM FS-SMI;

fsMplsVPNMgmtMIB MODULE-IDENTITY
        LAST-UPDATED "201301280000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs mpls VPN management mibs."
        REVISION      "201301280000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 122 }

fsMplsVPNMgmtMIBObjects     OBJECT IDENTIFIER ::= { fsMplsVPNMgmtMIB 1 }
fsMplsVPNMgmtMIBConformance OBJECT IDENTIFIER ::= { fsMplsVPNMgmtMIB 2 }
--****************************************************************

fsMplsVPNMgmtVrf            OBJECT IDENTIFIER ::= { fsMplsVPNMgmtMIBObjects 1 }
fsMplsVPNMgmtRoute          OBJECT IDENTIFIER ::= { fsMplsVPNMgmtMIBObjects 2 }
fsMplsVPNMgmtQos            OBJECT IDENTIFIER ::= { fsMplsVPNMgmtMIBObjects 3 }

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


fsMplsVPNMgmtVrfTable OBJECT-TYPE
    SYNTAX SEQUENCE OF FSMplsVPNMgmtVrfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table specified fs mpls l3vpn vrf information."
    ::={ fsMplsVPNMgmtVrf 1 }

fsMplsVPNMgmtVrfEntry OBJECT-TYPE
    SYNTAX  FSMplsVPNMgmtVrfEntry
    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 }
    ::= { fsMplsVPNMgmtVrfTable 1 }

FSMplsVPNMgmtVrfEntry ::=
    SEQUENCE {
        fsMplsVPNMgmtVrfName            DisplayString,
        fsMplsVPNMgmtVrfIntfFault       Unsigned32,
        fsMplsVPNMgmtVrfVpnId           VPNIdOrZero,
        fsMplsVPNMgmtVrfVpnIdType       INTEGER
    }

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

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

fsMplsVPNMgmtVrfVpnId 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."
    ::= { fsMplsVPNMgmtVrfEntry 3 }

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


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

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


fsMplsVPNMgmtVrfRteEntry OBJECT-TYPE
    SYNTAX FSMplsVPNMgmtVrfRteEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Each entry in this table contained the routing infomation in one's vrf."
    INDEX { mplsL3VpnVrfName, fsMplsVPNMgmtRteDestType, fsMplsVPNMgmtRteDest, fsMplsVPNMgmtRtePfxLen, fsMplsVPNMgmtRtePolicy,
        fsMplsVPNMgmtRteNHopType, fsMplsVPNMgmtRteNextHop }
    ::= { fsMplsVPNMgmtVrfRteTable 1 }

FSMplsVPNMgmtVrfRteEntry ::= 
    SEQUENCE {
        fsMplsVPNMgmtRteDestType     InetAddressType,
        fsMplsVPNMgmtRteDest         InetAddress,
        fsMplsVPNMgmtRtePfxLen       InetAddressPrefixLength,
        fsMplsVPNMgmtRtePolicy       OBJECT IDENTIFIER,
        fsMplsVPNMgmtRteNHopType     InetAddressType,
        fsMplsVPNMgmtRteNextHop      InetAddress,
        fsMplsVPNMgmtRteDscp         Dscp,
        fsMplsVPNMgmtRteStorageType  StorageType
    }

fsMplsVPNMgmtRteDestType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of the fsMplsVPNMgmtRteDest 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]"
    ::= { fsMplsVPNMgmtVrfRteEntry 1 }

fsMplsVPNMgmtRteDest  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 fsMplsVPNMgmtRteDestType object."
    ::= { fsMplsVPNMgmtVrfRteEntry 2 }

fsMplsVPNMgmtRtePfxLen 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
        fsMplsVPNMgmtRteDest field."
    ::= { fsMplsVPNMgmtVrfRteEntry 3 }


fsMplsVPNMgmtRtePolicy 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."
    ::= { fsMplsVPNMgmtVrfRteEntry 4 }


fsMplsVPNMgmtRteNHopType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of the fsMplsVPNMgmtRteNextHop 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"
    ::= { fsMplsVPNMgmtVrfRteEntry 5 }

fsMplsVPNMgmtRteNextHop 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 fsMplsVPNMgmtRteNHopType object."
    ::= { fsMplsVPNMgmtVrfRteEntry 6 }

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

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


fsMplsVPNMgmtQosLSP     OBJECT IDENTIFIER ::= { fsMplsVPNMgmtQos 1 }
fsMplsVPNMgmtQosFault   OBJECT IDENTIFIER ::= { fsMplsVPNMgmtQos 2 }
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


END
                
