TPLINK-SYSTIME-MIB	DEFINITIONS ::= BEGIN
	IMPORTS
		MODULE-IDENTITY, OBJECT-TYPE, IpAddress 
			FROM SNMPv2-SMI
		tplinkMgmt
			FROM TPLINK-MIB;
	
	   	 
	tplinkSysTimeMIB MODULE-IDENTITY
		LAST-UPDATED    "201212130930Z"
		ORGANIZATION    "TPLINK"
		CONTACT-INFO    "www.tplink.com"
		DESCRIPTION	    "Private MIB for system time configuration."
		REVISION        "201212130930Z"
		DESCRIPTION
				"Initial version of this MIB module."
		::= { tplinkMgmt 2 }
		
	tplinkSysTimeMIBObjects		OBJECT IDENTIFIER	::= { tplinkSysTimeMIB 1 }
	tplinkSysTimeNotifications	OBJECT IDENTIFIER	::= { tplinkSysTimeMIB 2 }
	
	tpSysTimeCurrentTime	OBJECT-TYPE
		SYNTAX      OCTET STRING(SIZE (0..255))
		MAX-ACCESS  read-only
		STATUS      current
		DESCRIPTION
			   "The current local date and time for the system."
		::= { tplinkSysTimeMIBObjects 1 }
	  
    tpSysTimeSource	OBJECT-TYPE
			SYNTAX      OCTET STRING(SIZE (0..255)) 
			MAX-ACCESS  read-only
			STATUS      current
			DESCRIPTION
				"The time source"
			::= { tplinkSysTimeMIBObjects 2 }
	       
	tpSysTimeMode	OBJECT-TYPE
		SYNTAX      OCTET STRING(SIZE (0..255)) 
		MAX-ACCESS  read-only
		STATUS      current
		DESCRIPTION
			"the time mode"
		::= { tplinkSysTimeMIBObjects 3 }
	
	--**************
	--Set time manual configuration	
	--**************
	tpSysTimeManualTimeConfig		OBJECT IDENTIFIER ::= { tplinkSysTimeMIBObjects 4}
	
		tpSysTimeManualTimeStatus	 OBJECT-TYPE
				SYNTAX      INTEGER{
					disable(0), 					--disable
					enable(1)						--enable
					}
				MAX-ACCESS  read-write
				STATUS      current
				DESCRIPTION
					"0.disbale
					 1.enable"
				::= { tpSysTimeManualTimeConfig 1 }
			  
		tpSysTimeTimeToSet	 	OBJECT-TYPE
			SYNTAX      OCTET STRING(SIZE(19))
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"A date-time specification.
				For example, Saturday May 26, 2012 at 1:30:15 would be
				given as:
						2012-05-26 01:30:15
				"			
			::= { tpSysTimeManualTimeConfig 2 }
	
	--**************
	--NTP client configurations
	--**************
	tpSysTimeNTPClientConfig		OBJECT IDENTIFIER ::= { tplinkSysTimeMIBObjects 5 }
	
		tpSysTimeNTPClientStatus	 OBJECT-TYPE
			SYNTAX      INTEGER{
				disable(0), 					--disable
				enable(1)						--enable
				}
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"0.disbale
				1.enable"
			::= { tpSysTimeNTPClientConfig 1 }	
			   
		tpSysTimeNTPTimezone	 OBJECT-TYPE
			SYNTAX      INTEGER{
							utc-1200(-1200),
							utc-1100(-1100), 
							utc-1000(-1000), 
							utc-0900(-900),
							utc-0800(-800),
							utc-0700(-700), 
							utc-0600(-600),
							utc-0500(-500),
							utc-0430(-450),
							utc-0400(-400),
							utc-0330(-350), 
							utc-0300(-300),
							utc-0200(-200),
							utc-0100(-100), 
							utc(0), 	  
							utc0100(100), 
							utc0200(200), 
							utc0300(300),
							utc0330(350),
							utc0400(400), 
							utc0430(450), 
							utc0500(500), 
							utc0530(550), 
							utc0545(575), 
							utc0600(600), 
							utc0630(650), 
							utc0700(700), 
							utc0800(800), 
							utc0900(900), 
							utc0930(950),
							utc1000(1000), 
							utc1100(1100), 
							utc1200(1200), 
							utc1300(1300)	      		
	      		}
	       MAX-ACCESS  read-write
	       STATUS      current
	       DESCRIPTION
	               "time zone select:
							utc-1200,	--International Date Line West
							utc-1100, 	--Coordinated Universal Time-11
							utc-1000, 	--Hawaii
							utc-0900, 	--Alaska
							utc-0800, 	--Pacific Time (US & Canada), Baja California
							utc-0700, 	--Mountain Time (US & Canada), Chihuahua, La Paz, Mazatlan, Arizona
							utc-0600, 	--Saskatchewan, Central America, Central Time (US & Canada), Guadalajara, 
										Mexico City, Monterrey
							utc-0500, 	--Eastern Time (US & Canada), Bogota, Lima, Quito, Indiana (East)
							utc-0430, 	--Caracas	
							utc-0400, 	--Atlantic Time (Canada), Cuiaba, Santiago, Asuncion, Georgetown, La Paz,
										Manaus, San Juan
							utc-0330, 	--Newfoundland
							utc-0300, 	--Buenos Aires, Salvador, Brasilia, Greenland, Montevideo, Cayenne, Fortaleza
							utc-0200, 	--Mid-Atlantic, Coordinated Universal Time-02
							utc-0100, 	--Azores, Cape Verde Is.
							utc, 		--Dublin, Edinburgh, Lisbon, London, Monrovia, Reykjavik, Casablanca, Coordinated 
										Universal Time
							utc0100, 	--Belgrade, Bratislava, Budapest, Ljubljana, Prague, Sarajevo, Skopje, Warsaw, 
										Zagreb, Tripoli, Windhoek, Brussels, Copenhagen, Madrid, Paris, West Central
										Africa, Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
							utc0200, 	--E. Europe, Cairo, Amman, Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius, Athens, 
										Bucharest, Jerusalem, Beirut, Harare, Pretoria, Damascus, Istanbul, 
							utc0300, 	--Kuwait, Riyadh, Baghdad, Nairobi, Kaliningrad, Minsk
							utc0330, 	--Tehran
							utc0400, 	--Abu Dhabi, Muscat, Baku, Yerevan, Tbilisi, Port Louis, Moscow, St. Petersburg, 
										Volgograd
							utc0430, 	--Kabul
							utc0500, 	--Islamabad, Karachi, Tashkent
							utc0530, 	--Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura
							utc0545, 	--Kathmandu
							utc0600, 	--Dhaka, Astana, Ekaterinburg
							utc0630, 	--Yangon (Rangoon)
							utc0700, 	--Novosibirsk, Bangkok, Hanoi, Jakarta
							utc0800, 	--Beijing, Chongqing, Hong Kong, Urumqi, Krasnoyarsk, Kuala Lumpur, Singapore, 
										Taipei, Ulaanbaatar, Perth
							utc0900, 	--Seoul, Irkutsk, Osaka, Sapporo, Tokyo
							utc0930, 	--Darwin, Adelaide
							utc1000, 	--Canberra, Melbourne, Sydney, Brisbane, Hobart, Guam, Port Moresby, Yakutsk
							utc1100, 	--Solomon Is., New Caledonia, Vladivostok
							utc1200, 	--Fiji, Magadan, Auckland, Wellington, Petropavlovsk-Kamchatsky, Coordinated 
										Universal Time+12
							utc1300, 	--Nuku'alofa, Samoa"
			::= { tpSysTimeNTPClientConfig 2 }	
		   
		tpSysTimeNTPServerAddr	OBJECT-TYPE
			SYNTAX      OCTET STRING(SIZE(93))
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				   "The ip addresses of ntp servers to fetch time, and the primary ntp server and secondary ntp server should have the same ip address type,
				   for example: 
				   		133.100.9.2,139.78.100.163
				   "
			::= { tpSysTimeNTPClientConfig 3 }	
		   
		tpSysTimeNTPUpdateRate OBJECT-TYPE
			SYNTAX	INTEGER (1..24)
			MAX-ACCESS	read-write
			STATUS	current
			DESCRIPTION
					"Specify the rate fetching time from ntp server"
			::={ tpSysTimeNTPClientConfig 4 }
	
	--***********
	--dst configuration
	--***********
	tpSysTimeDstConfig OBJECT IDENTIFIER ::= { tplinkSysTimeMIBObjects 6 }
		
		tpSysTimeDstStatus	OBJECT-TYPE
			SYNTAX 	INTEGER{   
						disabled(0), 
						predefined(1),
						recurring(2),
						date(3)
					}
			MAX-ACCESS 	read-write
			STATUS		current
			DESCRIPTION
				"An indication of whether the summertime feature
				 is disabled(0) or is in date(3), predefined(1) or recurring(2) mode on this 
				 device.
				 When this object is set to date(3),then the tpSysTimeDstOffset, 
				 tpSysTimeDstDateTimeToStart, tpSysTimeDstDateTimeToEnd objects work 
				 effectively and the summertime feature works one-off.
				 When this object is set to predefined(1), the the tpSysTimeDstRegionSelected
				 object works effectively and the summertime feature 
				 works recurrently.
				 when this object is set to recurring(2), then the tpSysTimeDstOffset, 
				 tpSysTimeDstRecurringToStart, tpSysTimeDstRecurringToEnd objects work 
				 effectively and the summertime feature work recurrently." 
			DEFVAL { disabled } 
		::= { tpSysTimeDstConfig 1 }
		
		
		tpSysTimeDstOffset	OBJECT-TYPE
			SYNTAX	INTEGER (1..1440)  --1440 minutes equals 24 hours
			UNITS	"Minutes"
			MAX-ACCESS	read-write
			STATUS		current
			DESCRIPTION
				"The value of this object indicates number of minutes to add
				 or to subtract during summertime.This object is not instantiated
				 when dstStatus object is set to disable." 
			DEFVAL { 60 }
		::= { tpSysTimeDstConfig 2}	  
		
		tpSysTimeDstDateMode			OBJECT IDENTIFIER	::= { tpSysTimeDstConfig 3 }
		tpSysTimeDstPredefinedMode		OBJECT IDENTIFIER 	::= { tpSysTimeDstConfig 4 }
		tpSysTimeDstRecurringMode		OBJECT IDENTIFIER 	::= { tpSysTimeDstConfig 5 }
		
		--**************
		--	dstDate mode
		--************** 
		tpSysTimeDstDateTimeStartEnd	OBJECT-TYPE
			SYNTAX      OCTET STRING(SIZE(33))
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"Indicates summertime starts at this time.
				For example, start time as Saturday May 26, 2012 at 1:30 and end time as Sunday May 27, 2012 at 2:30 would be
				given as:
						2012-05-26 01:30,2012-05-27 02:30
				"
		::= { tpSysTimeDstDateMode 1 }
		
		--***************
		--	dstPredefined
		--***************
		tpSysTimeDstRegionSelected	OBJECT-TYPE
			SYNTAX	INTEGER{   
						none(0),
						usa(1),
						australia(2),
						europe(3),
						new-Zealand(4)
					}
			MAX-ACCESS	read-write
			STATUS		current
			DESCRIPTION
				"Indicates the region selected when the dstStatus object is set to predefined.
					1.none indicates the dstMode object is not set to predefined.
					2.USA indicates the summertime is starts from the second Sunday in March at 02:00am
				 and ends to the first Sunday in November at 02:00am
					3.Australia indicates the summertime is starts from the first Sunday in October at 02:00am
				 and ends to the first Sunday in April at 03:00am next year
					4.Europe indicates the summertime is starts from the last Sunday in March at 01:00am
				 and ends to last Sunday in October at 01:00am.
					5.New Zealand indicates the summertime is start from the last Sunday in September at 02:00am
				 and ends to the first Sunday in April at 03:00am next year"
				 
		::= { tpSysTimeDstPredefinedMode 1}	                                            
		
		--****************
		--	dstRecurring
		--****************
		tpSysTimeDstRecurringToStart	OBJECT-TYPE
			SYNTAX	OCTET STRING  (SIZE (14))
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"Indicates summertime starts at this time every year.
				 octets    contents     range
				 1         week        1..4,ff 
									   where last = ff
				 2	       day         0..6
									   where sunday = 0 saturday = 6
				 3         month       1..12
									   where january = 1 december = 12
				 4         hour        0..23
				 5         min         0..59

				 For example, the first Monday in Feb at 14:30pm
				 should be given as 01 01 02 0e 1e
				 For the last Tuesday in dec at 1:20am should be
				 given as ff 02 0c 01 14
				 This object is not instantiated when
				 dstStatus object is not set to recurring." 
		::= { tpSysTimeDstRecurringMode 1}
		   
		tpSysTimeDstRecurringToEnd	OBJECT-TYPE
			SYNTAX	OCTET STRING  (SIZE (14))
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"Indicates summertime ends at this time every year.
				 octets    contents     range
				 1         week        1..4,ff 
									   where last = ff
				 2	       day         0..6
									   where sunday = 0 saturday = 6
				 3         month       1..12
									   where january = 1 december = 12
				 4         hour        0..23
				 5         min         0..59

				 For example, the third friday in February at 3:30am
				 should be given as 03 05 02 03 1e
				 For the first Tuesday in May at 1:20am  should
				 be given as 01 02 05 01 14
				 This object is not instantiated when
				 dstStatus object is not set to recurring." 
		::= { tpSysTimeDstRecurringMode 2 }    
		
END