-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-SYSTEM-MIB.mib
-- Revision 1.9  2016/04/20 

ZYXEL-SYSTEM-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI

	RowStatus, MacAddress, DisplayString
		FROM SNMPv2-TC			-- RFC2579                        
	
	EnabledStatus
		FROM  P-BRIDGE-MIB
 	
    IpAddress
        FROM SNMPv2-SMI

    InetAddressType
    	FROM INET-ADDRESS-MIB
   
   	InetAddress
   		FROM INET-ADDRESS-MIB

    NOTIFICATION-TYPE
        FROM SNMPv2-SMI

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelSystem MODULE-IDENTITY
		LAST-UPDATED	"201801100000Z"
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for system"
		::= { esMgmt 82 }

	zyxelDateTimeSetup  		OBJECT IDENTIFIER ::= { zyxelSystem 1 }
	zyxelSysInfo     			OBJECT IDENTIFIER ::= { zyxelSystem 2 }
	zyxelDateTimeTrapNotifications	OBJECT IDENTIFIER ::= { zyxelSystem 3 }
	
-- *******************************************************************
-- *
-- * zyxelDateTimeSetup
-- *
-- *******************************************************************

-- zyxelDateTimeServerType
        zyDateTimeServerType OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(1),
			daytime(2),
			time(3),
			ntp(4)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The time service protocol that your timeserver uses."
        ::= { zyxelDateTimeSetup 1 }
        
-- zyxelDateTimeZone
        zyDateTimeZone OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The time difference between UTC and your time zone. Ex: +01"
        ::= { zyxelDateTimeSetup 3 }

-- zyxelDateTimeNewDateYear
        zyDateTimeNewDateYear OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new date in year."
        ::= { zyxelDateTimeSetup 4 }

-- zyxelDateTimeNewDateMonth
        zyDateTimeNewDateMonth OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new date in month."
        ::= { zyxelDateTimeSetup 5 }

-- zyxelDateTimeNewDateDay
        zyDateTimeNewDateDay OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new date in day."
        ::= { zyxelDateTimeSetup 6 }
        
-- zyxelDateTimeNewTimeHour
        zyDateTimeNewTimeHour OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new time in hour."
        ::= { zyxelDateTimeSetup 7 }

-- zyxelDateTimeNewTimeMinute	
        zyDateTimeNewTimeMinute OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new time in minute."
        ::= { zyxelDateTimeSetup 8 }

-- zyxelDateTimeNewTimeSecond
        zyDateTimeNewTimeSecond OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The new time in second."
        ::= { zyxelDateTimeSetup 9 }

-- zyxelDateTimeDaylightSavingTimeSetup OBJECT-TYPE
		zyxelDateTimeDaylightSavingTimeSetup OBJECT IDENTIFIER ::= { zyxelDateTimeSetup 10 }
	
        zyDaylightSavingTimeState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"Enable/Disable Daylight Saving Time service for the switch. 
						Daylight saving is a period from late spring to early fall when many countries set their clocks ahead of normal local time by one hour to give more daytime light in the evening."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 1 }

        zyDaylightSavingTimeStartDateWeek OBJECT-TYPE
        SYNTAX  INTEGER {
         	first(1),
         	second(2),
         	third(3),
         	fourth(4),
         	last(5)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"Start week of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 2 }

        zyDaylightSavingTimeStartDateDay OBJECT-TYPE
        SYNTAX  INTEGER {
         		sunday(0),
         		monday(1),
         		tuesday(2),
         		wednesday(3),
         		thursday(4),
         		friday(5),
         		saturday(6)         		
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"Start day of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 3 }

        zyDaylightSavingTimeStartDateMonth OBJECT-TYPE
        SYNTAX  INTEGER {
         		january(1),
         		february(2),
         		march(3),
         		april(4),
         		may(5),
         		june(6),
         		july(7),
         		august(8),
         		september(9),
         		october(10),
         		november(11),
         		december(12)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"Start month of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 4 }

        zyDaylightSavingTimeStartDateHour OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"Start time of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 5 }

        zyDaylightSavingTimeEndDateWeek OBJECT-TYPE
        SYNTAX  INTEGER {
         		first(1),
         		second(2),
         		third(3),
         		fourth(4),
         		last(5)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"End week of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 6 }

        zyDaylightSavingTimeEndDateDay OBJECT-TYPE
        SYNTAX  INTEGER {
         		sunday(0),
         		monday(1),
         		tuesday(2),
         		wednesday(3),
         		thursday(4),
         		friday(5),
         		saturday(6)         		
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"End day of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 7 }

        zyDaylightSavingTimeEndDateMonth OBJECT-TYPE
        SYNTAX  INTEGER {
         		january(1),
         		february(2),
         		march(3),
         		april(4),
         		may(5),
         		june(6),
         		july(7),
         		august(8),
         		september(9),
         		october(10),
         		november(11),
         		december(12)
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"End month of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 8 }

        zyDaylightSavingTimeEndDateHour OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
						"End time of Daylight Saving Time service."
        ::= { zyxelDateTimeDaylightSavingTimeSetup 9 }                                                       
     
    zyDateTimeZoneHourMinute OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The time difference between UTC and your time zone. 
                    Time zone offset is half of hour.
                    Display Hint 1a1d:1d   e.g. + 8 30
                    field  octets  contents                  range
                    -----  ------  --------                  -----
                      1       1    direction from UTC        '0x2b'(+) / '0x2d'(-)
                      2       2    hours from UTC            0x0,0x1,0x2,0x3..0x9,0xa,0xb,0xc
                      3       3    minutes from UTC          '0x00'(00) / '0x1e'(30)"
        ::= { zyxelDateTimeSetup 13 }

   zyDateTimeSyncInterval OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "The interval (minutes) of synchronization with time server"
        ::= { zyxelDateTimeSetup 14 }

	
	zyxelDateTimeServerTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelDateTimeServerEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table maintains date time server configuration."
        ::= { zyxelDateTimeSetup   15 }
        
	zyxelDateTimeServerEntry OBJECT-TYPE
        SYNTAX	ZyxelDateTimeServerEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains date time server configuration."
        INDEX          	{ zyDateTimeServerPreference }
        ::= { zyxelDateTimeServerTable 1 }              

      	ZyxelDateTimeServerEntry ::=
		SEQUENCE {
        	zyDateTimeServerPreference			INTEGER,
        	zyDateTimeServerInetAddressType		InetAddressType,
        	zyDateTimeServerInetAddress			InetAddress
        }

	zyDateTimeServerPreference OBJECT-TYPE
        SYNTAX  INTEGER(1.. 3)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "This field displays the preference of date time server. Note: which lower value mean a higher chance to be queried."
        ::= { zyxelDateTimeServerEntry 1 }

	zyDateTimeServerInetAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The type of Internet address of this date time server."
        ::= { zyxelDateTimeServerEntry 2 }                        

	zyDateTimeServerInetAddress OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The Internet address of this date time server."
        ::= { zyxelDateTimeServerEntry 3 }                     


-- *******************************************************************
-- *
-- * zyxelSysInfo
-- *
-- *******************************************************************

-- zyxelSysSwPlatformMajorVers
        zySysSwPlatformMajorVers OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software platform major version, e.g. 3."
        ::= { zyxelSysInfo 1 }

-- zyxelSysSwPlatformMinorVers       
        zySysSwPlatformMinorVers OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software platform minor version, e.g. 50."
        ::= { zyxelSysInfo 2 }
        
-- zyxelSysSwModelString
        zySysSwModelString OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software model letters, e.g. TJ."
        ::= { zyxelSysInfo 3 }
 
-- zyxelSysSwVersionControlNbr
		zySysSwVersionControlNbr OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software version control number, e.g. 0."
        ::= { zyxelSysInfo 4 }
       
-- zyxelSysSwDay
		zySysSwDay OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software compilation day, e.g. 19."
        ::= { zyxelSysInfo 5 }

-- zyxelSysSwMonth
        zySysSwMonth OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software compilation month, e.g. 8."
        ::= { zyxelSysInfo 6 }

-- zyxelSysSwYear		
        zySysSwYear OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Software compilation year, e.g. 2004."
        ::= { zyxelSysInfo 7 }

-- zyxelSysHwMajorVers
        zySysHwMajorVers OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Hardware major version, e.g. 1."
        ::= { zyxelSysInfo 8 }

-- zyxelSysHwMinorVers
		zySysHwMinorVers OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Hardware minor version, e.g. 0."
        ::= { zyxelSysInfo 9 }

-- zyxelSysSerialNumber
        zySysSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Serial number."
        ::= { zyxelSysInfo 10 }

-- zyxelSysSwBootUpImage		
        zySysSwBootUpImage OBJECT-TYPE
        SYNTAX  INTEGER{
			image1(1),
			image2(2)
		}
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "Current system boot up image. You can change the boot up image of next rebooting by setting sysMgmtBootupImage."
        ::= { zyxelSysInfo 11 }	
		
-- zySysServiceStatus
        zySysServiceStatus OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "This field displays the service that available on the device."
        ::= { zyxelSysInfo 12 }

--zySysRegisterMacAddress
        zySysRegisterMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                    "The MAC address which this system register at MYZYXEL.COM."
        ::= { zyxelSysInfo 13 }

-- *******************************************************************
-- *
-- * zyxelDateTimeTrapNotifications
-- *
-- *******************************************************************

-- zyxelDateTimeTrapTimeServerNotReachable
        zyDateTimeTrapTimeServerNotReachable	NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
                    "Real time clock is not up to date. It has not been configured manually or time server is unreachable."
        ::= { zyxelDateTimeTrapNotifications 1 }

        zyDateTimeTrapTimeServerNotReachableRecovered	NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
                    "Real time clock is up to date."
        ::= { zyxelDateTimeTrapNotifications 2 }
		
END  
