-- MIB file created 27-Jul-2011 15:20:20, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-DYNAMIC-ARP-INSPECTION-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-DYNAMIC-ARP-INSPECTION-MIB.my"
-- Compile options "4 7 F H N W 03 06 0B 0G 0N 0T"

IMPORTS
    TruthValue, MacAddress, DateAndTime, StorageType, RowStatus
            FROM SNMPv2-TC-v1
    ifIndex, InterfaceIndexOrZero
            FROM IF-MIB
    InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
    VlanIndex
            FROM Q-BRIDGE-MIB
    VlanIndexOrZero
            FROM CISCO-PRIVATE-VLAN-MIB
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Counter, Gauge
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212;

ciscoDynamicArpInspectionMIB OBJECT IDENTIFIER ::= { ciscoMgmt 374 }
-- MODULE-IDENTITY
--  LastUpdated
--    201103210000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--            Cisco Systems
--             Customer Service
--    
--     Postal: 170 W Tasman Drive
--             San Jose, CA 95134
--             USA
--    
--        Tel: +1 800 553-NETS
--    
--     E-mail: cs-lan-switch-snmp@cisco.com
--  Descr
--    The MIB module is for configuration of Dynamic ARP Inspection 
--     feature. Dynamic ARP Inspection is a security mechanism which
--     validate ARP packets seen on access ports.
--  RevDate
--    201103210000Z
--  RevDescr
--    Add the following groups:
--    - cdaiLoggingConfigGroup.
--    - cdaiLogBufferGroup.
--    - cdaiLogBufferActionGroup.
--    - cdaiAddressValidationGroup.
--    - cdaiVlanCfgGroup.
--    - cdaiVlanArpProbeGroup.
--    - cdaiVlanStatisticsGroup.
--    - cdaiVlanExtStatisticsGroup.
--  RevDate
--    200310291500Z
--  RevDescr
--    Initial revision of this MIB module.

cdaiMIBNotifs   OBJECT IDENTIFIER ::= { ciscoDynamicArpInspectionMIB 0 }
cdaiMIBObjects  OBJECT IDENTIFIER ::= { ciscoDynamicArpInspectionMIB 1 }
cdaiMIBConformance OBJECT IDENTIFIER ::= { ciscoDynamicArpInspectionMIB 2 }
cdaiGlobal      OBJECT IDENTIFIER ::= { cdaiMIBObjects 1 }
cdaiVlan        OBJECT IDENTIFIER ::= { cdaiMIBObjects 2 }
cdaiInterface   OBJECT IDENTIFIER ::= { cdaiMIBObjects 3 }
cdaiStatistics  OBJECT IDENTIFIER ::= { cdaiMIBObjects 4 }
cdaiMIBCompliances OBJECT IDENTIFIER ::= { cdaiMIBConformance 1 }
cdaiMIBGroups   OBJECT IDENTIFIER ::= { cdaiMIBConformance 2 }

cdaiLoggingEnable OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the Dynamic ARP Inspection
        logging is enabled on the device.
        
        If this object is set to 'true', Dynamic ARP Inspection
        logging is enabled.
        
        If this object is set to 'false', Dynamic ARP Inspection
        logging is disabled."
    ::= { cdaiGlobal 1 }

cdaiAddressValidate OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   srcMacAddress(0)
        --   dstMacAddress(1)
        --   ip(2)
        --   ipAllowZeros(3)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies address validation criteria 
        used by Dynamic ARP Inspection feature. 
        
        'srcMacAddress' indicates that source MAC address in
        ethernet header is checked against the sender MAC address
        in ARP packet. When this bit is on, packets with different
        MAC addresses are classified as invalid packets and are
        dropped. This checking is done for both ARP request and
        ARP response packet.
        
        'dstMacAddress' indicates that the destination MAC address
        in ethernet header is checked against the target MAC address
        in ARP packet. When this bit is on, packets with different
        addresses are classified as invalid packets and are dropped.
        This checking is done for ARP response packet only. 
        
        'ip' indicates that the IP addresses in ARP packet are checked
        for invalid or unexpected IP addresses. Addresses such as 
        0.0.0.0, 255.255.255.255 and all IP multicast addresses are
        considered invalid. When this bit is on, both the sender
        and target IP addresses in the ARP packet are checked. This
        checking is done for both ARP request and response packet.  
        
        'ipAllowZeros' works the same as 'ip' but address 0.0.0.0
        is allowed. 
        
        'ip' and 'ipAllowZeros' are mutually exclusive."
    ::= { cdaiGlobal 2 }

cdaiLogBufferSize OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    entries
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the size of the logging buffer."
    ::= { cdaiGlobal 3 }

cdaiLoggingRate OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    entries
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the maximum number of logging entries 
        will be logged during the time period denoted by
        cdaiLoggingInterval object for system message generation purpose.
        Zero value indicates that entry is placed in the log buffer, 
        but a system message is not generated."
    ::= { cdaiGlobal 4 }

cdaiLoggingInterval OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    seconds
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the logging interval for system
         message generation purpose. Zero value indicates that 
         system message is immediately generated (and the log 
         buffer is always empty). Value of this object and value
         of cdaiLoggingRate object cannot be zero at the same time."
    ::= { cdaiGlobal 5 }

cdaiLogBufferAction OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        clear(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This objects specifies the action can be taken with
        respect to logging buffer. 
        
        'none' indicates that no operation is performed. This
        object always return value 'none' when read.
        
        'clear' indicates that all entries in cdaiLoggingBufferTable
        will be cleared."
    ::= { cdaiGlobal 6 }

cdaiLogBufferTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiLogBufferEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table provides the information of logged ARP flows 
         for system message generation."
    ::= { cdaiGlobal 7 }

cdaiLogBufferEntry OBJECT-TYPE
    SYNTAX CdaiLogBufferEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains logged ARP flow data for system
         message generation. Entries in the log are cleared once
         system messages are generated on their behalf. A special
         entry will be populated for accounting drops of all flows
         that result in exceeding the number of entries of the log
         buffer. Special entry only contains packets counter and
         timestamps information. The rest of its fields are 
         irrelevant."
    INDEX { cdaiLogBufferIndex }
    ::= { cdaiLogBufferTable 1 }

CdaiLogBufferEntry ::= SEQUENCE {
    cdaiLogBufferIndex Gauge,
    cdaiLogBufferInterface InterfaceIndexOrZero,
    cdaiLogBufferVlan VlanIndexOrZero,
    cdaiLogBufferSenderMacAddress MacAddress,
    cdaiLogBufferSenderAddressType InetAddressType,
    cdaiLogBufferSenderIpAddress InetAddress,
    cdaiLogBufferReason INTEGER,
    cdaiLogBufferLastUpdate DateAndTime,
    cdaiLogBufferPacketsCount Gauge
    }

cdaiLogBufferIndex OBJECT-TYPE
    SYNTAX Gauge(1..65535)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object uniquely identifies a logged ARP flow in the buffer."
    ::= { cdaiLogBufferEntry 1 }

cdaiLogBufferInterface OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
--    Rsyntax INTEGER(0..2147483647)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the interface which sent the logged
         ARP flow. Zero value indicates the special entry."
    ::= { cdaiLogBufferEntry 2 }

cdaiLogBufferVlan OBJECT-TYPE
    SYNTAX VlanIndexOrZero
--    Rsyntax INTEGER(0..4095)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the VLAN number which the logged
         ARP flow belongs to. Zero value indicates the special entry."
    ::= { cdaiLogBufferEntry 3 }

cdaiLogBufferSenderMacAddress OBJECT-TYPE
    SYNTAX MacAddress
--    Rsyntax OCTET STRING(SIZE(6))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sender MAC address of the logged
         ARP flow. All zeros MAC address value indicates the
         special entry."
    ::= { cdaiLogBufferEntry 4 }

cdaiLogBufferSenderAddressType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sender Internet address type 
         of the logged ARP flow."
    ::= { cdaiLogBufferEntry 5 }

cdaiLogBufferSenderIpAddress OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the sender Internet address 
         of the logged ARP flow. The type of this address is 
         determined by the value of cdaiLogBufferSenderAddressType
         object. All zeros IP address value indicates the
         special entry."
    ::= { cdaiLogBufferEntry 6 }

cdaiLogBufferReason OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        deny(2),
        aclDeny(3),
        aclPermit(4),
        dhcpDeny(5),
        dhcpPermit(6),
        probePermit(7)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the reason for logging this ARP flow.
        
         'unknown' indicates unknown reason.
        
         'deny' indicates that this ARP flow is logged because it is 
         denied by Dynamic ARP Inspection feature.
        
         'aclDeny' indicates that this ARP flow is logged because it is
         denied by a configured ARP ACL.
        
         'aclPermit' indicates that this ARP flow is logged because it
         is permitted by a configured ARP ACL.
        
         'dhcpDeny' indicates that this ARP flow is logged because it
         is denied when comparing with DHCP bindings information. 
        
         'dhcpPermit' indicates that this ARP flow is logged because
         it is permitted when comparing with DHCP binding information.
        
         'probePermit' indicates that this ARP flow is logged because
         it is a permitted ARP-Probe flow."
    ::= { cdaiLogBufferEntry 7 }

cdaiLogBufferLastUpdate OBJECT-TYPE
    SYNTAX DateAndTime
--    Rsyntax OCTET STRING(SIZE(8|11))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the timestamp when the last packet
         of this flow was accounted by the system."
    ::= { cdaiLogBufferEntry 8 }

cdaiLogBufferPacketsCount OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of packets of this ARP flow 
        was accounted by the system."
    ::= { cdaiLogBufferEntry 9 }

cdaiVlanConfigTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiVlanConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table provides the mechanism to control Dynamic ARP
        Inspection per VLAN. When a VLAN is created in a device
        supporting this table, a corresponding entry of this table
        will be added."
    ::= { cdaiVlan 1 }

cdaiVlanConfigEntry OBJECT-TYPE
    SYNTAX CdaiVlanConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains the configuration to enable
         or disable Dynamic ARP Inspection at each existing VLAN."
    INDEX { cdaiVlanIndex }
    ::= { cdaiVlanConfigTable 1 }

CdaiVlanConfigEntry ::= SEQUENCE {
    cdaiVlanIndex VlanIndex,
    cdaiVlanDynArpInspEnable TruthValue
    }

cdaiVlanIndex OBJECT-TYPE
    SYNTAX VlanIndex
--    Rsyntax Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the VLAN number on which Dynamic ARP
        Inspection feature is configured."
    ::= { cdaiVlanConfigEntry 1 }

cdaiVlanDynArpInspEnable OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether Dynamic ARP Inspection is
         enabled in this VLAN.
        
         If this object is set to 'true', Dynamic ARP Inspection
         is enabled. 
        
         If this object is set to 'false', Dynamic ARP Inspection
         is disabled."
    ::= { cdaiVlanConfigEntry 2 }

cdaiVlanCfgTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiVlanCfgEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table provides the mechanism to control Dynamic ARP
        Inspection per VLAN. This table is populated for each
        existing VLAN in the device as well as non-existing VLANs
        which contains the Dynamic ARP Inspection configuration."
    ::= { cdaiVlan 2 }

cdaiVlanCfgEntry OBJECT-TYPE
    SYNTAX CdaiVlanCfgEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains the Dynamic ARP inspection
         configuration for a specific VLAN in the device."
    INDEX { cdaiVlanId }
    ::= { cdaiVlanCfgTable 1 }

CdaiVlanCfgEntry ::= SEQUENCE {
    cdaiVlanId VlanIndex,
    cdaiVlanDynArpInspAdmin INTEGER,
    cdaiVlanDynArpInspOper INTEGER,
    cdaiVlanFilterArpAclName SnmpAdminString,
    cdaiVlanFilterArpAclStatic TruthValue,
    cdaiVlanAclLogging INTEGER,
    cdaiVlanDhcpBindingLogging INTEGER,
    cdaiVlanArpProbeLogging TruthValue,
    cdaiVlanCfgStorageType StorageType,
    cdaiVlanCfgRowStatus RowStatus
    }

cdaiVlanId OBJECT-TYPE
    SYNTAX VlanIndex
--    Rsyntax Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the VLAN number."
    ::= { cdaiVlanCfgEntry 1 }

cdaiVlanDynArpInspAdmin OBJECT-TYPE
    SYNTAX INTEGER {
        enable(1),
        disable(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the administrative status of Dynamic 
         ARP Inspection feature in this VLAN.
        
         If this object value is 'enable', Dynamic ARP Inspection
         is enabled. 
        
         If this object value is 'disable', Dynamic ARP Inspection
         is disabled."
    DEFVAL { enable }
    ::= { cdaiVlanCfgEntry 2 }

cdaiVlanDynArpInspOper OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        inactive(2)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the operational status of Dynamic ARP 
         Inspection feature in this VLAN.
        
         If this object is 'active', Dynamic ARP Inspection
         is operationally active. 
        
         If this object is 'inactive', Dynamic ARP Inspection
         is operationally inactive."
    ::= { cdaiVlanCfgEntry 3 }

cdaiVlanFilterArpAclName OBJECT-TYPE
    SYNTAX SnmpAdminString
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies an ARP ACL name that Dynamic ARP 
         Inspection feature uses to check the validity of the bindings
         information in ARP body.
        
         An emptry string indicates that no such ARP ACL is
         configured for this purpose."
    DEFVAL { "" }
    ::= { cdaiVlanCfgEntry 4 }

cdaiVlanFilterArpAclStatic OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether the ARP ACL denoted by
         cdaiVlanFilterArpAclName is statically applied by
         Dynamic ARP Inspection feature. This object does not
         take effect if value of cdaiVlanFilterArpAclName on
         the row is an empty string. 
        
         'true' indicates that ARP ACL is applied statically. 
         The action (denied or permitted) results from applying 
         the ARP ACL is final and ARP packet is not compared against 
         DHCP bindings information. 
        
         'false' indicates ARP ACL is not applied statically. If
         ARP packet is not explicitly classified by ARP ACL, it 
         will be compared against DHCP bindings information."
    DEFVAL { false }
    ::= { cdaiVlanCfgEntry 5 }

cdaiVlanAclLogging OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        aclMatch(2),
        deny(3)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the logging configuration that 
         Dynamic ARP Inspection feature applies to ARP packets
         when they are classified by the configured ACL.
        
         'none' indicates that no logging is performed when
         packets are classified by the configured ACL.
        
         'aclMatch' indicates that logging is performed when
         packets are classified by the configured ACL and the
         matched ACE specified a logging action. 
        
         'deny' indicates that logging is performed when packets
         is denied by the configured ACL."
    DEFVAL { deny }
    ::= { cdaiVlanCfgEntry 6 }

cdaiVlanDhcpBindingLogging OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        permit(2),
        deny(3),
        all(4)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies packet logging configuration 
         performed by Dynamic ARP Inspection feature when
         ARP packets is compared against DHCP bindings information.
        
         'none' indicates that no packet logging is performed.
        
         'permit' indicates that packet logging is performed only
         for packets that are permitted as a result of comparing 
         with DHCP bindings information. 
        
         'deny' indicates that packet logging is performed only
         for packets that are denied as a result of comparing with 
         DHCP bindings information. 
        
         'all' indicates that packet logging is performed for all
         packets that are permitted or denied as a result of comparing
         with DHCP bindings information."
    DEFVAL { deny }
    ::= { cdaiVlanCfgEntry 7 }

cdaiVlanArpProbeLogging OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The objects specifies if ARP-Probe packets will be
         logged by Dynamic ARP Inspection feature.
        
         'true' indicates ARP-Probe packets will be logged.
        
         'false' indicates ARP-Probe packets will not be logged."
    DEFVAL { false }
    ::= { cdaiVlanCfgEntry 8 }

cdaiVlanCfgStorageType OBJECT-TYPE
    SYNTAX StorageType
--    Rsyntax INTEGER {
--        other(1),
--        volatile(2),
--        nonVolatile(3),
--        permanent(4),
--        readOnly(5)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The objects specifies the storage type for this conceptual
        row."
    DEFVAL { volatile }
    ::= { cdaiVlanCfgEntry 9 }

cdaiVlanCfgRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The status of this conceptual row entry. This object
        is used to manage creation and deletion of rows in this
        table.
        
        Deletion of an entry in this table is only allowed
        if the VLAN indicated by its row index object does not
        exist in the device. Writable objects can be modified at 
        any time even while the row is active."
    ::= { cdaiVlanCfgEntry 10 }

cdaiIfConfigTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiIfConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table provides the mechanism to configure the trust
        state for Dynamic ARP Inspection purpose at each physical
        interface capable of this feature. Some of the interfaces
        (but not limited to) for which this feature might be
        applicable are: ifType = ethernetCsmacd(6)."
    ::= { cdaiInterface 1 }

cdaiIfConfigEntry OBJECT-TYPE
    SYNTAX CdaiIfConfigEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains the configuration to enable or
        disable trust state for Dynamic ARP Inspection at each
        physical interface capable of this feature."
    INDEX { ifIndex }
    ::= { cdaiIfConfigTable 1 }

CdaiIfConfigEntry ::= SEQUENCE {
    cdaiIfTrustEnable TruthValue
    }

cdaiIfTrustEnable OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the interface is trusted for
        Dynamic ARP Inspection purpose. 
        
        If this object is set to 'true', the interface is trusted.
        ARP packets coming to this interface will be forwarded
        without checking.
        
        If this object is set to 'false', the interface is not
        trusted. ARP packets coming to this interface will be
        subjected to ARP inspection."
    ::= { cdaiIfConfigEntry 1 }

cdaiIfRateLimitTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiIfRateLimitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table provides the mechanism to configure the rate limit
        for Dynamic ARP Inspection purpose at each physical interface
        capable of this feature."
    ::= { cdaiInterface 2 }

cdaiIfRateLimitEntry OBJECT-TYPE
    SYNTAX CdaiIfRateLimitEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains the configuration of rate limit 
        Dynamic ARP Inspection at each physical interface capable
        of this feature."
    INDEX { ifIndex }
    ::= { cdaiIfRateLimitTable 1 }

CdaiIfRateLimitEntry ::= SEQUENCE {
    cdaiIfRateLimit Gauge
    }

cdaiIfRateLimit OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    packet per second
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates rate limit value for Dynamic ARP
         Inspection purpose. If the incoming rate of ARP packets 
         exceeds the value of this object, ARP packets will be
         dropped. "
    ::= { cdaiIfRateLimitEntry 1 }

cdaiVlanStatsTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CdaiVlanStatsEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table lists the Dynamic Arp Inspection statistics per VLAN."
    ::= { cdaiStatistics 1 }

cdaiVlanStatsEntry OBJECT-TYPE
    SYNTAX CdaiVlanStatsEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A row instance contains Dynamic ARP Inspection statistics 
        information for each VLAN."
    INDEX { cdaiVlanStatsIndex }
    ::= { cdaiVlanStatsTable 1 }

CdaiVlanStatsEntry ::= SEQUENCE {
    cdaiVlanStatsIndex VlanIndex,
    cdaiVlanForwarded Counter,
    cdaiVlanDropped Counter,
    cdaiVlanAclPermitted Counter,
    cdaiVlanDhcpBindingsPermitted Counter,
    cdaiVlanAclDenied Counter,
    cdaiVlanDhcpBindingDenied Counter,
    cdaiVlanSrcMacValidationFailures Counter,
    cdaiVlanDestMacValidationFailures Counter,
    cdaiVlanIpValidationFailures Counter,
    cdaiVlanArpProbePermitted Counter,
    cdaiVlanInvalidProtocolData Counter
    }

cdaiVlanStatsIndex OBJECT-TYPE
    SYNTAX VlanIndex
--    Rsyntax Gauge
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the VLAN number."
    ::= { cdaiVlanStatsEntry 1 }

cdaiVlanForwarded OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets forwarded by
         Dynamic Arp Inspection feature."
    ::= { cdaiVlanStatsEntry 2 }

cdaiVlanDropped OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets dropped by
         Dynamic ARP Inspection feature."
    ::= { cdaiVlanStatsEntry 3 }

cdaiVlanAclPermitted OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets permitted by
         the configured ACL."
    ::= { cdaiVlanStatsEntry 4 }

cdaiVlanDhcpBindingsPermitted OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of DHCP-binding permitted
         ARP packets."
    ::= { cdaiVlanStatsEntry 5 }

cdaiVlanAclDenied OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets denied by the
         configured ACL."
    ::= { cdaiVlanStatsEntry 6 }

cdaiVlanDhcpBindingDenied OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of DHCP-binding denied 
         ARP packets."
    ::= { cdaiVlanStatsEntry 7 }

cdaiVlanSrcMacValidationFailures OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets that fail 
         source MAC address validation."
    ::= { cdaiVlanStatsEntry 8 }

cdaiVlanDestMacValidationFailures OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets that fail 
         destination MAC address validation."
    ::= { cdaiVlanStatsEntry 9 }

cdaiVlanIpValidationFailures OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets that fail 
         IP validation."
    ::= { cdaiVlanStatsEntry 10 }

cdaiVlanArpProbePermitted OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP Probe packets that 
         are permitted."
    ::= { cdaiVlanStatsEntry 11 }

cdaiVlanInvalidProtocolData OBJECT-TYPE
    SYNTAX Counter
--  Units
--    packets
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the number of ARP packets that contain 
         invalid protocol data."
    ::= { cdaiVlanStatsEntry 12 }

cdaiGlobalLoggingGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which is used to configure Dynamic
--    ARP Inspection logging.
--  objects
--    cdaiLoggingEnable

cdaiVlanConfigGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which are used to configure as
--     well as show information regarding the Dynamic ARP
--     Inspection feature per VLAN.
--  objects
--    cdaiVlanDynArpInspEnable

cdaiIfConfigGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which are used to configure as
--     well as show information regarding the interface trust
--     state for Dynamic ARP Inspection purpose.
--  objects
--    cdaiIfTrustEnable

cdaiIfRateLimitGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 4 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which are used to configure as
--     well as show information regarding the rate limit per 
--     interface for Dynamic ARP Inspection purpose.
--  objects
--    cdaiIfRateLimit

cdaiLoggingConfigGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 5 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides logging configuration 
--     for Dynamic ARP Inspection feature.
--  objects
--    cdaiLogBufferSize, cdaiLoggingRate, cdaiLoggingInterval

cdaiAddressValidationGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 6 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides address validation
--     configuration for Dynamic ARP Inspection feature.
--  objects
--    cdaiAddressValidate

cdaiVlanCfgGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 7 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides additional VLAN 
--     configuration for Dynamic ARP Inspection feature.
--  objects
--    cdaiVlanDynArpInspAdmin, cdaiVlanDynArpInspOper, 
--    cdaiVlanFilterArpAclName, cdaiVlanFilterArpAclStatic, 
--    cdaiVlanAclLogging, cdaiVlanDhcpBindingLogging, 
--    cdaiVlanCfgStorageType, cdaiVlanCfgRowStatus

cdaiVlanStatisticsGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 8 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides Dynamic ARP Inspection 
--     statistics per VLAN.
--  objects
--    cdaiVlanForwarded, cdaiVlanDropped, cdaiVlanAclPermitted, 
--    cdaiVlanDhcpBindingsPermitted, cdaiVlanAclDenied, 
--    cdaiVlanDhcpBindingDenied, cdaiVlanSrcMacValidationFailures, 
--    cdaiVlanDestMacValidationFailures, 
--    cdaiVlanIpValidationFailures

cdaiLogBufferGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 9 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides logging information
--     for Dynamic ARP Inspection feature.
--  objects
--    cdaiLogBufferInterface, cdaiLogBufferVlan, 
--    cdaiLogBufferSenderMacAddress, cdaiLogBufferSenderAddressType, 
--    cdaiLogBufferSenderIpAddress, cdaiLogBufferReason, 
--    cdaiLogBufferLastUpdate, cdaiLogBufferPacketsCount

cdaiVlanExtStatisticsGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 10 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides additional Dynamic 
--     ARP Inspection statistics per VLAN.
--  objects
--    cdaiVlanArpProbePermitted, cdaiVlanInvalidProtocolData

cdaiVlanArpProbeGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 11 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides additional VLAN 
--     configuration for ARP Probe packets.
--  objects
--    cdaiVlanArpProbeLogging

cdaiLogBufferActionGroup OBJECT IDENTIFIER ::= { cdaiMIBGroups 12 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object which provides log buffer action.
--  objects
--    cdaiLogBufferAction

cdaiMIBCompliance OBJECT IDENTIFIER ::= { cdaiMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for CISCO-DYNAMIC-ARP-INSPECTION-MIB.
--     This compliance is superceded by cdaiMIBCompliance1.
--  Module
--    >>current<<
--   MandGroup
--    cdaiVlanConfigGroup
--   MandGroup
--    cdaiIfConfigGroup
--   OptGroup
--    cdaiGlobalLoggingGroup
--   OptGroup
--    cdaiIfRateLimitGroup

cdaiMIBCompliance1 OBJECT IDENTIFIER ::= { cdaiMIBCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for CISCO-DYNAMIC-ARP-INSPECTION-MIB
--  Module
--    >>current<<
--   MandGroup
--    cdaiVlanCfgGroup
--   MandGroup
--    cdaiIfConfigGroup
--   OptGroup
--    cdaiVlanConfigGroup
--   OptGroup
--    cdaiGlobalLoggingGroup
--   OptGroup
--    cdaiIfRateLimitGroup
--   OptGroup
--    cdaiLoggingConfigGroup
--   OptGroup
--    cdaiAddressValidationGroup
--   OptGroup
--    cdaiLogBufferGroup
--   OptGroup
--    cdaiVlanStatisticsGroup
--   OptGroup
--    cdaiVlanExtStatisticsGroup
--   OptGroup
--    cdaiVlanArpProbeGroup
--   OptGroup
--    cdaiLogBufferActionGroup
--   ObjVar
--    cdaiVlanDynArpInspEnable
--   ObjVar
--    cdaiVlanDynArpInspAdmin
--   ObjVar
--    cdaiVlanFilterArpAclName
--   ObjVar
--    cdaiVlanFilterArpAclStatic
--   ObjVar
--    cdaiVlanAclLogging
--   ObjVar
--    cdaiVlanDhcpBindingLogging
--   ObjVar
--    cdaiVlanCfgStorageType
--   ObjVar
--    cdaiVlanCfgRowStatus
--   ObjVar
--    cdaiIfTrustEnable
--   ObjVar
--    cdaiLoggingEnable
--   ObjVar
--    cdaiIfRateLimit
--   ObjVar
--    cdaiLogBufferSize
--   ObjVar
--    cdaiLoggingRate
--   ObjVar
--    cdaiLoggingInterval
--   ObjVar
--    cdaiAddressValidate
--   ObjVar
--    cdaiVlanArpProbeLogging
--   ObjVar
--    cdaiLogBufferAction


END

