-- *****************************************************************
-- FS-VPLS-LDP-MIB.mib:
--
-- June 2009, miaoshifu
--
-- Copyright (c) 2009 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-VPLS-LDP-MIB DEFINITIONS ::= BEGIN
      IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE,
      Unsigned32, transmission
         FROM SNMPv2-SMI                    -- RFC2578

      MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF                   -- RFC2580

      TruthValue,RowStatus
         FROM SNMPv2-TC                     -- RFC2579

     IANAPwTypeTC, IANAPwPsnTypeTC, IANAPwCapabilities
        FROM IANA-PWE3-MIB                 -- [RFC5601]

     InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB              -- [RFC4001]

      fsvplsConfigIndex, fsvplsPwBindIndex
         FROM FS-VPLS-GENERIC-MIB
      fsMgmt
         FROM FS-SMI
      ;

   fsvplsLdpDraft01MIB MODULE-IDENTITY
      LAST-UPDATED "201004281200Z"  -- 28 April 2010 12:00:00 GMT
      ORGANIZATION "FS.COM Inc.."
      CONTACT-INFO
                "
                Tel: 400-865-2852

                E-mail: https://www.fs.com/live_chat_service_mail.html"

      DESCRIPTION
          "Copyright (C) FS NETWORKS.

           This MIB module contains managed object definitions for
           LDP signalled Virtual Private LAN Services as in
           [RFC4762]

           This MIB module enables the use of any underlying PseudoWire
           network. "

      -- Revision history.

      REVISION
          "201004281200Z"  -- 28 April 2010 12:00:00 GMT
      DESCRIPTION "Initial version published as part of FS private MIB."

         ::= { fsMgmt 78 }

   -- Top-level components of this MIB.

   -- Notifications
   fsvplsLdpNotifications OBJECT IDENTIFIER
                                 ::= { fsvplsLdpDraft01MIB 0 }

   -- Tables, Scalars
   fsvplsLdpObjects       OBJECT IDENTIFIER
                                 ::= { fsvplsLdpDraft01MIB 1 }
   -- Conformance
   fsvplsLdpConformance   OBJECT IDENTIFIER
                                 ::= { fsvplsLdpDraft01MIB 2 }

      fsvplsLdpConfigTable OBJECT-TYPE
          SYNTAX          SEQUENCE OF FSVplsLdpConfigEntry
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
               "This table specifies information for configuring
                and monitoring LDP specific parameters for
                Virtual Private Lan Services(VPLS)."
          ::= { fsvplsLdpObjects 1 }

      fsvplsLdpConfigEntry OBJECT-TYPE
          SYNTAX          FSVplsLdpConfigEntry
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
           "A row in this table represents LDP specific information
            for Virtual Private Lan Service(VPLS) in a packet network.
            It is indexed by fsvplsConfigIndex, which uniquely
            identifies a single VPLS.

            A row is automatically created when a VPLS service is
            configured using LDP signalling.

            None of the read-create objects values can be
            changed when vplsRowStatus is in the active(1)
            state. Changes are allowed when the fsvplsRowStatus
            is in notInService(2) or notReady(3) states only.
            If the operator need to change one of the values
            for an active row the fsvplsConfigRowStatus should be
            first changed to notInService(2), the objects may
            be changed now, and later to active(1) in order to
            re-initiate the signaling process with the new
            values in effect.
            "
          INDEX           { fsvplsConfigIndex,fsvplsLdpPwIndex}
          ::= { fsvplsLdpConfigTable 1 }

      FSVplsLdpConfigEntry ::=
        SEQUENCE {
							fsvplsLdpPwIndex            Unsigned32,
							fsvplsLdpPeerAddr           InetAddress,
							fsvplsLdpPwId               Unsigned32,
							fsvplsPwType                INTEGER,
              fsvplsPwEncapType           IANAPwTypeTC,
							fsvplsLdpNeighborRowStatus  RowStatus
        }

     fsvplsLdpPwIndex  OBJECT-TYPE
          SYNTAX          Unsigned32
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
               "Index for pesudowire using LDp signal. This figures out one PW with one peer.
               "
          ::= { fsvplsLdpConfigEntry 1 }

	  fsvplsLdpPeerAddr OBJECT-TYPE
	     SYNTAX        InetAddress
	     MAX-ACCESS    read-create
	     STATUS        current
	     DESCRIPTION
	          "This object contains the value of the peer node address
	           of the PW/PE maintenance protocol entity.  This object
	           SHOULD contain a value of all zeroes if not applicable
	           (pwPeerAddrType is 'unknown').
	           The value of this object must be
             specifed when the row is created and cannot
             be changed while the row status is active(1)
                 "
	     ::= { fsvplsLdpConfigEntry 2 }

      fsvplsLdpPwId   OBJECT-TYPE
          SYNTAX          Unsigned32  (1..2147483647)
          MAX-ACCESS      read-create
          STATUS          current
          DESCRIPTION
               "Same as VC ID. Please refer to system configuration guide for more details."
          ::= { fsvplsLdpConfigEntry 3 }

      fsvplsPwType   OBJECT-TYPE
           SYNTAX          INTEGER {
                                   mesh  (1),
                                   spoke (2)
                           }
           MAX-ACCESS      read-create
           STATUS          current
           DESCRIPTION
                "The value of this object indicates
                 whether the Pseudo Wire binding is of
                 type mesh or spoke.

                 The value of this object must be
                 specified when the row is created and cannot
                 be changed while the row status is active(1)"
          ::= { fsvplsLdpConfigEntry 4 }

      fsvplsPwEncapType   OBJECT-TYPE
	     SYNTAX        IANAPwTypeTC
	     MAX-ACCESS    read-create
	     STATUS        current
	     DESCRIPTION
	         "This value indicates the emulated service to be carried over
	          this PW.
	         "

          ::= { fsvplsLdpConfigEntry 5 }

		fsvplsLdpNeighborRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "This variable is used to create, modify, and/or
             delete a row in this table.  When a row in this
             table is in active(1) state."
        ::= { fsvplsLdpConfigEntry 6 }


-- Compliance requirement for read-only implementations.

   fsvplsLdpCompliances
     OBJECT IDENTIFIER ::= { fsvplsLdpConformance 1 }

   fsvplsLdpModuleFullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
           "Compliance requirement for implementations that
            provide full support for VPLS-LDP-DRAFT-01-MIB.
            Such devices can then be monitored and configured using
            this MIB module."

      MODULE -- this module

          MANDATORY-GROUPS {
               fsvplsLdpGroup,
               fsvplsLdpNotificationGroup
           }

      ::= { fsvplsLdpCompliances 1 }


   fsvplsLdpModuleReadOnlyCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
           "Compliance requirement for implementations that only
            provide read-only support for VPLS-LDP-DRAFT-01-MIB.
            Such devices can then be monitored but cannot be
            configured using this MIB modules."

      MODULE -- this module

          MANDATORY-GROUPS {
               fsvplsLdpGroup,
               fsvplsLdpNotificationGroup
           }

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

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

        ::= { fsvplsLdpCompliances 2 }

-- Units of conformance.

      fsvplsLdpGroups
        OBJECT IDENTIFIER ::= { fsvplsLdpConformance 2 }

END
