G6-RING-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Counter32, enterprises,NOTIFICATION-TYPE
		FROM SNMPv2-SMI
	DisplayString, MacAddress
		FROM SNMPv2-TC
	g6	FROM MICROSENS-G6-MIB
	;

protocol MODULE-IDENTITY --Category
	LAST-UPDATED "201802121619Z"
	ORGANIZATION "MICROSENS GmbH & Co. KG"
	CONTACT-INFO
		"Kueferstrasse 16
		D-59067 Hamm
		Germany
		support@microsens.de
		http://www.microsens.de"
	DESCRIPTION
		"Microsens private MIB for Generation 6 Ethernet Switches"

	REVISION "201802121619Z"
	DESCRIPTION
		"File creation"
	::= { g6 2 }

ring  OBJECT IDENTIFIER ::= { protocol 45 }



-- *************************** CONFIGURATION SECTION ********************************


-- ******************* Begin of configTable *************************

configTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF ConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This section is used to configure the MICROSENS ring protocol which provides fast network redundany."
	::= { ring 1 }

configEntry	OBJECT-TYPE
	SYNTAX ConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { configIndex }
	::= { configTable 1 }


	ConfigEntry ::= SEQUENCE {
	configIndex INTEGER,
	configName DisplayString,
	configEnableRing INTEGER ,
	configRingMaster INTEGER ,
	configNumber Integer32 ,
	configPortA Integer32 ,
	configPortB Integer32 
	}

configIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..1)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { configEntry 1 }

configName OBJECT-TYPE   -- name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"User defined ring name is purly informational."
	::= { configEntry 2 }

configEnableRing OBJECT-TYPE   -- enable_ring
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Used to enable the redundant ring function."
	::= { configEntry 3 }

configRingMaster OBJECT-TYPE   -- ring_master
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When enabled this unit is designated as ring master. There can only be one master in a ring."
	::= { configEntry 4 }

configNumber OBJECT-TYPE   -- number
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Ring number must be set identical for each member of a ring. When left unassigned the default setting 1 for index 1 and 2 for index 2 is used."
	::= { configEntry 5 }

configPortA OBJECT-TYPE   -- port_a
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Port number for ring side A"
	::= { configEntry 6 }

configPortB OBJECT-TYPE   -- port_b
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Port number for ring side B. Ring master blocks B when ring is ok"
	::= { configEntry 7 }


-- ********************* End of configTable ***********************


-- ******************* Begin of mrpConfigTable *************************

mrpConfigTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF MrpConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This section is used to configure the MRP  ring protocol."
	::= { ring 2 }

mrpConfigEntry	OBJECT-TYPE
	SYNTAX MrpConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { mrpConfigIndex }
	::= { mrpConfigTable 1 }


	MrpConfigEntry ::= SEQUENCE {
	mrpConfigIndex INTEGER,
	mrpConfigEnableMrp INTEGER ,
	mrpConfigDomainName DisplayString,
	mrpConfigExpectedRole INTEGER ,
	mrpConfigReactOnLinkChange INTEGER ,
	mrpConfigRecoveryTime INTEGER ,
	mrpConfigPort1 Integer32 ,
	mrpConfigPort2 Integer32 ,
	mrpConfigVlanId Integer32 ,
	mrpConfigResetRoundTripDelays DisplayString,
	mrpConfigResetStatistics DisplayString
	}

mrpConfigIndex	OBJECT-TYPE
	SYNTAX INTEGER (0)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { mrpConfigEntry 1 }

mrpConfigEnableMrp OBJECT-TYPE   -- enable_mrp
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Used to enable the MRP ring function. Only enable when all MRP and VLAN settings have been set. Only close cable connections of the ring when all nodes have been enabled."
	::= { mrpConfigEntry 2 }

mrpConfigDomainName OBJECT-TYPE   -- domain_name
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"User defined ring name is purly informational."
	::= { mrpConfigEntry 3 }

mrpConfigExpectedRole OBJECT-TYPE   -- expected_role
	SYNTAX INTEGER 
		{
		client (0),
		manager (1)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Determines role of this node in the ring. Configure only one master per ring."
	::= { mrpConfigEntry 4 }

mrpConfigReactOnLinkChange OBJECT-TYPE   -- react_on_link_change
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When enabled the manager reacts to link change messages from a client. Disable this feature only when any member of the ring does not support react on link change feature. Also known as Advanced Mode. Only applies to manager role."
	::= { mrpConfigEntry 5 }

mrpConfigRecoveryTime OBJECT-TYPE   -- recovery_time
	SYNTAX INTEGER 
		{
		recoveryTime500Ms (0),
		recoveryTime200Ms (1)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Specifies the guaranteed maximum recovery time (i.e. Time from the fault event to the time when the network regains its required communication function). Only applies to manager role."
	::= { mrpConfigEntry 6 }

mrpConfigPort1 OBJECT-TYPE   -- port_1
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Port number for ring side 1"
	::= { mrpConfigEntry 7 }

mrpConfigPort2 OBJECT-TYPE   -- port_2
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Port number for ring side 2. Ring master blocks B when ring is ok"
	::= { mrpConfigEntry 8 }

mrpConfigVlanId OBJECT-TYPE   -- vlan_id
	SYNTAX Integer32 (0..65535)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When using a VLAN ensure that the rings ports are configured as member of the VLAN in the vlan settings. Leave this field blank or set to 0 when no VLAN is used."
	::= { mrpConfigEntry 9 }

mrpConfigResetRoundTripDelays OBJECT-TYPE   -- reset_round_trip_delays
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When executed the min_round_trip_delay and max_round_trip_delay values are reset to 0. This has no service implications."
	::= { mrpConfigEntry 10 }

mrpConfigResetStatistics OBJECT-TYPE   -- reset_statistics
	SYNTAX DisplayString
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When executed statistics related to this MRP ring are cleared. This has no service implications."
	::= { mrpConfigEntry 11 }


-- ********************* End of mrpConfigTable ***********************



-- ****************************** STATUS SECTION ********************************


-- ******************* Begin of statusTable *************************

statusTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF StatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Status values display the current condition of the ring network."
	::= { ring 100 }

statusEntry	OBJECT-TYPE
	SYNTAX StatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { statusIndex }
	::= { statusTable 1 }


	StatusEntry ::= SEQUENCE {
	statusIndex INTEGER,
	statusState INTEGER ,
	statusLastStateChange DisplayString,
	statusRingInterrupt INTEGER ,
	statusGlobalRingAlarm INTEGER ,
	statusErrorDetected INTEGER ,
	statusRingPortAInterrupted INTEGER ,
	statusRingPortBInterrupted INTEGER 
	}

statusIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..1)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { statusEntry 1 }

statusState OBJECT-TYPE   -- state
	SYNTAX INTEGER 
		{
		unused (0),
		normal (1),
		backup (2),
		error (3),
		misconfigured (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 2 }

statusLastStateChange OBJECT-TYPE   -- last_state_change
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Time and date string indication when the state of the ring protocol has last changed to the state now indicated."
	::= { statusEntry 3 }

statusRingInterrupt OBJECT-TYPE   -- ring_interrupt
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 4 }

statusGlobalRingAlarm OBJECT-TYPE   -- global_ring_alarm
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 5 }

statusErrorDetected OBJECT-TYPE   -- error_detected
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 6 }

statusRingPortAInterrupted OBJECT-TYPE   -- ring_port_a_interrupted
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 7 }

statusRingPortBInterrupted OBJECT-TYPE   -- ring_port_b_interrupted
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { statusEntry 8 }


-- ********************* End of statusTable ***********************


-- ******************* Begin of statisticsTable *************************

statisticsTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF StatisticsEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Statistics of the ring network performance."
	::= { ring 101 }

statisticsEntry	OBJECT-TYPE
	SYNTAX StatisticsEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { statisticsIndex }
	::= { statisticsTable 1 }


	StatisticsEntry ::= SEQUENCE {
	statisticsIndex INTEGER,
	statisticsNumberOfBackups Unsigned32,
	statisticsCurrentBackupDuration Counter32,
	statisticsLastBackupDuration Counter32,
	statisticsTotalBackupDuration Counter32
	}

statisticsIndex	OBJECT-TYPE
	SYNTAX INTEGER (0..1)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { statisticsEntry 1 }

statisticsNumberOfBackups OBJECT-TYPE   -- number_of_backups
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Counts the number of backups engaged since the last power up."
	::= { statisticsEntry 2 }

statisticsCurrentBackupDuration OBJECT-TYPE   -- current_backup_duration
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates since how long a currently active backup is established. When no backup is active a 0 is displayed."
	::= { statisticsEntry 3 }

statisticsLastBackupDuration OBJECT-TYPE   -- last_backup_duration
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates since how long the last backup was established. Indicates 0 if there was no backup since last reboot."
	::= { statisticsEntry 4 }

statisticsTotalBackupDuration OBJECT-TYPE   -- total_backup_duration
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Total time the ring was in backup since last reboot. "
	::= { statisticsEntry 5 }


-- ********************* End of statisticsTable ***********************


-- ******************* Begin of couplingStatusTable *************************

couplingStatusTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF CouplingStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Indicates status of ring coupling function. "
	::= { ring 102 }

couplingStatusEntry	OBJECT-TYPE
	SYNTAX CouplingStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { couplingStatusIndex }
	::= { couplingStatusTable 1 }


	CouplingStatusEntry ::= SEQUENCE {
	couplingStatusIndex INTEGER,
	couplingStatusControllerState INTEGER ,
	couplingStatusCportLink INTEGER ,
	couplingStatusCportForward INTEGER ,
	couplingStatusCportTimeout INTEGER ,
	couplingStatusConnectionValid INTEGER ,
	couplingStatusValidPartnerIp INTEGER ,
	couplingStatusValidPartnerId INTEGER 
	}

couplingStatusIndex	OBJECT-TYPE
	SYNTAX INTEGER (0)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { couplingStatusEntry 1 }

couplingStatusControllerState OBJECT-TYPE   -- controller_state
	SYNTAX INTEGER 
		{
		disabled (0),
		blocking (1),
		link (2),
		forwarding (3),
		standby (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Data transmission state."
	::= { couplingStatusEntry 2 }

couplingStatusCportLink OBJECT-TYPE   -- cport_link
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Coupling port is in linkup condition."
	::= { couplingStatusEntry 3 }

couplingStatusCportForward OBJECT-TYPE   -- cport_forward
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Coupling port is in forwarding state."
	::= { couplingStatusEntry 4 }

couplingStatusCportTimeout OBJECT-TYPE   -- cport_timeout
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates that no ring coupling frames were received within defined period."
	::= { couplingStatusEntry 5 }

couplingStatusConnectionValid OBJECT-TYPE   -- connection_valid
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates that source ip address of received frame matches configured partner ip."
	::= { couplingStatusEntry 6 }

couplingStatusValidPartnerIp OBJECT-TYPE   -- valid_partner_ip
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates that received ring number matches expected locally configured ring number."
	::= { couplingStatusEntry 7 }

couplingStatusValidPartnerId OBJECT-TYPE   -- valid_partner_id
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { couplingStatusEntry 8 }


-- ********************* End of couplingStatusTable ***********************


-- ******************* Begin of mrpStatusTable *************************

mrpStatusTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF MrpStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Indicates status of ring coupling function. "
	::= { ring 103 }

mrpStatusEntry	OBJECT-TYPE
	SYNTAX MrpStatusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { mrpStatusIndex }
	::= { mrpStatusTable 1 }


	MrpStatusEntry ::= SEQUENCE {
	mrpStatusIndex INTEGER,
	mrpStatusAdminRole INTEGER ,
	mrpStatusOperationalRole INTEGER ,
	mrpStatusPortAState INTEGER ,
	mrpStatusPortBState INTEGER ,
	mrpStatusDomainId DisplayString,
	mrpStatusDomainState INTEGER ,
	mrpStatusDomainError INTEGER ,
	mrpStatusDomainBlocked INTEGER ,
	mrpStatusManagerPriority Unsigned32,
	mrpStatusRingOpenCount Unsigned32,
	mrpStatusLastRingOpenTimeStamp Counter32,
	mrpStatusMaxRoundTripDelay Unsigned32,
	mrpStatusMinRoundTripDelay Unsigned32
	}

mrpStatusIndex	OBJECT-TYPE
	SYNTAX INTEGER (0)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Automatically generated"
	::= { mrpStatusEntry 1 }

mrpStatusAdminRole OBJECT-TYPE   -- admin_role
	SYNTAX INTEGER 
		{
		undefined (0),
		client (1),
		manager (2)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Mirrors expected role configuration."
	::= { mrpStatusEntry 2 }

mrpStatusOperationalRole OBJECT-TYPE   -- operational_role
	SYNTAX INTEGER 
		{
		undefined (0),
		client (1),
		manager (2)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"real_role ??"
	::= { mrpStatusEntry 3 }

mrpStatusPortAState OBJECT-TYPE   -- port_a_state
	SYNTAX INTEGER 
		{
		unused (0),
		blocking (1),
		forwarding (3),
		notConnected (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { mrpStatusEntry 4 }

mrpStatusPortBState OBJECT-TYPE   -- port_b_state
	SYNTAX INTEGER 
		{
		unused (0),
		blocking (1),
		forwarding (3),
		notConnected (4)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { mrpStatusEntry 5 }

mrpStatusDomainId OBJECT-TYPE   -- domain_id
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"When left blank the default id of all bits 1 is used."
	::= { mrpStatusEntry 6 }

mrpStatusDomainState OBJECT-TYPE   -- domain_state
	SYNTAX INTEGER 
		{
		disabled (0),
		ok (1),
		ringOpen (2)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Operational status of the MRP entity."
	::= { mrpStatusEntry 7 }

mrpStatusDomainError OBJECT-TYPE   -- domain_error
	SYNTAX INTEGER 
		{
		disabled (0),
		noError (1),
		invalidVlan (2),
		invalid (3),
		multiMgr (4),
		singleSide (5),
		linkError (6)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { mrpStatusEntry 8 }

mrpStatusDomainBlocked OBJECT-TYPE   -- domain_blocked
	SYNTAX INTEGER { false(0), true(1) }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	""
	::= { mrpStatusEntry 9 }

mrpStatusManagerPriority OBJECT-TYPE   -- manager_priority
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The priority of this MRP entity."
	::= { mrpStatusEntry 10 }

mrpStatusRingOpenCount OBJECT-TYPE   -- ring_open_count
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Counts how many times was the ring broken."
	::= { mrpStatusEntry 11 }

mrpStatusLastRingOpenTimeStamp OBJECT-TYPE   -- last_ring_open_time_stamp
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Indicates at which time the ring was was broken."
	::= { mrpStatusEntry 12 }

mrpStatusMaxRoundTripDelay OBJECT-TYPE   -- max_round_trip_delay
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The longest round trip delay that was measured since value reset. Value in microseconds"
	::= { mrpStatusEntry 13 }

mrpStatusMinRoundTripDelay OBJECT-TYPE   -- min_round_trip_delay
	SYNTAX Unsigned32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The shortest round trip delay that was measured since value reset. Value in microseconds"
	::= { mrpStatusEntry 14 }


-- ********************* End of mrpStatusTable ***********************



END

