G6-QOS-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 }

qos  OBJECT IDENTIFIER ::= { protocol 83 }



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


qosEnableQos OBJECT-TYPE   -- enable_qos
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Generally enables quality of service functions."
	::= { qos 1 }


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

configTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF ConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This section configures the base QOS settings."
	::= { qos 2 }

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


	ConfigEntry ::= SEQUENCE {
	configPortIndex INTEGER,
	configEnable802dot1p INTEGER ,
	configEnableDiffserv INTEGER ,
	configPriorityScheme INTEGER ,
	configForceDefaultPriorityQueue INTEGER ,
	configDefaultPriorityQueue INTEGER 
	}

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

configEnable802dot1p OBJECT-TYPE   -- enable_802dot1p
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Enable prioritisation of received packets based on their VLAN priority value according to IEEE 802.1p."
	::= { configEntry 2 }

configEnableDiffserv OBJECT-TYPE   -- enable_diffserv
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Enable prioritisation of received packets based on the DSCP value in their IP header."
	::= { configEntry 3 }

configPriorityScheme OBJECT-TYPE   -- priority_scheme
	SYNTAX INTEGER 
		{
		weighted (0),
		strict (1)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Selection of prioritsation method."
	::= { configEntry 4 }

configForceDefaultPriorityQueue OBJECT-TYPE   -- force_default_priority_queue
	SYNTAX INTEGER {  disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"When enabled the default_priority_queue value is used for this port."
	::= { configEntry 5 }

configDefaultPriorityQueue OBJECT-TYPE   -- default_priority_queue
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default priority value for port. Received packets are handeled according to this setting if VLAN tag and IP header priority is disabled."
	::= { configEntry 6 }


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


-- ******************* Begin of ieee802dot1pPrioMappingTable *************************

ieee802dot1pPrioMappingTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF Ieee802dot1pPrioMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Mapping of the 8 VLAN priority values on the device internal 4 queues (0-3). 802.1p mapping: Prio 0-7 on Queues 1/0/0/1/2/2/3/3."
	::= { qos 3 }

ieee802dot1pPrioMappingEntry	OBJECT-TYPE
	SYNTAX Ieee802dot1pPrioMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { ieee802dot1pPrioMappingIndex }
	::= { ieee802dot1pPrioMappingTable 1 }


	Ieee802dot1pPrioMappingEntry ::= SEQUENCE {
	ieee802dot1pPrioMappingIndex INTEGER,
	ieee802dot1pPrioMappingTag0 INTEGER ,
	ieee802dot1pPrioMappingTag1 INTEGER ,
	ieee802dot1pPrioMappingTag2 INTEGER ,
	ieee802dot1pPrioMappingTag3 INTEGER ,
	ieee802dot1pPrioMappingTag4 INTEGER ,
	ieee802dot1pPrioMappingTag5 INTEGER ,
	ieee802dot1pPrioMappingTag6 INTEGER ,
	ieee802dot1pPrioMappingTag7 INTEGER 
	}

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

ieee802dot1pPrioMappingTag0 OBJECT-TYPE   -- tag_0
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_1"
	::= { ieee802dot1pPrioMappingEntry 2 }

ieee802dot1pPrioMappingTag1 OBJECT-TYPE   -- tag_1
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_0"
	::= { ieee802dot1pPrioMappingEntry 3 }

ieee802dot1pPrioMappingTag2 OBJECT-TYPE   -- tag_2
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_0"
	::= { ieee802dot1pPrioMappingEntry 4 }

ieee802dot1pPrioMappingTag3 OBJECT-TYPE   -- tag_3
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_1"
	::= { ieee802dot1pPrioMappingEntry 5 }

ieee802dot1pPrioMappingTag4 OBJECT-TYPE   -- tag_4
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_2"
	::= { ieee802dot1pPrioMappingEntry 6 }

ieee802dot1pPrioMappingTag5 OBJECT-TYPE   -- tag_5
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_2"
	::= { ieee802dot1pPrioMappingEntry 7 }

ieee802dot1pPrioMappingTag6 OBJECT-TYPE   -- tag_6
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_3"
	::= { ieee802dot1pPrioMappingEntry 8 }

ieee802dot1pPrioMappingTag7 OBJECT-TYPE   -- tag_7
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Default value: QUEUE_3"
	::= { ieee802dot1pPrioMappingEntry 9 }


-- ********************* End of ieee802dot1pPrioMappingTable ***********************


-- ******************* Begin of diffservPrioMappingTable *************************

diffservPrioMappingTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF DiffservPrioMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	::= { qos 4 }

diffservPrioMappingEntry	OBJECT-TYPE
	SYNTAX DiffservPrioMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { diffservPrioMappingIndex }
	::= { diffservPrioMappingTable 1 }


	DiffservPrioMappingEntry ::= SEQUENCE {
	diffservPrioMappingIndex INTEGER,
	diffservPrioMappingDscp INTEGER 
	}

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

diffservPrioMappingDscp OBJECT-TYPE   -- dscp
	SYNTAX INTEGER 
		{
		queue0 (0),
		queue1 (1),
		queue2 (2),
		queue3 (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Mapping of the 64 DiffServ Codepoints (0-63) on the device internal queues."
	::= { diffservPrioMappingEntry 2 }


-- ********************* End of diffservPrioMappingTable ***********************


-- ******************* Begin of rateShapingTable *************************

rateShapingTable	OBJECT-TYPE
	SYNTAX SEQUENCE OF RateShapingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"This section defines optional bandwidth limiting features."
	::= { qos 5 }

rateShapingEntry	OBJECT-TYPE
	SYNTAX RateShapingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		""
	INDEX { rateShapingPortIndex }
	::= { rateShapingTable 1 }


	RateShapingEntry ::= SEQUENCE {
	rateShapingPortIndex INTEGER,
	rateShapingEgressBandwidthPercent Integer32 ,
	rateShapingIngressUnicastPercent Integer32 ,
	rateShapingIngressMulticastPercent Integer32 ,
	rateShapingIngressBroadcastPercent Integer32 ,
	rateShapingIngressUser1Percent Integer32 ,
	rateShapingIngressUser2Percent Integer32 ,
	rateShapingUser1FrameTypes INTEGER ,
	rateShapingUser2FrameTypes INTEGER 
	}

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

rateShapingEgressBandwidthPercent OBJECT-TYPE   -- egress_bandwidth_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the outgoing frame rate by extending the interframe gap. Egress rate shaping is independend of the frame type. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 2 }

rateShapingIngressUnicastPercent OBJECT-TYPE   -- ingress_unicast_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the incoming unicast frame rate. Excess unicast frames are dropped and lead to port flow control frames. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 3 }

rateShapingIngressMulticastPercent OBJECT-TYPE   -- ingress_multicast_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the incoming multicast frame rate. Excess multicast frames are dropped. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 4 }

rateShapingIngressBroadcastPercent OBJECT-TYPE   -- ingress_broadcast_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the incoming broadcast frame rate. Excess broadcast frames are dropped. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 5 }

rateShapingIngressUser1Percent OBJECT-TYPE   -- ingress_user_1_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the incoming frames as defined for this group. Excess broadcast frames are dropped. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 6 }

rateShapingIngressUser2Percent OBJECT-TYPE   -- ingress_user_2_percent
	SYNTAX Integer32 (0..255)
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Limits the incoming frames as defined for this group. Excess broadcast frames are dropped. Provide a percentage value of the selected port data rate. Set to 0 or 100 for unlimited normal operation."
	::= { rateShapingEntry 7 }

rateShapingUser1FrameTypes OBJECT-TYPE   -- user_1_frame_types
	SYNTAX INTEGER 
		{
		disabled (0),
		arp (1),
		tcpControl (2),
		arpAndTcpCtrl (3)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Select for which frame types igress rate shaping should be applied."
	::= { rateShapingEntry 8 }

rateShapingUser2FrameTypes OBJECT-TYPE   -- user_2_frame_types
	SYNTAX INTEGER 
		{
		disabled (0),
		udpData (1),
		tcpData (2),
		udpAndTcpData (3),
		nonUdpTcpData (4)
		}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Select for which frame types igress rate shaping should be applied and which leads to port flow control frames."
	::= { rateShapingEntry 9 }


-- ********************* End of rateShapingTable ***********************



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



END

