-- ============================================================================
-- Copyright (C) 2015 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- Description:  This MIB module defines MIB objects which provide ARP proxy 
--               and ARP detect management.ARP proxy function is used to implement
--               layer 3 interconnection between the users who are isolated at layer 2.
-- Reference:  
-- Version: V3.17
-- ============================================================================
  HUAWEI-ARP-PROXY-MIB DEFINITIONS ::= BEGIN

    IMPORTS 
      huaweiMgmt                                                			FROM HUAWEI-MIB 
        IpAddress, Integer32, Unsigned32, OBJECT-TYPE, 
        MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE     			FROM SNMPv2-SMI
      RowStatus,MacAddress                                      			FROM SNMPv2-TC
      hwFrameIndex, hwSlotIndex,hwSubslotIndex,hwPortIndex,hwOntIndex      	FROM HUAWEI-DEVICE-MIB
      hwVlanID,hwVlanIpAddress                                  			FROM HUAWEI-VLAN-MIB;
      
    hwArpProxy MODULE-IDENTITY
        LAST-UPDATED "201508140000Z"
        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 module defines MIB objects which provide ARP proxy and ARP 
          detect management.ARP proxy function is used to implement layer 3 
          interconnection between the users who are isolated at layer 2."
        
      --  Revision history
      REVISION     "201508140000Z" 
      DESCRIPTION  "V3.17, added table hwArpLearningUniTable.
                   Added node hwArpLearningUniVlanIfIndex in hwArpLearningUniTable.
                   Added node hwArpLearningUniAdminStatus in hwArpLearningUniTable"

	  REVISION     "201410190000Z" 
      DESCRIPTION  "V3.16, modified the access of hwArpDetectRowStatus."
	  
      REVISION     "201403170000Z" 
      DESCRIPTION  "V3.15, modified node hwNdProxyIfIndex."
      
      REVISION     "201307190000Z" 
      DESCRIPTION  "V3.14, added table hwNdProxyEnableTable.
                   Added node hwNdProxyIfIndex in hwNdProxyEnableTable.
                   Added node hwNdProxyAdminStatus in hwNdProxyEnableTable"
      
      REVISION     "201307190000Z" 
      DESCRIPTION  "V3.13, added node hwArpConflictCmIndex, added trap hwArpConflictDetectTrap."
      
      REVISION     "201210110000Z" 
      DESCRIPTION  "V3.12, added traps hwArpConflictDetectTrap."      
      
      REVISION     "201011090000Z" 
      DESCRIPTION  "V3.11, modified the description."
      
      REVISION     "201007130000Z" 
      DESCRIPTION  "V3.10, updated the description, modified the trap hwArpTranferTrap, deleted nodes hwArpTransferFspOld
                    and hwArpTransferFspNew, and added nodes hwOldFrameIndex,hwOldSlotIndex,hwOldPortIndex,
                    hwNewFrameIndex, hwNewSlotIndex and hwNewPortIndex."
      
      REVISION     "201004250000Z" 
      DESCRIPTION  "V3.09, modified the description of all leaves."
      
      REVISION     "201004120000Z" 
      DESCRIPTION  "V3.08, updated the description and format."
      
      REVISION     "201001130000Z" 
      DESCRIPTION  "V3.07, added traps hwArpIPCollisionTrap and hwArpTranferTrap,
                   and added nodes hwArpMacAddress, hwArpVrfIndex, hwArpTransferIP, 
                   hwArpTransferFspOld and hwArpTransferFspNew."
      
      REVISION     "200907060000Z" 
      DESCRIPTION  "V3.06, added node hwArpDetectObject and added table hwArpDetectTable."
      
      REVISION     "200701220000Z" 
      DESCRIPTION  "V3.02, added node hwArpExpireTime."
            
      REVISION     "200612070000Z" 
      DESCRIPTION  "V3.01, added node hwArpProxyGlobalStatus."
      
      REVISION     "200211290900Z"
      DESCRIPTION  "V2.00, reunification version based on the  Fix-Net MIBs baseline
                    by the MIB Standard community. "
                    
      ::= { huaweiMgmt 17 }

--       Arp Proxy
  
    hwArpProxyObject  OBJECT IDENTIFIER ::= { hwArpProxy 1 }
    
    hwArpProxyEnableTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwArpProxyEnableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the basic information about the ARP proxy of the L3 interface. 
             When VLAN interfaces are added, entries are added automatically. 
             The index of this table is hwArpProxyVlanIfIndex.
            "
      ::= { hwArpProxyObject 1 }
    
    hwArpProxyEnableEntry OBJECT-TYPE
        SYNTAX HwArpProxyEnableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the basic information about the ARP proxy of the L3 interface. 
             When VLAN interfaces are added, entries are added automatically. 
             The index of this entry is hwArpProxyVlanIfIndex.
            "
        INDEX { hwArpProxyVlanIfIndex }
        ::= { hwArpProxyEnableTable 1 }
    
    HwArpProxyEnableEntry ::= SEQUENCE 
        { 
            hwArpProxyVlanIfIndex       
                Integer32,
            hwArpProxyAdminStatus       
                INTEGER
        }

    hwArpProxyVlanIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Indicates a table index, which uniquely identifies a VLAN L3 interface. 
            "
        ::= { hwArpProxyEnableEntry 1 }
    
    hwArpProxyAdminStatus OBJECT-TYPE
        SYNTAX INTEGER
        {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the ARP proxy status of a VLAN L3 interface. 
             Options: 
             1. enabled(1)  -indicates the ARP proxy function on the VLAN interface is enabled
             2. disabled(2) -indicates the ARP proxy function on the VLAN interface is disabled
             Default: disabled(2)
            "
        ::= { hwArpProxyEnableEntry 2 }  
        
    hwArpLearningUniTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwArpLearningUniEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the ability of UNI ARP learning on the L3 interface. 
             When VLAN interfaces are added, entries are added automatically. 
             The index of this table is hwArpLearningUniVlanIfIndex."
      ::= { hwArpProxyObject 2 }
    
    hwArpLearningUniEntry OBJECT-TYPE
        SYNTAX HwArpLearningUniEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the ability of UNI ARP learning on the L3 interface. 
             When VLAN interfaces are added, entries are added automatically. 
             The index of this entry is hwArpLearningUniVlanIfIndex."
        INDEX { hwArpLearningUniVlanIfIndex }
        ::= { hwArpLearningUniTable 1 }
    
    HwArpLearningUniEntry ::= SEQUENCE 
        { 
            hwArpLearningUniVlanIfIndex       
                Integer32,
            hwArpLearningUniAdminStatus       
                INTEGER
        } 
      
    hwArpLearningUniVlanIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Indicates a table index, which uniquely identifies a VLAN L3 interface. 
            "
        ::= { hwArpLearningUniEntry 1 }
        
    hwArpLearningUniAdminStatus OBJECT-TYPE
        SYNTAX INTEGER
        {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the ARP learning uni status of a VLAN L3 interface. 
             Options: 
             1. enabled(1)  -indicates the UNI ARP learning function on the VLAN interface is enabled 
             2. disabled(2) -indicates the UNI ARP learning function on the VLAN interface is disabled
             Default: enabled(1)
            "
        ::= { hwArpLearningUniEntry 2 }
      
--       Arp Detect                  
  
    hwArpDetectObject  OBJECT IDENTIFIER ::= { hwArpProxy 2 }

    hwArpDetectTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwArpDetectEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the ARP detection function. The ARP detection function 
             is used for detecting whether the link to a peer end is normal. 
             The index of this table is hwArpDetectName.
            "
        ::= { hwArpDetectObject 1 }
        
    hwArpDetectEntry OBJECT-TYPE
        SYNTAX HwArpDetectEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the ARP detection function. The ARP detection function 
             is used for detecting whether the link to a peer end is normal. 
             The index of this entry is hwArpDetectName.
            "
        INDEX { hwArpDetectName }
        ::= { hwArpDetectTable 1 }

    HwArpDetectEntry ::= SEQUENCE 
        {
            hwArpDetectName           
                OCTET STRING,
            hwArpDetectPeerIp     
                IpAddress,
            hwArpDetectIfIndex      
                Integer32,
            hwArpDetectVlanID     
                Integer32,
            hwArpDetectTXinterval   
                Integer32,
            hwArpDetectMulti        
                Integer32,
            hwArpDetectAdminStatus    
                INTEGER,
            hwArpDetectSessionStatus  
                INTEGER,
            hwArpDetectRowStatus      
                RowStatus
        }
      
    hwArpDetectName OBJECT-TYPE   
        SYNTAX OCTET STRING (SIZE (0..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Indicates an index of a table, which is the name of ARP detection. 
             It contains 0-32 characters. 
            "
        ::= { hwArpDetectEntry 1 }
    
    hwArpDetectPeerIp OBJECT-TYPE    
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the IP address of a detected object. 
            "
        ::= { hwArpDetectEntry 2 }
    
    hwArpDetectIfIndex  OBJECT-TYPE    
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the index of a detected port. 
            "
        ::= { hwArpDetectEntry 3 }
    
    hwArpDetectVlanID   OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the VLAN to which the ARP detection belongs. 
             Range: 1-4093
            "
        ::= { hwArpDetectEntry 4 }
    
    hwArpDetectTXinterval OBJECT-TYPE
        SYNTAX Integer32 (1..100)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the period of transmitting ARP detection packets. The 
             timeout time of the link status is determined according to the 
             transmission period and timeout multiplier. 
             Timeout time = Transmission period * Timeout multiplier
             Range: 1-100
             Default: 2
            "
        ::= { hwArpDetectEntry 5 }
    
    hwArpDetectMulti      OBJECT-TYPE
        SYNTAX Integer32 (3..50)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the ARP detection timeout multiplier. 
             Range: 3-50
             Default: 3
            "
        ::= { hwArpDetectEntry 6 }
    
    hwArpDetectAdminStatus    OBJECT-TYPE
        SYNTAX INTEGER
            {
                enabled(1),
                disabled(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the detection management status. When it is enabled, 
             the ARP detection function takes effect; when it is disabled, 
             the ARP detection function does not take effect. 
             Options:
             1. enabled(1)  -indicates the ARP detection function is enabled
             2. disabled(2) -indicates the ARP detection function is disabled
             Default: disabled(2)
            "
        ::= { hwArpDetectEntry 7 }
    
    hwArpDetectSessionStatus    OBJECT-TYPE
        SYNTAX INTEGER
            {
                down(1),
                up(2)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Indicates the detected link status. 
             Options: 
             1. down(1) -indicates the detected link status is down
             2. up(2)   -indicates the detected link status is up
            "
        ::= { hwArpDetectEntry 8 }
    
    hwArpDetectRowStatus     OBJECT-TYPE 
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Indicates the row status. 
             Options: 
             1. active(1)      -indicates query operation
             2. createAndGo(4) -indicates creating operation
             3. destroy(6)     -indicates ddeleting operation
            "
        ::= { hwArpDetectEntry 9 }

--       System Management Parameter

    hwArpProxyGlobalStatus   OBJECT-TYPE
        SYNTAX  INTEGER
            {
                enabled(1),
                disabled(2)
            }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Identifies the global ARP proxy status. 
             Options:
             1. enabled(1)  -indicates the global ARP proxy function is enabled
             2. disabled(2) -indicates the global ARP proxy function is disabled
             Default: disabled(2)
            "

        ::= { hwArpProxy 11 }

                         
    hwArpExpireTime   OBJECT-TYPE
        SYNTAX Integer32 (0 | 60..3600)                
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Set the aging time of the dynamic arp entries. 
             Unit:minute.
            "
        ::= { hwArpProxy 12 }

    hwArpTrapsVbOids OBJECT IDENTIFIER ::= { hwArpProxy 13 }

    hwArpMacAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "MAC Address of arp entry.
            "
        ::= { hwArpTrapsVbOids 1 }

    hwArpTransferIP OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "IP Address of arp entry.
            "
        ::= { hwArpTrapsVbOids 4 }  
                  
    hwOldFrameIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The frame index before the arp transfer.
            "
        ::= { hwArpTrapsVbOids 5 } 
    
    hwOldSlotIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The slot index before the arp transfer.
            "
        ::= { hwArpTrapsVbOids 6 }   
    hwOldPortIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The port before the arp transfer.
            "
        ::= { hwArpTrapsVbOids 7 }

    hwNewFrameIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The frame index after the arp transfer.
            "
        ::= { hwArpTrapsVbOids 8 }

    hwNewSlotIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The slot index after the arp transfer.
            "
        ::= { hwArpTrapsVbOids 9 }

    hwNewPortIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The port after the arp transfer.
            "
        ::= { hwArpTrapsVbOids 10 }
        
    hwArpConflictCmIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "This attribute uniquely identifies a CM. The CMTS must assign a 
             single ID value for each CM MAC address seen by the CMTS.  
             The CMTS should ensure that the association between an ID and MAC 
             address remains constant during CMTS uptime.
            "
        ::= { hwArpTrapsVbOids 11 }   
    
    hwArpTraps OBJECT IDENTIFIER ::= { hwArpProxy 14 }

    hwArpCommonTraps OBJECT IDENTIFIER ::= { hwArpTraps 1 }

    hwArpCommonTrapsPrefix OBJECT IDENTIFIER ::= { hwArpCommonTraps 0 }
    
    hwArpIPCollisionTrap NOTIFICATION-TYPE
        OBJECTS   
            { 
                hwVlanID, 
                hwVlanIpAddress, 
                hwArpMacAddress, 
                hwFrameIndex, 
                hwSlotIndex,
                hwPortIndex
            }
        STATUS current
        DESCRIPTION 
            "This notification is generated when device receives an arp packet,which  
             source IP address is the same IP address of the device.
            "
        ::= { hwArpCommonTraps 0 1 }

    hwArpAlarmTraps OBJECT IDENTIFIER ::= { hwArpTraps 2 }
      
    hwArpAlarmTrapsPrefix OBJECT IDENTIFIER ::= { hwArpAlarmTraps 0 }

    hwArpTranferTrap NOTIFICATION-TYPE
        OBJECTS 
            { 
                hwVlanID, 
                hwArpTransferIP, 
                hwOldFrameIndex, 
                hwOldSlotIndex,
                hwOldPortIndex,
                hwNewFrameIndex, 
                hwNewSlotIndex,
                hwNewPortIndex     
            }
        STATUS current
        DESCRIPTION 
        "This notification is generated when arp transfer one port
         to another port.
        "
        ::= { hwArpAlarmTraps 0 1 }          

    hwArpConflictDetectTrap NOTIFICATION-TYPE
        OBJECTS 
            { 
                hwVlanID, 
                hwVlanIpAddress, 
                hwArpMacAddress, 
                hwFrameIndex, 
                hwSlotIndex,
                hwPortIndex,
                hwOntIndex   
            }
        STATUS current
        DESCRIPTION 
            "This notification is generated when device receives an arp packet,which  
             source IP address is the same IP address of the device.
            "
        ::= { hwArpAlarmTraps 0 2 } 
        
    hwArpConflictDetectCmTrap NOTIFICATION-TYPE
        OBJECTS 
            { 
                hwVlanID, 
                hwVlanIpAddress, 
                hwArpMacAddress, 
                hwFrameIndex, 
                hwSlotIndex,
                hwPortIndex,
                hwArpConflictCmIndex
            }
        STATUS current
        DESCRIPTION 
            "This notification is generated when device receives an arp packet,which  
             source IP address is the same IP address of the device.
            "
        ::= { hwArpAlarmTraps 0 3 }       
  
  --       ND Proxy
  
    hwNdProxyObject  OBJECT IDENTIFIER ::= { hwArpProxy 15 }
    
    hwNdProxyEnableTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwNdProxyEnableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the basic information about the ND proxy of the L3 interface.
             The index of this table is hwNdProxyIfIndex.
            "
      ::= { hwNdProxyObject 1 }
    
    hwNdProxyEnableEntry OBJECT-TYPE
        SYNTAX HwNdProxyEnableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Used for configuring the basic information about the ND proxy of the L3 interface. 
             The index of this entry is hwNdProxyIfIndex.
            "
        INDEX { hwNdProxyIfIndex }
        ::= { hwNdProxyEnableTable 1 }
    
    HwNdProxyEnableEntry ::= SEQUENCE 
        { 
            hwNdProxyIfIndex       
                Integer32,
            hwNdProxyAdminStatus       
                INTEGER
        }

    hwNdProxyIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Indicates a table index, which uniquely identifies a L3 interface. 
            "
        ::= { hwNdProxyEnableEntry 1 }
    
    hwNdProxyAdminStatus OBJECT-TYPE
        SYNTAX INTEGER
        {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Indicates the ND proxy status of a L3 interface. 
             Options: 
             1. enabled(1)  -indicates the ND proxy function on the IPv6 interface is enabled
             2. disabled(2) -indicates the ND proxy function on the IPv6 interface is disabled
             Default: disabled(2)
            "
        ::= { hwNdProxyEnableEntry 2 }
  
  END