-- =====================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: Device Link Detection Protocol (DLDP) MIB.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2011-12-26 created by Gu Ce
-- =====================================================================
HPN-ICF-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
    hpnicfCommon
        FROM HPN-ICF-OID-MIB;

hpnicfDldp2 MODULE-IDENTITY
    LAST-UPDATED
        "201112261530Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    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."
    ::= { hpnicfCommon 117 }

hpnicfDldp2ScalarGroup        OBJECT IDENTIFIER ::= { hpnicfDldp2 1 }

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

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

hpnicfDldp2AuthMode 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 }
    ::= { hpnicfDldp2ScalarGroup 3 }

hpnicfDldp2AuthPassword 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."
    ::= { hpnicfDldp2ScalarGroup 4 }

hpnicfDldp2UniShutdown 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 }
    ::= { hpnicfDldp2ScalarGroup 5 }

hpnicfDldp2TableGroup         OBJECT IDENTIFIER ::= { hpnicfDldp2 2 }

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

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

HpnicfDldp2PortConfigEntry ::= SEQUENCE
    {
        hpnicfDldp2PortEnable     TruthValue
    }

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

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

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

HpnicfDldp2PortStatusEntry ::= SEQUENCE
    {
        hpnicfDldp2PortOperStatus     INTEGER,
        hpnicfDldp2PortLinkStatus     INTEGER
    }

hpnicfDldp2PortOperStatus 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."
    ::= { hpnicfDldp2PortStatusEntry 1 }

hpnicfDldp2PortLinkStatus 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'."
    ::= { hpnicfDldp2PortStatusEntry 2 }

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

hpnicfDldp2NeighborEntry OBJECT-TYPE
    SYNTAX      HpnicfDldp2NeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry describes a port's neighbors."
    INDEX
        {
            ifIndex,
            hpnicfDldp2NeighborBridgeMac,
            hpnicfDldp2NeighborPortIndex
        }
    ::= { hpnicfDldp2NeighborTable 1 }

HpnicfDldp2NeighborEntry ::= SEQUENCE
    {
        hpnicfDldp2NeighborBridgeMac      MacAddress,
        hpnicfDldp2NeighborPortIndex      Integer32,
        hpnicfDldp2NeighborStatus         INTEGER,
        hpnicfDldp2NeighborAgingTime      Integer32
    }

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

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

hpnicfDldp2NeighborStatus 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."
    ::= { hpnicfDldp2NeighborEntry 3 }

hpnicfDldp2NeighborAgingTime 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."
    ::= { hpnicfDldp2NeighborEntry 4 }

hpnicfDldp2TrapBindObjects    OBJECT IDENTIFIER ::= { hpnicfDldp2 3 }

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

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

END
