--
-- *****************************************************************
-- FS-MPLSOAM-MIB.mib:  FS MPLSOAM MIB file
--
-- MAY 2011, HongPeiYang
--
-- Copyright (c) 2011 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--
	FS-MPLSOAM-MIB DEFINITIONS ::= BEGIN
 
		IMPORTS
			fsMgmt			
				FROM FS-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
		fsMplsOam MODULE-IDENTITY 
			LAST-UPDATED "201101041327Z"		-- January 04, 2011 at 13:27 GMT
			ORGANIZATION 
				"FS.COM Inc.."
			CONTACT-INFO
                "
                Tel: 400-865-2852

                E-mail: https://www.fs.com/live_chat_service_mail.html"
			DESCRIPTION 
			    "Copyright (C) FS 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."
			::= { fsMgmt 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
		fsMplsOamPs OBJECT IDENTIFIER ::= { fsMplsOam 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
		fsMplsOamObjects OBJECT IDENTIFIER ::= { fsMplsOamPs 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
		fsMplsOamCapability 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."
			::= { fsMplsOamObjects 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
		fsMplsOamIgrTable OBJECT-TYPE
			SYNTAX SEQUENCE OF FSMplsOamIgrEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"This table specifies information for configuring
                and monitoring LSP(or te tunnel)."
			::= { fsMplsOamObjects 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
		fsMplsOamIgrEntry OBJECT-TYPE
			SYNTAX FSMplsOamIgrEntry
			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
            	fsMplsOamIgrIndex, which uniquely identifies a single LSP(or te tunnel)."
			INDEX { fsMplsOamIgrIndex }
			::= { fsMplsOamIgrTable 1 }

		
		FSMplsOamIgrEntry ::=
			SEQUENCE { 
				fsMplsOamIgrIndex
					Unsigned32,
				fsMplsOamIgrLspName
			    	OCTET STRING,
			    fsMplsOamIgrLspId
			 		Integer32,
				fsMplsOamIgrDetType
					INTEGER,
				fsMplsOamIgrDetFreq
					INTEGER,
				fsMplsOamIgrRevType
					INTEGER,
				fsMplsOamIgrRevLspName
					OCTET STRING,
				fsMplsOamIgrEnable
					INTEGER,
			    fsMplsOamIgrValid
			    	Integer32,
				fsMplsOamIgrAvaState
					Integer32,
				fsMplsOamIgrDefectType
					Integer32,
				fsMplsOamIgrRowStatus
					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
		fsMplsOamIgrIndex OBJECT-TYPE
			SYNTAX Unsigned32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"This is a unique index in the ingress table."
			::= { fsMplsOamIgrEntry 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
	    fsMplsOamIgrLspName  OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
		 		"The name of an LSP(or te tunnel)."
			::= { fsMplsOamIgrEntry 2 }


		fsMplsOamIgrLspId OBJECT-TYPE
			SYNTAX Integer32 (1..65535)
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
			 	"The ID of an LSP."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrDetType 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."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrDetFreq 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."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrRevType 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."
			::= { fsMplsOamIgrEntry 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.6
		fsMplsOamIgrRevLspName OBJECT-TYPE
			SYNTAX OCTET STRING
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"The name of a return LSP."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrEnable 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."
			::= { fsMplsOamIgrEntry 8 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.3.1.10
		fsMplsOamIgrValid OBJECT-TYPE
			SYNTAX Integer32 (0..1)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"0: stop detection of OAM;
				 1: start detection of OAM."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrAvaState 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."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrDefectType 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."
			::= { fsMplsOamIgrEntry 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
		fsMplsOamIgrRowStatus OBJECT-TYPE
			SYNTAX RowStatus
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"It is used to create and
                 		delete a row in this table."
			::= { fsMplsOamIgrEntry 12 }

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

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1
		fsMplsOamEgrEntry OBJECT-TYPE
			SYNTAX FSMplsOamEgrEntry
			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
            	fsMplsOamEgrIndex, which uniquely identifies a single LSP(or te tunnel)."
			INDEX { fsMplsOamEgrIndex }
			::= { fsMplsOamEgrTable 1 }

		
		FSMplsOamEgrEntry ::=
			SEQUENCE {
				fsMplsOamEgrIndex
					Unsigned32,
				fsMplsOamEgrLspName
					OCTET STRING,
				fsMplsOamEgrLsrId
					IpAddress,
				fsMplsOamEgrLspId
			 		Integer32,
				fsMplsOamEgrDetType
					INTEGER,
				fsMplsOamEgrDetFreq
					INTEGER,
				fsMplsOamEgrRevType
					INTEGER,
			 	fsMplsOamEgrRevLspName
			 		OCTET STRING,
				fsMplsOamEgrAutoEn
					INTEGER,
				fsMplsOamEgrAutoOvertime
					Integer32,
				fsMplsOamEgrBDIFreq
					INTEGER,
				fsMplsOamEgrEnable
					INTEGER,
				fsMplsOamEgrValid
					INTEGER,
				fsMplsOamEgrAvaState
					Integer32,
				fsMplsOamEgrDefectType
					Integer32,
				fsMplsOamEgrRowStatus
					RowStatus
			 }

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

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

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

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

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.6
		fsMplsOamEgrDetFreq 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."
			::= { fsMplsOamEgrEntry 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.7
		fsMplsOamEgrRevType 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."
			::= { fsMplsOamEgrEntry 7 }

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

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

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

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.11
		fsMplsOamEgrBDIFreq 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."
			::= { fsMplsOamEgrEntry 11 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.12
		fsMplsOamEgrEnable 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."
			::= { fsMplsOamEgrEntry 12 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.13
		fsMplsOamEgrValid 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."
			::= { fsMplsOamEgrEntry 13 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.14
		fsMplsOamEgrAvaState 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."
			::= { fsMplsOamEgrEntry 14 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.4.1.15
		fsMplsOamEgrDefectType 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."
			::= { fsMplsOamEgrEntry 15 }

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

				
		-- 1.3.6.1.4.1.2011.5.12.7.1.1.5
		fsMplsOamTrapOpen OBJECT-TYPE
			SYNTAX Unsigned32 (0..1)
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"0: disable                 
				 1: enable"                
			::= { fsMplsOamObjects 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
		fsMplsOamNotifications OBJECT IDENTIFIER ::= { fsMplsOamPs 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
		fsMplsOamIgrLSPOutDefect NOTIFICATION-TYPE
			OBJECTS { fsMplsOamIgrIndex, fsMplsOamIgrLspName, fsMplsOamIgrAvaState, fsMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP exits 
				defect state at the LSP ingress."
			::= { fsMplsOamNotifications 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
		fsMplsOamIgrLSPInDefect NOTIFICATION-TYPE
			OBJECTS { fsMplsOamIgrIndex, fsMplsOamIgrLspName, fsMplsOamIgrAvaState, fsMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				defect state at the LSP ingress."
			::= { fsMplsOamNotifications 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
		fsMplsOamIgrLSPAva NOTIFICATION-TYPE
			OBJECTS { fsMplsOamIgrIndex, fsMplsOamIgrLspName, fsMplsOamIgrAvaState, fsMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				available state at the LSP ingress."
			::= { fsMplsOamNotifications 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
		fsMplsOamIgrLSPUnAva NOTIFICATION-TYPE
			OBJECTS { fsMplsOamIgrIndex, fsMplsOamIgrLspName, fsMplsOamIgrAvaState, fsMplsOamIgrDefectType }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				unavailable state at the LSP ingress."
			::= { fsMplsOamNotifications 4 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.5
		fsMplsOamEgrLSPOutDefect NOTIFICATION-TYPE
			OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrAvaState, fsMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP exits
				defect state at the LSP egress."
			::= { fsMplsOamNotifications 5 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.6
		fsMplsOamEgrLSPInDefect NOTIFICATION-TYPE
		 	OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrAvaState, fsMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				defect state at the LSP egress."
			::= { fsMplsOamNotifications 6 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.7
		fsMplsOamEgrLSPAva NOTIFICATION-TYPE
		 	OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrAvaState, fsMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				available state at the LSP egress."
			::= { fsMplsOamNotifications 7 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.8
		fsMplsOamEgrLSPUnAva NOTIFICATION-TYPE
			OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrAvaState, fsMplsOamEgrDefectType
				 }
			STATUS current
			DESCRIPTION 
				"This notification is generated when the LSP enters
				unavailable state at the LSP egress."
			::= { fsMplsOamNotifications 8 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.9
		fsMplsOamEgrFirstPkt NOTIFICATION-TYPE
			OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrDetType, fsMplsOamEgrDetFreq
				 }
			STATUS current
			DESCRIPTION 
				"If adaptability is enabled, this notification is generated when 
				the LSP egress receives the first CV/FFD packet."
			::= { fsMplsOamNotifications 9 }

		
		-- 1.3.6.1.4.1.2011.5.12.7.1.2.10
		fsMplsOamEgrAutoProFDI NOTIFICATION-TYPE
		 	OBJECTS { fsMplsOamEgrIndex, fsMplsOamEgrLspName, fsMplsOamEgrLsrId, fsMplsOamEgrLspId, fsMplsOamEgrEnable 
		         }
			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."
			::= { fsMplsOamNotifications 10 }
			
			
		fsMplsPsObjects OBJECT IDENTIFIER ::= { fsMplsOamPs 3 }

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

        
        fsMplsPsEntry OBJECT-TYPE
            SYNTAX FSMplsPsEntry
            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
            	fsMplsPsIndex, which uniquely identifies a single LSP protection group(or te tunnel protection group)."
            INDEX { fsMplsPsIndex }
            ::= { fsMplsPsTable 1 }

        
        FSMplsPsEntry ::=
            SEQUENCE { 
                fsMplsPsIndex
                    Unsigned32,
                fsMplsPsGroupName
                	OCTET STRING,
                fsMplsPsType
                    Integer32,
                fsMplsPsWorkLspName
                    OCTET STRING,
                fsMplsPsWorkLspId
                    Integer32,
                fsMplsPsProtectLspName
                    OCTET STRING,
                fsMplsPsProtectLspId
                    Integer32,
                fsMplsPsRevertiveMode
                    Integer32,
                fsMplsPsWTR
                    Integer32,
                fsMplsPsHoldOff
                    Integer32,
                fsMplsPsSwitchCondition
                    Integer32,
                fsMplsPsWorkLspState
                    Integer32,
                fsMplsPsProtLspState
                    Integer32,
                fsMplsPsSwitchResult
                    Integer32,
                fsMplsPsRowStatus
                    RowStatus
             }


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


        fsMplsPsGroupName OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The protection group name."
            ::= { fsMplsPsEntry 2 }
            
        
        fsMplsPsType 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."
            ::= { fsMplsPsEntry 3 }

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

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

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

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

        
        fsMplsPsRevertiveMode 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."
            ::= { fsMplsPsEntry 8 }

        
        fsMplsPsWTR 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."
            ::= { fsMplsPsEntry 9 }

        
        fsMplsPsHoldOff 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."
            ::= { fsMplsPsEntry 10 }

        
        fsMplsPsSwitchCondition 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."
            ::= { fsMplsPsEntry 11 }

        
        fsMplsPsWorkLspState 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."
            ::= { fsMplsPsEntry 12 }

        
        fsMplsPsProtLspState 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."
            ::= { fsMplsPsEntry 13 }

        
        fsMplsPsSwitchResult 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."
            ::= { fsMplsPsEntry 14 }

                
        fsMplsPsRowStatus 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."
            ::= { fsMplsPsEntry 15 }

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

        
        fsMplsPsNotifications OBJECT IDENTIFIER ::= { fsMplsOamPs 4 }

        
        fsMplsPsSwitchPtoW NOTIFICATION-TYPE
            OBJECTS { fsMplsPsWorkLspName, fsMplsPsWorkLspId, fsMplsPsProtectLspName, fsMplsPsProtectLspId, fsMplsPsSwitchResult
                 }
            STATUS current
            DESCRIPTION 
                "This notification is generated when switching traffic from
                protection-lsp to working-lsp."
            ::= { fsMplsPsNotifications 1 }

        
        fsMplsPsSwitchWtoP NOTIFICATION-TYPE
            OBJECTS { fsMplsPsWorkLspName, fsMplsPsWorkLspId, fsMplsPsProtectLspName, fsMplsPsProtectLspId, fsMplsPsSwitchResult
                 }
            STATUS current
            DESCRIPTION 
                "This notification is generated when switching traffic from woking-lsp
                to protection-lsp."
            ::= { fsMplsPsNotifications 2 }

        
        fsMplsOamPsConformance OBJECT IDENTIFIER ::= { fsMplsOamPs 5 }

        
        fsMplsOamPsCompliances OBJECT IDENTIFIER ::= { fsMplsOamPsConformance 1 }

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

        
        fsMplsOamPsGroups OBJECT IDENTIFIER ::= { fsMplsOamPsConformance 2 }  				
        
        fsMplsPsGroup OBJECT-GROUP
            OBJECTS {
            	fsMplsPsGroupName,
                fsMplsPsType,
                fsMplsPsWorkLspName,
                fsMplsPsWorkLspId,
                fsMplsPsProtectLspName,
                fsMplsPsProtectLspId,
                fsMplsPsRevertiveMode,
                fsMplsPsWTR,
                fsMplsPsHoldOff,
                fsMplsPsSwitchCondition,
                fsMplsPsWorkLspState, 
                fsMplsPsProtLspState,
                fsMplsPsSwitchResult,
                fsMplsPsRowStatus,
                fsMplsPsIndex
                }
            STATUS current
            DESCRIPTION 
                "The compliance statement for mpls oam protection group management."
            ::= { fsMplsOamPsGroups 1 }

        
        fsMplsPsNotificationGroup NOTIFICATION-GROUP
            NOTIFICATIONS { fsMplsPsSwitchPtoW, fsMplsPsSwitchWtoP }
            STATUS current
            DESCRIPTION 
                "Description."
			::= { fsMplsOamPsGroups 2 }
		
	
	END

--
-- FS-MPLSOAM-MIB.mib
--
