-- This file defines the mib struct of User Configuration Management in SN0116a(sn3101). Noted by YangLv, Aten, 20050629
-- We delete some mibs which are not useful in SN0116a.
-- We attach this mib node on enterprises.aten.sn3101 subtree
-- Because in sn3101, we don't allow 'set' function in snmp package, YangLv changes all read-write
-- attribute to read-only

   ATEN-SN0116A-CFG DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       Counter32, Integer32
           FROM SNMPv2-SMI
       InterfaceIndex
           FROM IF-MIB
       DisplayString
       		FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF
       usrcfg
       	   FROM ATEN-SN0116A-SMI
       sn3101
       	   FROM ATEN-PRODUCTS-MIB;

   usrcfg MODULE-IDENTITY
       LAST-UPDATED "20050629"
       ORGANIZATION "ATEN, CANADA"
       CONTACT-INFO
               "   Yang Lv
                   Vanier Place
                   Richmond, Vancouver
                   Tel: 604-207-0809
                E-mail: yangl@aten-ca.com"
       DESCRIPTION
               "The MIB module for user configuration in SN3101."
       ::= { sn3101 2 } ---YangLv defines it

   -- Generic user configuration information

	usrcfgNumber OBJECT-TYPE
       SYNTAX Integer32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The number of users  (regardless of their current
           state) in the SN3101 user configuration"
       ::= { usrcfg 1 }
 
   usrcfgTable OBJECT-TYPE
       SYNTAX SEQUENCE OF usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A list of user.  The number of user is
           given by the value of usrcfgNumber."
       ::= { usrcfg 2 }

   usrcfgEntry OBJECT-TYPE
       SYNTAX usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Status and parameter values for a sn3101 user."
       INDEX { usrIndex }
       ::= { usrcfgTable 1 }

   usrcfgEntry ::=
       SEQUENCE {
           usrIndex
               INTEGER,
           usrType
               INTEGER,
           usrName
               DisplayString,
           usrPassword
               DisplayString,
           usrConfigPort
               Integer32,
           usrAllowedPort
               DisplayString,
           usrStatus
           	   INTEGER
       }

   usrIndex OBJECT-TYPE
       SYNTAX INTEGER
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The value of usrIndex for the user."
       ::= { usrcfgEntry 1 }


   usrType OBJECT-TYPE
       SYNTAX INTEGER { administrator(1), operator(2)}
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The user's type."
       ::= { usrcfgEntry 2 }

   usrName OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
              "A textual string containing name of the user."
       ::= { usrcfgEntry 3 }

   usrPassword OBJECT-TYPE
      SYNTAX  DisplayString 
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
              "A textual string containing password of the user."
       ::= { usrcfgEntry 4 }

   usrConfigPort OBJECT-TYPE
       SYNTAX INTEGER { disable(0), enable(1) }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "if this user is allowed to configure port"
       ::= { usrcfgEntry 5 }

   usrAllowedPort OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
              "A textual string containing the name of ports which can be 
              used by this user."
       ::= { usrcfgEntry 6 }
   
   usrStatus OBJECT-TYPE
       SYNTAX INTEGER { in-actived(0), actived(1) }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "user status, when user login sn3101, the status of it is: actived(1)"
       ::= { usrcfgEntry 7 }

   session MODULE-IDENTITY
       LAST-UPDATED "20050629"
       ORGANIZATION "ATEN, CANADA"
       CONTACT-INFO
               "   Yang Lv
                   Vanier Place
                   Richmond, Vancouver
                   Tel: 604-207-0809
                E-mail: yangl@aten-ca.com"
       DESCRIPTION
               "The MIB module for session management in SN3101."
       ::= { sn3101 3 } ---YangLv defines it

	sessionNumber OBJECT-TYPE
       SYNTAX Integer32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The number of active sessions in the SN3101"
       ::= { session 1 }
 
   sessionTable OBJECT-TYPE
       SYNTAX SEQUENCE OF usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A list of session.  The number of session is
           given by the value of sessionNumber."
       ::= { session 2 }

   sessionEntry OBJECT-TYPE
       SYNTAX usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Status and parameter values for a sn3101 session."
       INDEX { sessionIndex }
       ::= { sessionTable 1 }

   sessionEntry ::=
       SEQUENCE {
           sessionIndex
               INTEGER,
           sessionOwner
               DisplayString,
           sessionService
           	   DisplayString,
           sessionIP
               NetworkAddress,
           sessionUpTime
               DisplayString,
           sessionLastAccess
               DisplayString
       }

   sessionIndex OBJECT-TYPE
       SYNTAX INTEGER
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The value of session Index for the session."
       ::= { sessionEntry 1 }

   sessionOwner OBJECT-TYPE
       SYNTAX DisplayString 
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "user name Who starts this session."
       ::= { sessionEntry 2 }

   sessionService OBJECT-TYPE
      SYNTAX  DisplayString
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
              "HTTP or HTTPS or ..."
       ::= { sessionEntry 3 }

   sessionIP OBJECT-TYPE
      SYNTAX  NetworkAddress
      ACCESS  read-write
      STATUS  mandatory
      DESCRIPTION
              "The NetworkAddress (e.g., the IP address)
              of connection"
      ::= { sessionEntry 4 }

	sessionUpTime OBJECT-TYPE
		SYNTAX  DisplayString
		ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
          "The time when the session was last initialized."
	  ::= { sessionEntry 5 }

	sessionLastAccess OBJECT-TYPE
		SYNTAX  DisplayString
		ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
          "The time when the session was last accessed."
	  ::= { sessionEntry 6 }

	imageCurrentVersion OBJECT-TYPE
   		SYNTAX     DisplayString 
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "The current version of image of SN3101."
	    ::= { sn3101  4 }

	imageNewVersion OBJECT-TYPE
   		SYNTAX     DisplayString 
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	        "The new version of image that will be used for upgrading of SN3101."
	    ::= { sn3101  5 }

   portAlert MODULE-IDENTITY
       LAST-UPDATED "20050630"
       ORGANIZATION "ATEN, CANADA"
       CONTACT-INFO
               "   Yang Lv
                   Vanier Place
                   Richmond, Vancouver
                   Tel: 604-207-0809
                E-mail: yangl@aten-ca.com"
       DESCRIPTION
               "The MIB module for port alert string in sn3101."
       ::= { sn3101 6 } ---YangLv defines it

   portNumber OBJECT-TYPE
       SYNTAX Integer32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The number of port alert string in the SN3101"
       ::= { portAlert 1 }
 
   portAlertTable OBJECT-TYPE
       SYNTAX SEQUENCE OF usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A list of session.  The number of session is
           given by the value of sessionNumber."
       ::= { portAlert 2 }

   portAlertEntry OBJECT-TYPE
       SYNTAX usrcfgEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Status and parameter values for a sn3101 session."
       INDEX { portIndex }
       ::= { portAlertTable 1 }

   portAlertEntry ::=
       SEQUENCE {
           portIndex
               INTEGER,
           portAlertString
           	   DisplayString
       }

   portIndex OBJECT-TYPE
       SYNTAX INTEGER
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The value of ifIndex for the port(RS232)."
       ::= { portAlertEntry 1 }

   portAlertString OBJECT-TYPE
       SYNTAX  DisplayString
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The value of port alert string. we list all the strings 
           in one line to get simplicity and the format is:
           <string1>, <string2>, ..."
       ::= { portAlertEntry 2 }

END
