-------------------------------------------------------------------------------
-- File Name : ZTE-AN-MPLS-L2VPN-MIB.mib
-- Date      : 2010-06-30
-- Author    : ZTE Nms dept.
--
-- Zte MPLS L2VPN Mib for Access Node
--
--
-------------------------------------------------------------------------------
ZTE-AN-MPLS-L2VPN-MIB DEFINITIONS ::= BEGIN
  IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
     experimental, Integer32, Unsigned32,
     Counter64, TimeTicks, IpAddress
         FROM SNMPv2-SMI
     IANAPwTypeTC
         FROM ZX-PWE3-MIB
     RowStatus, DisplayString, MacAddress, TruthValue, TEXTUAL-CONVENTION
         FROM SNMPv2-TC
     ZxAnIfindex
         FROM ZTE-AN-TC-MIB
     InetAddressType, InetAddress
         FROM INET-ADDRESS-MIB  -- [RFC4001]
     IANAPwTypeTC, IANAPwPsnTypeTC
         FROM ZX-PWE3-MIB
     PwIndexType
         FROM ZXPW-TC-STD-MIB
     zxAn
         FROM ZTE-AN-TC-MIB;

  zxAnMplsL2vpnMib MODULE-IDENTITY
     LAST-UPDATED "201006301500Z"
     ORGANIZATION
        "ZTE Corporation."
     CONTACT-INFO
         "ZTE NMS dept.
                  Guo jingwen       68895526
                  Cheng haixia      68895526 "

     DESCRIPTION  "This MIB contains managed object definitions for MPLS L2VPN
               operation."
     ::= { zxAn 59 }

-------------------------------------------------------------------------------
-- Groups in the ZTE AN MPLS L2VPN MIB Module
-------------------------------------------------------------------------------
     zxAnL2vpnGlobalObjects       OBJECT IDENTIFIER ::= {zxAnMplsL2vpnMib 1}
     zxAnVpwsObjects              OBJECT IDENTIFIER ::= {zxAnMplsL2vpnMib 2}
     zxAnVplsObjects              OBJECT IDENTIFIER ::= {zxAnMplsL2vpnMib 3}
     zxAnTdmRelayObjects          OBJECT IDENTIFIER ::= {zxAnMplsL2vpnMib 4}

-------------------------------------------------------------------------------
-- Textual conventions
-------------------------------------------------------------------------------
    ZxAnMplsVccvCcType ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
            "Control Channel (CC) types:
                pwAch(0) (0x01)      - Type 1: PWE3 Control Word with 0001b
                                       as first nibble(PW-ACH, see [RFC4385])
                mplsRouterAlertLbl(1) (0x02) - Type 2: MPLS Router Alert Label
                mplsPwLblTtlEqualsOne(2) (0x04) - Type 3: MPLS PW Label with
                                                  TTL == 1
                Bit 3 (0x08) - Reserved
                Bit 4 (0x10) - Reserved
                Bit 5 (0x20) - Reserved
                Bit 6 (0x40) - Reserved
                Bit 7 (0x80) - Reserved"
        SYNTAX  BITS
        {
            pwAch(0),
            mplsRouterAlertLbl(1),
            mplsPwLblTtlEqualsOne(2),
            reserved1(3),
            reserved2(4),
            reserved3(5),
            reserved4(6),
            reserved5(7)
        }

    ZxAnMplsVccvCvType ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
            "Connectivity Verification (CV) Types:
                icmpPing(0) (0x01) - ICMP Ping
                lspPing(1)  (0x02) - LSP Ping
                bfd(2)      (0x04) - BFD
                Bit 3 (0x08) - Reserved
                Bit 4 (0x10) - Reserved
                Bit 5 (0x20) - Reserved
                Bit 6 (0x40) - Reserved
                Bit 7 (0x80) - Reserved"
        SYNTAX  BITS
        {
            icmpPing(0),
            lspPing(1),
            bfd(2),
            reserved1(3),
            reserved2(4),
            reserved3(5),
            reserved4(6),
            reserved5(7)
        }

------------------------------------------------------------------------------
-- Following objects are defined.
-- 1.zxAn MPLS L2VPN global mgmt objects
-- 2.zxAn MPLS L2VPN VPWS objects
-- 3.zxAn MPLS L2VPN VPLS objects
-- 4.zxAn MPLS L2VPN TDM-RELAY objects
------------------------------------------------------------------------------

------------------------------------------------------------------------------
-- 1.zxAn MPLS L2VPN global mgmt objects
-- 1.11 zxAn MPLS L2VPN static pseudo wire profile table
------------------------------------------------------------------------------

----------------------------------------------------------------
-- 1.11 zxAn MPLS L2VPN static pseudo wire profile table
----------------------------------------------------------------
    zxAnMplsStaticPwTable  OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnMplsStaticPwEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains information about the
            MPLS L2VPN static pseudo wire(PW)."
        ::= { zxAnL2vpnGlobalObjects 11 }

    zxAnMplsStaticPwEntry  OBJECT-TYPE
        SYNTAX      ZxAnMplsStaticPwEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry for  zxAnMplsStaticPwTable."
        INDEX       { zxAnMplsStaticPwName }
        ::= { zxAnMplsStaticPwTable 1 }

    ZxAnMplsStaticPwEntry ::= SEQUENCE {
        zxAnMplsStaticPwName             DisplayString,
        zxAnMplsOutgoingPwLabel          Unsigned32,
        zxAnMplsIncomingPwLabel          Unsigned32,
        zxAnMplsStaticPwRowStatus        RowStatus
    }

    zxAnMplsStaticPwName  OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..20))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The pseudo wire profile name."
        ::= { zxAnMplsStaticPwEntry 2 }

    zxAnMplsOutgoingPwLabel  OBJECT-TYPE
        SYNTAX      Unsigned32(1044479..1048575)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The pseudo wire label used in the outbound direction (i.e. toward
        the PSN). It may be set up manually if owner is 'manual'
        or automatically otherwise. Examples: For MPLS PSN, it
        represents the 20 bits of pseudo wire tag, for L2TP it represents
        the 32 bits Session ID.
        If the label is not yet known (signaling in process), the
        object should return a value of 0xFFFF."
        ::= { zxAnMplsStaticPwEntry 3 }

    zxAnMplsIncomingPwLabel  OBJECT-TYPE
        SYNTAX      Unsigned32(16..1048575)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The pseudo wire label used in the inbound direction (i.e. packets
        received from the PSN. It may be set up manually if owner
        is 'manual' or automatically otherwise.
        Examples: For MPLS PSN, it represents the 20 bits of pseudo wire
        tag, for L2TP it represent the 32 bits Session ID.
        If the label is not yet known (signaling in process), the
        object should return a value of 0xFFFF."
        ::= { zxAnMplsStaticPwEntry 4 }

    zxAnMplsStaticPwRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Row Status of the Table."
        ::= { zxAnMplsStaticPwEntry 31 }

------------------------------------------------------------------------------
-- 2. zxAn MPLS L2VPN VPWS objects
-- 2.11 zxAn MPLS L2VPN VPWS table
------------------------------------------------------------------------------

------------------------------------------------------------------------------
-- 2.11 zxAn MPLS L2VPN VPWS table
------------------------------------------------------------------------------
    zxAnVpwsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnVpwsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains information about the MPLS L2VPN VPWS.VPWS
        L2VPNs employ layer 2 services over MPLS to build a topology of
        point-to-point connections that connect end customer sites in a VPN.
        These L2VPNs provide an alternative to private networks that have been
        provisioned by means of dedicated leased lines or by means of layer 2
        virtual circuits that employ ATM or Frame Relay. The service
        provisioned with these L2VPNs is known as Virtual Private Wire Service
        (VPWS). "
        ::= { zxAnVpwsObjects 11 }

    zxAnVpwsEntry  OBJECT-TYPE
        SYNTAX      ZxAnVpwsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry for zxAnVpwsTable."
        INDEX       { zxAnVpwsL3IfIndex }
        ::= { zxAnVpwsTable 1 }

    ZxAnVpwsEntry ::= SEQUENCE {
        zxAnVpwsL3IfIndex                 ZxAnIfindex,
        zxAnVpwsPeerIpAddrType            InetAddressType,
        zxAnVpwsPeerIpAddr                InetAddress,
        zxAnVpwsVcId                      Unsigned32,
        zxAnVpwsPwType                    IANAPwTypeTC,
        zxAnVpwsStaticPwName              DisplayString,
        zxAnVpwsStandbyPeerIpAddrType     InetAddressType,
        zxAnVpwsStandbyPeerIpAddr         InetAddress,
        zxAnVpwsStandbyVcId               Unsigned32,
        zxAnVpwsPwe3CWPreferred           TruthValue,
        zxAnVpwsVccvEnable                INTEGER,
        zxAnVpwsCcTypeCapability          ZxAnMplsVccvCcType,
        zxAnVpwsCvTypeCapability          ZxAnMplsVccvCvType,
        zxAnVpwsRowStatus                 RowStatus
    }

    zxAnVpwsL3IfIndex  OBJECT-TYPE
        SYNTAX      ZxAnIfindex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A unique value for each interface. The field of interface type in
        ZxAnIfindex for L3 is 0xF(Layer 3 interface)."
        ::= { zxAnVpwsEntry 1 }

    zxAnVpwsPeerIpAddrType  OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Denotes the address type of the peer node. It should be
         set to 'unknown' if PE/pseudo wire(PW) maintenance protocol is not
         used and the address is unknown."
        DEFVAL { ipv4 }
        ::= { zxAnVpwsEntry 2 }

    zxAnVpwsPeerIpAddr  OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object contains the value of the peer node address
         of the pseudo pire(PW)/PE maintenance protocol entity. This object
         SHOULD contain a value of all zeroes if not applicable
         (zxPwPeerAddrType is 'unknown')."
        ::= { zxAnVpwsEntry 3 }

    zxAnVpwsVcId    OBJECT-TYPE
        SYNTAX      Unsigned32(1..4294967295)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Used in the outgoing VC ID field within the 'Virtual
            Circuit FEC Element' when LDP signaling is used or pseudo wire ID
            AVP for L2TP."
        ::= { zxAnVpwsEntry 4 }

    zxAnVpwsPwType  OBJECT-TYPE
        SYNTAX      IANAPwTypeTC
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Indicates the pseudo wire type (i.e. the carried service). "
        ::= { zxAnVpwsEntry 5 }

    zxAnVpwsStaticPwName  OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "VPWS pseudo wire profile."
        ::= { zxAnVpwsEntry 6 }

    zxAnVpwsStandbyPeerIpAddrType  OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The type of standby peer ip address."
        DEFVAL { ipv4 }
        ::= { zxAnVpwsEntry 7 }

    zxAnVpwsStandbyPeerIpAddr  OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The standby peer IP address."
        ::= { zxAnVpwsEntry 8 }

    zxAnVpwsStandbyVcId    OBJECT-TYPE
        SYNTAX      Unsigned32(1..4294967295)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The standby VC ID."
        ::= { zxAnVpwsEntry 9 }

    zxAnVpwsPwe3CWPreferred  OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "It indicates LDP entity prefers to use control word or not in PW."
        DEFVAL { false }
        ::= { zxAnVpwsEntry 10 }

    zxAnVpwsVccvEnable  OBJECT-TYPE
        SYNTAX      INTEGER
        {
            enable(1),
            disable(2)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "VCCV(Virtual Circuit Connectivity Verification) enable switch.
            VCCV provides a control channel that is associated with
            a pseudowire (PW), as well as the corresponding operations and
            management functions (such as connectivity verification)
            to be used over that control channel."
        DEFVAL { enable }
        ::= { zxAnVpwsEntry 11 }

    zxAnVpwsCcTypeCapability  OBJECT-TYPE
        SYNTAX      ZxAnMplsVccvCcType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Control Channel(CC) types Capability, it indicates which CC types
            are supported."
        ::= { zxAnVpwsEntry 12 }

    zxAnVpwsCvTypeCapability  OBJECT-TYPE
        SYNTAX      ZxAnMplsVccvCvType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Connectivity Verification (CV) Types Capability, it indicates
            which CV types are supported."
        ::= { zxAnVpwsEntry 13 }

    zxAnVpwsRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Row Status of the Table."
        ::= { zxAnVpwsEntry 31 }

----------------------------------------------------------
-- 3.zxAn MPLS L2VPN VPLS objects
-- 3.11 VPLS VFI config table
-- 3.12 VPLS Peer address config table
-- 3.13 L3 Interface VFI Config
-- 3.14 VPLS VFI MAC Config
----------------------------------------------------------

----------------------------------------------------------
-- 2.11 VPLS VFI config table
----------------------------------------------------------

     zxAnVplsVfiConfigTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF ZxAnVplsVfiConfigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "VPLS config table."
        ::= { zxAnVplsObjects 11 }

    zxAnVplsVfiConfigEntry OBJECT-TYPE
        SYNTAX      ZxAnVplsVfiConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "VPLS config Entry.Virtual Forwarding Instance (VFI)is a virtual
            Layer 2 forwarding entity that defines the VPLS domain membership
            and resembles virtual switches on PE routers.Each VFI maintains
            its own MAC table. Provides the Ethernet bridge
            function within the n-PE."
        INDEX   { zxAnVplsVfiName }
        ::= { zxAnVplsVfiConfigTable 1 }

    ZxAnVplsVfiConfigEntry ::=
        SEQUENCE {
            zxAnVplsVfiName                           DisplayString,
            zxAnVplsVfiVcid                           Unsigned32,
            zxAnVplsVfiPwType                         IANAPwTypeTC,
            zxAnVplsVfiMaxMacLearningNum              INTEGER,
            zxAnVplsVfiRemoteMacAgingTime             INTEGER,
            zxAnVplsVfiLocalMacAgingTime              INTEGER,
            zxAnVplsVfiBCastRateLimit                 INTEGER,
            zxAnVplsVfiMCastRateLimit                 INTEGER,
            zxAnVplsVfiUnknownUCastRateLimit          INTEGER,
            zxAnVplsVfiVcidType                       INTEGER,
            zxAnVplsVfiPwe3CWPreferred                TruthValue,
            zxAnVplsVfiVccvEnable                     INTEGER,
            zxAnVplsVfiCcTypeCapability               ZxAnMplsVccvCcType,
            zxAnVplsVfiCvTypeCapability               ZxAnMplsVccvCvType,
            zxAnVplsVfiRowStatus                      RowStatus
        }

    zxAnVplsVfiName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..20))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual Forwarding Instance (VFI)is a virtual
            Layer 2 forwarding entity that defines the VPLS domain
            membership and resembles virtual switches on PE routers.
            Each Virtual Forwarding Instance maintains its own MAC
            table. Provides the Ethernet bridge function within the n-PE."
        ::= { zxAnVplsVfiConfigEntry 1 }

    zxAnVplsVfiVcid OBJECT-TYPE
        SYNTAX      Unsigned32(1..4294967295)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This configures Virtual
             Circuit id. When VPLS instances of two PE
             routers belong to same VPLS region, it is required to
             establish pseudo wire to continue the communication between
             VPLS instances. PE establishes pseudo wire to identify mpls
             lining-label (or called VC label. Mpls outer-label, which
             compose lsp, together with Virtual Circuit label,compose
             the pseudo wire) of VPLS region with each other. Virtual
             Circuit ID configured by vcid is used to identify
             the VPLS domain when PE switches VC label.When create,this value
             can not be modified."
        ::= { zxAnVplsVfiConfigEntry 2 }

    zxAnVplsVfiPwType OBJECT-TYPE
        SYNTAX      IANAPwTypeTC
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Two PEs need to negotiate pseudo wire type when they establish
             PW.There are two types of PWs in VPLS which are ethernet and
             ethernet-vlan.The former one supports transparent transmission
             mode, the latter one supports label replacement mode.When pseudo
             wire types are different with each other, pseudo wire can
             not be established.When create,this value
             can not be modified."
        ::= { zxAnVplsVfiConfigEntry 3 }

    zxAnVplsVfiMaxMacLearningNum OBJECT-TYPE
        SYNTAX      INTEGER(1..65536)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Max MAC learning number."
        ::= { zxAnVplsVfiConfigEntry 4 }

    zxAnVplsVfiRemoteMacAgingTime OBJECT-TYPE
        SYNTAX      INTEGER(180..3600)
        UNITS       "second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Remote MAC aging time."
        DEFVAL{180}
        ::= { zxAnVplsVfiConfigEntry 5 }

    zxAnVplsVfiLocalMacAgingTime OBJECT-TYPE
        SYNTAX      INTEGER(180..3600)
        UNITS       "second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Local MAC aging time."
        DEFVAL{180}
        ::= { zxAnVplsVfiConfigEntry 6 }

    zxAnVplsVfiBCastRateLimit OBJECT-TYPE
        SYNTAX      INTEGER(64..16384000)
        UNITS       "kbps"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Broadcast rate limit."
        ::= { zxAnVplsVfiConfigEntry 7 }

    zxAnVplsVfiMCastRateLimit OBJECT-TYPE
        SYNTAX      INTEGER(64..16384000)
        UNITS       "kbps"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Multicast rate limit."
        ::= { zxAnVplsVfiConfigEntry 8 }

    zxAnVplsVfiUnknownUCastRateLimit OBJECT-TYPE
        SYNTAX      INTEGER(64..16384000)
        UNITS       "kbps"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Unknown unicast rate limit."
        ::= { zxAnVplsVfiConfigEntry 9 }

    zxAnVplsVfiVcidType  OBJECT-TYPE
        SYNTAX      INTEGER
        {
            dynamic(1),
            static(2)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "VCID Type, default value is dynamic. If VCID type configured here
            is static, it indicates the VPLS domain is static too."
        DEFVAL { dynamic }
        ::= { zxAnVplsVfiConfigEntry 10 }

    zxAnVplsVfiPwe3CWPreferred  OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "It indicates LDP entity prefers to use control word or not in PW."
        DEFVAL { false }
        ::= { zxAnVplsVfiConfigEntry 11 }

    zxAnVplsVfiVccvEnable  OBJECT-TYPE
        SYNTAX      INTEGER
        {
            enable(1),
            disable(2)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "VCCV(Virtual Circuit Connectivity Verification) enable switch.
            VCCV provides a control channel that is associated with
            a pseudowire (PW), as well as the corresponding operations and
            management functions (such as connectivity verification)
            to be used over that control channel."
        DEFVAL { enable }
        ::= { zxAnVplsVfiConfigEntry 12 }

    zxAnVplsVfiCcTypeCapability  OBJECT-TYPE
        SYNTAX      ZxAnMplsVccvCcType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Control Channel(CC) types Capability, it indicates which CC types
            are supported."
        ::= { zxAnVplsVfiConfigEntry 13 }

    zxAnVplsVfiCvTypeCapability  OBJECT-TYPE
        SYNTAX      ZxAnMplsVccvCvType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Connectivity Verification (CV) Types Capability, it indicates
            which CV types are supported."
        ::= { zxAnVplsVfiConfigEntry 14 }

    zxAnVplsVfiRowStatus   OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The rowstatus of zxAnVplsVfiConfigTable"
        ::= { zxAnVplsVfiConfigEntry 30 }

---------------------------------------------------------------------------
-- 2.12 VPLS Peer address config table
---------------------------------------------------------------------------

    zxAnVplsVfiPeerIpAddrTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF ZxAnVplsVfiPeerIpAddrEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "VPLS VFI peer address config table."
        ::= { zxAnVplsObjects 12 }

    zxAnVplsVfiPeerIpAddrEntry OBJECT-TYPE
        SYNTAX      ZxAnVplsVfiPeerIpAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "VPLS VFI peer address entry."
        INDEX   { zxAnVplsVfiName,zxAnVplsVfiPeerIpAddrType,
                  zxAnVplsVfiPeerIpAddr }
        ::= { zxAnVplsVfiPeerIpAddrTable 1 }

    ZxAnVplsVfiPeerIpAddrEntry ::=
        SEQUENCE {
            zxAnVplsVfiPeerIpAddrType              InetAddressType,
            zxAnVplsVfiPeerIpAddr                  InetAddress,
            zxAnVplsVfiStandbyPeerIpAddrType       InetAddressType,
            zxAnVplsVfiStandbyPeerIpAddr           InetAddress,
            zxAnVplsVfiStaticPwName                DisplayString,
            zxAnVplsVfiPwNetType                   INTEGER,
            zxAnVplsVfiPeerRowStatus               RowStatus
        }

    zxAnVplsVfiPeerIpAddrType  OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "VPLS VFI peer address type."
        DEFVAL { ipv4 }
        ::= { zxAnVplsVfiPeerIpAddrEntry 1 }

    zxAnVplsVfiPeerIpAddr OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This configures VFI parameterpeer. It is required to
             designate all PE addresses in one VPLS region."
        ::= { zxAnVplsVfiPeerIpAddrEntry 2 }

    zxAnVplsVfiStandbyPeerIpAddrType  OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "VPLS VFI standby peer address type."
        DEFVAL { ipv4 }
        ::= { zxAnVplsVfiPeerIpAddrEntry 3 }

    zxAnVplsVfiStandbyPeerIpAddr OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Standby Peer Ip Address."
        ::= { zxAnVplsVfiPeerIpAddrEntry 4 }

    zxAnVplsVfiStaticPwName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..20))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Static pseudo wire name.VFI will use the pseudo wire which
            you configured.If not specified pseudo wire name,
            VFI will learn pseudo wire."
        ::= { zxAnVplsVfiPeerIpAddrEntry 5 }

    zxAnVplsVfiPwNetType OBJECT-TYPE
        SYNTAX      INTEGER{
                    spoke(1),
                    hub(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This configures L2VPN VPLS using static pseudo wire in VFI
            configuration mode, hub by default."
        DEFVAL {hub}
        ::= { zxAnVplsVfiPeerIpAddrEntry 6 }

    zxAnVplsVfiPeerRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The rowstatus of zxAnVplsVfiPeerIpAddrTable"
        ::= { zxAnVplsVfiPeerIpAddrEntry 20 }

-------------------------------------------------------------------------------
-- 2.13 L3 Interface VFI Config
-------------------------------------------------------------------------------
    zxAnL3IfVfiConfigTable    OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnL3IfVfiConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "L3 interface vfi config table."
        REFERENCE   ""
        ::= { zxAnVplsObjects 13 }

    zxAnL3IfVfiConfigEntry OBJECT-TYPE
        SYNTAX      ZxAnL3IfVfiConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
        "T"
        INDEX   { zxAnL3IfVfiIfIndex }
        ::= { zxAnL3IfVfiConfigTable 1 }

    ZxAnL3IfVfiConfigEntry ::=
        SEQUENCE {
            zxAnL3IfVfiIfIndex                      ZxAnIfindex,
            zxAnL3IfVfiName                         DisplayString,
            zxAnL3IfVfiRowStatus                    RowStatus
        }

    zxAnL3IfVfiIfIndex OBJECT-TYPE
        SYNTAX      ZxAnIfindex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A unique value for each interface. The field of
            interface type in ZxAnIfindex for L3 is 0xF(Layer
            3 interface)."
        ::= { zxAnL3IfVfiConfigEntry 1 }

    zxAnL3IfVfiName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (1..20))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This value is a record of zxAnVplsVfiConfigTable."
        ::= { zxAnL3IfVfiConfigEntry 2 }

    zxAnL3IfVfiRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Row status of zxAnL3IfVfiConfigTable."
        ::= { zxAnL3IfVfiConfigEntry 20 }

------------------------------------------------------------------------
-- 2.14 VPLS VFI MAC Config
------------------------------------------------------------------------

    zxAnVplsVfiMacTable OBJECT-TYPE
            SYNTAX         SEQUENCE OF ZxAnVplsVfiMacEntry
            MAX-ACCESS     not-accessible
            STATUS         current
            DESCRIPTION
                "VFI MAC table config."
            ::= { zxAnVplsObjects 14 }

    zxAnVplsVfiMacEntry OBJECT-TYPE
            SYNTAX         ZxAnVplsVfiMacEntry
            MAX-ACCESS     not-accessible
            STATUS         current
            DESCRIPTION
            "The entry of zxAnVplsVfiMacTable"
            INDEX    { zxAnVplsVfiName,zxAnVplsVfiMacAddrType,
                       zxAnVplsVfiMacAddr}
            ::= { zxAnVplsVfiMacTable 1}

    ZxAnVplsVfiMacEntry ::=
            SEQUENCE {
            zxAnVplsVfiMacAddrType             INTEGER,
            zxAnVplsVfiMacAddr                 MacAddress,
            zxAnVplsVfiMacAddrConfLocation     INTEGER,
            zxAnVplsVfiMacL3IfVlanIndex        ZxAnIfindex,
            zxAnVplsVfiMacPeerIpAddrType       InetAddressType,
            zxAnVplsVfiMacPeerIpAddr           InetAddress,
            zxAnVplsVfiMacInnerOutgoingLabel   INTEGER,
            zxAnVplsVfiMacOuterOutgoingLabel   INTEGER,
            zxAnVplsVfiMacRowStatus            RowStatus
                     }

    zxAnVplsVfiMacAddrType OBJECT-TYPE
            SYNTAX       INTEGER
                         {
                           dynamic(1),
                           static(2)
                         }
            MAX-ACCESS   not-accessible
            STATUS       current
            DESCRIPTION
                "A MAC address type,such as dynamic
                or static MAC."
            ::= { zxAnVplsVfiMacEntry 1}

    zxAnVplsVfiMacAddr OBJECT-TYPE
            SYNTAX       MacAddress
            MAX-ACCESS   not-accessible
            STATUS       current
            DESCRIPTION
                "The local or remote MAC address."
            ::= { zxAnVplsVfiMacEntry 2 }

    zxAnVplsVfiMacAddrConfLocation OBJECT-TYPE
            SYNTAX       INTEGER{
                           local(1),
                           remote(2)
                         }
            MAX-ACCESS   read-create
            STATUS       current
            DESCRIPTION
                "MAC address can be configured at AC(local)
                or pseudo wire(remote)."
            ::= { zxAnVplsVfiMacEntry 3 }

    zxAnVplsVfiMacL3IfVlanIndex OBJECT-TYPE
            SYNTAX       ZxAnIfindex
            MAX-ACCESS   read-create
            STATUS       current
            DESCRIPTION
                "L3 interface vlan id.It configured when
                zxAnVplsVfiMacAddrLocation is local."
            ::= { zxAnVplsVfiMacEntry 4 }

    zxAnVplsVfiMacPeerIpAddrType  OBJECT-TYPE
            SYNTAX       InetAddressType
            MAX-ACCESS   read-create
            STATUS       current
            DESCRIPTION
                "VPLS VFI peer ip Address type."
            DEFVAL { ipv4 }
            ::= { zxAnVplsVfiMacEntry 5 }

    zxAnVplsVfiMacPeerIpAddr OBJECT-TYPE
            SYNTAX       InetAddress
            MAX-ACCESS   read-create
            STATUS       current
            DESCRIPTION
                "VFI peer ip address.It will be configured when
                zxAnVplsVfiMacAddrLocation is remote."
            ::= { zxAnVplsVfiMacEntry 6 }

    zxAnVplsVfiMacInnerOutgoingLabel OBJECT-TYPE
            SYNTAX       INTEGER(16..1048575)
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
                "When zxAnVplsVfiMacAddrLocation value is remote,
                zxAnVplsVfiMacInnerOutgoingLabel has virtual value."
            ::= { zxAnVplsVfiMacEntry 7 }

    zxAnVplsVfiMacOuterOutgoingLabel OBJECT-TYPE
            SYNTAX       INTEGER(16..1048575)
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
                "When zxAnVplsVfiMacAddrLocation value is remote,
                zxAnVplsVfiMacOuterOutgoingLabel has virtual value."
            ::= { zxAnVplsVfiMacEntry 8 }

    zxAnVplsVfiMacRowStatus OBJECT-TYPE
            SYNTAX       RowStatus
            MAX-ACCESS   read-create
            STATUS       current
            DESCRIPTION
                "The row status of zxAnVplsVfiMacTable.
               When zxAnVplsVfiMacAddrType is dynamic,zxAnVplsVfiMacRowStatus
               can not be set DELETE. "
            ::= { zxAnVplsVfiMacEntry 30 }


----------------------------------------------------------
-- 4.zxAn MPLS L2VPN TDM-RELAY objects
-- 4.11 TDM-RELAY PW config table
-- 4.12 TDM-RELAY TDM source MAC config table
----------------------------------------------------------

----------------------------------------------------------
-- 4.11 TDM-RELAY PW config table
----------------------------------------------------------
    zxAnTRPwTable   OBJECT-TYPE
        SYNTAX        SEQUENCE OF ZxAnTRPwEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table specifies information for configuring and
        status monitoring which are common to all service types
        and PSN types."
        ::= { zxAnTdmRelayObjects 11 }

    zxAnTRPwEntry   OBJECT-TYPE
        SYNTAX        ZxAnTRPwEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A row in this table represents a pseudo wire (PW) virtual
         connection across a packet network. It is indexed by
         zxPwIndex, which uniquely identifying a singular
         connection.
         A row is created by the operator or by the agent if the PW
         is created by non-SNMP application or due to auto-discovery
         process.
         None of the read-create objects values can be changed
         when zxPwRowStatus is in the active(1) state. Changes are
         allowed when the zxPwRowStatus is in notInService(2) or
         notReady(3) states only.
         If the operator need to change one of the values for an
         active row (for example in order to fix a mismatch in
         configuration between the local node and the peer), the
         zxPwRowStatus 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  { zxAnTRPwIndex }
        ::= { zxAnTRPwTable 1 }

    ZxAnTRPwEntry ::= SEQUENCE {
         zxAnTRPwIndex                        PwIndexType,
         zxAnTRPwType                         IANAPwTypeTC,
         zxAnTRPwPsnType                      IANAPwPsnTypeTC,
         zxAnTRPwPeerIpAddrType               InetAddressType,
         zxAnTRPwPeerIpAddr                   InetAddress,
         zxAnTRPwPeerVcId                     Unsigned32,
         zxAnTRPwStandbyPeerIpAddrType        InetAddressType,
         zxAnTRPwStandbyPeerIpAddr            InetAddress,
         zxAnTRPwStandbyPeerVcId              Unsigned32,
         zxAnTRPwOutboundLabel                Unsigned32,
         zxAnTRPwInboundLabel                 Unsigned32,
         zxAnTRPwOutboundTunnelLabel          Unsigned32,
         zxAnTRPwInboundTunnelLabel           Unsigned32,
         zxAnTRPwPayloadSize                  Unsigned32,
         zxAnTRPwDstMac                       MacAddress,
         zxAnTRPwVlanId                       Unsigned32,
         zxAnTRPwPrio                         INTEGER,
         zxAnTRPwRowStatus                    RowStatus
      }

    zxAnTRPwIndex OBJECT-TYPE
        SYNTAX        PwIndexType
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
           "Index for the conceptual row identifying a PW within
        this PW Emulation table."
        ::= { zxAnTRPwEntry 1 }

    zxAnTRPwType    OBJECT-TYPE
        SYNTAX        IANAPwTypeTC
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "This value indicates the service to be carried over
        this PW."
        ::= { zxAnTRPwEntry 2 }

    zxAnTRPwPsnType OBJECT-TYPE
        SYNTAX        IANAPwPsnTypeTC
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "Set by the operator to indicates the PSN type. Based on
         this object, the relevant PSN table entries are created
         in the in the PSN specific MIB modules."
        ::= { zxAnTRPwEntry 3 }

    zxAnTRPwPeerIpAddrType    OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "Denotes the address type of the peer node. It should be
         set to 'unknown' if PE/PW maintenance protocol is not used
         and the address is unknown."
        ::= { zxAnTRPwEntry 4 }

    zxAnTRPwPeerIpAddr    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."
        ::= { zxAnTRPwEntry 5 }

    zxAnTRPwPeerVcId    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "Used in the outgoing VC ID field within the 'Virtual
            Circuit FEC Element' when LDP signaling is used or PW ID
            AVP for L2TP."
        ::= { zxAnTRPwEntry 6 }

    zxAnTRPwStandbyPeerIpAddrType    OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "Denotes the address type of the peer node. It should be
         set to 'unknown' if PE/PW maintenance protocol is not used
         and the address is unknown."
        ::= { zxAnTRPwEntry 7 }

    zxAnTRPwStandbyPeerIpAddr    OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "This object contains the value of the standby peer node address
         of the PW/PE maintenance protocol entity. This object
         SHOULD contain a value of all zeroes if not applicable."
        ::= { zxAnTRPwEntry 8 }

    zxAnTRPwStandbyPeerVcId    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "Used in the outgoing VC ID field within the 'Virtual
            Circuit FEC Element' when LDP signaling is used or PW ID
            AVP for L2TP."
        ::= { zxAnTRPwEntry 9 }

    zxAnTRPwOutboundLabel    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The PW label used in the outbound direction (i.e. toward
        the PSN). It may be set up manually if owner is 'manual'
        or automatically otherwise. Examples: For MPLS PSN, it
        represents the 20 bits of PW tag, for L2TP it represents
        the 32 bits Session ID.
        If the label is not yet known (signaling in process), the
        object should return a value of 0xFFFF."
        ::= { zxAnTRPwEntry 10 }

    zxAnTRPwInboundLabel    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The PW label used in the inbound direction (i.e. packets
        received from the PSN. It may be set up manually if owner
        is 'manual' or automatically otherwise.
        Examples: For MPLS PSN, it represents the 20 bits of PW
        tag, for L2TP it represent the 32 bits Session ID.
        If the label is not yet known (signaling in process), the
        object should return a value of 0xFFFF."
        ::= { zxAnTRPwEntry 11 }

    zxAnTRPwOutboundTunnelLabel    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The MPLS Outbound Tunnel Label."
        ::= { zxAnTRPwEntry 12 }

    zxAnTRPwInboundTunnelLabel    OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The MPLS Inbound Tunnel Label."
        ::= { zxAnTRPwEntry 13 }

    zxAnTRPwPayloadSize    OBJECT-TYPE
        SYNTAX        Unsigned32
        UNITS         "bytes"
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The value of this object indicates the PayLoad Size (in bytes)
       to be defined during the PW setUp. Upon TX, implementation
       must be capable of carrying that amount of bytes.
       Upon RX, when the LEN field is set to 0, the payload of
       packet  MUST assume this size, and if the actual
       packet size is inconsistent with this length,
       the packet MUST be considered to be malformed. "
        ::= { zxAnTRPwEntry 14 }

    zxAnTRPwDstMac    OBJECT-TYPE
        SYNTAX        MacAddress
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "The destination MAC address of a pseudo wire (PW) virtual
           connection."
        ::= { zxAnTRPwEntry 15 }

    zxAnTRPwVlanId    OBJECT-TYPE
        SYNTAX        Unsigned32 (1..4094)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "This value indicates the vlan."
        ::= { zxAnTRPwEntry 16 }

    zxAnTRPwPrio    OBJECT-TYPE
        SYNTAX        INTEGER(0..7)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "This value indicates the priority."
        ::= { zxAnTRPwEntry 17 }

    zxAnTRPwRowStatus    OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
           "For creating, modifying, and deleting this row. None of the
        read-create objects in the conceptual rows may be changed
        when this object is in the active(1) state."
        ::= { zxAnTRPwEntry 30 }

----------------------------------------------------------
-- 4.12 TDM-RELAY TDM source MAC config table
----------------------------------------------------------
     zxAnTRTdmSrcMacTable   OBJECT-TYPE
        SYNTAX        SEQUENCE OF ZxAnTRTdmSrcMacEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table specifies information for configuring TDM source MAC
            address."
        ::= { zxAnTdmRelayObjects 12 }

    zxAnTRTdmSrcMacEntry   OBJECT-TYPE
        SYNTAX        ZxAnTRTdmSrcMacEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry for zxAnTRTdmSrcMacTable. "
        INDEX  { zxAnTRTdmSrcRackNo,zxAnTRTdmSrcShelfNo, zxAnTRTdmSrcSlotNo}
        ::= { zxAnTRTdmSrcMacTable 1 }

    ZxAnTRTdmSrcMacEntry ::= SEQUENCE {
         zxAnTRTdmSrcRackNo                        Integer32,
         zxAnTRTdmSrcShelfNo                       Integer32,
         zxAnTRTdmSrcSlotNo                        Integer32,
         zxAnTRTdmSrcMac                           MacAddress
      }

    zxAnTRTdmSrcRackNo OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
           "Rack number."
        ::= { zxAnTRTdmSrcMacEntry 1 }

    zxAnTRTdmSrcShelfNo OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
           "Shelf number."
        ::= { zxAnTRTdmSrcMacEntry 2 }

    zxAnTRTdmSrcSlotNo OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
           "Slot number."
        ::= { zxAnTRTdmSrcMacEntry 3 }

    zxAnTRTdmSrcMac    OBJECT-TYPE
        SYNTAX        MacAddress
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
           "This value indicates the TDM source MAC address."
        ::= { zxAnTRTdmSrcMacEntry 4 }

END