-- =====================================================================
-- Copyright (c) 2004-2011 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: Device Link Detection Protocol (DLDP) MIB.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2011-12-26 created by Gu Ce
-- =====================================================================
A3COM-HUAWEI-DLDP2-MIB DEFINITIONS ::= BEGIN
IMPORTS
    TruthValue, MacAddress
        FROM SNMPv2-TC
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    ifIndex, ifDescr
        FROM IF-MIB
    h3cCommon
        FROM A3COM-HUAWEI-OID-MIB;

h3cDldp2 MODULE-IDENTITY
    LAST-UPDATED
        "201112261530Z"
    ORGANIZATION
        "Hangzhou H3C Technologies. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Technologies. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip: 100085"
    DESCRIPTION
        "Device Link Detection Protocol (DLDP) MIB.
        Device Link Detection Protocol is a private Layer 2 protocol,
        which can be used to detect and shut down unidirectional links (fiber or
        copper links) to avoid network problems."
    REVISION
        "201112261530Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { h3cCommon 117 }

h3cDldp2ScalarGroup        OBJECT IDENTIFIER ::= { h3cDldp2 1 }

h3cDldp2GlobalEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable(true) or disable(false) DLDP on the device."
    ::= { h3cDldp2ScalarGroup 1 }

h3cDldp2Interval OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    UNITS       "second"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates the advertisement packet sending interval."
    DEFVAL      { 5 }
    ::= { h3cDldp2ScalarGroup 2 }

h3cDldp2AuthMode OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    none(2),
                    simple(3),
                    md5(4)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates the authentication mode.
        unknown:    cannot be determined for some reason.
        none:       not authenticated.
        simple:     authenticated by a clear text password.
        md5:        authenticated by MD5 digest."
    DEFVAL      { none }
    ::= { h3cDldp2ScalarGroup 3 }

h3cDldp2AuthPassword OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(0..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates the authentication password.
        Setting the password to a zero-length octet string means
        deleting the password.
        When read, it always returns a zero-length octet string."
    ::= { h3cDldp2ScalarGroup 4 }

h3cDldp2UniShutdown OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    auto(2),
                    manual(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates the shutdown mode when a unidirectional
        link has been detected.
        unknown:    cannot be determined for some reason.
        auto:       the port will be shutdown automatically.
        manual:     the port must be shut down manually."
    DEFVAL  { auto }
    ::= { h3cDldp2ScalarGroup 5 }

h3cDldp2TableGroup         OBJECT IDENTIFIER ::= { h3cDldp2 2 }

h3cDldp2PortConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDldp2PortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains all ports that support DLDP."
    ::= { h3cDldp2TableGroup 1 }

h3cDldp2PortConfigEntry OBJECT-TYPE
    SYNTAX      H3cDldp2PortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a port that supports DLDP."
    INDEX
        {
            ifIndex
        }
    ::= { h3cDldp2PortConfigTable 1 }

H3cDldp2PortConfigEntry ::= SEQUENCE
    {
        h3cDldp2PortEnable     TruthValue
    }

h3cDldp2PortEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable(true) or disable(false) DLDP on a port."
    ::= { h3cDldp2PortConfigEntry 1 }

h3cDldp2PortStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDldp2PortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains all ports enabled with DLDP."
    ::= { h3cDldp2TableGroup 2 }

h3cDldp2PortStatusEntry OBJECT-TYPE
    SYNTAX      H3cDldp2PortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a port enabled with DLDP."
    INDEX
        {
            ifIndex
        }
    ::= { h3cDldp2PortStatusTable 1 }

H3cDldp2PortStatusEntry ::= SEQUENCE
    {
        h3cDldp2PortOperStatus     INTEGER,
        h3cDldp2PortLinkStatus     INTEGER
    }

h3cDldp2PortOperStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    initial(2),
                    inactive(3),
                    unidirectional(4),
                    bidirectional(5)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the DLDP operating status on the port.
        unknown:        cannot be determined for some reason.
        initial:        DLDP is not globally enabled.
        inactive:       physical status of the port is down.
        unidirectional: all neighbors of the port are in 'unconfirmed' status.
        bidirectional:  more than one neighbor of the port is in 'confirmed'
                        status."
    ::= { h3cDldp2PortStatusEntry 1 }

h3cDldp2PortLinkStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    down(2),
                    up(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the DLDP link status of the port.
        unknown:    cannot be determined for some reason.
        down:       the DLDP link status of the port is down.
        up:         the DLDP link status of the port is up.
        If the port operating status is not 'inactive',
        'unidirectional', or 'bidirectional', it always returns 'unknown'."
    ::= { h3cDldp2PortStatusEntry 2 }

h3cDldp2NeighborTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cDldp2NeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains all port's neighbors."
    ::= { h3cDldp2TableGroup 3 }

h3cDldp2NeighborEntry OBJECT-TYPE
    SYNTAX      H3cDldp2NeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a port's neighbors."
    INDEX
        {
            ifIndex,
            h3cDldp2NeighborBridgeMac,
            h3cDldp2NeighborPortIndex
        }
    ::= { h3cDldp2NeighborTable 1 }

H3cDldp2NeighborEntry ::= SEQUENCE
    {
        h3cDldp2NeighborBridgeMac      MacAddress,
        h3cDldp2NeighborPortIndex      Integer32,
        h3cDldp2NeighborStatus         INTEGER,
        h3cDldp2NeighborAgingTime      Integer32
    }

h3cDldp2NeighborBridgeMac OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Indicates the bridge MAC address of a neighbor."
    ::= { h3cDldp2NeighborEntry 1 }

h3cDldp2NeighborPortIndex OBJECT-TYPE
    SYNTAX      Integer32(1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Indicates the port index of a neighbor."
    ::= { h3cDldp2NeighborEntry 2 }

h3cDldp2NeighborStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    unconfirmed(2),
                    confirmed(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the status of a neighbor.
        unknown:        cannot be determined for some reason.
        unconfirmed:    unidirectional communication between the port and
                        its neighbor.
        confirmed:      bidirectional communication between the port and
                        its neighbor."
    ::= { h3cDldp2NeighborEntry 3 }

h3cDldp2NeighborAgingTime OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "second"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the aging time of a neighbor.
        If the neighbor status is not 'confirmed', it always returns 0."
    ::= { h3cDldp2NeighborEntry 4 }

h3cDldp2TrapBindObjects    OBJECT IDENTIFIER ::= { h3cDldp2 3 }

h3cDldp2Trap               OBJECT IDENTIFIER ::= { h3cDldp2 4 }
h3cDldp2TrapPrefix         OBJECT IDENTIFIER ::= { h3cDldp2Trap 0 }
h3cDldp2TrapUniLink NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS      current
    DESCRIPTION
        "This trap is generated when DLDP detects a unidirectional link,
        ifIndex and ifDescr identify the port."
    ::= { h3cDldp2TrapPrefix 1 }

h3cDldp2TrapBidLink NOTIFICATION-TYPE
    OBJECTS
        {
            ifIndex,
            ifDescr
        }
    STATUS      current
    DESCRIPTION
        "This trap is generated when DLDP detects a bidirectional link,
        ifIndex and ifDescr identify the port."
    ::= { h3cDldp2TrapPrefix 2 }

END
