-- =======================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: User-interfaces management mib
-- Reference:
-- Version: V1.6
-- History:
--  V1.0 Initial version 2002-12-20
--  V1.1 2004-10-12 updated by gaolong
--       Remove hpnicfVtyAccUserIndex, hpnicfVtyAccConnway from hpnicfUIMgtBasicGroup
--       because they are not accessbile objects.
--  V1.2 Updated by tanbo 02122, 2004-12-20
--       Add hpnicfConStatus for console re-authentication.
--  V1.3 2005-01-03 updated by huguohua02576
--       Modified hpnicfVtyAccAclNum's attribute.
--       Added rowstatus for hpnicfVtyAccTable.
--  V1.4 2005-08-15 updated by wangrui01736
--       Add enumeration value linkinbound(3) for hpnicfVtyAccConnway.
--  V1.5 2006-11-03 updated by songhao02718
--       Add enumeration value acl6inbound(11) and acl6outbound(12) for hpnicfVtyAccConnway.
--  V1.6 2007-12-12 updated by miaochunyan05345
--       Add hpnicfTerminalUserName, hpnicfTerminalSource, hpnicfTerminalUserAuthFailureReason,
--       hpnicfLogIn, hpnicfLogOut and hpnicfLogInAuthenFailure.
-- =======================================================================
HPN-ICF-UI-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    RowStatus,DisplayString
        FROM SNMPv2-TC
    Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI;


hpnicfUIMgt MODULE-IDENTITY
    LAST-UPDATED "200404081405Z"            -- April 08, 2004 at 14:05 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "User interfaces management MIB"
    ::= { hpnicfCommon 2 }


--
-- Node definitions
--

hpnicfUIMgtObjects OBJECT IDENTIFIER ::= { hpnicfUIMgt 1 }

hpnicfUIBasicInfo OBJECT IDENTIFIER ::= { hpnicfUIMgtObjects 1 }

hpnicfUIScalarObjects OBJECT IDENTIFIER ::= { hpnicfUIBasicInfo 1 }

hpnicfUITrapBindObjects OBJECT IDENTIFIER ::= { hpnicfUIBasicInfo 2 }

hpnicfTerminalUserName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "
        It represents the name of the logging user when login with authentication,
        otherwise login mode, such as Console, AUX, TTY, VTY etc.
        "
    ::= { hpnicfUITrapBindObjects 1 }

hpnicfTerminalSource OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "
        Login mode, such as Console, AUX, TTY, VTY etc.
        "
    ::= { hpnicfUITrapBindObjects 2 }

hpnicfTerminalUserAuthFailureReason OBJECT-TYPE
    SYNTAX      INTEGER
        {
            exceedRetries(1),
            authTimeout(2),
            otherReason(3)
        }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The reason why a user failed to log in."
    ::= { hpnicfUITrapBindObjects 3 }

hpnicfUINotifications OBJECT IDENTIFIER ::= { hpnicfUIBasicInfo 3 }

hpnicfUINotificationsPrefix OBJECT IDENTIFIER ::= { hpnicfUINotifications 0 }

hpnicfLogIn NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfTerminalUserName,
            hpnicfTerminalSource
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user logs in.
        "
    ::= { hpnicfUINotificationsPrefix 1 }

hpnicfLogOut NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfTerminalUserName,
            hpnicfTerminalSource
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user logs out.
        "
    ::= { hpnicfUINotificationsPrefix 2 }

hpnicfLogInAuthenFailure NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfTerminalUserName,
            hpnicfTerminalSource,
            hpnicfTerminalUserAuthFailureReason
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user fails to log in
        because of authentication.
        "
    ::= { hpnicfUINotificationsPrefix 3 }

hpnicfVtyMan OBJECT IDENTIFIER ::= { hpnicfUIMgtObjects 2 }

-- hpnicfVtyAccTable===============================================================
hpnicfVtyAccTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfVtyAccEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Description."
    ::= { hpnicfVtyMan 1 }

hpnicfVtyAccEntry OBJECT-TYPE
    SYNTAX      HpnicfVtyAccEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Description."
    INDEX
        {
            hpnicfVtyAccUserIndex,
            hpnicfVtyAccConnway
        }
    ::= { hpnicfVtyAccTable 1 }

HpnicfVtyAccEntry ::= SEQUENCE
    {
        hpnicfVtyAccUserIndex         Integer32,
        hpnicfVtyAccConnway           INTEGER,
        hpnicfVtyAccAclNum            Integer32,
        hpnicfVtyAccEntryRowStatus    RowStatus
    }

hpnicfVtyAccUserIndex OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        The relative index of the user interface of vty.
        "
    ::= { hpnicfVtyAccEntry 1 }

hpnicfVtyAccConnway OBJECT-TYPE
    SYNTAX      INTEGER
        {
            inbound(1),
            outbound(2),
            linkinbound(3),
            acl6inbound(11),
            acl6outbound(12)
        }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        inbound(1):Filter login connections from current UI with ipv4 layer acl.
        outbound(2):Filter logout connections from current UI with ipv4 layer acl.
        linkinbound(3):Filter login connections from current UI with link layer acl.
        acl6inbound(11):Filter login connections from current UI with ipv6 layer acl.
        acl6outbound(12):Filter logout connections from current UI with ipv6 layer acl.
        "
    ::= { hpnicfVtyAccEntry 2 }

hpnicfVtyAccAclNum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "
        The filter rule number of ACL.
        "
    ::= { hpnicfVtyAccEntry 3 }

hpnicfVtyAccEntryRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "
        The status of this conceptual row. Now only support CreateAndGo and
        Destroy and Active.
        "
    ::= { hpnicfVtyAccEntry 4 }


-- hpnicfConStatus=================================================================
hpnicfConStatus OBJECT IDENTIFIER ::= { hpnicfUIMgtObjects 3 }

-- hpnicfConStatusTable============================================================
hpnicfConStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfConStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        The current status of CONSOLE user interface. A group of
        attributes are used to describe the current status.
        "
    ::= { hpnicfConStatus 1 }

hpnicfConStatusEntry OBJECT-TYPE
    SYNTAX      HpnicfConStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        An entry of hpnicfConStatusTable.
        "
    INDEX
        {
            hpnicfConUserIndex
        }
    ::= { hpnicfConStatusTable 1 }

HpnicfConStatusEntry ::= SEQUENCE
    {
        hpnicfConUserIndex    Integer32,
        hpnicfConReAuth       INTEGER
    }

hpnicfConUserIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        The index of the user interface of CONSOLE.
        It's equal to current UserID.
        "
    ::= { hpnicfConStatusEntry 1 }

hpnicfConReAuth OBJECT-TYPE
    SYNTAX      INTEGER
        {
            disable(1),
            enable(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "
        The re-authentication attribute of current user interface.
        After disconnection of current user interface, connection
        is rebuilt, at the moment
        disable(1): re-authentication is not need.
        enable(2): re-authentication is need.
        "
    ::= { hpnicfConStatusEntry 2 }

-- hpnicfUIMgtMIBConformance18=====================================================
hpnicfUIMgtMIBConformance18 OBJECT IDENTIFIER ::= { hpnicfUIMgt 2 }

hpnicfUIMgtMIBCompliances OBJECT IDENTIFIER ::= { hpnicfUIMgtMIBConformance18 1 }

hpnicfUIMgtMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement"
    MODULE -- this module
    MANDATORY-GROUPS
        {
            hpnicfUIMgtBasicGroup,
            hpnicfConStatusGroup
        }
    ::= { hpnicfUIMgtMIBCompliances 1 }

hpnicfUIMgtManMIBGroups OBJECT IDENTIFIER ::= { hpnicfUIMgtMIBConformance18 2 }

hpnicfUIMgtBasicGroup OBJECT-GROUP
    OBJECTS
        {
            hpnicfVtyAccAclNum
        }
    STATUS      current
    DESCRIPTION
        "A collection of objects for a basic implement."
    ::= { hpnicfUIMgtManMIBGroups 1 }

hpnicfConStatusGroup OBJECT-GROUP
    OBJECTS
        {
            hpnicfConReAuth
        }
    STATUS      current
    DESCRIPTION
        "A collection of current user interface status."
    ::= { hpnicfUIMgtManMIBGroups 2 }

END
