--
		TTDB-MIB DEFINITIONS::= BEGIN
--
--  This MIB defines objects of the Train Topology Database (TTDB) which
--  is specified in standard IEC 61375-2-3.
--
--
--  The objects defined in this MIB are located under:
--
--              iso(1).std(0)
--                     |
--                stdx61375(61375)
--                     |
--                IEC 61375p2(2)
--                     |
--                     |_______________________
--                     |          |           |
--                     |          |           |
--                  (trdp(1))   ttdb(3)   (ttdp(5))
--
--
--
-- trdp: train realtime data protocol, MIB defined in IEC 61375-2-3
-- ttdb: train topology database, this MIB
-- ttdp: train topology discovery protocol, MIB defined in IEC 61375-2-5
--


		IMPORTS
			OBJECT-GROUP, MODULE-COMPLIANCE
				FROM SNMPv2-CONF
			Unsigned32, OBJECT-TYPE, MODULE-IDENTITY
				FROM SNMPv2-SMI
			TEXTUAL-CONVENTION
				FROM SNMPv2-TC;

-- ***********************************************************************
-- Root OID
-- ***********************************************************************

		-- 1.0.61375.2
		iec61375p2 MODULE-IDENTITY
			LAST-UPDATED "201911270000Z"
			ORGANIZATION
				"IEC"
			CONTACT-INFO
				"International Electrotechnical Commission
				IEC Central Office
				3, rue de Varembe
				P.O. Box 131
				CH 1211 GENEVA 20
				Switzerland
				Phone: +41 22 919 02 11
				Fax: +41 22 919 03 00
				email: info@iec.ch"
			DESCRIPTION
				"This MIB module defines the Network Management interfaces
				for the Train Topology Database (TTDB) defined by the
				IEC standard 61375-2-3.
				This definition specifies a pure monitoring variant of a
				SNMP entity."
			REVISION "201911270000Z"
			DESCRIPTION
				"Westermo temporary adaptions to handle limitations in the original MIB file.
				This version is not official. The aim is to temporarily solve issues in
				the MIB file for Westermo customers until a revised standard version of
				the MIB is published."
			REVISION "201405220000Z"
			DESCRIPTION "First Release"
			::= { stdx61375 2 }
--
-- Textual conventions
--
		TtdbOrient::= TEXTUAL-CONVENTION
			STATUS current
			DESCRIPTION
				"Represents orientation of a vehicle or a Consist"
			SYNTAX INTEGER
				{
				direct(1),
				inverse(2),
				undefined(3)
				}

		TtdbValidity::= TEXTUAL-CONVENTION
			STATUS current
			DESCRIPTION
				"defines validity of the operational train directory"
			SYNTAX INTEGER
				{
				invalid(1),
				valid(2),
				shared(3)
				}

		TtdbConfirmation::= TEXTUAL-CONVENTION
			STATUS current
			DESCRIPTION
				"defines confirmation status of the operational train directory"
			SYNTAX INTEGER
				{
				unconfirmed(1),
				confirmed(2)
				}

--
-- Node definitions
--

		-- 1.0
		std OBJECT IDENTIFIER::= { iso 0 }

		-- 1.0.61375
		stdx61375 OBJECT IDENTIFIER::= { std 61375 }

-- ***********************************************************************
-- Train Topology Database (TTDB)
-- ***********************************************************************
		-- 1.0.61375.2.3
		ttdb OBJECT IDENTIFIER::= { iec61375p2 3 }

-- ***********************************************************************
-- objects groups of TTDB object identifiers
-- ***********************************************************************
		-- 1.0.61375.2.3.1
		ttdbObjects OBJECT IDENTIFIER::= { ttdb 1 }

-- General information
		-- 1.0.61375.2.3.1.1
		ttdbGenInfo OBJECT IDENTIFIER::= { ttdbObjects 1 }

		-- 1.0.61375.2.3.1.1.1
		ttdbEtbId OBJECT-TYPE
			SYNTAX Unsigned32 (1..4)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"ETB Identifier"
			::= { ttdbGenInfo 1 }

		-- 1.0.61375.2.3.1.1.2
		ttdbValidityState OBJECT-TYPE
			SYNTAX TtdbValidity
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Validity of operational train directory"
			::= { ttdbGenInfo 2 }

		-- 1.0.61375.2.3.1.1.3
		ttdbConfirmationState OBJECT-TYPE
			SYNTAX TtdbConfirmation
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Confirmation state of operational train directory"
			::= { ttdbGenInfo 3 }

		-- 1.0.61375.2.3.1.1.4
		ttdbTrainId OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE (16))
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Train Identifier"
			::= { ttdbGenInfo 4 }
 
		-- 1.0.61375.2.3.1.1.5
		ttdbOpTrnTopoCnt OBJECT-TYPE
			SYNTAX Unsigned32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"operational train topocounter"
			::= { ttdbGenInfo 5 }

-- Operational vehicle list

		-- 1.0.61375.2.3.1.2
		ttdbOpVehList OBJECT IDENTIFIER::= { ttdbObjects 2 }

		-- 1.0.61375.2.3.1.2.1
		ttdbOpVehCnt OBJECT-TYPE
			SYNTAX Unsigned32 (1..63)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Number of vehicles in train"
			::= { ttdbOpVehList 1 }

		-- 1.0.61375.2.3.1.2.2
		ttdbOpVehTable OBJECT-TYPE
			SYNTAX SEQUENCE OF TtdbOpVehEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Operational vehicle table"
			::= { ttdbOpVehList 2 }

		-- 1.0.61375.2.3.1.2.2.1
		ttdbOpVehEntry OBJECT-TYPE
			SYNTAX TtdbOpVehEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"An antry in the operational vehicle table"
			INDEX { ttdbOpVehIdx }
		::= { ttdbOpVehTable 1 }

		TtdbOpVehEntry::=
		SEQUENCE {
			ttdbOpVehIdx		Unsigned32,
			ttdbOpVehId		OCTET STRING,
			ttdbOpVehNo		Unsigned32,
			ttdbOpVehIsLead	INTEGER,
			ttdbOpVehLeadDir	INTEGER,
			ttdbOpVehOrient	TtdbOrient }

		-- 1.0.61375.2.3.1.2.2.1.1
		ttdbOpVehIdx OBJECT-TYPE
			SYNTAX Unsigned32 (1..63)
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Operational vehicle table index"
			::= { ttdbOpVehEntry 1 }

		-- 1.0.61375.2.3.1.2.2.1.2
		ttdbOpVehId OBJECT-TYPE
			SYNTAX OCTET STRING (SIZE(0..16))
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Operational vehicle identifier (UIC vehicle number)"
			::= { ttdbOpVehEntry 2 }

		-- 1.0.61375.2.3.1.2.2.1.3
		ttdbOpVehNo OBJECT-TYPE
			SYNTAX Unsigned32 (1..63)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Operational vehicle sequence number"
			::= { ttdbOpVehEntry 3 }

		-- 1.0.61375.2.3.1.2.2.1.4
		ttdbOpVehIsLead OBJECT-TYPE
			SYNTAX INTEGER {notLeading(1),leading(2)}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Operational vehicle leading property"
			::= { ttdbOpVehEntry 4 }

		-- 1.0.61375.2.3.1.2.2.1.5
		ttdbOpVehLeadDir OBJECT-TYPE
			SYNTAX INTEGER {dir1(1),dir2(2)}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Operational vehicle leading direction"
			::= { ttdbOpVehEntry 5 }

		-- 1.0.61375.2.3.1.2.2.1.6
		ttdbOpVehOrient OBJECT-TYPE
			SYNTAX TtdbOrient
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Operational vehicle orientation"
			::= { ttdbOpVehEntry 6 }

-- ***********************************************************************
-- conformance statements
-- ***********************************************************************
		-- 1.0.61375.2.3.2
		ttdbConformance OBJECT IDENTIFIER::= { ttdb 2 }
 
		-- 1.0.61375.2.3.2.2
		ttdbBasicGroup OBJECT-GROUP
			OBJECTS { ttdbEtbId,
					ttdbValidityState,
					ttdbConfirmationState,
					ttdbTrainId,
					ttdbOpVehCnt,
					ttdbOpTrnTopoCnt}
			STATUS current
			DESCRIPTION
				"basic group of TTDB parameters"
			::= { ttdbConformance 2 }
 
		-- 1.0.61375.2.3.2.3
		ttdbOpVehListGroup OBJECT-GROUP
			OBJECTS { ttdbOpVehId,
					ttdbOpVehNo,
					ttdbOpVehIsLead,
					ttdbOpVehLeadDir,
					ttdbOpVehOrient}
			STATUS current
			DESCRIPTION
				"operational vehicle list parameters for TTDB monitoring"
			::= { ttdbConformance 3 }
 
		-- 1.0.61375.2.3.2.4
		ttdbBasicCompliance MODULE-COMPLIANCE
			STATUS current
			DESCRIPTION
				"basic implementation requirements for TTDB monitoring"
			MODULE -- this module
			MANDATORY-GROUPS {ttdbBasicGroup,ttdbOpVehListGroup}
			::= { ttdbConformance 4 }

END
