--==================================================================
-- Copyright (C) 2006 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- 
-- Description: HUAWEI SSH MIB
-- Reference:
-- Version: V1.0
-- History:
-- <author>,  <date>,  <contents>
-- ZhouYun   2006-3-22
-- ==================================================================

-- ==================================================================
-- 
-- Varibles and types are imported
--
-- ==================================================================
    HUAWEI-SSH-MIB DEFINITIONS ::= BEGIN
 
        IMPORTS
            hwDatacomm            
                FROM HUAWEI-MIB            
            OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP            
                FROM SNMPv2-CONF            
            Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE            
                FROM SNMPv2-SMI            
            RowStatus, DisplayString            
                FROM SNMPv2-TC;
    
    

        hwSSH MODULE-IDENTITY 
            LAST-UPDATED "200607081938Z"        
            ORGANIZATION 
                "Huawei Technologies co.,Ltd."
            CONTACT-INFO 
                "VRP Team Huawei Technologies co.,Ltd.
                Huawei Bld.,NO.3 Xinxi Rd., 
                Shang-Di Information Industry Base,
                Hai-Dian District Beijing P.R. China
                http://www.huawei.com
                Zip:100085
                "
            DESCRIPTION 
                "The HUAWEI-SSH-MIB which contains objects manages the SSH server and SSH client configuration. 
                "
            REVISION "200607081938Z"        
            DESCRIPTION 
                "The initial revision of this MIB module ."
            ::= { hwDatacomm 118 }

        
    
    
--
-- Node definitions
--
    
--  ==================================================================
-- 
-- ======================= definition begin =========================
-- 
-- ==================================================================       
        hwSSHServer OBJECT IDENTIFIER ::= { hwSSH 1 }

        
        hwStelnetServerEnable OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies whether the SSH stelnet server is enable."
            DEFVAL { 2 }
            ::= { hwSSHServer 1 }

        
        hwSftpServerEnable OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies whether the sftp server is enable."
            DEFVAL { 2 }
            ::= { hwSSHServer 2 }

        
        hwSSHServerComp1x OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies whether the SSH server is compatible with SSH1.x."
            DEFVAL { 1 }
            ::= { hwSSHServer 3 }

        
        hwSSHServerTimeOut OBJECT-TYPE
            SYNTAX Integer32 (1..120)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies the time when SSH authentication times out.
                The unit is the second and the default is 60 seconds."
            ::= { hwSSHServer 4 }

        
        hwSSHServerRetry OBJECT-TYPE
            SYNTAX Integer32 (1..5)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies authentication-retry times for SSH user .
                The default is 3."
            ::= { hwSSHServer 5 }

        
        hwSSHServerPort OBJECT-TYPE
            SYNTAX Integer32 (22|1025..55535)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies port number for SSH server supporting."
            ::= { hwSSHServer 6 }

        
        hwSSHServerKeyTimeOut OBJECT-TYPE
            SYNTAX Integer32 (0..24)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies update time of the server key ,which unit is hour.
                By default,value is 0 hour,which means server key cann't be updated forever.
                "
            ::= { hwSSHServer 7 }
            
            
        hwSSHServerAlarmEnable OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies whether send trap information to NMS.
                Only when it values enable,allowed to send trap informations to NMS."
            DEFVAL { 2 }
            ::= { hwSSHServer 8 }
            
            
        hwSftpMaxUserNum OBJECT-TYPE
            SYNTAX INTEGER(0..5)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the max number of sftp user that sftp server supporting."
            ::= { hwSSHServer 9 }
            
            
        hwSftpOnLineUserNum OBJECT-TYPE
            SYNTAX INTEGER(0..5)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the number of sftp user that has been connected to sftp server currently ."
            ::= { hwSSHServer 10 }
            
        
        hwSSHUserTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwSSHUserEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of configuration about SSH user."
            ::= { hwSSHServer 11 }

        
        hwSSHUserEntry OBJECT-TYPE
            SYNTAX HwSSHUserEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Information about configuration of a SSH user."
            INDEX { hwSSHUserIndex }
            ::= { hwSSHUserTable 1 }

        
        HwSSHUserEntry ::=
            SEQUENCE {
                    hwSSHUserIndex
                            Integer32, 
                hwSSHUserName
                    OCTET STRING,
                hwSSHUserAssignKey
                    OCTET STRING,
                hwSSHUserAuthType
                    INTEGER,
                hwSSHUserServiceType
                    INTEGER,
                hwSSHUserSftpDirectory
                    OCTET STRING,
                hwSSHUserAuthorizationCMD
                        INTEGER,
                hwSSHUserRowStatus
                    RowStatus
             }

                hwSSHUserIndex OBJECT-TYPE
            SYNTAX Integer32 (1..200)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The object specifies the index of hwSSHUserTable."
            ::= { hwSSHUserEntry 1 }
            
            
        hwSSHUserName OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..64))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the name of a SSH user,the maximum length of the node is 64."
            ::= { hwSSHUserEntry 2 }

        
        hwSSHUserAssignKey OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (0..30))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies a peer public key for a SSH user.This peer public key on the SSH server must exist."
            ::= { hwSSHUserEntry 3 }

        
        hwSSHUserAuthType OBJECT-TYPE
            SYNTAX INTEGER
                {
                authNULL(1),
                authPASSWORD(2),
                authRSA(3),
                authRSAorPASSWORD(4),
                authRSAandPASSWORD(5)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the authentication type of SSH user.The default authentication type is authNULL. "
            DEFVAL { authNULL }
            ::= { hwSSHUserEntry 4 }

        
        hwSSHUserServiceType OBJECT-TYPE
            SYNTAX INTEGER
                {
                servicetypeNULL(1),
                servicetypeSTELNET(2),
                servicetypeSFTP(3),
                servicetypeALL(4)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the service type of SSH user.The default service type is servicetypeNULL. "
            DEFVAL { servicetypeNULL }
            ::= { hwSSHUserEntry 5 }

        
        hwSSHUserSftpDirectory OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (0..64))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the working directory for the sftp user . "
            ::= { hwSSHUserEntry 6 }

        
        hwSSHUserAuthorizationCMD OBJECT-TYPE
            SYNTAX INTEGER
                {
                authorizationNULL(1),
                authorizationAAA(2)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the authorization type of SSH user.When authorizationAAA is specified,
                 the SSH user will be authorizated by HWTACACS server.The default authorization is authorizationNULL ,
                 indicating SSH user doesn't need to be authorizated by HWTACACS server. "
                       DEFVAL { authorizationNULL }
            ::= { hwSSHUserEntry 7 }
            

        hwSSHUserRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the status of this table entry.
                When the status is active, hwSSHUserAssignKey,hwSSHUserAuthType,
                hwSSHUserServiceType,hwSSHUserSftpDirectory and hwSSHUserAuthorizationCMD's
                value in the entry are allowed to be modified."
            ::= { hwSSHUserEntry 8 }


        hwSSHServerSessionTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwSSHServerSessionEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The object shows current session information of the SSH server which includes username,
                version information ,retry times of online users currently ."
            ::= { hwSSHServer 12 }

        
        hwSSHServerSessionEntry OBJECT-TYPE
            SYNTAX HwSSHServerSessionEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table to show current session information of the SSH server."
            INDEX { hwSSHSessionIndex }
            ::= { hwSSHServerSessionTable 1 }

        
        HwSSHServerSessionEntry ::=
            SEQUENCE { 
                    hwSSHSessionIndex
                            Integer32,
                hwSSHSessionUserName
                    DisplayString,
                hwSSHSessionConnectType
                    INTEGER,
                hwSSHSessionVer
                    DisplayString,
                hwSSHSessionState
                    INTEGER,
                hwSSHSessionRetry
                    Integer32,
                hwSSHSessionCtosCipher
                        DisplayString,
                                hwSSHSessionStocCipher
                                        DisplayString,
                                hwSSHSessionCtosHmac
                                        DisplayString,
                                hwSSHSessionStocHmac
                                        DisplayString,
                                hwSSHSessionKex
                                        DisplayString,
                                hwSSHSessionAuthType
                                        DisplayString,
                                hwSSHSessionServiceType
                                        DisplayString
             }
             
                hwSSHSessionIndex OBJECT-TYPE
            SYNTAX Integer32 (1..15)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The object specifies the index of hwSSHServerSessionTable."
            ::= { hwSSHServerSessionEntry 1 }

        hwSSHSessionUserName OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the name of a SSH user,which has started a session."
            ::= { hwSSHServerSessionEntry 2 }


        hwSSHSessionConnectType OBJECT-TYPE
            SYNTAX INTEGER
                {
                vty0(1),
                vty1(2),
                vty2(3),
                vty3(4),
                vty4(5),
                vty5(6),
                vty6(7),
                vty7(8),
                vty8(9),
                vty9(10),
                vty10(11),
                vty11(12),
                vty12(13),
                vty13(14),
                vty14(15)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the line number supports a connection of SSH user which is in connection with SSH server ."
            ::= { hwSSHServerSessionEntry 3 }


        hwSSHSessionVer OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the version information of a SSH user which is in connection with SSH server."
            ::= { hwSSHServerSessionEntry 4 }

        hwSSHSessionState OBJECT-TYPE
            SYNTAX INTEGER { started(1) }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the state of a SSH user which is in connection with SSH server ."
            ::= { hwSSHServerSessionEntry 5 }


        hwSSHSessionRetry OBJECT-TYPE
            SYNTAX Integer32 (0..5)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies SSH user's retrying times in authentications."
            ::= { hwSSHServerSessionEntry 6 }
        
        hwSSHSessionCtosCipher OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the cipher of custom to server."
            ::= { hwSSHServerSessionEntry 7 }
            
        hwSSHSessionStocCipher OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the cipher of server to custom."
            ::= { hwSSHServerSessionEntry 8 }
            
        hwSSHSessionCtosHmac OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the hmac of custom to server."
            ::= { hwSSHServerSessionEntry 9 }
        
        hwSSHSessionStocHmac OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the hmac of server to custom."
            ::= { hwSSHServerSessionEntry 10 }
            
        hwSSHSessionKex OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the key exchange."
            ::= { hwSSHServerSessionEntry 11 }
            
        hwSSHSessionAuthType OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the authentication type of SSH session."
            ::= { hwSSHServerSessionEntry 12 }

        
        hwSSHSessionServiceType OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The object specifies the service type of SSH session."
            ::= { hwSSHServerSessionEntry 13 }

        
        hwSSHClient OBJECT IDENTIFIER ::= { hwSSH 2 }

        
        hwSSHFirstTimeAuthEnable OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The object specifies whether the SSH client supports first-time-authentication."
            DEFVAL { 2 }
            ::= { hwSSHClient 1 }

        
        hwSSHServerInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwSSHServerInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of configuration about the relation between the SSH server and the rsa peerkey."
            ::= { hwSSHClient 2 }

        
        hwSSHServerInfoEntry OBJECT-TYPE
            SYNTAX HwSSHServerInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of configuration about the relation between the SSH server and the rsa peerkey."
            INDEX { hwSSHServerIndex }
            ::= { hwSSHServerInfoTable 1 }

        
        HwSSHServerInfoEntry ::=
            SEQUENCE { 
                    hwSSHServerIndex
                            Integer32,
                hwSSHServerName
                    OCTET STRING,
                hwSSHServerAssignKey
                    OCTET STRING,
                hwSSHServerRowStatus
                    RowStatus
             }
             
             
                hwSSHServerIndex OBJECT-TYPE
            SYNTAX Integer32 (1..20)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The object specifies the index of hwSSHServerInfoTable."
            ::= { hwSSHServerInfoEntry 1 }


        hwSSHServerName OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..46))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the name of a SSH server."
            ::= { hwSSHServerInfoEntry 2 }

        
        hwSSHServerAssignKey OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..64))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies a peer public key for a SSH server.This peer public key must exist."
            ::= { hwSSHServerInfoEntry 3 }

        
        hwSSHServerRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The object specifies the status of this table entry.
                When the status is active,  hwSSHServerAssignKey's value in the entry is 
                allowed to be modified."
            ::= { hwSSHServerInfoEntry 4 }

        
        hwSSHNotifications OBJECT IDENTIFIER ::= { hwSSH 3 }

        
        hwSSHSftpUserNumExceedMax NOTIFICATION-TYPE
                OBJECTS { hwSftpOnLineUserNum, hwSftpMaxUserNum }
            STATUS current
            DESCRIPTION 
                "This notification was sent when the total number of sftp users requesting sftp service
                exceeds 5."
            ::= { hwSSHNotifications 1 }

        
--   Conformance information

        hwSSHMIBConformance OBJECT IDENTIFIER ::= { hwSSH 4 }

        
        hwSSHMIBCompliances OBJECT IDENTIFIER ::= { hwSSHMIBConformance 1 }

        
--   this module

        hwSSHMIBCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION 
                "The compliance statement for systems supporting 
                the HUAWEI-SSH-MIB."
            MODULE HUAWEI-SSH-MIB
                MANDATORY-GROUPS { hwSSHServerGroup, hwSSHUserGroup, hwSSHServerSessionGroup, hwSSHClientGroup, hwSSHServerInfoGroup, 
                    hwSSHNotificationGroup }
            ::= { hwSSHMIBCompliances 1 }

        
        hwSSHMIBGroups OBJECT IDENTIFIER ::= { hwSSHMIBConformance 2 }

        
        hwSSHServerGroup OBJECT-GROUP
            OBJECTS { hwStelnetServerEnable, hwSftpServerEnable, hwSSHServerComp1x, hwSSHServerTimeOut, hwSSHServerRetry, 
                hwSSHServerPort, hwSSHServerKeyTimeOut,hwSSHServerAlarmEnable,hwSftpMaxUserNum,hwSftpOnLineUserNum }
            STATUS current
            DESCRIPTION 
                "The SSH server attribute group."
            ::= { hwSSHMIBGroups 1 }

        
        hwSSHUserGroup OBJECT-GROUP
            OBJECTS { hwSSHUserName, hwSSHUserAssignKey, hwSSHUserAuthType, hwSSHUserServiceType, hwSSHUserSftpDirectory,hwSSHUserAuthorizationCMD, hwSSHUserRowStatus
                }
            STATUS current
            DESCRIPTION 
                "The SSH user's  group."
            ::= { hwSSHMIBGroups 2 }

        
        hwSSHServerSessionGroup OBJECT-GROUP
            OBJECTS { hwSSHSessionUserName, hwSSHSessionConnectType, hwSSHSessionVer, hwSSHSessionState, hwSSHSessionRetry,
            hwSSHSessionCtosCipher,hwSSHSessionStocCipher,hwSSHSessionCtosHmac,hwSSHSessionStocHmac,hwSSHSessionKex,
                        hwSSHSessionAuthType,hwSSHSessionServiceType
                 }
            STATUS current
            DESCRIPTION 
                "The SSH server's session group."
            ::= { hwSSHMIBGroups 3 }

        
        hwSSHClientGroup OBJECT-GROUP
            OBJECTS { hwSSHFirstTimeAuthEnable }
            STATUS current
            DESCRIPTION 
                "The SSH client's attribute group."
            ::= { hwSSHMIBGroups 4 }

        
        hwSSHServerInfoGroup OBJECT-GROUP
            OBJECTS { hwSSHServerName, hwSSHServerAssignKey, hwSSHServerRowStatus }
            STATUS current
            DESCRIPTION 
                "The SSH serverInfo's  group."
            ::= { hwSSHMIBGroups 5 }

        
        hwSSHNotificationGroup NOTIFICATION-GROUP
            NOTIFICATIONS { hwSSHSftpUserNumExceedMax }
            STATUS current
            DESCRIPTION 
                "The SSH Notification group."
            ::= { hwSSHMIBGroups 6 }

        
    
    END

--
-- HUAWEI-SSH-MIB.mib
--
