-- =============================================================================================================
-- Copyright (C) 2014 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- Description: This MIB file defines the MIB objects of the neighbor automatic communication (NAC) protocol.
--              This MIB file contains two tables and three trap nodes. 
--              The NAC module uses the proprietary protocol that is based on the Ethernet slow protocol.   
--              The NAC module achieves automatic discovery and automatic configuration of new devices, 
--              that is, free-of-onsite software commissioning.
-- Reference:      
-- Version: V1.09
-- ==============================================================================================================
    HUAWEI-NAC-MIB DEFINITIONS ::= BEGIN
 
        IMPORTS          
            huaweiMgmt            
                FROM HUAWEI-MIB
            ifIndex
                FROM IF-MIB 
            IpAddress, Integer32, OBJECT-TYPE, 
           MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE
                FROM SNMPv2-SMI            
            MacAddress, RowStatus        
                FROM SNMPv2-TC
            OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP        
                FROM SNMPv2-CONF  
            hwFrameIndex, hwSlotIndex, hwPortIndex
                FROM HUAWEI-DEVICE-MIB ;            
            
        hwNacExt MODULE-IDENTITY
            LAST-UPDATED "201411180000Z"           
            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 
                "This MIB file defines the MIB objects of the neighbor automatic communication (NAC) protocol.
                 This MIB file contains two tables and three trap nodes. 
                 The NAC module uses the proprietary protocol that is based on the Ethernet slow protocol.   
                 The NAC module achieves automatic discovery and automatic configuration of new devices, 
                 that is, free-of-onsite software commissioning.
                 "
            --  Revision history               
            REVISION     "201411180000Z"
            DESCRIPTION  "V1.09, add hwDslamNacMasterLock."     
                 
            --  Revision history               
            REVISION     "201407300000Z"
            DESCRIPTION  "V1.08, add hwDslamNacSlaveSnmpV3 and hwDslamNacSlaveSnmpProfile."
                             
            --  Revision history               
            REVISION     "201406140000Z"
            DESCRIPTION  "V1.07, modify hwDslamNacSlaveConfigFailReason, and add hwDslamNacSlaveAutoDeployCapability."
            
            --  Revision history               
            REVISION     "201402200000Z"
            DESCRIPTION  "V1.06, modify hwDslamNacSlaveConfigFailReason and hwDslamNacRowstaus, and add hwDslamNacSecuritySwitch, hwDslamNacSlaveSecurityCapability."

            --  Revision history               
            REVISION     "201302270000Z"
            DESCRIPTION  "V1.05, modify the description of hwDslamNacSlaveMac, hwDslamNacSlaveType, hwDslamNacSlaveIfFrameId, hwDslamNacSlaveIfSlotId, hwDslamNacSlaveIfPortId."
	    
            --  Revision history               
            REVISION     "201302170000Z"
            DESCRIPTION  "V1.04, modify hwDslamNacSlaveConfigFailReason."
            
            --  Revision history               
            REVISION     "201302010000Z"
            DESCRIPTION  "V1.03, modify the description of hwDslamNacSlaveConfigFailReason."
            
            --  Revision history               
            REVISION     "201209220000Z"
            DESCRIPTION  "V1.02, modify hwDslamNacSlaveConfigFailReason."
            
            --  Revision history               
            REVISION     "201206300000Z"
            DESCRIPTION  "V1.01, modify hwDslamNacSlaveConfigFailReason, hwDslamNacSlaveFindResult and descriptions."
                
            --  Revision history               
            REVISION     "201205150000Z"
            DESCRIPTION  "V1.00, initial version."
                
            ::= { huaweiMgmt 117 }

        hwNacMibObjects OBJECT IDENTIFIER ::= { hwNacExt 1 }
        
        hwDslamNacMasterConfigTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwDslamNacMasterConfigEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This node is used to manage the configuration information to be sent to the slave node.
                 The index of this table is ifIndex.
                "
            ::= { hwNacMibObjects 1 }
        
        hwDslamNacMasterConfigEntry OBJECT-TYPE
            SYNTAX HwDslamNacMasterConfigEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This node is used to manage the configuration information to be sent to the slave node. 
                 The index of this entry is ifIndex.
                "
            INDEX { ifIndex }
            ::= { hwDslamNacMasterConfigTable 1 }
        
        HwDslamNacMasterConfigEntry ::=
            SEQUENCE 
                { 
                hwDslamNacSlaveVlan
                    Integer32,
                hwDslamNacSlaveVlanPriority
                    Integer32,
                hwDslamNacSlaveIpAddress
                    IpAddress,
                hwDslamNacSlaveIpMask
                    IpAddress,
                hwDslamNacSlaveGateway
                    IpAddress,        
                hwDslamNacSlaveSnmpProfileName
                    OCTET STRING,
                hwDslamNacRowstaus
                    RowStatus,
                hwDslamNacSecuritySwitch
                    INTEGER,
                hwDslamNacMasterLock
                    INTEGER
                }
        
        hwDslamNacSlaveVlan OBJECT-TYPE
            SYNTAX Integer32 (1..4093 | 4096)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                 "Indicates the VLAN ID of the NAC channel, ranging from 1 to 4093.
                  In response to the get or get next operation, the invalid value 4096 
                  returned indicates that the VLAN ID is not configured.
                  This node is mandatory for the configuration of NAC parameters.
                "
            ::= { hwDslamNacMasterConfigEntry 1 }
        
        hwDslamNacSlaveVlanPriority OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Indicates the VLAN priority.
                 In response to the get or get next operation, the invalid value 255 
                 returned indicates that the VLAN priority is not configured.
                 This node is optional for the configuration of NAC parameters.
                 The default VLAN priority is 0.
                "
            ::= { hwDslamNacMasterConfigEntry 2 }
        
        hwDslamNacSlaveIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Indicates the IPv4 address of the NAC channel.
                 In response to the get operation, the invalid value 255.255.255.255 
                 indicates that the IPv4 address is not configured.
                 This node is mandatory for the configuration of NAC parameters.
                "
            ::= { hwDslamNacMasterConfigEntry 3 }
        
        hwDslamNacSlaveIpMask OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Indicates the subnet mask of the IPv4 address for the NAC channel.
                 In response to the get operation, the invalid value 0.0.0.0 indicates that the subnet mask is not configured.
                 This node is mandatory for the configuration of NAC parameters.
                "
            ::= { hwDslamNacMasterConfigEntry 4 }
        
        hwDslamNacSlaveGateway OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Indicates the default gateway of the NAC channel.
                 In response to the get operation, the invalid value 255.255.255.255 
                 indicates that the default gateway is not configured.
                 This node is optional for the configuration of NAC parameters.
                "
            ::= { hwDslamNacMasterConfigEntry 5 }
        
        hwDslamNacSlaveSnmpProfileName OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Indicates the name of the SNMP profile for the NAC channel.
                 In response to the get operation, the invalid value, a null character string, 
                 indicates that the name of the SNMP profile is not configured. 
                 This node is optional for the configuration of NAC parameters. 
                "
            ::= { hwDslamNacMasterConfigEntry 6 }
        
        hwDslamNacRowstaus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus.
                 1. active(1)      -indicates the query or set operation.
                 2. createAndGo(4) -indicates sending a nac config
                 3. destroy(6)     -indicates disabling nac
                "
            ::= { hwDslamNacMasterConfigEntry 7 }
 
        hwDslamNacSecuritySwitch OBJECT-TYPE
            SYNTAX INTEGER
                {
                disable(1),
                enable(2)
                }
            MAX-ACCESS read-write
            STATUS current 
            DESCRIPTION
                "Indicates the NAC security mode switch.
                 Options:
                 1. disable(1) -indicates the NAC security mode switch is disable
                 2. enable(2) -indicates the NAC security mode switch is enable
                 Default: disable(1)
                "                
            ::= { hwDslamNacMasterConfigEntry 8 }
            
        hwDslamNacMasterLock OBJECT-TYPE
            SYNTAX INTEGER
                {
                unlocked(1),
                locked(2)
                }
            MAX-ACCESS read-write
            STATUS current 
            DESCRIPTION
                "Indicates whether the master port is locked for the NAC function.
                 Options:
                 1. unlocked(1) -indicates the master port is unlocked
                 2. locked(2) -indicates the master port is locked
                 Default: unlocked(1)
                "                
            ::= { hwDslamNacMasterConfigEntry 9 }

        hwDslamNacSlaveInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwDslamNacSlaveInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This node is used to record the information about the slave node, 
                 including its MAC address, type, subrack, slot, port, automatic discovery result,
                 configuration result, and configuration failure cause. 
                 The index of this table is ifIndex.
                "
            ::= { hwNacMibObjects 2 }
        
        hwDslamNacSlaveInfoEntry OBJECT-TYPE
            SYNTAX HwDslamNacSlaveInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "This node is used to record the information about the slave node, 
                 including its MAC address, type, subrack, slot, port, automatic discovery result,
                 configuration result, and configuration failure cause. 
                 The index of this entry is ifIndex.
                "
            INDEX { ifIndex }
            ::= { hwDslamNacSlaveInfoTable 1 }
        
        HwDslamNacSlaveInfoEntry ::=
            SEQUENCE 
                {
                hwDslamNacSlaveMac
                    MacAddress,
                hwDslamNacSlaveType
                    OCTET STRING,
                hwDslamNacSlaveIfFrameId
                    Integer32,
                hwDslamNacSlaveIfSlotId
                    Integer32,
                hwDslamNacSlaveIfPortId
                    Integer32,
                hwDslamNacSlaveFindResult
                    INTEGER,
                hwDslamNacSlaveConfigResult
                    INTEGER,
                hwDslamNacSlaveConfigFailReason
                    INTEGER,
                hwDslamNacSlaveSecurityCapability
                    INTEGER,
                hwDslamNacSlaveAutoDeployCapability
                    INTEGER,
                hwDslamNacSlaveSnmpV3
                    INTEGER,
                hwDslamNacSlaveSnmpProfile
                    OCTET STRING
                }
        
        hwDslamNacSlaveMac OBJECT-TYPE
            SYNTAX MacAddress
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the MAC address of the NAC slave node. 
                 The returned value 00:00:00:00:00:00 indicates an invalid value.
                 This node is read-only.
                "
            ::= { hwDslamNacSlaveInfoEntry 1 }
        
        hwDslamNacSlaveType OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (0..32))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the device type of the NAC slave node, in the form of a character string. 
                 The returned null character string indicates an invalid value.
                 This node is read-only.
                "
            ::= { hwDslamNacSlaveInfoEntry 2 }
        
        hwDslamNacSlaveIfFrameId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the subrack ID of the slave port on the slave node. 
                 The returned value 255 indicates an invalid value.
                 This node is read-only.
                "
            ::= { hwDslamNacSlaveInfoEntry 3 }
            
        hwDslamNacSlaveIfSlotId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the slot ID of the slave port on the slave node. 
                 The returned value 255 indicates an invalid value.
                 This node is read-only.
                "
            ::= { hwDslamNacSlaveInfoEntry 4 }
            
        hwDslamNacSlaveIfPortId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the port ID of the slave port on the slave node. 
                 The returned value 255 indicates an invalid value.
                 This node is read-only.
                "
            ::= { hwDslamNacSlaveInfoEntry 5 } 
        
        hwDslamNacSlaveFindResult OBJECT-TYPE
            SYNTAX INTEGER
                {
                notfound(1), 
                detected(2),
                activeclose(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the automatic discovery result of the slave port.
                 This node is read-only.
                 Options:
                 1. notfound(1) -indicates that the slave port is not discovered. 
                 The state of the automatic discovery state machine is NULL or INIT and the master node does 
                 not receive an active-close message from the slave node, 
                 or the state of the automatic discovery state machine is detecting.
                 2. detected(2) -indicates that the slave port is discovered. 
                 The state of the automatic discovery state machine is established or pending.
                 3. activeclose(3) -indicates that the slave port is actively closed. 
                 The state of the automatic discovery state machine is INIT and the master node receives an 
                 active close message from the slave node.           
                "
            ::= { hwDslamNacSlaveInfoEntry 6 }
        
        hwDslamNacSlaveConfigResult OBJECT-TYPE
            SYNTAX INTEGER               
                {
                none(1),
                configuring(2),
                addok(3),
                addfail(4),
                delok(5),
                delfail(6)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the neighbor configuration result.
                 This node is read-only. 
                 Options:
                 1. none(1) -indicates that the slave node is not configured.  
                 2. configuring(2) -indicates that the slave node is being configured. 
                 3. addok(3) -indicates that the slave node is successfully configured.
                 4. addfail(4) -indicates that the slave node fails to be configured.
                 5. delok(5) -indicates that the configuration of the slave node is successfully deleted.
                 6. delfail(6) -indicates that the configuration of the slave node fails to be deleted.
                "
            ::= { hwDslamNacSlaveInfoEntry 7 }
        
        hwDslamNacSlaveConfigFailReason OBJECT-TYPE
            SYNTAX INTEGER
                {
                timeout(1),
                vlanconflict(2),
                unknownparameter(3),
                exist(4),
                other(5),
                notsupportaggregation(6),
                invalidipaddress(7),
                slavedecryptfail(8),
                slavenotsupportsec(9),
                sharekeynotexist(10),
                setautodeploypolicyfail(11),
                slavenotsupportsnmpv3(12)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the cause of the failure to configure NAC parameters of the slave port. 
                 This node is valid only when the value of hwDslamNacSlaveConfigResult is addfail(4) or delfail(6).
                 This node is read-only. 
                 Options: 
                 1. timeout(1) -indicates configuration timeout.
                 2. vlanconflict(2) -indicates VLAN ID conflict.
                 3. unknownparameter(3) -indicates unknown parameters.
                 4. exist(4) -indicates that the configuration already exists.
                 5. other(5) -indicates other errors or invalid value.
                 6. notsupportaggregation(6) -indicates the slave node board of this type does not 
                 support the scenario in which the master node is a manual aggregation group.
                 7. invalidipaddress(7) -indicates that the IP address is invalid. For example,
                 the IP network segment conflicts with that of the meth interface of the nac slave node.   
                 8. slavedecryptfail(8) -indicates the slave node fails to decrypt.
                 9. slavenotsupportsec(9) -indicates the slave node does not support the security mode.
                 10. sharekeynotexist(10) -indicates the share-key does not exist. 
                 11. setautodeploypolicyfail(11) -indicates that the auto-deployment policy fails to be set.
                 12. slavenotsupportsnmpv3(12) -indicates that the slave node does not support SNMP v3.
                "
            ::= { hwDslamNacSlaveInfoEntry 8 }     
            
        hwDslamNacSlaveSecurityCapability OBJECT-TYPE
            SYNTAX INTEGER
                {
                notsupport(1),
                support(2),
                unknown(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the security mode capability of the slave node. 
                 Options: 
                 1. notsupport(1) -indicates the slave node does not support the security mode.
                 2. support(2) -indicates the slave node supports the security mode.
                 3. unknown(3) -indicates the security mode capability of the slave node is unknown.
                "
            ::= { hwDslamNacSlaveInfoEntry 9 }     

        hwDslamNacSlaveAutoDeployCapability OBJECT-TYPE
            SYNTAX INTEGER
                {
                notsupport(1),
                support(2),
                unknown(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the auto deployment capability of the slave node. 
                 Options: 
                 1. notsupport(1) -indicates that the slave node does not support auto-deployment.
                 2. support(2) -indicates that the slave node supports auto-deployment.
                 3. unknown(3) -indicates that whether the slave node supports auto-deployment is unknown.
                "
            ::= { hwDslamNacSlaveInfoEntry 10 }

        hwDslamNacSlaveSnmpV3 OBJECT-TYPE
            SYNTAX INTEGER
                {
                notsupport(1),
                support(2),
                unknown(3)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the SNMP v3 capability of the slave node. 
                 Options: 
                 1. notsupport(1) -indicates that the slave node does not support SNMP v3.
                 2. support(2) -indicates that the slave node supports SNMP v3.
                 3. unknown(3) -indicates that whether the slave node supports SNMP v3 is unknown.
                "
            ::= { hwDslamNacSlaveInfoEntry 11 }
    
        hwDslamNacSlaveSnmpProfile OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Indicates the SNMP profile of the slave node.
                 This node is valid only when hwDslamNacSlaveConfigResult is addok(3).
                 The invalid value is a null character string.
                "
            ::= { hwDslamNacSlaveInfoEntry 12 }
            
        hwNacTraps OBJECT IDENTIFIER ::= { hwNacExt 2 } 
        
        hwNacCommonTraps OBJECT IDENTIFIER ::= { hwNacTraps 1 }    
    
        hwNacCommonTrapsPrefix OBJECT IDENTIFIER ::= { hwNacCommonTraps 0 }
        
        hwNacNeighborFindTrap NOTIFICATION-TYPE
            OBJECTS  
                { 
                hwFrameIndex,         
                hwSlotIndex, 
                hwPortIndex,
                hwDslamNacSlaveMac,
                hwDslamNacSlaveType,
                hwDslamNacSlaveIfFrameId,
                hwDslamNacSlaveIfSlotId,
                hwDslamNacSlaveIfPortId
                }
            STATUS   current
            DESCRIPTION
                "Indicates the neighbor discovery trap.
                 This SNMP trap is generated when the neighbor is discovered.    
                "
            ::= { hwNacCommonTraps 0 1 }
            
        hwNacNeighborDisappearTrap NOTIFICATION-TYPE
            OBJECTS  
                { 
                hwFrameIndex, 
                hwSlotIndex, 
                hwPortIndex,
                hwDslamNacSlaveMac,
                hwDslamNacSlaveIfFrameId,
                hwDslamNacSlaveIfSlotId,
                hwDslamNacSlaveIfPortId
                }
            STATUS   current
            DESCRIPTION
                "Indicates the neighbor disappearance trap.
                 This SNMP trap is generated when the neighbor disappears.
                "
            ::= { hwNacCommonTraps 0 2 }
            
        hwNacConfigOkTrap NOTIFICATION-TYPE
            OBJECTS  
                { 
                hwFrameIndex, 
                hwSlotIndex, 
                hwPortIndex,
                hwDslamNacSlaveMac,
                hwDslamNacSlaveIfFrameId,
                hwDslamNacSlaveIfSlotId,
                hwDslamNacSlaveIfPortId,
                hwDslamNacSlaveVlan,
                hwDslamNacSlaveIpAddress,
                hwDslamNacSlaveIpMask,
                hwDslamNacSlaveSnmpProfile
                }
            STATUS   current
            DESCRIPTION
                "Indicates the configuration success trap.
                 This SNMP trap is generated when the NAC parameters are successfully configured.
                "
            ::= { hwNacCommonTraps 0 3 }
            
    END
