-- =======================================================================
-- Copyright (C) 2002-2004 by  H3C TECHNOLOGIES. All rights reserved.
--
-- 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 h3cVtyAccUserIndex, h3cVtyAccConnway from h3cUIMgtBasicGroup
--       because they are not accessbile objects.
--  V1.2 Updated by tanbo 02122, 2004-12-20
--       Add h3cConStatus for console re-authentication.
--  V1.3 2005-01-03 updated by huguohua02576
--       Modified h3cVtyAccAclNum's attribute.
--       Added rowstatus for h3cVtyAccTable.
--  V1.4 2005-08-15 updated by wangrui01736
--       Add enumeration value linkinbound(3) for h3cVtyAccConnway.
--  V1.5 2006-11-03 updated by songhao02718
--       Add enumeration value acl6inbound(11) and acl6outbound(12) for h3cVtyAccConnway.
--  V1.6 2007-12-12 updated by miaochunyan05345
--       Add h3cTerminalUserName, h3cTerminalSource, h3cTerminalUserAuthFailureReason,
--       h3cLogIn, h3cLogOut and h3cLogInAuthenFailure.
-- =======================================================================
H3C-UI-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    h3cCommon
        FROM HUAWEI-3COM-OID-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    RowStatus,DisplayString
        FROM SNMPv2-TC
    Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI;


h3cUIMgt MODULE-IDENTITY
    LAST-UPDATED "200404081405Z"            -- April 08, 2004 at 14:05 GMT
    ORGANIZATION
        "Hangzhou H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085
        "
    DESCRIPTION
        "User interfaces management MIB"
    ::= { h3cCommon 2 }


--
-- Node definitions
--

h3cUIMgtObjects OBJECT IDENTIFIER ::= { h3cUIMgt 1 }

h3cUIBasicInfo OBJECT IDENTIFIER ::= { h3cUIMgtObjects 1 }

h3cUIScalarObjects OBJECT IDENTIFIER ::= { h3cUIBasicInfo 1 }

h3cUITrapBindObjects OBJECT IDENTIFIER ::= { h3cUIBasicInfo 2 }

h3cTerminalUserName 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.
        "
    ::= { h3cUITrapBindObjects 1 }

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

h3cTerminalUserAuthFailureReason 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."
    ::= { h3cUITrapBindObjects 3 }

h3cUINotifications OBJECT IDENTIFIER ::= { h3cUIBasicInfo 3 }

h3cUINotificationsPrefix OBJECT IDENTIFIER ::= { h3cUINotifications 0 }

h3cLogIn NOTIFICATION-TYPE
    OBJECTS
        {
            h3cTerminalUserName,
            h3cTerminalSource
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user logs in.
        "
    ::= { h3cUINotificationsPrefix 1 }

h3cLogOut NOTIFICATION-TYPE
    OBJECTS
        {
            h3cTerminalUserName,
            h3cTerminalSource
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user logs out.
        "
    ::= { h3cUINotificationsPrefix 2 }

h3cLogInAuthenFailure NOTIFICATION-TYPE
    OBJECTS
        {
            h3cTerminalUserName,
            h3cTerminalSource,
            h3cTerminalUserAuthFailureReason
        }
    STATUS      current
    DESCRIPTION
        "
        This notification is generated when a user fails to log in
        because of authentication.
        "
    ::= { h3cUINotificationsPrefix 3 }

h3cVtyMan OBJECT IDENTIFIER ::= { h3cUIMgtObjects 2 }

-- h3cVtyAccTable===============================================================
h3cVtyAccTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cVtyAccEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Description."
    ::= { h3cVtyMan 1 }

h3cVtyAccEntry OBJECT-TYPE
    SYNTAX      H3cVtyAccEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Description."
    INDEX
        {
            h3cVtyAccUserIndex,
            h3cVtyAccConnway
        }
    ::= { h3cVtyAccTable 1 }

H3cVtyAccEntry ::= SEQUENCE
    {
        h3cVtyAccUserIndex         Integer32,
        h3cVtyAccConnway           INTEGER,
        h3cVtyAccAclNum            Integer32,
        h3cVtyAccEntryRowStatus    RowStatus
    }

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

h3cVtyAccConnway 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.
        "
    ::= { h3cVtyAccEntry 2 }

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

h3cVtyAccEntryRowStatus 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.
        "
    ::= { h3cVtyAccEntry 4 }


-- h3cConStatus=================================================================
h3cConStatus OBJECT IDENTIFIER ::= { h3cUIMgtObjects 3 }

-- h3cConStatusTable============================================================
h3cConStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cConStatusEntry
    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.
        "
    ::= { h3cConStatus 1 }

h3cConStatusEntry OBJECT-TYPE
    SYNTAX      H3cConStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "
        An entry of h3cConStatusTable.
        "
    INDEX
        {
            h3cConUserIndex
        }
    ::= { h3cConStatusTable 1 }

H3cConStatusEntry ::= SEQUENCE
    {
        h3cConUserIndex    Integer32,
        h3cConReAuth       INTEGER
    }

h3cConUserIndex 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.
        "
    ::= { h3cConStatusEntry 1 }

h3cConReAuth 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.
        "
    ::= { h3cConStatusEntry 2 }

-- h3cUIMgtMIBConformance18=====================================================
h3cUIMgtMIBConformance18 OBJECT IDENTIFIER ::= { h3cUIMgt 2 }

h3cUIMgtMIBCompliances OBJECT IDENTIFIER ::= { h3cUIMgtMIBConformance18 1 }

h3cUIMgtMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement"
    MODULE -- this module
    MANDATORY-GROUPS
        {
            h3cUIMgtBasicGroup,
            h3cConStatusGroup
        }
    ::= { h3cUIMgtMIBCompliances 1 }

h3cUIMgtManMIBGroups OBJECT IDENTIFIER ::= { h3cUIMgtMIBConformance18 2 }

h3cUIMgtBasicGroup OBJECT-GROUP
    OBJECTS
        {
            h3cVtyAccAclNum
        }
    STATUS      current
    DESCRIPTION
        "A collection of objects for a basic implement."
    ::= { h3cUIMgtManMIBGroups 1 }

h3cConStatusGroup OBJECT-GROUP
    OBJECTS
        {
            h3cConReAuth
        }
    STATUS      current
    DESCRIPTION
        "A collection of current user interface status."
    ::= { h3cUIMgtManMIBGroups 2 }

END
