--  =======================================================================
--  File		: FIBROLAN-ATOMIC-CLOCK-MIB.mib
--  Description		: Private MIB file for Fibrolan Atomic Clock feature
--  Author		: Shamir Stein
--
--  Copyright Fibrolan, 2015. All rights reserved.
--
--  Reproduction of this document is authorized on condition that this
--  copyright notice is included.
--  =======================================================================

FIBROLAN-ATOMIC-CLOCK-MIB	DEFINITIONS ::= BEGIN

	IMPORTS
		
		OBJECT-TYPE,
		MODULE-IDENTITY,
		Integer32,
		TimeTicks,
		NOTIFICATION-TYPE		FROM SNMPv2-SMI

		DisplayString			FROM SNMPv2-TC
		
		fibrolanGeneric			FROM FIBROLAN-COMMON-MIB;


	flAtomicClock		MODULE-IDENTITY
		LAST-UPDATED	"201509150000Z"
		ORGANIZATION	"Fibrolan Ltd."
		CONTACT-INFO	"support@fibrolan.com"
		DESCRIPTION	"The MIB module to describe Fibrolan's Atomic Clock feature.
				 This module includes the relevant traps as well.
				 This module is part of Fibrolan's group of generic
				 MIB modules (i.e. can be supported on different devices).
				 Copyright (C) Fibrolan Ltd. (2015)."
		REVISION	"201509150000Z"
		DESCRIPTION	"Merged inventory and status tables.
				 Changed last changed object type to TimeTicks.
				 Added ranges to objects where applicable.
				 Misc cleanup."
		REVISION	"201508150000Z"
		DESCRIPTION	"Initial version (version 1)."
	::= { fibrolanGeneric  220 }


	flAtomicClockNotifications			OBJECT IDENTIFIER ::= { flAtomicClock  0 }
	flAtomicClockMIBObjects				OBJECT IDENTIFIER ::= { flAtomicClock  1 }


-- ************************************************************
-- Atomic Clock module main table 
-- ************************************************************
	flAtomicClockTable				OBJECT-TYPE
		SYNTAX					SEQUENCE OF FlAtomicClockEntry
		MAX-ACCESS				not-accessible
		STATUS					current
		DESCRIPTION				"This tables provides inventory and
							 status details on the Atomic Clock
							 module and oscillator."
	::= { flAtomicClockMIBObjects  10 }

	flAtomicClockEntry				OBJECT-TYPE
		SYNTAX					FlAtomicClockEntry
		MAX-ACCESS				not-accessible
		STATUS					current
		DESCRIPTION				"The entries of the Atomic Clock module table."
		INDEX					{ flAtomicClockModuleId }
	::= { flAtomicClockTable  1 }

	FlAtomicClockEntry ::= SEQUENCE
	{
		flAtomicClockModuleId				Integer32,
		flAtomicClockModuleType				DisplayString,
		flAtomicClockModulePartNumber			DisplayString,
		flAtomicClockModuleSerialNumber			DisplayString,
		flAtomicClockOscillatorType			INTEGER,
		flAtomicClockOscillatorPartNumber		DisplayString,
		flAtomicClockOscillatorSerialNumber		DisplayString,
		flAtomicClockOscillatorFwVersion		DisplayString,
		flAtomicClockState				INTEGER,
		flAtomicClockStateLastChange			TimeTicks,
		flAtomicClockTemperature			Integer32,
		flAtomicClockTemperatureAlarmState		INTEGER,
		flAtomicClockCellHeaterCurrent			Integer32,
		flAtomicClockCellHeaterCurrentAlarmState	INTEGER,
		flAtomicClockAdjustPp15				Integer32
	}

	flAtomicClockModuleId				OBJECT-TYPE
		SYNTAX					Integer32 (1..16)
		MAX-ACCESS				not-accessible
		STATUS					current
		DESCRIPTION				"The Atomic Clock module ID (index)."
	::= { flAtomicClockEntry  1 }

	flAtomicClockModuleType				OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock module type (e.g. RBCM-1)."
	::= { flAtomicClockEntry  2 }

	flAtomicClockModulePartNumber			OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock module part number."
	::= { flAtomicClockEntry  3 }

	flAtomicClockModuleSerialNumber			OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock module serial number."
	::= { flAtomicClockEntry  4 }

	flAtomicClockOscillatorType			OBJECT-TYPE
		SYNTAX					INTEGER
							{
								rubidium	(1),
								cesium		(2),
								other		(99)
							}
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock oscillator type."
	::= { flAtomicClockEntry  5 }

	flAtomicClockOscillatorPartNumber		OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock oscillator part number."
	::= { flAtomicClockEntry  6 }

	flAtomicClockOscillatorSerialNumber		OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock oscillator serial number."
	::= { flAtomicClockEntry  7 }

	flAtomicClockOscillatorFwVersion		OBJECT-TYPE
		SYNTAX					DisplayString (SIZE (0..63))
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock oscillator FW version."
	::= { flAtomicClockEntry  8 }

	flAtomicClockState				OBJECT-TYPE
		SYNTAX					INTEGER
							{
								unplugged		(1),
								warming			(2),
								ppsShifting		(3),
								shortTermSteering	(4),
								averaging		(5),
								longTermSteering	(6),
								holdover		(7),
								holdoverRecovery	(8),
								freeRunning		(9),
								other			(99)
							}
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current state of the Atomic Clock module.
							 Under normal conditions, from power up, the state sequence 
							 should move from unplugged (may be skipped) to warming, ready,
							 ppsShifting, shortTermSteering, averaging (will stay a while in
							 this state) and eventually longTermSteering. In the latter two
							 states, the module is holdover ready.
							 When primary reference (e.g. GPS) is lost, the state should
							 change to holdover, and when holdover is no longer valid state
							 will move to free-running.
							 Normally, 'other' state should not be present."
	::= { flAtomicClockEntry  9 }

	flAtomicClockStateLastChange			OBJECT-TYPE
		SYNTAX					TimeTicks
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The value of MIB II's sysUpTime object at
							the time the module entered its current
							state."
	::= { flAtomicClockEntry  10 }

	flAtomicClockTemperature			OBJECT-TYPE
		SYNTAX					Integer32 (-128..127)
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current temperature of the Atomic
							 Clock module/oscillator.
							 Value is in degrees Celsius."
	::= { flAtomicClockEntry  11 }

	flAtomicClockTemperatureAlarmState		OBJECT-TYPE
		SYNTAX					INTEGER
							{
								normal		(1),
								warning		(2),
								error		(3),
								other		(99)
							}
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current temperature alarm state of
							 the Atomic Clock module/oscillator.
							 Should normally return 'normal'. A value
							 of 'warning' means the module is still
							 functional within the correct operational
							 range, but may suffer failure if current
							 conditions do not change for the better.
							 An 'error' condition means the module may
							 currently be experiencing a failure condition,
							 or such may occur at any time (i.e. module
							 too close to operational range)."
	::= { flAtomicClockEntry  12 }

	flAtomicClockCellHeaterCurrent			OBJECT-TYPE
		SYNTAX					Integer32 (0..3000)
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current value of the Cell Heater Current
							 of the Atomic Clock oscillator (when applicable).
							 Value is in [mA]."
	::= { flAtomicClockEntry  13 }

	flAtomicClockCellHeaterCurrentAlarmState	OBJECT-TYPE
		SYNTAX					INTEGER
							{
								normal		(1),
								warning		(2),
								error		(3),
								other		(99)
							}
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current cell heater current alarm state
							 of the Atomic Clock module/oscillator.
							 Should normally return 'normal'. A value
							 of 'warning' means the module is still
							 functional within the correct operational
							 range, but may suffer failure if current
							 conditions do not change for the better.
							 An 'error' condition means the module may
							 currently be experiencing a failure condition,
							 or such may occur at any time (i.e. module
							 too close to operational range)."
	::= { flAtomicClockEntry  14 }

	flAtomicClockAdjustPp15				OBJECT-TYPE
		SYNTAX					Integer32 (-10000000..10000000)
		MAX-ACCESS				read-only
		STATUS					current
		DESCRIPTION				"The current digital adjust value of the Atomic
							 Clock (when applicable).
							 This object may be ignored by users and is mostly
							 used for internal monitoring and diagnostics.
							 Value is in [pp15] (1E-15)."
	::= { flAtomicClockEntry  15 }


-- ************************************************************
-- Atomic clock traps (notifications)
-- ************************************************************

	flAtomicClockStateChange			NOTIFICATION-TYPE
		OBJECTS					{ flAtomicClockState }
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock has changed
							 state."
		::= { flAtomicClockNotifications  10 }

	flAtomicClockTemperatureAlarmStateChange	NOTIFICATION-TYPE
		OBJECTS					{ flAtomicClockTemperatureAlarmState }
		STATUS					current
		DESCRIPTION				"Indicates the Atomic Clock temperature
							 alarm state has changed."
		::= { flAtomicClockNotifications  20 }



END
