-- =================================================================
-- Copyright (C) 2017 by HUAWEI TECHNOLOGIES. All rights reserved
-- 
-- Description: HUAWEI Private Interface MIB
-- Reference:
-- Version: V2.01
-- History:
--	
-- =================================================================

-- ==================================================================
-- 
-- Variables and types be imported
--
-- ==================================================================
HUAWEI-LINKDETECT-MIB DEFINITIONS ::= BEGIN
  IMPORTS
     TruthValue
        FROM SNMPv2-TC

    MODULE-IDENTITY, OBJECT-TYPE, Integer32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
        
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP            
	FROM SNMPv2-CONF  
	
    ifName, ifIndex                 
        FROM IF-MIB

    hwDatacomm
        FROM HUAWEI-MIB;
 
    hwLinkDetectMIB MODULE-IDENTITY
        LAST-UPDATED "201711132009Z"          -- June 24, 2011 at 00:00 GMT

        ORGANIZATION 
            "Huawei Technologies Co.,Ltd."
        CONTACT-INFO 
"Huawei Industrial Base  Bantian, Longgang   Shenzhen 518129   People's Republic of China   Website: http://www.huawei.com   Email: support@huawei.com "
        DESCRIPTION
            "Management Information Base module for Link Detect,
	    local system data and remote systems data components."

            REVISION "201711132009Z" 
            DESCRIPTION 
                "Modify consistent for this mib."
 ::= { hwDatacomm 135 }  
         
    -- ============================================================================
    -- Node definitions
    -- ============================================================================ 

    -- 1.3.6.1.4.1.2011.5.25.135
 
    hwLinkDetectObjects  OBJECT IDENTIFIER ::= { hwLinkDetectMIB 1} 

    hwLinkDetectTraps OBJECT IDENTIFIER ::= { hwLinkDetectMIB 2 }  
    
    hwLinkDetectConformance  OBJECT IDENTIFIER ::= { hwLinkDetectMIB 3 }
    
  -- ============================================================================
  --
  -- ======================= Objects definitions=================================
  --
  -- ============================================================================  

  hwLinkConfiguration  OBJECT IDENTIFIER ::= { hwLinkDetectObjects 1} 

   hwlinkDetectNeId OBJECT-TYPE 
	SYNTAX        Integer32 (1..16777215)
	MAX-ACCESS    read-write
	STATUS        current
	DESCRIPTION
		"Specifies the neid of the local device. The neid is carried 
        in the management address TLV of LinkDetect packet and is used
        to identify NM devices in network management."   
        
	::= { hwLinkConfiguration 1 } 

    --  ============== hwLinkDetectTable  define beginning ==============
 hwLinkDetectTable OBJECT IDENTIFIER ::= { hwLinkConfiguration 2 }  
     				
   hwLinkDetectSlotId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-write
    	STATUS current
   	DESCRIPTION 
   	        "Slot ID."     
   		::= {hwLinkDetectTable 1}
   		
   hwLinkDetectCardId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-write
    	STATUS current
   	DESCRIPTION 
   		"Card ID."     
   		::= {hwLinkDetectTable 2}
   		
   hwLinkDetectPortId  OBJECT-TYPE
        SYNTAX        Integer32 (0..64)
    	MAX-ACCESS    read-write
    	STATUS current
   	DESCRIPTION 
   		"Port ID."     
   		::= {hwLinkDetectTable 3}  		 
 
    --  ============== hwLinkDetectTable  define end ============== 
  	
    --  ============== hwQuerylinkTable  define beginning ==============

   hwQuerylinkTable  OBJECT-TYPE
      SYNTAX SEQUENCE OF HwQuerylinkEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION 
			"Display link neighbors table."
      ::= { hwLinkConfiguration  3 }

   hwQuerylinkEntry OBJECT-TYPE
        SYNTAX      HwQuerylinkEntry
	MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION 
           	"Entries of the link neighbor table."
        INDEX{ 
                  hwQuerylinkIfIndex,
                  hwQuerylinkRxNeId
             }
        ::= { hwQuerylinkTable 1}  
   
   HwQuerylinkEntry ::=
    	SEQUENCE  {    
                hwQuerylinkIfIndex
                        Integer32,                
    	        hwQuerylinkRxNeId
                        Integer32,
                hwQuerylinkTxPortType
                        Integer32,
    	        hwQuerylinkTxSlotId
                        Integer32,
                hwQuerylinkTxCardId
                        Integer32,
                hwQuerylinkTxPortId
                        Integer32,                        
                hwQuerylinkTxVlanOrVc12Id
                        Integer32,
                hwQuerylinkTxVc4Id
                        Integer32,                         
    	        hwQuerylinkTxNeId
                        Integer32,
                hwQuerylinkRxPortType
                        Integer32,
    	        hwQuerylinkRxSlotId
                        Integer32,
                hwQuerylinkRxCardId
                        Integer32,
                hwQuerylinkRxPortId
                        Integer32,                        
                hwQuerylinkRxVlanOrVc12Id
                        Integer32,
                hwQuerylinkRxVc4Id
                        Integer32                                                                            
        	}
    				   				 
   hwQuerylinkIfIndex  OBJECT-TYPE
        SYNTAX        Integer32
    	MAX-ACCESS    not-accessible
    	STATUS current
   	DESCRIPTION 
   		"Main ifIndex or subIfIndex."     
   		::= {hwQuerylinkEntry 1} 
   
   hwQuerylinkRxNeId  OBJECT-TYPE
        SYNTAX        Integer32 (1..16777215)
    	MAX-ACCESS    not-accessible
    	STATUS current
   	DESCRIPTION 
   	        "Local neid."     
   		::= {hwQuerylinkEntry 2}
   		
   hwQuerylinkTxPortType  OBJECT-TYPE
        SYNTAX        Integer32 (1..5)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Local port type."     
   		::= {hwQuerylinkEntry 3}
  
   hwQuerylinkTxSlotId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   	        "Local slot ID."     
   		::= {hwQuerylinkEntry 4}
   		
   hwQuerylinkTxCardId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Local card ID."     
   		::= {hwQuerylinkEntry 5}
   		
   hwQuerylinkTxPortId  OBJECT-TYPE
        SYNTAX        Integer32 (0..64)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Local port ID."     
   		::= {hwQuerylinkEntry 6}  	
   		
   hwQuerylinkTxVlanOrVc12Id  OBJECT-TYPE
        SYNTAX        Integer32 (0..4094)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Local vlanId or vc12Id."     
   		::= {hwQuerylinkEntry 7}  

   hwQuerylinkTxVc4Id  OBJECT-TYPE
        SYNTAX        Integer32 (0..1)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Local vc4Id."     
   		::= {hwQuerylinkEntry 8}  

    hwQuerylinkTxNeId  OBJECT-TYPE
        SYNTAX        Integer32 (1..16777215)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   	        "Remote neid."     
   		::= {hwQuerylinkEntry 9}
   		
   hwQuerylinkRxPortType  OBJECT-TYPE
        SYNTAX        Integer32 (1..5)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Remote port type."     
   		::= {hwQuerylinkEntry 10}
  
   hwQuerylinkRxSlotId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   	        "Remote slot ID."     
   		::= {hwQuerylinkEntry 11}
   		
   hwQuerylinkRxCardId  OBJECT-TYPE
        SYNTAX        Integer32 (0..256)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Remote card ID."     
   		::= {hwQuerylinkEntry 12}
   		
   hwQuerylinkRxPortId  OBJECT-TYPE
        SYNTAX        Integer32 (0..64)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Remote port ID."     
   		::= {hwQuerylinkEntry 13}  	
   		
   hwQuerylinkRxVlanOrVc12Id  OBJECT-TYPE
        SYNTAX        Integer32 (0..4094)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Remote vlanId or vc12Id."     
   		::= {hwQuerylinkEntry 14}   
  
   hwQuerylinkRxVc4Id  OBJECT-TYPE
        SYNTAX        Integer32 (0..1)
    	MAX-ACCESS    read-only
    	STATUS current
   	DESCRIPTION 
   		"Remote vc4Id."     
   		::= {hwQuerylinkEntry 15} 
   		 		 				 
    --  ============== hwQuerylinkTable  define end ============== 
    
    --  ============== hwLinkSetSwitchTable  define beginning ==============  
   hwLinkSetSwitchTable OBJECT IDENTIFIER ::= { hwLinkConfiguration 4 }  
     				
   hwLinkSetSwitchIfIndex  OBJECT-TYPE
        SYNTAX        Integer32
    	MAX-ACCESS    read-write
    	STATUS current
   	DESCRIPTION 
   	        "Main interface index."     
   		::= {hwLinkSetSwitchTable 1}
   		
   hwLinkSetSwitch  OBJECT-TYPE
       SYNTAX        INTEGER {
                                set(1),
                                undo(2)
                                }
       MAX-ACCESS    read-write
       STATUS        current
       DESCRIPTION    
       " 1 : link-detect enable, 2 : undo link-detect enable."
       ::= { hwLinkSetSwitchTable 2 }      

    --  ============== hwLinkSetSwitchTable  define end ==============  
     
   --  ============== hwLinkGetSwitchTable  define beginning ==============  
     hwLinkGetSwitchTable  OBJECT-TYPE
      SYNTAX SEQUENCE OF HwLinkGetSwitchEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION 
			"Display interface link switch table."
      ::= { hwLinkConfiguration  5 }

   hwLinkGetSwitchEntry OBJECT-TYPE
        SYNTAX      HwLinkGetSwitchEntry
	MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION 
           	"Entries of the link switch table."
        INDEX{ 
                  hwLinkGetSwitchIfIndex
             }
        ::= { hwLinkGetSwitchTable 1}  
   
   HwLinkGetSwitchEntry ::=
    	SEQUENCE  {    
                hwLinkGetSwitchIfIndex
                        Integer32,                
    	        hwLinkGetSwitchFlag
                        INTEGER                                                                                       
        	}
    				   				 
   hwLinkGetSwitchIfIndex  OBJECT-TYPE
        SYNTAX        Integer32
    	MAX-ACCESS    not-accessible
    	STATUS current
   	DESCRIPTION 
   		"Main ifIndex."     
   		::= {hwLinkGetSwitchEntry 1} 
   
   hwLinkGetSwitchFlag   OBJECT-TYPE
       SYNTAX        INTEGER {
                               enable(0),
                               disable(1)
                               }
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION    
       " 0 : enable, 1 : disable"
             ::= { hwLinkGetSwitchEntry 2 } 
  
    --  ============== hwLinkGetSwitchTable  define end ==============  
  --  ============== Traps  define beginning ============== 

   hwlinkChgNeighbor  NOTIFICATION-TYPE
	OBJECTS { ifName }
	STATUS current	
	DESCRIPTION 
      	"Notify the NMS that the neighbor of one interface is changed ."
	::= { hwLinkDetectTraps 1}  

   hwlinkNeighborFull NOTIFICATION-TYPE
        OBJECTS { hwLinkDetectSlotId }
        STATUS  current
        DESCRIPTION
        "Notity the NMS that the neighbor number of one slot is full."
        ::= { hwLinkDetectTraps 2}
        
 -- ======================= Traps definitions end=================================


 --  ============== conformance information define beginning ============== 
    
        hwLinkDetectCompliances OBJECT IDENTIFIER ::= { hwLinkDetectConformance 1 }
        hwLinkDetectCompliance MODULE-COMPLIANCE
               STATUS      current
               DESCRIPTION
                   "The compliance statement for systems supporting 
                the this module."

               MODULE      -- this module
               MANDATORY-GROUPS    {hwlinkDetectNeIdGroup, 
                                    hwLinkDetectTableGroup, 
                                    hwQueryLinkTableGroup,
                                    hwLinkChgTrapGroup,
                                    hwLinkSetSwitchTableGroup,
                                    hwLinkGetSwitchTableGroup}  
                                               
              ::= { hwLinkDetectCompliances 1 }
              
    --  ============== groups ==============  
    
        hwLinkDetectObjectGroups OBJECT IDENTIFIER ::= { hwLinkDetectCompliances 2 } 
        
        hwlinkDetectNeIdGroup OBJECT-GROUP
            OBJECTS {
                hwlinkDetectNeId
            }
            STATUS current
            DESCRIPTION 
                "Confige or get the sys-neid."
            ::= { hwLinkDetectObjectGroups 1 }
            
        hwLinkDetectTableGroup OBJECT-GROUP
            OBJECTS {
                hwLinkDetectSlotId,
                hwLinkDetectCardId,
                hwLinkDetectPortId
            }
            STATUS current
            DESCRIPTION 
                "Search link neighbor table."
            ::= { hwLinkDetectObjectGroups 2 } 
              
        hwQueryLinkTableGroup OBJECT-GROUP
            OBJECTS {
                      hwQuerylinkTxPortType,
    	              hwQuerylinkTxSlotId,
                      hwQuerylinkTxCardId,
                      hwQuerylinkTxPortId, 
                      hwQuerylinkTxVlanOrVc12Id,
                      hwQuerylinkTxVc4Id,
    	              hwQuerylinkTxNeId,
                      hwQuerylinkRxPortType,
    	              hwQuerylinkRxSlotId,
                      hwQuerylinkRxCardId,
                      hwQuerylinkRxPortId, 
                      hwQuerylinkRxVlanOrVc12Id,
                      hwQuerylinkRxVc4Id
                     }
            STATUS current
            DESCRIPTION 
                "Query link neighbor table."
            ::= { hwLinkDetectObjectGroups 3 }     
   
     	hwLinkChgTrapGroup NOTIFICATION-GROUP
	NOTIFICATIONS {  
	        hwlinkChgNeighbor,
	        hwlinkNeighborFull	
	        }
	STATUS current
	DESCRIPTION
		"Trap when the neighbors of one interface change or the number of the entire neighbor is full."
	::= { hwLinkDetectObjectGroups 4 }   
	
	    hwLinkSetSwitchTableGroup OBJECT-GROUP
            OBJECTS {
                      hwLinkSetSwitchIfIndex,  
                      hwLinkSetSwitch
                      }
            STATUS current
            DESCRIPTION 
                "Query link neighbor table."
            ::= { hwLinkDetectObjectGroups 5 }  
            
        hwLinkGetSwitchTableGroup OBJECT-GROUP
            OBJECTS {
                      hwLinkGetSwitchFlag
                      }
            STATUS current
            DESCRIPTION 
                "Query link neighbor table."
            ::= { hwLinkDetectObjectGroups 6 } 
	             
    --  ============== conformance information define end ============== 

	
END     
    
--
-- HUAWEI-LINKDETECT-MIB.mib
--     
