-- *****************************************************************
-- QTECH-MPLSOAM-MIB.mib:  Qtech MPLSOAM MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

	QTECH-MPLSOAM-MIB DEFINITIONS ::= BEGIN
 
		IMPORTS
			qtechMgmt			
				FROM QTECH-SMI			
			IpAddress, Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, 
			NOTIFICATION-TYPE			
				FROM SNMPv2-SMI
			DisplayString, TruthValue, TimeStamp, RowStatus, TEXTUAL-CONVENTION       
				FROM SNMPv2-TC;
	
	
--  1.3.6.1.4.1.2011.5.12.7
-- January 04, 2011 at 13:27 GMT
		-- 1.3.6.1.4.1.2011.5.12.7
		qtechMplsOam MODULE-IDENTITY 
			LAST-UPDATED "201101041327Z"		-- January 04, 2011 at 13:27 GMT
			ORGANIZATION 
				"Qtech Networks Co.,Ltd."
			CONTACT-INFO
                "
                Tel: 4008-111-000

                E-mail: service@qtech.com.cn"
			DESCRIPTION 
			    "Copyright (C) Qtech Networks.
	            This MIB module contains managed object definitions
	            for the Operation, Administration and Maintenance (OAM) as in [Y.1711].
	
	            The MPLS OAM is Operation Administration and Maintenance mechanism for MPLS network."
			::= { qtechMgmt 93 }

		
	
--
-- Node definitions
--
	
--  Node definitions
-- 
-- 1.3.6.1.4.1.2011.5.12.7.1
		-- 1.3.6.1.4.1.2011.5.12.7.1
		qtechMplsOamPs OBJECT IDENTIFIER ::= { qtechMplsOam 1 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1
		-- 1.3.6.1.4.1.2011.5.12.7.1.1
		qtechMplsOamObjects OBJECT IDENTIFIER ::= { qtechMplsOamPs 1 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.1
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.1
		qtechMplsOamCapability OBJECT-TYPE
			SYNTAX Unsigned32 (0..1)
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"Whether OAM is enabled globally.
				1: enable;
				0: disable;
				The default value is disabled globally."
			::= { qtechMplsOamObjects 1 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.2
		qtechMplsOamIgrTable OBJECT-TYPE
			SYNTAX SEQUENCE OF QtechMplsOamIgrEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"This table specifies information for configuring
                and monitoring LSP(or te tunnel)."
			::= { qtechMplsOamObjects 2 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1
		qtechMplsOamIgrEntry OBJECT-TYPE
			SYNTAX QtechMplsOamIgrEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"A row in this table represents information for configuring
				and monitoring LSP(or te tunnel). It is indexed by
            	qtechMplsOamIgrIndex, which uniquely identifies a single LSP(or te tunnel)."
			INDEX { qtechMplsOamIgrIndex }
			::= { qtechMplsOamIgrTable 1 }

		
		QtechMplsOamIgrEntry ::=
			SEQUENCE { 
				qtechMplsOamIgrIndex
					Unsigned32,
				qtechMplsOamIgrLspName
			    	OCTET STRING,
			    qtechMplsOamIgrLspId
			 		Integer32,
				qtechMplsOamIgrDetType
					INTEGER,
				qtechMplsOamIgrDetFreq
					INTEGER,
				qtechMplsOamIgrRevType
					INTEGER,
				qtechMplsOamIgrRevLspName
					OCTET STRING,
				qtechMplsOamIgrEnable
					INTEGER,
			    qtechMplsOamIgrValid
			    	Integer32,
				qtechMplsOamIgrAvaState
					Integer32,
				qtechMplsOamIgrDefectType
					Integer32,
				qtechMplsOamIgrRowStatus
					RowStatus
			 }


--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.1
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.1
		qtechMplsOamIgrIndex OBJECT-TYPE
			SYNTAX Unsigned32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This is a unique index in the ingress table."
			::= { qtechMplsOamIgrEntry 1 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.6
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.2
	    qtechMplsOamIgrLspName  OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
		 		"The name of an LSP(or te tunnel)."
			::= { qtechMplsOamIgrEntry 2 }


		qtechMplsOamIgrLspId OBJECT-TYPE
			SYNTAX Integer32 (1..65535)
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
			 	"The ID of an LSP."
			::= { qtechMplsOamIgrEntry 3 }
			
			
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.3
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.3
		qtechMplsOamIgrDetType OBJECT-TYPE     
			SYNTAX INTEGER {                                            
			           cv(1),
                       ffd(2)
            }
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The OAM defect detection function is based on the periodic transmission 
				of CV or FFD packets from ingress to egress of an LSP. Each CV and FFD packet 
				carries a unique TTSI (Trail Termination Source Identifier), which is composed 
				of the source LSR identifier, and the LSP identifier.
				1: CV;
				2: FFD."
			::= { qtechMplsOamIgrEntry 4 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.4
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.4
		qtechMplsOamIgrDetFreq OBJECT-TYPE
			SYNTAX INTEGER {                   
			    cv1000ms(0),                     
				ffd50ms2(1),
				ffd100ms3(2),
				ffd200ms4(3),
				ffd500ms5(4)
			}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"For CV: the frequency is 1s.
				For FFD: the frequency is one of 
				50ms,100ms,200ms,500ms.
				0: 1s(only for cv);
				1: 50ms;
				2: 100ms;
				3: 200ms;
				4: 500ms."
			::= { qtechMplsOamIgrEntry 5 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.5
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.5
		qtechMplsOamIgrRevType OBJECT-TYPE
			SYNTAX INTEGER {  
			     private(1),
			     share(2)
			}   		
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The BDI flow is injected on a return path (such as a return LSP) to inform the upstream LSR
				(which is the source of the forward LSP) that there is a defect at the downstream LSP's LSR sink
				point.BDI and loopback transactions use a return path. A return path could be:
				1: A dedicated return LSP;
				2: A shared return LSP, which is shared between many forward LSPs."
			::= { qtechMplsOamIgrEntry 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.6
		qtechMplsOamIgrRevLspName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The name of a return LSP."
			::= { qtechMplsOamIgrEntry 7 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.15
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.9
		qtechMplsOamIgrEnable OBJECT-TYPE
			SYNTAX INTEGER {
			    disable(0),
			    enable(1)		
			}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The detection of OAM is enabled/disabled on the ingress of an LSP.
				0: The OAM detection is disabled on the ingress;
				1: The OAM detection is enabled on the ingress."
			::= { qtechMplsOamIgrEntry 8 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.10
		qtechMplsOamIgrValid OBJECT-TYPE
			SYNTAX Integer32 (0..1)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"0: stop detection of OAM;
				 1: start detection of OAM."
			::= { qtechMplsOamIgrEntry 9 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.16
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.11
		qtechMplsOamIgrAvaState OBJECT-TYPE
			SYNTAX Integer32 (0..1)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"If the LSP Timer (T3) expires, then the LSP enters the 
				Unavailable state. The start point of the Unavailable state 
				is deemed to be at the entry into the LSP defect state.
				An LSP re-enters the Available state after first exiting the LSP defect state. 
				0: available state;
				1: unavailable state."
			::= { qtechMplsOamIgrEntry 10 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.17
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.12
		qtechMplsOamIgrDefectType OBJECT-TYPE
			SYNTAX Integer32 (0..7)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"There are 6 types of defect in total, among which there are 4 MPLS layer user-plane
				defects(i.e., dLOCV, dTTSI_Mismatch, dTTSI_Mismerge and dExcess), 1 Server layer defect,
				1 peer maintenance entity defect:
				0: no defect;
				1: dServer, Any server layer defect arising below the MPLS layer network;
				2: dPeerMe, Any peer maintenance entity defect arising outside the MPLS subnetwork;
				3: dLOCV, Loss of Connectivity Verification defect;
				4: dTTSI-Mismatch, Trail Termination Source Identifier Mismatch defect;
				5: dTTSI-Mismerge, Trail Termination Source Identifier Mismerge defect;
				6: dExcess, Excess rate of CV/FFD defect;
				7: dUnknown, Unknown defect in the MPLS network."
			::= { qtechMplsOamIgrEntry 11 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.1.3.1.18
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.13
		qtechMplsOamIgrRowStatus OBJECT-TYPE
			SYNTAX RowStatus
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"It is used to create and
                 		delete a row in this table."
			::= { qtechMplsOamIgrEntry 12 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3
		qtechMplsOamEgrTable OBJECT-TYPE
			SYNTAX SEQUENCE OF QtechMplsOamEgrEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"This table specifies information for configuring
                and monitoring LSP(or te tunnel)."
			::= { qtechMplsOamObjects 3 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1
		qtechMplsOamEgrEntry OBJECT-TYPE
			SYNTAX QtechMplsOamEgrEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"A row in this table represents information for configuring
				and monitoring LSP(or te tunnel). It is indexed by
            	qtechMplsOamEgrIndex, which uniquely identifies a single LSP(or te tunnel)."
			INDEX { qtechMplsOamEgrIndex }
			::= { qtechMplsOamEgrTable 1 }

		
		QtechMplsOamEgrEntry ::=
			SEQUENCE {
				qtechMplsOamEgrIndex
					Unsigned32,
				qtechMplsOamEgrLspName
					OCTET STRING,
				qtechMplsOamEgrLsrId
					IpAddress,
				qtechMplsOamEgrLspId
			 		Integer32,
				qtechMplsOamEgrDetType
					INTEGER,
				qtechMplsOamEgrDetFreq
					INTEGER,
				qtechMplsOamEgrRevType
					INTEGER,
			 	qtechMplsOamEgrRevLspName
			 		OCTET STRING,
				qtechMplsOamEgrAutoEn
					INTEGER,
				qtechMplsOamEgrAutoOvertime
					Integer32,
				qtechMplsOamEgrBDIFreq
					INTEGER,
				qtechMplsOamEgrEnable
					INTEGER,
				qtechMplsOamEgrValid
					INTEGER,
				qtechMplsOamEgrAvaState
					Integer32,
				qtechMplsOamEgrDefectType
					Integer32,
				qtechMplsOamEgrRowStatus
					RowStatus
			 }

		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.1
		qtechMplsOamEgrIndex OBJECT-TYPE
			SYNTAX Unsigned32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This is a unique index in the egress table."
			::= { qtechMplsOamEgrEntry 1 }
			
			
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.2
		qtechMplsOamEgrLspName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The name of static LSP at egress."
			::= { qtechMplsOamEgrEntry 2 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.3
		qtechMplsOamEgrLsrId OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The Ingress LSR ID of an LSP."
			::= { qtechMplsOamEgrEntry 3 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.4
		   qtechMplsOamEgrLspId OBJECT-TYPE
			SYNTAX Integer32 (1..65535)
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
			 	"The ID of an LSP."
			::= { qtechMplsOamEgrEntry 4 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.5
		qtechMplsOamEgrDetType OBJECT-TYPE
			SYNTAX INTEGER {
			       adaptability(0),
			       cv(1),
			       ffd(2)
	     	}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"0: adaptability;
				 1: CV;
				 2: FFD."
			::= { qtechMplsOamEgrEntry 5 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.6
		qtechMplsOamEgrDetFreq OBJECT-TYPE
			SYNTAX INTEGER{ 
			    cv1000ms(0),                     
				ffd50ms2(1),
				ffd100ms3(2),
				ffd200ms4(3),
				ffd500ms5(4),
			 	invalid6(5)      
			}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"0: 1000ms(only for cv);
			 	 1: 50ms;
				 2: 100ms;
				 3: 200ms;
				 4: 500ms;
				 5: invalid."
			::= { qtechMplsOamEgrEntry 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.7
		qtechMplsOamEgrRevType OBJECT-TYPE
			SYNTAX INTEGER {
			     private(0),
			     share(1) 
		    }
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The BDI flow is injected on a return path (such as a return LSP) to inform the upstream LSR
				(which is the source of the forward LSP) that there is a defect at the downstream LSP's LSR sink
				point.BDI and loopback transactions use a return path. A return path could be:
				1: A dedicated return LSP;
				2: A shared return LSP, which is shared between many forward LSPs."
			::= { qtechMplsOamEgrEntry 7 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.8
	 --	qtechMplsOamEgrRevTunnName OBJECT-TYPE
		qtechMplsOamEgrRevLspName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The name of a return LSP."
			::= { qtechMplsOamEgrEntry 8 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.9
		qtechMplsOamEgrAutoEn OBJECT-TYPE
			SYNTAX INTEGER { 
			       disable(0),
				   enable(1)
            }
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The adaptability is enabled/disabled.
				0: disable;
				1: enable."
			::= { qtechMplsOamEgrEntry 9 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.10
		qtechMplsOamEgrAutoOvertime OBJECT-TYPE
			SYNTAX Integer32 (0..255)
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The wait-time of adaptability."
			::= { qtechMplsOamEgrEntry 10 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.11
		qtechMplsOamEgrBDIFreq OBJECT-TYPE
			SYNTAX INTEGER { 
			    cv1000ms(0),
				ffd50ms2(1),
				ffd100ms3(2),
				ffd200ms4(3),
				ffd500ms5(4)         
            }
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"For CV: the frequency is 1s.
				For FFD: the frequency is one of 
				50ms,100ms,200ms,500ms.
				0: 1000ms(only for cv);
				1: 50ms;
				2: 100ms;
				3: 200ms;
				4: 500ms."
			::= { qtechMplsOamEgrEntry 11 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.12
		qtechMplsOamEgrEnable OBJECT-TYPE
			SYNTAX INTEGER {
			    disable(0),
			    enable(1)		
			}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The detection of OAM is enabled/disabled on the egress of an LSP.
				0: The OAM detection is disabled on the egress;
				1: The OAM detection is enabled on the egress."
			::= { qtechMplsOamEgrEntry 12 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.13
		qtechMplsOamEgrValid OBJECT-TYPE
			SYNTAX INTEGER { 
				stop(1),
			    start(2)
			}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"1: stop detection of OAM;
				 2: start detection of OAM."
			::= { qtechMplsOamEgrEntry 13 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.14
		qtechMplsOamEgrAvaState OBJECT-TYPE
			SYNTAX Integer32 (0..1)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"If the LSP Timer (T1) expires, then the LSP enters the 
				Unavailable state. The start point of the Unavailable state 
				is deemed to be at the entry into the LSP defect state.
				An LSP re-enters the Available state after the LSP Defect State.
				first exists.
				T1 defines the length of time the LSP is in the Defect state 
				before declaring an LSP Unavailable or returning to defect 
				free state
				0: available state;
				1: unavailable state."
			::= { qtechMplsOamEgrEntry 14 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.15
		qtechMplsOamEgrDefectType OBJECT-TYPE
			SYNTAX Integer32 (0..7)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"There are 6 types of defect in total, among which there are 4 MPLS layer user-plane
				defects(i.e., dLOCV, dTTSI_Mismatch, dTTSI_Mismerge and dExcess), 1 Server layer defect,
				1 peer maintenance entity defect:
				0: no defect;
				1: dServer, Any server layer defect arising below the MPLS layer network;
				2: dPeerMe, Any peer maintenance entity defect arising outside the MPLS subnetwork;
				3: dLOCV, Loss of Connectivity Verification defect;
				4: dTTSI-Mismatch, Trail Termination Source Identifier Mismatch defect;
				5: dTTSI-Mismerge, Trail Termination Source Identifier Mismerge defect;
				6: dExcess, Excess rate of CV/FFD defect;
				7: dUnknown, Unknown defect in the MPLS network."
			::= { qtechMplsOamEgrEntry 15 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.16
		qtechMplsOamEgrRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"It is used to create and
                 delete a row in this table."
			::= { qtechMplsOamEgrEntry 16 }

				
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.5
		qtechMplsOamTrapOpen OBJECT-TYPE
			SYNTAX Unsigned32 (0..1)
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"0: disable                 
				 1: enable"                
			::= { qtechMplsOamObjects 4 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.3
		-- 1.3.6.1.4.1.2011.5.12.7.1.2
		qtechMplsOamNotifications OBJECT IDENTIFIER ::= { qtechMplsOamPs 2 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.3.1
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.1
		qtechMplsOamIgrLSPOutDefect NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamIgrIndex, qtechMplsOamIgrLspName, qtechMplsOamIgrAvaState, qtechMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP exits 
				defect state at the LSP ingress."
			::= { qtechMplsOamNotifications 1 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.3.2
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.2
		qtechMplsOamIgrLSPInDefect NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamIgrIndex, qtechMplsOamIgrLspName, qtechMplsOamIgrAvaState, qtechMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				defect state at the LSP ingress."
			::= { qtechMplsOamNotifications 2 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.3.3
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.3
		qtechMplsOamIgrLSPAva NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamIgrIndex, qtechMplsOamIgrLspName, qtechMplsOamIgrAvaState, qtechMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				available state at the LSP ingress."
			::= { qtechMplsOamNotifications 3 }

		
--  1.3.6.1.4.1.2011.5.12.7.1.3.4
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.4
		qtechMplsOamIgrLSPUnAva NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamIgrIndex, qtechMplsOamIgrLspName, qtechMplsOamIgrAvaState, qtechMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				unavailable state at the LSP ingress."
			::= { qtechMplsOamNotifications 4 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.5
		qtechMplsOamEgrLSPOutDefect NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrAvaState, qtechMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP exits
				defect state at the LSP egress."
			::= { qtechMplsOamNotifications 5 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.6
		qtechMplsOamEgrLSPInDefect NOTIFICATION-TYPE
		 	OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrAvaState, qtechMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				defect state at the LSP egress."
			::= { qtechMplsOamNotifications 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.7
		qtechMplsOamEgrLSPAva NOTIFICATION-TYPE
		 	OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrAvaState, qtechMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				available state at the LSP egress."
			::= { qtechMplsOamNotifications 7 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.8
		qtechMplsOamEgrLSPUnAva NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrAvaState, qtechMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				unavailable state at the LSP egress."
			::= { qtechMplsOamNotifications 8 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.9
		qtechMplsOamEgrFirstPkt NOTIFICATION-TYPE
			OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrDetType, qtechMplsOamEgrDetFreq
				 }
			STATUS current
			DESCRIPTION 
				"If adaptability is enabled, this notification is generated when 
				the LSP egress receives the first CV/FFD packet."
			::= { qtechMplsOamNotifications 9 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.10
		qtechMplsOamEgrAutoProFDI NOTIFICATION-TYPE
		 	OBJECTS { qtechMplsOamEgrIndex, qtechMplsOamEgrLspName, qtechMplsOamEgrLsrId, qtechMplsOamEgrLspId, qtechMplsOamEgrEnable 
		         }
			STATUS current
			DESCRIPTION 
				"The FDI is sent downstream from the upstream node in an LSP 
				to inform the downstream end of an LSP of a upstream defect.
				It is also generated when the adaptability is enabled."
			::= { qtechMplsOamNotifications 10 }
			
			
		qtechMplsPsObjects OBJECT IDENTIFIER ::= { qtechMplsOamPs 3 }

        
        qtechMplsPsTable OBJECT-TYPE
            SYNTAX SEQUENCE OF QtechMplsPsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This table specifies information for configuring
                and monitoring LSP protection group(or te tunnel protection group)."
            ::= { qtechMplsPsObjects 1 }

        
        qtechMplsPsEntry OBJECT-TYPE
            SYNTAX QtechMplsPsEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A row in this table represents information for configuring
				and monitoring LSP protection group(or te tunnel protection group). It is indexed by
            	qtechMplsPsIndex, which uniquely identifies a single LSP protection group(or te tunnel protection group)."
            INDEX { qtechMplsPsIndex }
            ::= { qtechMplsPsTable 1 }

        
        QtechMplsPsEntry ::=
            SEQUENCE { 
                qtechMplsPsIndex
                    Unsigned32,
                qtechMplsPsGroupName
                	OCTET STRING,
                qtechMplsPsType
                    Integer32,
                qtechMplsPsWorkLspName
                    OCTET STRING,
                qtechMplsPsWorkLspId
                    Integer32,
                qtechMplsPsProtectLspName
                    OCTET STRING,
                qtechMplsPsProtectLspId
                    Integer32,
                qtechMplsPsRevertiveMode
                    Integer32,
                qtechMplsPsWTR
                    Integer32,
                qtechMplsPsHoldOff
                    Integer32,
                qtechMplsPsSwitchCondition
                    Integer32,
                qtechMplsPsWorkLspState
                    Integer32,
                qtechMplsPsProtLspState
                    Integer32,
                qtechMplsPsSwitchResult
                    Integer32,
                qtechMplsPsRowStatus
                    RowStatus
             }


        qtechMplsPsIndex OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This is a unique index in the protection group table."
            ::= { qtechMplsPsEntry 1 }


        qtechMplsPsGroupName OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The protection group name."
            ::= { qtechMplsPsEntry 2 }
            
        
        qtechMplsPsType OBJECT-TYPE
            SYNTAX Integer32 (1..4)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The MPLS PS architecture can be a 1+1 type, a 1:1 type, a shared mesh type,
				or a packet 1+1 type.
				1. In the 1+1 architecture type, a protection LSP is dedicated to each working
				   LSP with the working LSP bridged onto the protection LSP at the source of
				   the protection domain.
				2. In the 1:1 architecture type, a protection LSP is dedicated to each working LSP.
				3. In the shared mesh architecture type, possible sharing of protection capacity
				   between disjoint link, node, or SRG failures in the network is achieved while
				   guaranteeing recovery from a single failure. For each link in the network, it
				   keeps track of all the working paths whose traffic will be switched onto it
				   after a given failure. By keeping track of this, it only needs to reserve the
				   maximum of the protection capacity required to protect a single failure in the
				   network.
				4. In the packet 1+1 architecture type, the traffic is transmitted simultaneously
				   onto two possibly disjoint routed LSPs to the sink of the protection domain. 
				   Each pair of duplicate transmitted packets is assigned the same identifier(sequence number)
				   but distinct from the other pairs of duplicate packets. At the sink of the 
				   protection domain, packet level selection mechanism is employed to select one
				   of the two possibly received copies of each packet. The following list provides
				   principles for MPLS protection architectures and mechanisms development.
				1: 1:1 protection switching;
				2: 1+1 protection switching;
				3: shared mesh protection swiching;
				4: packet 1+1 protection switching."
            ::= { qtechMplsPsEntry 3 }

        
        qtechMplsPsWorkLspName OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The name of work-lsp(or work-tunnel)."
            ::= { qtechMplsPsEntry 4 }

        
        qtechMplsPsWorkLspId OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The ID of work-lsp(or work-tunnel)."
            ::= { qtechMplsPsEntry 5 }

        
        qtechMplsPsProtectLspName OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The name of protect-lsp."
            ::= { qtechMplsPsEntry 6 }

        
        qtechMplsPsProtectLspId OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The ID of protect-lsp(or protect-tunnel)."
            ::= { qtechMplsPsEntry 7 }

        
        qtechMplsPsRevertiveMode OBJECT-TYPE
            SYNTAX Integer32 (1..2)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The protection group revertive mode can be non-revertive and revertive
				protection switching.
				1. In revertive mode of operation, under conditions where working traffic
				   is being transmitted via the protection LSP and when the working LSP
				   is restored, if local protection switching requests have been previously
				   active and now become inactive, a local wait to restore state is entered.
				2. When the failed LSP is no longer in an SF condition, and no other
				   externally initiated commands are present, a no request state is entered.
				   During this state, switching does not occur.
				1: revertive;
				2: non-revertive."
            ::= { qtechMplsPsEntry 8 }

        
        qtechMplsPsWTR OBJECT-TYPE
            SYNTAX Integer32 (0..60)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Wait to restore is only applicable for the revertive mode and
				applies to a working LSP. It prevents reversion back to select
				the working LSP until the wait to restore timer has expired.
				The wait to restore time may be configured by the operator
				in 1 minute steps between 1 and 30 minutes; the default value is
				12 minutes."
            ::= { qtechMplsPsEntry 9 }

        
        qtechMplsPsHoldOff OBJECT-TYPE
            SYNTAX Integer32 (0..100)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "In general, if lower layer(e.g., SDH or optical) protection
				mechanisms are being utilized in conjunction with MPLS layer
				protection mechanisms, then the lower layers should have a
				chance to restore working traffic before the MPLS layer initiates
				protection actions(e.g., using a hold-off timer). The objective
				here is to avoid duplicated protection switching in different
				layer networks. The default value is 0ms; the maximum value is 10s."
            ::= { qtechMplsPsEntry 10 }

        
        qtechMplsPsSwitchCondition OBJECT-TYPE
            SYNTAX Integer32 (1..9)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The following switch initiation criteria exist:
				1. an externally initiated command(clear, lockout of protection, 
				   forced switch, manual switch);
				2. an automatically initiated command(signal fail) associated with
				   a protection domain; or
				3. a state (wait to restore, no request) of the protection switching
				   function.
				The followings are switch request priority:
				1. clear: This command clears all of the externally initiated switch commands
				   listed below.
				2. lockout of protection(LoP): Fix the selector position on the working LSP.
				   Prevents the selector from switching to the protection LSP when it is
				   selecting the working LSP. Switches the selector from the protection to
				   the working LSP when it is selecting the protection LSP.
				3. forced switch(FS) for working LSP: Switches the selector from the working
				   LSP to the protection LSP (unless a higher priority switch request(i.e., LoP)
				   is in effect).
				4. signal fail: Signal fail(SF) is declared when the source of the protection
				   domain enters the LSP defect state by receiving a BDI packet from the return
				   LSP or out of band.
				5. manual switch(MS): Switches the selector from the working LSP to the
				   protection LSP (unless an equal or higher priority switch request
				   (i.e., LoP, FS, SF or MS) is in effect). Switches the selector from
				   the protection LSP to the working LSP (unless an equal or higher
				   priority switch request(i.e., LoP, FS, SF or MS) is in effect).
				6. WTR: Wait to restore is only applicable for the revertive mode and applies
				   to a working LSP.
				7. no request."
            ::= { qtechMplsPsEntry 11 }

        
        qtechMplsPsWorkLspState OBJECT-TYPE
            SYNTAX Integer32 (1..2)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The state of working lsp state lists below:
                1: defect state;
                2: non-defect state."
            ::= { qtechMplsPsEntry 12 }

        
        qtechMplsPsProtLspState OBJECT-TYPE
            SYNTAX Integer32 (1..2)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The state of protection lsp state lists below:
                1: defect state;
                2: non-defect state."
            ::= { qtechMplsPsEntry 13 }

        
        qtechMplsPsSwitchResult OBJECT-TYPE
            SYNTAX Integer32 (1..2)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Which lsp is user traffic being transmitted:
                1: working-lsp;
                2: protection-lsp."
            ::= { qtechMplsPsEntry 14 }

                
        qtechMplsPsRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "It is used to create and
                delete a row in this table.
                1: active;
                2: notInService;
                3: notReady;
                4: createAndGo;
                5: createAndWait;
                6: destroy."
            ::= { qtechMplsPsEntry 15 }

        
        qtechMplsPsTrapOpen OBJECT-TYPE
            SYNTAX Unsigned32 (1..2)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "1:enable;
                2:disable."
            ::= { qtechMplsPsObjects 2 }

        
        qtechMplsPsNotifications OBJECT IDENTIFIER ::= { qtechMplsOamPs 4 }

        
        qtechMplsPsSwitchPtoW NOTIFICATION-TYPE
            OBJECTS { qtechMplsPsWorkLspName, qtechMplsPsWorkLspId, qtechMplsPsProtectLspName, qtechMplsPsProtectLspId, qtechMplsPsSwitchResult
                 }
            STATUS current
            DESCRIPTION 
                "This notification is generated when switching traffic from
                protection-lsp to working-lsp."
            ::= { qtechMplsPsNotifications 1 }

        
        qtechMplsPsSwitchWtoP NOTIFICATION-TYPE
            OBJECTS { qtechMplsPsWorkLspName, qtechMplsPsWorkLspId, qtechMplsPsProtectLspName, qtechMplsPsProtectLspId, qtechMplsPsSwitchResult
                 }
            STATUS current
            DESCRIPTION 
                "This notification is generated when switching traffic from woking-lsp
                to protection-lsp."
            ::= { qtechMplsPsNotifications 2 }

        
        qtechMplsOamPsConformance OBJECT IDENTIFIER ::= { qtechMplsOamPs 5 }

        
        qtechMplsOamPsCompliances OBJECT IDENTIFIER ::= { qtechMplsOamPsConformance 1 }

        
        qtechMplsOamPsGroupCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION 
                "The compliance statement for mpls oam protection group."
            MODULE -- this module
             	MANDATORY-GROUPS { qtechMplsPsGroup }
            ::= { qtechMplsOamPsCompliances 1 }

        
        qtechMplsOamPsGroups OBJECT IDENTIFIER ::= { qtechMplsOamPsConformance 2 }  				
        
        qtechMplsPsGroup OBJECT-GROUP
            OBJECTS {
            	qtechMplsPsGroupName,
                qtechMplsPsType,
                qtechMplsPsWorkLspName,
                qtechMplsPsWorkLspId,
                qtechMplsPsProtectLspName,
                qtechMplsPsProtectLspId,
                qtechMplsPsRevertiveMode,
                qtechMplsPsWTR,
                qtechMplsPsHoldOff,
                qtechMplsPsSwitchCondition,
                qtechMplsPsWorkLspState, 
                qtechMplsPsProtLspState,
                qtechMplsPsSwitchResult,
                qtechMplsPsRowStatus,
                qtechMplsPsIndex
                }
            STATUS current
            DESCRIPTION 
                "The compliance statement for mpls oam protection group management."
            ::= { qtechMplsOamPsGroups 1 }

        
        qtechMplsPsNotificationGroup NOTIFICATION-GROUP
            NOTIFICATIONS { qtechMplsPsSwitchPtoW, qtechMplsPsSwitchWtoP }
            STATUS current
            DESCRIPTION 
                "Description."
			::= { qtechMplsOamPsGroups 2 }
		
	
	END

--
-- QTECH-MPLSOAM-MIB.mib
--
