
ALCATEL-ENT1-VM-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-TYPE, OBJECT-TYPE, OBJECT-IDENTITY, MODULE-IDENTITY,
    Counter64, Integer32, Counter32, Unsigned32
        FROM SNMPv2-SMI
    InetAddress,InetAddressType 
        FROM INET-ADDRESS-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    RowStatus, DateAndTime, MacAddress
        FROM SNMPv2-TC
    softentIND1VMSnooping
        FROM ALCATEL-ENT1-BASE
    SnmpAdminString                    
        FROM SNMP-FRAMEWORK-MIB
    physicalIndex
        FROM ALCATEL-ENT1-CHASSIS-MIB
    InterfaceIndex
        FROM IF-MIB;

alaVMSnoopingMIB MODULE-IDENTITY
    LAST-UPDATED  "201407010000Z"
    ORGANIZATION  "Alcatel-Lucent"
    CONTACT-INFO
            "Please consult with Customer Service to ensure the most appropriate
             version of this document is used with the products in question:

                      Alcatel-Lucent, Enterprise Solutions Division
                    (Formerly Alcatel Internetworking, Incorporated)
                               26801 West Agoura Road
                            Agoura Hills, CA  91301-5122
                              United States Of America

            Telephone:               North America  +1 800 995 2696
                                     Latin America  +1 877 919 9526
                                     Europe         +31 23 556 0100
                                     Asia           +65 394 7933
                                     All Other      +1 818 878 4507

            Electronic Mail:         support@ind.alcatel.com
            World Wide Web:          http://alcatel-lucent.com/wps/portal/enterprise
            File Transfer Protocol:  ftp://ftp.ind.alcatel.com/pub/products/mibs"

        DESCRIPTION
            "This module describes an authoritative enterprise-specific Simple
             Network Management Protocol (SNMP) Management Information Base (MIB):

                 For the Birds Of Prey Product Line
                 Authentication, Authorization, and Accounting (AAA) Subsystem.

             The right to make changes in specification and other information
             contained in this document without prior notice is reserved.

             No liability shall be assumed for any incidental, indirect, special, or
             consequential damages whatsoever arising from or related to this
             document or the information contained herein.

             Vendors, end-users, and other interested parties are granted
             non-exclusive license to use this specification in connection with
             management of the products for which it is intended to be used.

                         Copyright (C) 1995-2014 Alcatel-Lucent
                             ALL RIGHTS RESERVED WORLDWIDE"

        REVISION      "201407010000Z"
        DESCRIPTION
            "The latest version of this MIB Module."

        ::= { softentIND1VMSnooping 1}

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingMIBNotifications	OBJECT IDENTIFIER ::= { alaVMSnoopingMIB 0 }

alaVMSnoopingMIBObjects OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Branch for VM Snooping sub-system managed objects."
    ::= { alaVMSnoopingMIB 1 }

alaVMSnoopingMIBConformance OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
        "Branch for VM Snooping sub-system conformance information."
    ::= { alaVMSnoopingMIB 2 }

alaVMSnoopingMIBGroups OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
        "Branch for VM Snooping subsystem units of conformance."
    ::= { alaVMSnoopingMIBConformance 1 }

alaVMSnoopingMIBCompliances OBJECT-IDENTITY
    STATUS       current
    DESCRIPTION
        "Branch for VM Snooping subsystem compliance statements."
    ::= { alaVMSnoopingMIBConformance 2 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingTrapsObj    OBJECT  IDENTIFIER ::= { alaVMSnoopingMIBObjects 1 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingLearnedMacAddress   OBJECT-TYPE
    SYNTAX            MacAddress
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION 
        "Indicates the mac-address of Virtual machine."
    ::= { alaVMSnoopingTrapsObj 1 }

alaVMSnoopingLearnedVxlanUdpPort   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION 
        "Indicates the port on which the Virtual machine is learnt."
    ::= { alaVMSnoopingTrapsObj 2 }

alaVMSnoopingLearnedVxlanVni   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION 
        "Indicates Virtual machine network indentifier."
    ::= { alaVMSnoopingTrapsObj 3 }

alaVMSnoopingNiSlot   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION 
        "Indicates the NI Slot number."
    ::= { alaVMSnoopingTrapsObj 4 }

alaVMSnoopingHwResourceTotal   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION 
        "Indicates the total number of reserved harware resources."
    ::= { alaVMSnoopingTrapsObj 5 }

alaVMSnoopingHwResourceUsed   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION
        "Indicates the used reserved harware resources."
    ::= { alaVMSnoopingTrapsObj 6 }

alaVMSnoopingChassisId   OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        accessible-for-notify
    STATUS            current
    DESCRIPTION
        "Indicates Chassis Id."
    ::= { alaVMSnoopingTrapsObj 7 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingConfig 	OBJECT	IDENTIFIER ::= { alaVMSnoopingMIBObjects 2 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingAdminStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enable (1),
                    disable (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable/Disable VM Snooping on the device. 
         On enable  : The hardware-resources will be allocated for 
                      VM Snooping application.
         On disable : The allocated hardware-resources will be reclaimed
                      by the system. All the VM Database information will be
                      cleared and QoS slices will be returned to the system."
    DEFVAL      { disable }
    ::= { alaVMSnoopingConfig 1 }

alaVMSnoopingPolicyMode OBJECT-TYPE
    SYNTAX      INTEGER {
                    basic (1),
                    advance (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "This object is used for configuring the policy lookup mode.
         Basic   : Default VM Policy mode where VXLAN UDP Port, VNI, 
                   inner source MAC and inner IPv4 address are
                   used for lookup.

         Advance : Advance VM Policy mode where VXLAN UDP Port, VNI and
                   inner IPv4 source address, IP protocol and 
                   L4 source and Dest port are used for policy lookup.

                   In Advance IPv6 mode VXLAN UDP Port, VNI, inner IPv6 source
                   address and L4 dest and source port are used for lookup."
    DEFVAL      { basic }
    ::= { alaVMSnoopingConfig 2 }

alaVMSnoopingPolicyResource OBJECT-TYPE
    SYNTAX      INTEGER {
                    default (1),
                    extended (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "This object is used for configuring the hardware resources 
         for VM Snooping application.
         default  : Specifies the default number of VM policies.
         extended : Doubles the number of VM Policies."
    DEFVAL      { default }
    ::= { alaVMSnoopingConfig 3 }

alaVMSnoopingVMTrafficTagged OBJECT-TYPE
    SYNTAX      INTEGER {
                    tagged (1),
                    untagged (2),
                    both (3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used for configuring the policy lookup for
         inner packet on either tagged or untagged traffic.
         In basic mode, the default header will be both as the system
         can handle untagged or tagged inner traffic.
         
         In Advance mode, system can handle tagged traffic by default. 
         User can configure to handle only untagged traffic as well. 
         In this mode simultaneously untagged and tagged inner traffic 
         can not be handled."
    ::= { alaVMSnoopingConfig 4 }

alaVMSnoopingTrapStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enable (1),
                    disable (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "enable or disable the trap on learning of a new Vlan Manager."
    DEFVAL      { disable }
    ::= { alaVMSnoopingConfig 5 }

alaVMSnoopingSamplingRate OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967296) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to globally set the packet per second 
         sampling rate per NI for the VM Snooping Ports."
    DEFVAL      { 1000 }
    ::= { alaVMSnoopingConfig 6 }

alaVMSnoopingAgingTimer OBJECT-TYPE
    SYNTAX      Integer32 (0..86400)   
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to globally set the VM Snooping VM aging time."
    DEFVAL      { 300 }
    ::= { alaVMSnoopingConfig 7 }

alaVMSnoopingFilteringResourceTrapThreshold OBJECT-TYPE
    SYNTAX      Integer32 (1..100)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used for configuring the trap threshold for
         utilization of reserved hardware resources."
    DEFVAL      { 80 }
    ::= { alaVMSnoopingConfig 8 }

alaVMSnoopingClearAllData OBJECT-TYPE
    SYNTAX      INTEGER {
                    globalStats (1),
                    hardwareStats (2),
                    database (3),
                    none (4)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "globalStats    : To clear hardware and sampling statistics.
         hardwareStats  : To clear only hardware statistics.
         database       : To clear database table.
         none           : no action."
         
    DEFVAL      { none }
    ::= { alaVMSnoopingConfig 9 }

alaVMSnoopingLoggingThresholdFlows OBJECT-TYPE
  SYNTAX        Integer32 (0 | 1000..600000)
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION  
      "The flows in the VM snooping DB are logged to 
       a csv file to maintain the packet flow history. 
       This object specifies the maximum flows that can
       be written to a file. If set 0, then logging of
       flow records to file disabled."
  DEFVAL       { 5000 }
  ::= { alaVMSnoopingConfig 10}

alaVMSnoopingQosAllocationStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    none (1),
                    inProgress (2),
                    success (3),
                    failed (4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of alaVMSnoopingQosAllocationStatus indicates the current
        status of the qos slice allocation when vm snooping is enabled.

        none:         VM snooping is not enabled yet.
        inProgress:   the QoS slice allocation is currently underway.
        success:      the QoS slice allocation is completed successfully.
        failed:       the QoS slice allocation failed."

    DEFVAL      { none }
    ::= { alaVMSnoopingConfig 11 }

------------------------------------------------------------
-- UDP Port Table  --
------------------------------------------------------------

alaVMSnoopingUdpPortTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingUdpPortEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION       
        "This table is used for configuring the user defined UDP port numbers
         for VXLAN."
    ::= { alaVMSnoopingMIBObjects 3 }

alaVMSnoopingUdpPortEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingUdpPortEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION              
        "VM snooping UDP port configuration entry."
    INDEX { alaVMSnoopingUdpPortIndex }
    ::= { alaVMSnoopingUdpPortTable 1 }

VMSnoopingUdpPortEntry  ::= SEQUENCE {
    alaVMSnoopingUdpPortIndex    Unsigned32,
    alaVMSnoopingUdpRowStatus    RowStatus
}

alaVMSnoopingUdpPortIndex   OBJECT-TYPE
    SYNTAX                Unsigned32
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION 
        "A unique index for this UDP port entry. When VM Snooping is enabled, 
        the default row with the UDP portIndex 4789 is created and this
        default row cannot be deleted. The maximum number of ports that
        can be created are 8 including the default port."
    ::= { alaVMSnoopingUdpPortEntry 1 }

alaVMSnoopingUdpRowStatus   OBJECT-TYPE
    SYNTAX                RowStatus
    MAX-ACCESS            read-create
    STATUS                current
    DESCRIPTION   
        "Used to create/delete the UDP ports according to the
         RowStatus convention."
    ::= { alaVMSnoopingUdpPortEntry 2 }

------------------------------------------------------------
-- Port Table  --
------------------------------------------------------------

alaVMSnoopingPortTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingPortEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A table containing VM Snooping port information."
    ::= { alaVMSnoopingMIBObjects 4 }

alaVMSnoopingPortEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingPortEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM snooping  port configuration entry."
    INDEX { alaVMSnoopingPortIndex }
    ::= { alaVMSnoopingPortTable 1 }

VMSnoopingPortEntry  ::= SEQUENCE {
    alaVMSnoopingPortIndex                 InterfaceIndex,
    alaVMSnoopingPortAdminStatus           INTEGER,
    alaVMSnoopingPortIsVNP                 INTEGER,
    alaVMSnoopingPortRowStatus             RowStatus,
    alaVMSnoopingPortDBClear               INTEGER,
    alaVMSnoopingPortSamplingClearStats    INTEGER
}

alaVMSnoopingPortIndex   OBJECT-TYPE
    SYNTAX                InterfaceIndex
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "The physical identification number for this port."
    ::= { alaVMSnoopingPortEntry 1 }

alaVMSnoopingPortAdminStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                    enable (1),
                    disable (2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates the admin status of the port. When enabled, the 
         packets based on VXLAN UDP Port will be processed."
    DEFVAL      { disable }
    ::= { alaVMSnoopingPortEntry 2 }

alaVMSnoopingPortIsVNP OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes (1),
                    no (2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether the port belongs to virtual network profile or not."
    DEFVAL      { no }
    ::= { alaVMSnoopingPortEntry 3 }

alaVMSnoopingPortRowStatus   OBJECT-TYPE
    SYNTAX                RowStatus
    MAX-ACCESS            read-create
    STATUS                current
    DESCRIPTION   
        "Used to create/delete the VM snooping ports according to the
         RowStatus convention."
    ::= { alaVMSnoopingPortEntry 4 }

alaVMSnoopingPortDBClear   OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes (1),
                    no (2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "yes : To flush per port database enteries.
         no  : no action."
    DEFVAL      { no }
    ::= { alaVMSnoopingPortEntry 5 }

alaVMSnoopingPortSamplingClearStats OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes (1),
                    no (2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "yes : To flush per port sampling statistics.
         no  : no action."
    DEFVAL      { no }
    ::= { alaVMSnoopingPortEntry 6 }

------------------------------------------------------------
-- Database Table  --
------------------------------------------------------------

alaVMSnoopingDBTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingDBEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A table containing VM Snooping Database information."
    ::= { alaVMSnoopingMIBObjects 5 }

alaVMSnoopingDBEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingDBEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM Snooping Database entry."
    INDEX { alaVMSnoopingDBFlowId }
    ::= { alaVMSnoopingDBTable 1 }

VMSnoopingDBEntry  ::= SEQUENCE {
    alaVMSnoopingDBFlowId                 Unsigned32,
    alaVMSnoopingDBIfIndex                InterfaceIndex,
    alaVMSnoopingDBVxlanUdpDestPort       Integer32,
    alaVMSnoopingDBVni                    Integer32,
    alaVMSnoopingDBVtepVlan               Integer32,
    alaVMSnoopingDBVtepSrcIpAddrType      InetAddressType,
    alaVMSnoopingDBVtepSrcIpAddr          InetAddress,
    alaVMSnoopingDBVtepDestIpAddrType     InetAddressType,
    alaVMSnoopingDBVtepDestIpAddr         InetAddress,
    alaVMSnoopingDBInnerSrcMacAddr        MacAddress,
    alaVMSnoopingDBInnerDestMacAddr       MacAddress,
    alaVMSnoopingDBInnerVlan              Integer32,
    alaVMSnoopingDBInnerSrcIpAddrType     InetAddressType,
    alaVMSnoopingDBInnerSrcIpAddr         InetAddress,
    alaVMSnoopingDBInnerDestIpAddrType    InetAddressType,
    alaVMSnoopingDBInnerDestIpAddr        InetAddress,
    alaVMSnoopingDBVInnerL4SrcPort        Integer32,
    alaVMSnoopingDBVInnerL4DestPort       Integer32,
    alaVMSnoopingDBVInnerIPProtocol       Integer32, 
    alaVMSnoopingDBPolicyRule             SnmpAdminString, 
    alaVMSnoopingDBPolicyList             SnmpAdminString,
    alaVMSnoopingDBSamplingStatsPackets   Counter64
}

alaVMSnoopingDBFlowId   OBJECT-TYPE
    SYNTAX                Unsigned32
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "The Flow identification number for the DB entry."
    ::= { alaVMSnoopingDBEntry 1 }

alaVMSnoopingDBIfIndex   OBJECT-TYPE
    SYNTAX                InterfaceIndex
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "The physical identification number for the port."
    ::= { alaVMSnoopingDBEntry 2 }

alaVMSnoopingDBVxlanUdpDestPort   OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN UDP destination port."
    ::= { alaVMSnoopingDBEntry 3 }

alaVMSnoopingDBVni  OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Network Indentifier."
    ::= { alaVMSnoopingDBEntry 4 }

alaVMSnoopingDBVtepVlan  OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Tunnel End Point Vlan."
    ::= { alaVMSnoopingDBEntry 5 }

alaVMSnoopingDBVtepSrcIpAddrType    OBJECT-TYPE
    SYNTAX        InetAddressType {
             ipv4 (1),
             ipv6 (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Tunnel End Point source IP address type."
    ::= { alaVMSnoopingDBEntry 6 }

alaVMSnoopingDBVtepSrcIpAddr     OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Tunnel End Point source IP address."
    ::= { alaVMSnoopingDBEntry 7 }

alaVMSnoopingDBVtepDestIpAddrType   OBJECT-TYPE
    SYNTAX        InetAddressType {
             ipv4 (1),
             ipv6 (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Tunnel End Point destination IP address type."
    ::= { alaVMSnoopingDBEntry 8 }

alaVMSnoopingDBVtepDestIpAddr     OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates VXLAN Tunnel End Point destination IP address."
    ::= { alaVMSnoopingDBEntry 9 }

alaVMSnoopingDBInnerSrcMacAddr   OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner source Mac address."
    ::= { alaVMSnoopingDBEntry 10 }

alaVMSnoopingDBInnerDestMacAddr   OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner destination Mac address."
    ::= { alaVMSnoopingDBEntry 11 }

alaVMSnoopingDBInnerVlan  OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner Vlan."
    ::= { alaVMSnoopingDBEntry 12 }

alaVMSnoopingDBInnerSrcIpAddrType  OBJECT-TYPE
    SYNTAX        InetAddressType {
             ipv4 (1),
             ipv6 (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner source IP address type."
    ::= { alaVMSnoopingDBEntry 13 }

alaVMSnoopingDBInnerSrcIpAddr    OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner source IP address."
    ::= { alaVMSnoopingDBEntry 14 }

alaVMSnoopingDBInnerDestIpAddrType    OBJECT-TYPE
    SYNTAX        InetAddressType {
             ipv4 (1),
             ipv6 (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner destination IP address type."
    ::= { alaVMSnoopingDBEntry 15 }

alaVMSnoopingDBInnerDestIpAddr     OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner destination IP address."
    ::= { alaVMSnoopingDBEntry 16 }

alaVMSnoopingDBVInnerL4SrcPort    OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner L4 source port."
    ::= { alaVMSnoopingDBEntry 17 }

alaVMSnoopingDBVInnerL4DestPort   OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner L4 destination port."
    ::= { alaVMSnoopingDBEntry 18 }

alaVMSnoopingDBVInnerIPProtocol OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates Inner IP protocol."
    ::= { alaVMSnoopingDBEntry 19 }

alaVMSnoopingDBPolicyRule  OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates policy rule."
    ::= { alaVMSnoopingDBEntry 20 }

alaVMSnoopingDBPolicyList OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Indicates policy list."
    ::= { alaVMSnoopingDBEntry 21 }

alaVMSnoopingDBSamplingStatsPackets   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Denotes sampled packets."
    ::= { alaVMSnoopingDBEntry 22 }

------------------------------------------------------------
-- Hardware Stats Table  --
------------------------------------------------------------

alaVMSnoopingHardwareStatsTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingHardwareStatsEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A table containing VM Snooping hardware statistics."
    ::= { alaVMSnoopingMIBObjects 6 }

alaVMSnoopingHardwareStatsEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingHardwareStatsEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM snooping hardware statistics entry."
    INDEX { 
        alaVMSnoopingHardwareStatsIndex 
    }
    ::= { alaVMSnoopingHardwareStatsTable 1 }

VMSnoopingHardwareStatsEntry  ::= SEQUENCE {
    alaVMSnoopingHardwareStatsIndex         Unsigned32,
    alaVMSnoopingHardwareStatsPolicylist    SnmpAdminString, 
    alaVMSnoopingHardwareStatsPolicyrule    SnmpAdminString,
    alaVMSnoopingHardwareStatsNumOfPackets  Counter64,
    alaVMSnoopingHardwareStatsNumOfBytes    Counter64
}

alaVMSnoopingHardwareStatsIndex   OBJECT-TYPE
    SYNTAX                Unsigned32   
    MAX-ACCESS            not-accessible   
    STATUS                current   
    DESCRIPTION   
        "Unique policy list Index to identify a row."   
    ::= { alaVMSnoopingHardwareStatsEntry 1 } 

alaVMSnoopingHardwareStatsPolicylist   OBJECT-TYPE
    SYNTAX                SnmpAdminString   (SIZE(1..32))
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "Unique policy list string to identify a row."
    ::= { alaVMSnoopingHardwareStatsEntry 2 }

alaVMSnoopingHardwareStatsPolicyrule  OBJECT-TYPE
    SYNTAX                SnmpAdminString   (SIZE(1..32))
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "Unique policy rule string to identify a row."
    ::= { alaVMSnoopingHardwareStatsEntry 3 }

alaVMSnoopingHardwareStatsNumOfPackets   OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Denotes number of packets in the hardware."
    ::= {alaVMSnoopingHardwareStatsEntry 4 }

alaVMSnoopingHardwareStatsNumOfBytes  OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Denotes number of bytes in the hardware."
    ::= {alaVMSnoopingHardwareStatsEntry 5 }

------------------------------------------------------------
-- Filtering Resource Table  --
------------------------------------------------------------

alaVMSnoopingFilterResourceTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingFilterResourceEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A table containing VM Snooping filtering resource information."
    ::= { alaVMSnoopingMIBObjects 7 }

alaVMSnoopingFilterResourceEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingFilterResourceEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM snooping filtering resource entry."
    INDEX { alaVMSnoopingFilterResourceChassisId,
            alaVMSnoopingFilterResourceSlotNum }
    ::= { alaVMSnoopingFilterResourceTable  1 }

VMSnoopingFilterResourceEntry  ::= SEQUENCE {
    alaVMSnoopingFilterResourceChassisId          Unsigned32,
    alaVMSnoopingFilterResourceSlotNum            Unsigned32,
    alaVMSnoopingFilterResourceMax                Integer32,
    alaVMSnoopingFilterResourceUsed               Integer32
}

alaVMSnoopingFilterResourceChassisId   OBJECT-TYPE
    SYNTAX                Unsigned32
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "Indicates Chassis ID."
    ::= { alaVMSnoopingFilterResourceEntry 1 }

alaVMSnoopingFilterResourceSlotNum   OBJECT-TYPE
    SYNTAX                Unsigned32
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "Indicates SlotNum."
    ::= { alaVMSnoopingFilterResourceEntry 2 }

alaVMSnoopingFilterResourceMax  OBJECT-TYPE
    SYNTAX      Integer32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the maximum filtering resources."
    ::= { alaVMSnoopingFilterResourceEntry 3 }

alaVMSnoopingFilterResourceUsed  OBJECT-TYPE
    SYNTAX      Integer32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates used filtering resources."
    ::= { alaVMSnoopingFilterResourceEntry 4 }

------------------------------------------------------------
-- Learnt Virtual Machines Table  --
------------------------------------------------------------

alaVMSnoopingLearntVMTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingLearntVMEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "This table contains information on virtual machines that are learnt."
    ::= { alaVMSnoopingMIBObjects 8 }

alaVMSnoopingLearntVMEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingLearntVMEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM snooping learnt VM entry."
    INDEX { alaVMSnoopingLearntVMIfIndex,
            alaVMSnoopingLearntVMSrcMac }
    ::= { alaVMSnoopingLearntVMTable  1 }

VMSnoopingLearntVMEntry  ::= SEQUENCE {
    alaVMSnoopingLearntVMIfIndex            InterfaceIndex,
    alaVMSnoopingLearntVMSrcMac             MacAddress,
    alaVMSnoopingLearntVMVlanId             Integer32             
}

alaVMSnoopingLearntVMIfIndex   OBJECT-TYPE
    SYNTAX                InterfaceIndex
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "The physical identification number for this port."
    ::= { alaVMSnoopingLearntVMEntry 1 }

alaVMSnoopingLearntVMSrcMac   OBJECT-TYPE
    SYNTAX                  MacAddress
    MAX-ACCESS              not-accessible 
    STATUS                  current
    DESCRIPTION
        "Indicates source mac address of the learnt VM."
    ::= { alaVMSnoopingLearntVMEntry 2 }

alaVMSnoopingLearntVMVlanId   OBJECT-TYPE
    SYNTAX                  Integer32
    MAX-ACCESS              read-only
    STATUS                  current
    DESCRIPTION
        "Indicates source mac address of the learnt VM."
    ::= { alaVMSnoopingLearntVMEntry 3 }


------------------------------------------------------------
--  Static Policy Table  --
------------------------------------------------------------

alaVMSnoopingStaticPolicyTable  OBJECT-TYPE
    SYNTAX                SEQUENCE OF VMSnoopingStaticPolicyEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "This table is used for creating static policy rules for 
         for Vm-Snooping."
    ::= { alaVMSnoopingMIBObjects 9 }

alaVMSnoopingStaticPolicyEntry  OBJECT-TYPE
    SYNTAX                VMSnoopingStaticPolicyEntry
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "VM snooping Static Policy configuration entry."
    INDEX { alaVMSnoopingStaticPolicyRuleName,
            alaVMSnoopingStaticPolicyListName}
    ::= { alaVMSnoopingStaticPolicyTable 1 }

VMSnoopingStaticPolicyEntry  ::= SEQUENCE {
    alaVMSnoopingStaticPolicyRuleName      SnmpAdminString,
    alaVMSnoopingStaticPolicyListName      SnmpAdminString,
    alaVMSnoopingStaticPolicyRowStatus     RowStatus
}

alaVMSnoopingStaticPolicyRuleName   OBJECT-TYPE
    SYNTAX                SnmpAdminString (SIZE(1..32))
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A unique index for configuring static policy rule for VM-Snooping."
    ::= { alaVMSnoopingStaticPolicyEntry 1 }

alaVMSnoopingStaticPolicyListName   OBJECT-TYPE
    SYNTAX                SnmpAdminString (SIZE(1..32))
    MAX-ACCESS            not-accessible
    STATUS                current
    DESCRIPTION
        "A unique index for configuring static policy list for VM-Snooping."
    ::= { alaVMSnoopingStaticPolicyEntry 2 }

alaVMSnoopingStaticPolicyRowStatus    OBJECT-TYPE
    SYNTAX                RowStatus
    MAX-ACCESS            read-create
    STATUS                current
    DESCRIPTION
        "Used to create/delete the static policies according to the
         RowStatus convention."
    ::= { alaVMSnoopingStaticPolicyEntry 3 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-- trap description
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingVMLearntAlert NOTIFICATION-TYPE
    OBJECTS  {
        alaVMSnoopingLearnedMacAddress,
        alaVMSnoopingLearnedVxlanUdpPort,
        alaVMSnoopingLearnedVxlanVni
    }
    STATUS        current
    DESCRIPTION
        "This trap is sent when a new Virtual Machine is learnt by the system."
    ::= { alaVMSnoopingMIBNotifications 1 }

alaVMSnoopingVMRemovedAlert NOTIFICATION-TYPE
    OBJECTS  {
        alaVMSnoopingLearnedMacAddress
    }
    STATUS        current
    DESCRIPTION
        "This trap is sent when Virtual Machine entry ages out or its removed from the database."
    ::= { alaVMSnoopingMIBNotifications 2 }

alaVMSnoopingReservedHwResourceLimitAlert NOTIFICATION-TYPE
    OBJECTS  {
        alaVMSnoopingChassisId,
        alaVMSnoopingNiSlot,
        alaVMSnoopingHwResourceTotal,
        alaVMSnoopingHwResourceUsed
    }
    STATUS        current
    DESCRIPTION
        "This trap is sent when the reserved hardware resource reaches a cut-off limit."
    ::= { alaVMSnoopingMIBNotifications 3 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-- Compliance
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingMIBCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for VM Snooping."
    MODULE
        MANDATORY-GROUPS {
            alaVMSnoopingConfigGroup,
            alaVMSnoopingUdpPortGroup,
            alaVMSnoopingPortGroup,
            alaVMSnoopingDBGroup,
            alaVMSnoopingHardwareStatsGroup,
            alaVMSnoopingFilterResourceGroup,
            alaVMSnoopingNotificationGroup,
            alaVMSnoopingTrapsObjGroup,
            alaVMSnoopingLearntVMGroup,
            alaVMSnoopingStaticPolicyGroup
        }
    ::= { alaVMSnoopingMIBCompliances 1 }

-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-- Units of Conformance
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

alaVMSnoopingConfigGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingAdminStatus,
        alaVMSnoopingPolicyMode,
        alaVMSnoopingPolicyResource,
        alaVMSnoopingVMTrafficTagged,
        alaVMSnoopingTrapStatus,
        alaVMSnoopingSamplingRate,
        alaVMSnoopingAgingTimer,
        alaVMSnoopingFilteringResourceTrapThreshold,
        alaVMSnoopingClearAllData,
        alaVMSnoopingLoggingThresholdFlows,
        alaVMSnoopingQosAllocationStatus
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for global configuration for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 1 }

alaVMSnoopingUdpPortGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingUdpRowStatus
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for UDP port for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 2 }

alaVMSnoopingPortGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingPortAdminStatus,
        alaVMSnoopingPortIsVNP,
        alaVMSnoopingPortRowStatus,
        alaVMSnoopingPortDBClear,
        alaVMSnoopingPortSamplingClearStats
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for Port table for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 3 }

alaVMSnoopingDBGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingDBIfIndex,
        alaVMSnoopingDBVxlanUdpDestPort,
        alaVMSnoopingDBVni,
        alaVMSnoopingDBVtepVlan,
        alaVMSnoopingDBVtepSrcIpAddrType,
        alaVMSnoopingDBVtepSrcIpAddr,
        alaVMSnoopingDBVtepDestIpAddrType,
        alaVMSnoopingDBVtepDestIpAddr,
        alaVMSnoopingDBInnerSrcMacAddr,
        alaVMSnoopingDBInnerDestMacAddr,
        alaVMSnoopingDBInnerVlan,
        alaVMSnoopingDBInnerSrcIpAddrType,
        alaVMSnoopingDBInnerSrcIpAddr,
        alaVMSnoopingDBInnerDestIpAddrType,
        alaVMSnoopingDBInnerDestIpAddr,
        alaVMSnoopingDBVInnerL4SrcPort,
        alaVMSnoopingDBVInnerL4DestPort,
        alaVMSnoopingDBVInnerIPProtocol,
        alaVMSnoopingDBPolicyRule,
        alaVMSnoopingDBPolicyList,
        alaVMSnoopingDBSamplingStatsPackets
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for Database table for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 4 }

alaVMSnoopingHardwareStatsGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingHardwareStatsPolicylist, 
        alaVMSnoopingHardwareStatsPolicyrule,
        alaVMSnoopingHardwareStatsNumOfPackets,
        alaVMSnoopingHardwareStatsNumOfBytes
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for hardware statistics for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 5 }

alaVMSnoopingFilterResourceGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingFilterResourceMax,
        alaVMSnoopingFilterResourceUsed
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for filtering resources for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 6 }

alaVMSnoopingNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        alaVMSnoopingVMLearntAlert,
        alaVMSnoopingVMRemovedAlert,
        alaVMSnoopingReservedHwResourceLimitAlert
    }
    STATUS  current
    DESCRIPTION
        "Collection of notifications for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 7 }

alaVMSnoopingTrapsObjGroup   OBJECT-GROUP
    OBJECTS   {
        alaVMSnoopingLearnedMacAddress,
        alaVMSnoopingLearnedVxlanUdpPort,
        alaVMSnoopingLearnedVxlanVni,
        alaVMSnoopingChassisId,
        alaVMSnoopingNiSlot,
        alaVMSnoopingHwResourceTotal,
        alaVMSnoopingHwResourceUsed
    }
    STATUS  current
    DESCRIPTION
        "Collection of notificating objects for VM Snooping."
    ::= { alaVMSnoopingMIBGroups 8 }

alaVMSnoopingLearntVMGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingLearntVMVlanId
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for VM Snooping Learnt VMs."
    ::= { alaVMSnoopingMIBGroups 9 }

alaVMSnoopingStaticPolicyGroup     OBJECT-GROUP
    OBJECTS  {
        alaVMSnoopingStaticPolicyRowStatus
    }
    STATUS            current
    DESCRIPTION
        "Collection of objects for VM Snooping Static Policies."
    ::= { alaVMSnoopingMIBGroups 10 }

END
