-- *****************************************************************
-- Transponder MIB
-- *****************************************************************

SL-XPDR-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE,
	NOTIFICATION-TYPE, IpAddress      	FROM SNMPv2-SMI
	DisplayString, TruthValue, 
	TimeStamp, RowStatus		  		FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP,
	NOTIFICATION-GROUP                  FROM SNMPv2-CONF
	InterfaceIndex		               	FROM IF-MIB
	PerfCurrentCount, PerfIntervalCount,
	PerfTotalCount                      FROM PerfHist-TC-MIB
    sitelight			        		FROM SL-NE-MIB;


slXpdr MODULE-IDENTITY
	LAST-UPDATED "200501250000Z"
	ORGANIZATION "Smartoptics AS"
	CONTACT-INFO
		"d.lutz@smartoptics.com"
	DESCRIPTION
		"This MIB module describes the optical connections."
	::= { sitelight 8 }

--
--	The XPDR MIB consists of the following groups:
--	Optical Connection Table
--  Table for ODU cross connection
--	XPDR Last Change
--	XPDR Traps
--

slXpdrConn			OBJECT IDENTIFIER ::= { slXpdr 1 }
-- slXpdrAps       	  OBJECT IDENTIFIER ::= { slXpdr 2 } 
slXpdrLastChange	OBJECT IDENTIFIER ::= { slXpdr 6 }
slXpdrTraps	 		OBJECT IDENTIFIER ::= { slXpdr 7 }
slXpdrTraps0	 		OBJECT IDENTIFIER ::= { slXpdrTraps 0 }

XpdrServiceType ::= TEXTUAL-CONVENTION
    STATUS         current
    DESCRIPTION    "The service type of the tarsponder."
    SYNTAX         INTEGER {
		ds3Sts1(1),         -- DS3/STS1
		fe(2),              -- Fast Ethernet full duplex
		escon(3),           -- ESCON
		dvbVideo(4),		-- DVB ASI 270 Mbps
		fc1gFicon(5),		-- 1G FC/FICON
		gbE(6),				-- Gigabit Ethernet
		fc2g(7),			-- 2G FC/FICON
		oc3Stm1(8),         -- OC3/STM1
		oc12Stm4(9),        -- OC12/STM4
		oc48Stm16(10),      -- OC48 and GPON 2.48 Gbps
		other(11),			-- Bypass
		fc4g(12),			-- 4G FC/FICON
		infiniband25G(13),	-- InfiniBand 2.5G
		otn27g(14),			-- OC48 + FEC
		oc24gpon(15),		-- OC24/GPON 1.24G
		smpteSdi(16),		-- SMPTE SDI 540 Mbps
		copperFe(17),		-- Copper Fast Ethernet
		copperGbe(18),		-- Copper GbE
		mux2GbE(19), 		-- Muxponder 2x1GBE
		mux4GbE(20),   		-- Muxponder 4x1GBE
		xpdr5G(21),         -- Transponder 5G
		ficon1g(22),		-- 1G FICON
		ficon2g(23),		-- 2G FICON
		stm1(24),         	-- STM1
		stm4(25),       	-- STM4
		stm16(26),      	-- STM16 
		gpon248(27),      	-- GPON 2.48 Gbps
		ficon4g(28),		-- 4G FICON
		eth10m(29),			-- 10Base-T 
		xfp10oc192(30),		-- 9.95328 
		xfp10stm64(31),		-- 9.95328 
		xfp10GbEWan(32),	-- 9.95328   over sonet
		xfp10GbELan(33),	-- 10.3125=10.0*66/64 
		xfp10otu2(34),		-- 10.709255 
		xfp10GFC(35),		-- 10.51875=10.2*66/64 
		xfp10GbEWanStm64(36),	-- 9.95328       over sdh
		mux1GbE(37), 		-- Muxponder 1x1GBE
		mux1GbERegen(38), 	-- Muxponder 1x1GBE regenerator
		mux2GbERegen(39), 	-- Muxponder 2x1GBE regenerator
		mux4GbERegen(40), 	-- Muxponder 4x1GBE	regenerator 
		fc8g(41),           -- 8G FC
		ficon8g(42),        -- 8G FICON
		mux10GbE(43),		-- Muxponder 10xGBE into 10GFC
		syncEgbE(44),		-- SyncE Gigabit Ethernet

		otu1e(50),       		-- OTU1e
		otu2e(51),       		-- OTU2e
		otu1f(52),       		-- OTU1f
		otu2f(53),       		-- OTU2f
		oc192ToOtu2(54),       	-- OC192 mapped to OTU2 (G.709)
		stm64ToOtu2(55),       	-- STM64 mapped to OTU2 (G.709)
		gbe10WanToOtu2(56),		-- 10G GBE Wan mapped to OTU2 (G.Sup43 6.1)
		gbe10LanToOtu2A(57),	-- 10G GBE Lan mapped to OTU2 (G.Sup43 6.2)
		gbe10LanToOtu1e(58),	-- 10G GBE Lan mapped to OTU1e (G.Sup43 7.2)
		gbe10LanToOtu2e(59),	-- 10G GBE Lan mapped to OTU2e (G.Sup43 7.1)
		gbe10LanToOtu2B(60),	-- 10G GBE Lan mapped to OTU2 (G.Sup43 7.3)
		fc10LanToOtu1f(61),		-- 10G FC mapped to OTU1f (like G.Sup43 7.2)
		fc10LanToOtu2f(62),		-- 10G FC mapped to OTU2f (like G.Sup43 7.1)
		fc8LanToOtu2(63),		-- 8G FC mapped to OTU2 (GFP-T)

		otu3(64),				-- OTU3  
		oc768(65),				-- OC-768
		stm256(66),				-- STM-256
		otu4(67),				-- OTU4  
		gbe40lan(68),			-- 40GBE-LAN
		gbe100lan(69),			-- 100GBE-LAN

		fc16g(70),				-- 16G FC/FICON
		smpteHdSdi(71),			-- HD-SDI 1.485 Gbit/s SMPTE 292M
		smpteSdSdi(72),			-- SD-SDI 270Mbit/s SMPTE 259M
		smpte3gSdi(73),			-- 3G-SDI 2.97Gbs
		smpte3dSdi(74),			-- 372 Dual link / 3D formats
		smpteHdSdiNtsc(75),		-- HD-SDI for NTSC 1.485/1.001 Gbit/s SMPTE 292M
		smpte3gSdiNtsc(76),		-- 3G-SDI for NTSC 2.97Gbs/1.001 
		fc16gNoIsl(77),			-- 16G FC/FICON No ISL mode

		cpri1(81),				-- CPRI Option 1 614.4 Mbps
		cpri2(82),				-- CPRI Option 2 1228.8 Mbps
		cpri3(83),				-- CPRI Option 3 2457.6 Mbps
		cpri4(84),				-- CPRI Option 4 3072.0 Mbps
		cpri5(85),				-- CPRI Option 5 4915.2 Mbps
		cpri6(86),				-- CPRI Option 6 6144.0 Mbps
		cpri7(87),				-- CPRI Option 7 9830.4 Mbps

		enc10GbELan(91),		-- Encrypted 10GbE 10.36208 Gbps
		enc1GbELan(92),			-- Encrypted 1GbE 2.125 Gbps
		encfc1g(93),			-- Encrypted 1G FC
		encfc2g(94),			-- Encrypted 2G FC
		encfc4g(95),			-- Encrypted 4G FC
		encfc8g(96),			-- Encrypted 8G FC
		encfc16g(97),			-- Encrypted 16G FC  
		encfc10g(98),			-- Encrypted 10G FC  
		
		copper10m(170),			-- Copper 10Base-T Ethernet
		copper10mAn(171),		-- Copper 10Base-T Ethernet with Auto-negotiation
		copperFeAn(1701)		-- Copper Fast Ethernet with Auto-negotiation
    }

--
-- The Static Transponding Connection Table
-- This table defines the connections between the Transponding modules
--

xpdrConnConfigTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF XpdrConnConfigEntry
	MAX-ACCESS  		not-accessible
	STATUS  			current 
	DESCRIPTION
		"The connection table contains for each
		transponding connection a single bi-directional entry.
		The index to the table is the ifIndex of both XPDR interfaces.
		The ifType valued used for the index is: 196."
	::= { slXpdrConn 1 }

xpdrConnConfigEntry OBJECT-TYPE
	SYNTAX  XpdrConnConfigEntry
	MAX-ACCESS  not-accessible
	STATUS  current
	DESCRIPTION
		"An entry in the transponding connection table."
	INDEX   { xpdrConnConfigIf1, 
			  xpdrConnConfigIf2 }
	::= { xpdrConnConfigTable 1 }

XpdrConnConfigEntry ::=
	SEQUENCE {
		xpdrConnConfigIf1					InterfaceIndex,  
		xpdrConnConfigIf2					InterfaceIndex,    
		xpdrConnConfigRateControlAdmin		INTEGER,
		xpdrConnConfigRateControlOper		INTEGER,
		xpdrConnConfigLosPropagation		TruthValue,
		xpdrServiceType						XpdrServiceType,
		xpdrConnAddMask 					INTEGER,
		xpdrMuxInbandAdmin	 				INTEGER,
		xpdrMuxInbandOper	 				INTEGER,
		xpdrDirection 						INTEGER,
		xpdrConnConfigCpriRateControl		TruthValue,
		xpdrFaultPropagationDelay			INTEGER,
		xpdrFecMode 						INTEGER
	}

xpdrConnConfigIf1 OBJECT-TYPE
	SYNTAX  	InterfaceIndex
	MAX-ACCESS  read-only
	STATUS  	current
	DESCRIPTION
		"The first XPDR interface."
	::= { xpdrConnConfigEntry 1 }

xpdrConnConfigIf2 OBJECT-TYPE
	SYNTAX  	InterfaceIndex
	MAX-ACCESS  read-only
	STATUS  	current
	DESCRIPTION
		"The second XPDR interface."
	::= { xpdrConnConfigEntry 2 }

xpdrConnConfigRateControlAdmin OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-write
	STATUS  	current
	DESCRIPTION
		"This variable ask the rate of the traffic used
		by this interface. Frequency is in Kbp/s. 		
		The value 0-30 is used for rate control Bypass."
    ::= { xpdrConnConfigEntry 3 }

xpdrConnConfigRateControlOper OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  	current
	DESCRIPTION
		"This variable tells the rate of the traffic used
		by this interface. Frequency is in Kbp/s. 		
		The value 0 returned for rate control Bypass."
    ::= { xpdrConnConfigEntry 4 }

xpdrConnConfigLosPropagation 	OBJECT-TYPE
	SYNTAX      	TruthValue
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is used to detrmine if the LOS propagation should be active."
	::= { xpdrConnConfigEntry 5 }

xpdrServiceType 	OBJECT-TYPE
	SYNTAX      	XpdrServiceType
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"The service type of the transponder."
	::= { xpdrConnConfigEntry 6 }

xpdrConnAddMask 	OBJECT-TYPE
	SYNTAX      	INTEGER
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is a bit mask relevant only for Muxponder entry. 
		It contains a bit for each Muxponder service.
		To add a service the management should set the corresponding bit to 1.
		To remove a service the bit should be set to 0.
		
		For ODU allocation, the value of xpdrConnAddMask should be set to reflect the odus/time-slots 
		provisioned for the service according to the following rules:
		a.	For ODU1 the first byte is 0; for ODU0 the first byte is 1.
		b.	The second byte. Is equal to:
			i.	The 4 bits of the first nibble correspond to Uplink 1 allocated odus counted from right to left
			ii.	The 4 bits of the second nibble correspond to Uplink 2 allocated odus counted from right to left 
		c.	The Third and Forth bytes keep bit-mask of the allocated time-slots within the odu."
	::= { xpdrConnConfigEntry 7 }

xpdrMuxInbandAdmin 	OBJECT-TYPE
	SYNTAX			INTEGER {
		up(1),
		down(2),
		standby(3)
	}
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is relevant only for muxponder.
		 up value means that the muxponder inband management is enabled."
	::= { xpdrConnConfigEntry 8 }

xpdrMuxInbandOper	OBJECT-TYPE
	SYNTAX			INTEGER {
		up(1),
		down(2),
		standby(3)
	}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION	
		"The operational state of the inband interface."
	::= { xpdrConnConfigEntry 9 }

xpdrDirection 	OBJECT-TYPE
	SYNTAX      	INTEGER {
		bidirectional(1),		-- transponder is bidierctional (default)
		unidirectionalTx(2),	-- tranponder uplink is TX and client is RX
		unidirectionalRx(3),	-- tranponder uplink is RX and client is TX
		loopback(4)				-- transponder with a single tranciever
	}
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is used for unidirectional services.
		The upper port is the uplink as with the aps configuration.
		The transponder on one side should be configured as TX and the peer as RX."
	::= { xpdrConnConfigEntry 10 }

xpdrConnConfigCpriRateControl 	OBJECT-TYPE
	SYNTAX      	TruthValue
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is used to detrmine if the CPRI rate control should be active."
	::= { xpdrConnConfigEntry 11 }

xpdrFaultPropagationDelay 	OBJECT-TYPE
	SYNTAX      	INTEGER
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is used to determine the fault propagation delay.
		The value 0 mean no delay, the value 1 means 100ms delay, the value 2 means 200ms delay etc.
		0 is the default value."
	::= { xpdrConnConfigEntry 12 }

xpdrFecMode 	OBJECT-TYPE
	SYNTAX      	INTEGER
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"This object is used to determine the IEEE FEC mode for 10G and 16G services:
		0 - No FEC (default)
		1 - FEC Monitoring
		2 - FEC Generation
		3 - FEC Regeneration"
	::= { xpdrConnConfigEntry 13 }


--
--	ODU Cross Connection Table 
--

oduXcConnConfigTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF OduXcConnConfigEntry
	MAX-ACCESS  		not-accessible
	STATUS  			current 
	DESCRIPTION
		"Description:
		1. The port numbers are:
			0       unassigned 
			1..10   ODUs of Uplink 1
			11..20  ODUs of Uplink 2 (not available without 20G or 1+1 license)
		2. All connections are unidirectional
		3. P1 is the Source port and P2 is the Sync port
		4. Port 0 is used as P2 when P1 is dropped
		5. Port 0 is used as P1 when P2 is added
		6. In the case of APS the two mate ODUs will apear with oduXcConnConfigProtected=TRUE
		7. The allocation of ODUs per service port is described in xpdrConnAddMask above"
	::= { slXpdrConn 2 }

oduXcConnConfigEntry OBJECT-TYPE
	SYNTAX  OduXcConnConfigEntry
	MAX-ACCESS  not-accessible
	STATUS  current
	DESCRIPTION
		"An entry in the ODU connection table.
		 An entry describes uni-directional connection of traffic from P1 (Source port) to port P2 (Sync port)."
	INDEX   { oduXcConnConfigP1,
		 	  oduXcConnConfigP2 }
	::= { oduXcConnConfigTable 1 }

OduXcConnConfigEntry ::=
	SEQUENCE {
		oduXcConnConfigP1					INTEGER,  
		oduXcConnConfigP2					INTEGER,    
		oduXcConnConfigProtected			TruthValue,
		oduXcConnConfigRowStatus      		RowStatus        
	}

oduXcConnConfigP1 OBJECT-TYPE
	SYNTAX  	INTEGER
	MAX-ACCESS  read-create
	STATUS  	current
	DESCRIPTION
		"The Source port."
	::= { oduXcConnConfigEntry 1 }

oduXcConnConfigP2 OBJECT-TYPE
	SYNTAX  	INTEGER
	MAX-ACCESS  read-create
	STATUS  	current
	DESCRIPTION
		"The Sync port."
	::= { oduXcConnConfigEntry 2 }

oduXcConnConfigProtected 	OBJECT-TYPE
	SYNTAX      	TruthValue
	MAX-ACCESS  	read-create
	STATUS      	current
	DESCRIPTION
		"Indication for entry with Protection Mates"
	::= { oduXcConnConfigEntry 3 }

oduXcConnConfigRowStatus OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION "The Status of this connection entry."
      ::= { oduXcConnConfigEntry 4 }

xpdrOduMappingStatus 	OBJECT-TYPE
	SYNTAX      	INTEGER
	MAX-ACCESS  	read-only
	STATUS      	current
	DESCRIPTION
		"A bit mask that specifies how the ODUs are configured.
		 The first nible describes Uplink 1 and the second nibble describes Uplink 2. 
		 Examples:
		 If bit 1 equals 1 it means that the first ODU1 of Uplink 1 is devided into two ODU0.
		 If bit 8 equals 1 it means that the forth ODU1 of Uplink 2 is devided into two ODU0.
		 The default value is 0, means that all ODUs are ODU1."
	::= { slXpdrConn 3 }

xpdrOduMappingMaskedAdmin 	OBJECT-TYPE
	SYNTAX      	INTEGER
	MAX-ACCESS  	read-write
	STATUS      	current
	DESCRIPTION
		"The first byte is the new mapping to set.
		 The second byte is the mask for the setting.
		 For example to split the second ODU1 of Uplink 1 into two ODU0 
		   First byte should be  - 01000000
		   Second byte should be - 01000000  
		 To change the reunite the third ODU1 of uplink 2
		   First byte should be  - 00000000
		   Second byte should be - 00000010 "
	::= { slXpdrConn 4 }

--
-- The traps
--

xpdrConnConfigTableChange NOTIFICATION-TYPE
	STATUS  current
	DESCRIPTION
		"A xpdrConnConfigTableChange trap is sent when the
		content of the xpdrConnConfigTable is changed."
	::= { slXpdrTraps 1 }

xpdrConnConfigTableChange0 NOTIFICATION-TYPE
	STATUS  current
	DESCRIPTION
		"A xpdrConnConfigTableChange trap is sent when the
		content of the xpdrConnConfigTable is changed.
		It is defined to support browsers that don't recognize RFC 2576."
	::= { slXpdrTraps0 1 }

END
