HM2-PLATFORM-SWITCHING-MIB DEFINITIONS ::= BEGIN

-- 
-- ***********************************************************
-- Hirschmann Platform Switching MIB
-- ***********************************************************
--

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE, OBJECT-IDENTITY, 
    IpAddress, Integer32, Unsigned32, Counter32,
    Gauge32, TimeTicks
                                        FROM SNMPv2-SMI
    RowStatus, TruthValue, MacAddress,
    TEXTUAL-CONVENTION, DisplayString,
	DateAndTime
                                        FROM SNMPv2-TC
    dot1dBasePortEntry					FROM BRIDGE-MIB
	dot1dPortGmrpEntry					FROM P-BRIDGE-MIB
    VlanId,VlanIndex,dot1qVlanIndex,
    dot1qFdbId, PortList, 
    dot1qPortVlanEntry,
	VlanIdOrNone
                                        FROM Q-BRIDGE-MIB
    InterfaceIndexOrZero,                                    
    InterfaceIndex, ifIndex             FROM IF-MIB
    InetAddressType, InetAddress        FROM INET-ADDRESS-MIB
	hm2PlatformMibs, HmEnabledStatus	FROM HM2-TC-MIB;
	
hm2PlatformSwitching MODULE-IDENTITY
	LAST-UPDATED "201104120000Z" -- April 12, 2011
   	ORGANIZATION "Hirschmann Automation and Control GmbH"
    CONTACT-INFO
        "Postal:     Stuttgarter Str. 45-51
                     72654 Neckartenzlingen
                     Germany
         Phone:      +49 7127 140
         E-mail:     hac.support@belden.com"
   	DESCRIPTION
    		 "The Hirschmann Private Platform2 MIB for Layer2 Switching.
              Copyright (C) 2011. All Rights Reserved."
   	REVISION 
		     "201104120000Z" -- April 12, 2011
   	DESCRIPTION
        	 "Initial version."
    ::= { hm2PlatformMibs 1 }

Hm2AgentPortMask ::= TEXTUAL-CONVENTION
   STATUS  current
   DESCRIPTION
       "Each octet within this value specifies a set of eight
        ports, with the first octet specifying ports 1 through
        8, the second octet specifying ports 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered port, and the least significant bit
        represents the highest numbered port.  Thus, each port
        of the bridge is represented by a single bit within the
        value of this object.  If that bit has a value of '1'
        then that port is included in the set of ports, the port
        is not included if its bit has a value of '0'.
             
        When setting this value, the system will ignore 
        configuration for ports not between the first and last 
        valid ports.  Configuration of any port numbers between 
        this range that are not valid ports return a failure 
        message, but will still apply configuration for valid 
        ports."
   SYNTAX  OCTET STRING
		           
LagList ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        LAGs, with the first octet specifying LAG 1 through
        8, the second octet specifying LAG 9 through 16, etc.
        Within each octet, the most significant bit represents
        LAG1, and the least significant bit represents LAGn.
        Thus, each LAG of the bridge is represented by a single
        bit within the value of this object.  If that bit has 
        a value of '1' then that LAG is configured; the LAG
        is not configured if its bit has a value of '0'."
    SYNTAX      OCTET STRING
    
VlanList ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        vlans, with the first octet specifying vlans 1 through
        8, the second octet specifying vlans 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered vlan, and the least significant bit
        represents the highest numbered vlan.  Thus, each vlan
        supported is represented by a single bit within the
        value of this object.  If that bit has a value of '1'
        then the associated port is in that VLAN, the port is
        not included if the vlans bit has a value of '0'."
    SYNTAX      OCTET STRING



   Ipv6Address ::= TEXTUAL-CONVENTION
             DISPLAY-HINT "2x:"
             STATUS       current
             DESCRIPTION
               "This data type is used to model IPv6 addresses.
                This is a binary string of 16 octets in network
                byte order."
             SYNTAX       OCTET STRING (SIZE (16))

        Ipv6AddressPrefix ::= TEXTUAL-CONVENTION
             DISPLAY-HINT "2x:"
             STATUS       current
             DESCRIPTION
               "This data type is used to model IPv6 address
               prefixes. This is a binary string of up to 16
               octets in network byte order."
             SYNTAX       OCTET STRING (SIZE (0..16))

        Ipv6AddressIfIdentifier ::= TEXTUAL-CONVENTION
             DISPLAY-HINT "2x:"
             STATUS       current
             DESCRIPTION
               "This data type is used to model IPv6 address
               interface identifiers. This is a binary string
                of up to 8 octets in network byte order."
             SYNTAX      OCTET STRING (SIZE (0..8))

    Ipv6IfIndex ::= TEXTUAL-CONVENTION
             DISPLAY-HINT "d"
             STATUS       current
             DESCRIPTION
               "A unique value, greater than zero for each
               internetwork layer interface in the managed
               system. It is recommended that values are assigned
               contiguously starting from 1. The value for each
               internetwork layer interface must remain constant
               at least from one reinitialization of the entity's
               network management system to the next
               reinitialization."
             SYNTAX       Integer32 (1..2147483647)

    Ipv6IfIndexOrZero ::= TEXTUAL-CONVENTION
             DISPLAY-HINT "d"
             STATUS       current
             DESCRIPTION
                 "This textual convention is an extension of the
                 Ipv6IfIndex convention.  The latter defines
                 a greater than zero value used to identify an IPv6
                 interface in the managed system.  This extension
                 permits the additional value of zero.  The value
                 zero is object specific and must therefore be
                 defined as part of the description of any object
                 which uses this syntax.  Examples of the usage of
                 zero might include situations where the interface was
                 unknown, or when none or all interfaces need to be
                 referenced."
             SYNTAX       Integer32 (0..2147483647)


   --**************************************************************************************
   -- hm2AgentConfigGroup
   --**************************************************************************************

    hm2AgentConfigGroup                           OBJECT IDENTIFIER ::= { hm2PlatformSwitching 2 }

    --**************************************************************************************

    --**************************************************************************************
    -- hm2AgentLagConfigGroup
    --
    --**************************************************************************************
    hm2AgentLagConfigGroup                 OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 2 }

    hm2AgentLagConfigCreate OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0|1..15))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Agent LAG Create.
                     When this object is set with a non-empty string with the format lag/<port>, 
                     a new LAG will be created if possible, with the entered string as its
                     index.
                     Get operation on this MIB object returns a null-value, as
                     for the purpose of viewing the LAG index and details, the user should
                     perform the traversal of hm2AgentLagSummaryConfigTable. For
                     this reason the get operation on this object
                     hm2AgentLagConfigCreate becomes insignificant.
"
         ::= { hm2AgentLagConfigGroup 1 }

    hm2AgentLagSummaryConfigTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentLagSummaryConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A summary table of the switch's LAG config entries"
         ::= { hm2AgentLagConfigGroup 2 }

    hm2AgentLagSummaryConfigEntry OBJECT-TYPE
         SYNTAX      Hm2AgentLagSummaryConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's LAG config entry"
         INDEX       { hm2AgentLagSummaryLagIndex }
         ::= { hm2AgentLagSummaryConfigTable 1 }

    Hm2AgentLagSummaryConfigEntry ::= SEQUENCE {
             hm2AgentLagSummaryLagIndex
                 Integer32,
             hm2AgentLagSummaryName
                 DisplayString,
             hm2AgentLagSummaryFlushTimer
                 Integer32,
             hm2AgentLagSummaryLinkTrap
                 INTEGER,
             hm2AgentLagSummaryAdminMode
                 HmEnabledStatus,
             hm2AgentLagSummaryStpMode
                 HmEnabledStatus,
             hm2AgentLagSummaryAddPort
                 Integer32,
             hm2AgentLagSummaryDeletePort
                 Integer32,
             hm2AgentLagSummaryStatus
                 RowStatus,
             hm2AgentLagSummaryType
                 INTEGER,
             hm2AgentLagSummaryStaticCapability
                 HmEnabledStatus,
             hm2AgentLagSummaryHashOption
                 INTEGER,
             hm2AgentLagSummaryMinimumActiveLinks
                 Integer32,
             hm2AgentLagSummaryMaxFrameSizeLimit
	             Integer32,       
             hm2AgentLagSummaryMaxFrameSize
	             Integer32
           }

    hm2AgentLagSummaryLagIndex OBJECT-TYPE
         SYNTAX      Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Agent LAG IfIndex.

                     This value corresponds with the LAG interface in the ifTable."
         ::= { hm2AgentLagSummaryConfigEntry 1 }

    hm2AgentLagSummaryName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..15))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG Name.

                     The associated name of the LAG used during creation."
         ::= { hm2AgentLagSummaryConfigEntry 2 }

    hm2AgentLagSummaryFlushTimer OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Agent LAG FlushTimer."
         ::= { hm2AgentLagSummaryConfigEntry 3 }

    hm2AgentLagSummaryLinkTrap OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG LinkTrap.

                     Configures sending Link Up/Down traps when the LAG interface goes Up or Down."
         ::= { hm2AgentLagSummaryConfigEntry 4 }

    hm2AgentLagSummaryAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus 
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG AdminMode.

                     Administratively enables or disables this LAG interface."
         ::= { hm2AgentLagSummaryConfigEntry 5 }

    hm2AgentLagSummaryStpMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus 
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG StpMode

                     Administratively enables or disables STP on this interface."
         ::= { hm2AgentLagSummaryConfigEntry 6 }

    hm2AgentLagSummaryAddPort OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG AddPort.

                     Set to a non 0 value to add a port to the LAG.  Values correspond to
                     ifIndex values in the ifTable.

                     Note: agentPortType for the port to be added must be full duplex
                     and the same speed as previously added port(s), if any."
         ::= { hm2AgentLagSummaryConfigEntry 7 }

    hm2AgentLagSummaryDeletePort OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG DeletePort.

                     Set to a non 0 value to remove a port from the LAG.  Values correspond to
                     ifIndex values in the ifTable."
         ::= { hm2AgentLagSummaryConfigEntry 8 }

    hm2AgentLagSummaryStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG Status.

                     active(1)  - This LAG is enabled.
                     destroy(6) - Set to this value to remove the LAG."
         ::= { hm2AgentLagSummaryConfigEntry 9 }

    hm2AgentLagSummaryType OBJECT-TYPE
         SYNTAX      INTEGER {
                     static(1),
                     dynamic(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Agent LAG Type.

                     static(1)  - This LAG is staticly maintained.
                     dynamic(2) - This LAG is dynamicly maintained."
         ::= { hm2AgentLagSummaryConfigEntry 10 }

    hm2AgentLagSummaryStaticCapability OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Agent LAG Static Capability

                     enable(1) - Static capability is enabled for this LAG interface
                     disable(2) - Static capability is disabled for this LAG interface"
         DEFVAL { disable }
         ::= { hm2AgentLagSummaryConfigEntry 11 }

    hm2AgentLagSummaryHashOption OBJECT-TYPE
         SYNTAX      INTEGER {
					      sourceMacVlan(1),
						  destMacVlan(2),
						  sourceDestMacVlan(3),
						  sourceIPsourcePort(4),
						  destIPdestPort(5),
						  sourceDestIPPort(6),
						  enhanced(7)
					    }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "LAG Hashing Option.

                       Valid values correspond to

                      1 (=Source MAC, VLAN, EtherType, and incoming port
                             associated with the packet)
                      2 (=Destination MAC, VLAN, EtherType, and incoming port
                             associated with the packet)
                      3 (=Source/Destination MAC, VLAN, EtherType, and incoming
                             port associated with the packet)
                      4 (=Source IP and Source TCP/UDP fields of the packet)
                      5 (=Destination IP and Destination TCP/UDP Port fields
                             of the packet)
                      6 (=Source/Destination IP and source/destination TCP/UDP
                             Port fields of the packet)
                      7 (=Enhanced hashing mode)

                      Support for particular options may vary by device."
         ::= { hm2AgentLagSummaryConfigEntry 12 }

     hm2AgentLagSummaryMinimumActiveLinks OBJECT-TYPE
         SYNTAX      Integer32 (1..8)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     " Agent LAG Threshold.
                     This configures the threshold(i.e minimum number of active ports)
                     value for trunk port ."

         DEFVAL { 1 }
         ::= { hm2AgentLagSummaryConfigEntry 13 }
         
     hm2AgentLagSummaryMaxFrameSizeLimit OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This object identifies the largest value that can be
                     configured for hm2AgentLagSummaryMaxFrameSize."

         ::= { hm2AgentLagSummaryConfigEntry 248 }
         
     hm2AgentLagSummaryMaxFrameSize OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "This object identifies the currently configured maximum frame size
                     value for this port. The maximum value that this object can be set
                     to is the value of hm2AgentLagSummaryMaxFrameSizeLimit.  For Ethernet ports
                     which support 802.1Q vlan tagging, the minimum value that this object
                     can be set to is 1522"

         ::= { hm2AgentLagSummaryConfigEntry 249 }

    --**************************************************************************************

    hm2AgentLagDetailedConfigTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentLagDetailedConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A detailed table of the switch's LAG config entries"
         ::= { hm2AgentLagConfigGroup 3 }

    hm2AgentLagDetailedConfigEntry OBJECT-TYPE
         SYNTAX      Hm2AgentLagDetailedConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's LAG config entry"
         INDEX       { hm2AgentLagDetailedLagIndex, hm2AgentLagDetailedIfIndex }
         ::= { hm2AgentLagDetailedConfigTable 1 }

    Hm2AgentLagDetailedConfigEntry ::= SEQUENCE {
             hm2AgentLagDetailedLagIndex
                 Integer32,
             hm2AgentLagDetailedIfIndex
                 Integer32,
             hm2AgentLagDetailedPortSpeed
                 OBJECT IDENTIFIER,
             hm2AgentLagDetailedPortStatus
                 INTEGER
             }

    hm2AgentLagDetailedLagIndex OBJECT-TYPE
         SYNTAX      Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "LAG index"
         ::= { hm2AgentLagDetailedConfigEntry 1 }

    hm2AgentLagDetailedIfIndex OBJECT-TYPE
         SYNTAX      Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "LAG port index"
         ::= { hm2AgentLagDetailedConfigEntry 2 }

    hm2AgentLagDetailedPortSpeed OBJECT-TYPE
         SYNTAX      OBJECT IDENTIFIER
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "LAG port speed.  See agentPortType for a description and list
                      of valid values."
         ::= { hm2AgentLagDetailedConfigEntry 3 }

    hm2AgentLagDetailedPortStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                     active(1),
                     inactive(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "LAG port status.

                     active(1)   - Actively participating in the LAG.
                     inactive(2) - Not participating in the LAG."
         ::= { hm2AgentLagDetailedConfigEntry 4 }

    --**************************************************************************************

    hm2AgentLagConfigStaticCapability OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      obsolete
         DESCRIPTION
                     "Agent LAG Static Capability.
                     Configures whether Static LAGs are supported on this device."
         ::= { hm2AgentLagConfigGroup 4 }
    hm2AgentLagConfigGroupHashOption OBJECT-TYPE
         SYNTAX      INTEGER {
					      sourceMacVlan(1),
						  destMacVlan(2),
						  sourceDestMacVlan(3),
						  sourceIPsourcePort(4),
						  destIPdestPort(5),
						  sourceDestIPPort(6),
						  enhanced(7)
					    }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "LAG Hashing Option.

                       Valid values correspond to

                      1 (=Source MAC, VLAN, EtherType, and incoming port
                             associated with the packet)
                      2 (=Destination MAC, VLAN, EtherType, and incoming port
                             associated with the packet)
                      3 (=Source/Destination MAC, VLAN, EtherType, and incoming
                             port associated with the packet)
                      4 (=Source IP and Source TCP/UDP fields of the packet)
                      5 (=Destination IP and Destination TCP/UDP Port fields
                             of the packet)
                      6 (=Source/Destination IP and source/destination TCP/UDP
                             Port fields of the packet)
                      7 (=Enhanced hashing mode)

                      Support for particular options may vary by device."
         ::= { hm2AgentLagConfigGroup 5 }

	 hm2AgentLagConfigGroupMaxNumPortsPerLag OBJECT-TYPE
		  SYNTAX      Unsigned32
		  MAX-ACCESS  read-only
		  STATUS      current
		  DESCRIPTION
					  "The maximum number of ports per LAG supported on this device."
		  ::= { hm2AgentLagConfigGroup 248 }

    hm2AgentLagConfigGroupMaxNumOfLags OBJECT-TYPE
		  SYNTAX      Unsigned32
		  MAX-ACCESS  read-only
		  STATUS      current
		  DESCRIPTION
					  "The maximum number of LAGs this device supports."
		  ::= { hm2AgentLagConfigGroup 249 }
		  
    hm2AgentLagConfigGroupNumOfLagsConfigured OBJECT-TYPE
		  SYNTAX      Unsigned32
		  MAX-ACCESS  read-only
		  STATUS      current
		  DESCRIPTION
					  "The number of LAGs currently configured on this device."
		  ::= { hm2AgentLagConfigGroup 250 }
    
    hm2AgentLagConfigGroupLagsConfigured OBJECT-TYPE
		  SYNTAX      LagList
		  MAX-ACCESS  read-only
		  STATUS      current
		  DESCRIPTION
					  "The LAGs currently configured on the device."
		  ::= { hm2AgentLagConfigGroup 251 }
		 
    hm2AgentLagConfigSNMPExtensionGroup   OBJECT IDENTIFIER ::= { hm2AgentLagConfigGroup 260 }
    
	hm2AgentLagConfigGroupPortIsLagMemberErrorReturn OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Indicates that the port is unavailable for current setting because it is a LAG member."
         ::= { hm2AgentLagConfigSNMPExtensionGroup 1 }

    hm2AgentLagMirrorProbePortLagMemberErrorReturn OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "The port cannot be added because it is already a probe port."
         ::= { hm2AgentLagConfigSNMPExtensionGroup 2 }

    hm2AgentLagMirrorPrivateVLANLagMemberErrorReturn OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "A port which is member of a private VLAN cannot be assigned to the LAG interface."
         ::= { hm2AgentLagConfigSNMPExtensionGroup 3 }

    hm2AgentLagMirrorRCPLagMemberErrorReturn OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "A port which is used in RCP cannot be assigned to the LAG interface."
         ::= { hm2AgentLagConfigSNMPExtensionGroup 4 }

    hm2AgentLagMirrorLagAddPortMemberErrorReturn OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "The port cannot be assigned to the LAG interface because the port takes part in a port mirroring."
         ::= { hm2AgentLagConfigSNMPExtensionGroup 5 }

    --**************************************************************************************
    -- hm2AgentSwitchConfigGroup
    --**************************************************************************************

    hm2AgentSwitchConfigGroup                      OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 8 }

    hm2AgentSwitchAddressAgingTimeoutTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchAddressAgingTimeoutEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The switch's address aging timeout table"
         ::= { hm2AgentSwitchConfigGroup 4 }

    hm2AgentSwitchAddressAgingTimeoutEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchAddressAgingTimeoutEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Aging information about a specific Filtering Database."
         INDEX       { dot1qFdbId }
         ::= { hm2AgentSwitchAddressAgingTimeoutTable 1 }

    Hm2AgentSwitchAddressAgingTimeoutEntry ::=
         SEQUENCE {
             hm2AgentSwitchAddressAgingTimeout
                 Integer32
         }

    hm2AgentSwitchAddressAgingTimeout OBJECT-TYPE
         SYNTAX   Integer32 (10..500000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The FDB entry's address aging timeout (in seconds)"
         DEFVAL { 30 }
         ::= { hm2AgentSwitchAddressAgingTimeoutEntry 1 }

    --**************************************************************************************

    hm2AgentSwitchStaticMacFilteringTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchStaticMacFilteringEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The switch's static Mac filtering table"
         ::= { hm2AgentSwitchConfigGroup 5 }

    hm2AgentSwitchStaticMacFilteringEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchStaticMacFilteringEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Per port ingress/egress filter configuration based on VLAN Id and MAC address."
         INDEX       { hm2AgentSwitchStaticMacFilteringVlanId, hm2AgentSwitchStaticMacFilteringAddress }
         ::= { hm2AgentSwitchStaticMacFilteringTable 1 }

    Hm2AgentSwitchStaticMacFilteringEntry ::=
         SEQUENCE {
             hm2AgentSwitchStaticMacFilteringVlanId
                 Integer32,
             hm2AgentSwitchStaticMacFilteringAddress
                 MacAddress,
             hm2AgentSwitchStaticMacFilteringSourcePortMask
                 Hm2AgentPortMask,
             hm2AgentSwitchStaticMacFilteringDestPortMask
                 Hm2AgentPortMask,
             hm2AgentSwitchStaticMacFilteringStatus
                 RowStatus
         }

    hm2AgentSwitchStaticMacFilteringVlanId OBJECT-TYPE
         SYNTAX   Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Static MAC Filter Vlan Id"
         ::= { hm2AgentSwitchStaticMacFilteringEntry 1 }

    hm2AgentSwitchStaticMacFilteringAddress OBJECT-TYPE
         SYNTAX   MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Static MAC Filter MAC address"
         ::= { hm2AgentSwitchStaticMacFilteringEntry 2 }

    hm2AgentSwitchStaticMacFilteringSourcePortMask OBJECT-TYPE
         SYNTAX   Hm2AgentPortMask
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The Static MAC Filter source port mask.

                     When setting this value, the system will ignore configuration for ports not
                     between the first and last valid ports.  Configuration of any port numbers
                     between this range that are not valid ports return a failure message, but will
                     still apply configuration for valid ports.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table."

         ::= { hm2AgentSwitchStaticMacFilteringEntry 3 }

    hm2AgentSwitchStaticMacFilteringDestPortMask OBJECT-TYPE
         SYNTAX   Hm2AgentPortMask
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The Static MAC Filter destination port mask.

                     When setting this value, the system will ignore configuration for ports not
                     between the first and last valid ports.  Configuration of any port numbers
                     between this range that are not valid ports return a failure message, but will
                     still apply configuration for valid ports.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table.

                     Configuring destination port mask for a unicast MAC filter is not supported on some platforms."
         ::= { hm2AgentSwitchStaticMacFilteringEntry 4 }

    hm2AgentSwitchStaticMacFilteringStatus OBJECT-TYPE
         SYNTAX   RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The Static MAC Filter status.

                     Supported values:
                     active(1)      - valid entry
                     createAndGo(4) - used to create a new entry
                     destroy(6)     - removes the entry"
         ::= { hm2AgentSwitchStaticMacFilteringEntry 5 }


    --**************************************************************************************
    -- hm2AgentSwitchSNMPExtensionGroup - SNMP Extension Group
    --**************************************************************************************

    hm2AgentSwitchConfigSNMPExtensionGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 260 }

    hm2AgentSwitchConfigMacAddressNotAllowed OBJECT-IDENTITY
          STATUS      current
          DESCRIPTION "Indicates that the mac-address contains a value which is not allowed
                       in the configuration."
          ::= { hm2AgentSwitchConfigSNMPExtensionGroup 1 }

    hm2AgentSwitchConfigPortInvalid OBJECT-IDENTITY
          STATUS      current
          DESCRIPTION "Indicates that the port number/mask contains an invalid value."
          ::= { hm2AgentSwitchConfigSNMPExtensionGroup 2 }

    --**************************************************************************************
    -- hm2AgentSwitchSnoopingGroup
    --**************************************************************************************

    hm2AgentSwitchSnoopingGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 6 }


    hm2AgentSwitchSnoopingCfgTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchSnoopingCfgEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IGMP/MLD Snooping Global configuration entries."
         ::= { hm2AgentSwitchSnoopingGroup 1 }

    hm2AgentSwitchSnoopingCfgEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchSnoopingCfgEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for Snooping switch Configuration."
         INDEX       { hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchSnoopingCfgTable 1 }

   Hm2AgentSwitchSnoopingCfgEntry ::= SEQUENCE {
           hm2AgentSwitchSnoopingProtocol
              InetAddressType,
           hm2AgentSwitchSnoopingAdminMode
              HmEnabledStatus,
           hm2AgentSwitchSnoopingPortMask
              Hm2AgentPortMask,
           hm2AgentSwitchSnoopingMulticastControlFramesProcessed
              Counter32
          }

   hm2AgentSwitchSnoopingProtocol OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The protocol type of network protocol in use."
         ::= { hm2AgentSwitchSnoopingCfgEntry 1 }

    hm2AgentSwitchSnoopingAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables Snooping on the system. "
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingCfgEntry 2 }

    hm2AgentSwitchSnoopingPortMask OBJECT-TYPE
         SYNTAX      Hm2AgentPortMask
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "IGMP/MLD Snooping Port Mask.

                     This allows configuration of IGMP/MLD Snooping on selected ports.
                     IGMP/MLD Snooping cannot be enabled on an interface that has routing
                     enabled, or is a member of a LAG.  If a port which has IGMP/MLD Snooping
                     enabled becomes enabled for routing, or is enlisted as a member of a
                     LAG, IGMP/MLD Snooping functionality will be disabled on that port.  IGMP/MLD
                     Snooping functionality will be subsequently be reenabled if routing is
                     disabled or LAG membership is removed from an interface that had previously
                     had IGMP/MLD Snooping enabled.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table."
         DEFVAL { '000000000000'H }
         ::= { hm2AgentSwitchSnoopingCfgEntry 3 }

    hm2AgentSwitchSnoopingMulticastControlFramesProcessed OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Multicast Control Frames Processed by CPU.
                     The number of multicast control frames that have been processed by the CPU."
         ::= { hm2AgentSwitchSnoopingCfgEntry 4 }

    --**************************************************************************************
    -- hm2AgentSwitchSnoopingIntfGroup
    --**************************************************************************************

    hm2AgentSwitchSnoopingIntfGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 7 }

    hm2AgentSwitchSnoopingIntfTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchSnoopingIntfEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IGMP/MLD Snooping Interface configuration entries."
         ::= { hm2AgentSwitchSnoopingIntfGroup 1 }

    hm2AgentSwitchSnoopingIntfEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchSnoopingIntfEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a IGMP/MLD Snooping Interface."
         INDEX       { ifIndex, hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchSnoopingIntfTable 1 }

   Hm2AgentSwitchSnoopingIntfEntry ::= SEQUENCE {
          hm2AgentSwitchSnoopingIntfIndex
              Unsigned32,
          hm2AgentSwitchSnoopingIntfAdminMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingIntfGroupMembershipInterval
              Integer32,
          hm2AgentSwitchSnoopingIntfMaxResponseTime
              Integer32,
          hm2AgentSwitchSnoopingIntfMRPExpirationTime
              Integer32,
          hm2AgentSwitchSnoopingIntfFastLeaveAdminMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingIntfMulticastRouterMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingIntfVlanIDs
              VlanList
          }

   hm2AgentSwitchSnoopingIntfIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..65535)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The port number to be selected. Each port maps to an interface."
         ::= { hm2AgentSwitchSnoopingIntfEntry 1 }

   hm2AgentSwitchSnoopingIntfAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD Snooping on a selected interface."
         DEFVAL { enable }
         ::= { hm2AgentSwitchSnoopingIntfEntry 2 }

    hm2AgentSwitchSnoopingIntfGroupMembershipInterval OBJECT-TYPE
         SYNTAX      Integer32 (2..3600)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds that a switch will wait for a report
                     from a particular group on the selected interface before deleting the
                     interface from the entry. This value must be greater than
                     hm2AgentSwitchSnoopingIntfMaxResponseTime."
         DEFVAL { 260 }
         ::= { hm2AgentSwitchSnoopingIntfEntry 3 }

    hm2AgentSwitchSnoopingIntfMaxResponseTime OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds a switch will wait after sending
                     a query on the selected interface because it did not receive a report for
                     a particular group in that interface.  This value must be less
                     than hm2AgentSwitchSnoopingIntfGroupMembershipInterval. For IGMP Snooping,
                     this value ranges from 1 to 25 and for MLD Snooping, this value
                     ranges from 1 to 65."

         DEFVAL { 10 }
         ::= { hm2AgentSwitchSnoopingIntfEntry 4 }

    hm2AgentSwitchSnoopingIntfMRPExpirationTime OBJECT-TYPE
         SYNTAX      Integer32 (0..3600)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds that a switch will wait for a query to be
                     received on the selected interface before the interface is removed from
                     the list of interfaces with multicast routers attached.
                     A value of 0 represents an 'infinite' interval."
         DEFVAL { 260 }
         ::= { hm2AgentSwitchSnoopingIntfEntry 5 }

    hm2AgentSwitchSnoopingIntfFastLeaveAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD Snooping on the selected interface."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingIntfEntry 6 }

    hm2AgentSwitchSnoopingIntfMulticastRouterMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The port explicitly configured by management to be IGMP query port for all VLANs."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingIntfEntry 7 }

    hm2AgentSwitchSnoopingIntfVlanIDs OBJECT-TYPE
         SYNTAX      VlanList
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This field lists all the VlanIDs which include the selected interface."
         ::= { hm2AgentSwitchSnoopingIntfEntry 8 }


    --**************************************************************************************
    -- hm2AgentSwitchSnoopingVlanGroup
    --**************************************************************************************

    hm2AgentSwitchSnoopingVlanGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 8 }

    hm2AgentSwitchSnoopingVlanTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchSnoopingVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IGMP/MLD Snooping Vlan configuration entries."
         ::= { hm2AgentSwitchSnoopingVlanGroup 1 }

    hm2AgentSwitchSnoopingVlanEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchSnoopingVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a IGMP/MLD Snooping Vlan."
         INDEX       { dot1qVlanIndex, hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchSnoopingVlanTable 1 }

   Hm2AgentSwitchSnoopingVlanEntry ::= SEQUENCE {
          hm2AgentSwitchSnoopingVlanAdminMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingVlanGroupMembershipInterval
              Integer32,
          hm2AgentSwitchSnoopingVlanMaxResponseTime
              Integer32,
          hm2AgentSwitchSnoopingVlanFastLeaveAdminMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingVlanMRPExpirationTime
              Integer32,
          hm2AgentSwitchSnoopingVlanReportSuppMode
              HmEnabledStatus
          }

   hm2AgentSwitchSnoopingVlanAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD Snooping on a selected Vlan interface."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingVlanEntry 1 }

   hm2AgentSwitchSnoopingVlanGroupMembershipInterval OBJECT-TYPE
         SYNTAX      Integer32 (2..3600)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds that a switch will wait for a report
                     from a particular group on the selected vlan before deleting the
                     interface participating in the vlan from the entry. This value must
                     be greater than hm2AgentSwitchSnoopingIntfMaxResponseTime."
         DEFVAL { 260 }
         ::= { hm2AgentSwitchSnoopingVlanEntry 2 }

   hm2AgentSwitchSnoopingVlanMaxResponseTime OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds a switch will wait after sending
                     a query on the selected vlan because it did not receive a report for
                     a particular group in the interface participating in the vlan.
                     This value must be less than
                     hm2AgentSwitchSnoopingIntfGroupMembershipInterval. For IGMP Snooping,
                     this value ranges from 1 to 25 and for MLD Snooping, this value
                     ranges from 1 to 65."
         DEFVAL { 10 }
         ::= { hm2AgentSwitchSnoopingVlanEntry 3 }

   hm2AgentSwitchSnoopingVlanFastLeaveAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD Snooping on the selected vlan."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingVlanEntry 4 }

   hm2AgentSwitchSnoopingVlanMRPExpirationTime OBJECT-TYPE
         SYNTAX      Integer32 (0..3600)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds that a switch will wait for a query to be
                     received on the selected interface participating in the vlan before the
                     interface is removed from the list of interfaces with multicast routers
                     attached. This parameter is configurable only for existing VLANs.
                     A value of 0 represents an 'infinite' interval."
         DEFVAL { 260 }
         ::= { hm2AgentSwitchSnoopingVlanEntry 5 }
         
   hm2AgentSwitchSnoopingVlanReportSuppMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD Snooping Report Suppression feature on the selected vlan."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingVlanEntry 6 }


    --**************************************************************************************
    -- hm2AgentSwitchVlanStaticMrouterGroup
    --**************************************************************************************

    hm2AgentSwitchVlanStaticMrouterGroup               OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 9 }

    hm2AgentSwitchVlanStaticMrouterTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchVlanStaticMrouterEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IGMP/MLD Static Mrouter Configuration parameters."
         ::= { hm2AgentSwitchVlanStaticMrouterGroup 1 }

    hm2AgentSwitchVlanStaticMrouterEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchVlanStaticMrouterEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a IGMP/MLD Static Mrouter."
         INDEX       { ifIndex,
                           dot1qVlanIndex, hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchVlanStaticMrouterTable 1 }

   Hm2AgentSwitchVlanStaticMrouterEntry ::= SEQUENCE {
          hm2AgentSwitchVlanStaticMrouterAdminMode
                 HmEnabledStatus
          }

   hm2AgentSwitchVlanStaticMrouterAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables IGMP/MLD mrouter on a per interface per VLAN basis."
         DEFVAL { disable }
         ::= { hm2AgentSwitchVlanStaticMrouterEntry 1 }


    --**************************************************************************************
    -- hm2AgentSwitchMFDBGroup
    --**************************************************************************************

    hm2AgentSwitchMFDBGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 10 }

    hm2AgentSwitchMFDBTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchMFDBEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The Multicast Forwarding Database table"
         ::= { hm2AgentSwitchMFDBGroup 1 }

    hm2AgentSwitchMFDBEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchMFDBEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Contains Forwarding and Filtering information per Vlan Index, MAC Address, and
                     Component User."
         INDEX       { hm2AgentSwitchMFDBVlanId, hm2AgentSwitchMFDBMacAddress, hm2AgentSwitchMFDBProtocolType }
         ::= { hm2AgentSwitchMFDBTable 1 }

    Hm2AgentSwitchMFDBEntry ::=
         SEQUENCE {
             hm2AgentSwitchMFDBVlanId
                 VlanIndex,
             hm2AgentSwitchMFDBMacAddress
                 MacAddress,
             hm2AgentSwitchMFDBProtocolType
                 INTEGER,
             hm2AgentSwitchMFDBType
                 INTEGER,
             hm2AgentSwitchMFDBDescription
                 DisplayString,
             hm2AgentSwitchMFDBForwardingPortMask
                 Hm2AgentPortMask,
             hm2AgentSwitchMFDBFilteringPortMask
                 Hm2AgentPortMask
         }

    hm2AgentSwitchMFDBVlanId OBJECT-TYPE
         SYNTAX   VlanIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Vlan Index for which this entry is associated with."
         ::= { hm2AgentSwitchMFDBEntry 1 }

    hm2AgentSwitchMFDBMacAddress OBJECT-TYPE
         SYNTAX   MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "A multicast MAC address for which the switch has forwarding and or
                     filtering information."
         ::= { hm2AgentSwitchMFDBEntry 2 }

    hm2AgentSwitchMFDBProtocolType OBJECT-TYPE
         SYNTAX   INTEGER {
                  static(1),
                  gmrp(2),
                  igmp(3),
                  mld(4),
                  mrp-mmrp(248)
                  }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The component that is responsible for this entry in the Multicast
                     Forwarding Database."
         ::= { hm2AgentSwitchMFDBEntry 3 }

    hm2AgentSwitchMFDBType OBJECT-TYPE
         SYNTAX   INTEGER {
                  static(1),
                  dynamic(2)
                  }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This displays the type of the entry.

                     static(1)  - Entries configured by the end user
                     dynamic(2) - Entries added as a result of a learning process or protocol"
         ::= { hm2AgentSwitchMFDBEntry 4 }

    hm2AgentSwitchMFDBDescription OBJECT-TYPE
         SYNTAX   DisplayString
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Text description of this multicast table entry."
         ::= { hm2AgentSwitchMFDBEntry 5 }

    hm2AgentSwitchMFDBForwardingPortMask OBJECT-TYPE
         SYNTAX   Hm2AgentPortMask
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "BitMask indicating which ports this entry indicates should be forwarded.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table."
         ::= { hm2AgentSwitchMFDBEntry 6 }

    hm2AgentSwitchMFDBFilteringPortMask OBJECT-TYPE
         SYNTAX   Hm2AgentPortMask
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "BitMask indicating which ports this entry indicates should be filtered.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table."
         ::= { hm2AgentSwitchMFDBEntry 7 }

    --**************************************************************************************

    hm2AgentSwitchMFDBSummaryTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchMFDBSummaryEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The multicast forwarding database summary table."
         ::= { hm2AgentSwitchMFDBGroup 2 }

    hm2AgentSwitchMFDBSummaryEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchMFDBSummaryEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Summarizes the forwarding ports for all components registered for all
                     MFDB table entries with the same Vlan Index and MAC Address."
         INDEX       { hm2AgentSwitchMFDBSummaryVlanId, hm2AgentSwitchMFDBSummaryMacAddress }
         ::= { hm2AgentSwitchMFDBSummaryTable 1 }

    Hm2AgentSwitchMFDBSummaryEntry ::=
         SEQUENCE {
             hm2AgentSwitchMFDBSummaryVlanId
                 VlanIndex,
             hm2AgentSwitchMFDBSummaryMacAddress
                 MacAddress,
             hm2AgentSwitchMFDBSummaryForwardingPortMask
                 Hm2AgentPortMask
         }

    hm2AgentSwitchMFDBSummaryVlanId OBJECT-TYPE
         SYNTAX   VlanIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Vlan Index for which this entry is associated with."
         ::= { hm2AgentSwitchMFDBSummaryEntry 1 }

    hm2AgentSwitchMFDBSummaryMacAddress OBJECT-TYPE
         SYNTAX   MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "A multicast MAC address for which the switch has forwarding and or
                     filtering information."
         ::= { hm2AgentSwitchMFDBSummaryEntry 2 }

    hm2AgentSwitchMFDBSummaryForwardingPortMask OBJECT-TYPE
         SYNTAX   Hm2AgentPortMask
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Port Mask indicating which ports this entry indicates should be forwarded.

                     To obtain port numbers from interface numbers, use the objects
                     hm2AgentPortDot1dBasePort and hm2AgentPortIfIndex in the hm2AgentPortConfigTable
                     table."
         ::= { hm2AgentSwitchMFDBSummaryEntry 3 }

    --**************************************************************************************

    hm2AgentSwitchMFDBMaxTableEntries OBJECT-TYPE
         SYNTAX   Gauge32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This displays the maximum number of entries that can possibly be in
                     the Multicast Forwarding Database table."
         ::= { hm2AgentSwitchMFDBGroup 3 }

    hm2AgentSwitchMFDBMostEntriesUsed OBJECT-TYPE
         SYNTAX   Gauge32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This displays the largest number of entries that have been present
                     in the Multicast Forwarding Database table. This value is also known
                     as the MFDB high water mark."
         ::= { hm2AgentSwitchMFDBGroup 4 }

    hm2AgentSwitchMFDBCurrentEntries OBJECT-TYPE
         SYNTAX   Gauge32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This displays the current number of entries in the Multicast
                     Forwarding Database table."
         ::= { hm2AgentSwitchMFDBGroup 5 }
        
    --**************************************************************************************
    -- hm2AgentSwitchStaticMacStatsGroup
    --**************************************************************************************     
    
    hm2AgentSwitchStaticMacStatsGroup						  OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 248 }
    
    hm2AgentSwitchStaticMacEntries OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "Total number of MAC addresses configured statically in mac-filter-table."  
    ::= { hm2AgentSwitchStaticMacStatsGroup 1 }
    
    --**************************************************************************************
    -- hm2AgentSwitchGARPGroup
    --**************************************************************************************     
    
    hm2AgentSwitchGARPGroup						  OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 249 }
    
    hm2AgentSwitchGmrpUnknownMulticastFilterMode OBJECT-TYPE
    	SYNTAX      INTEGER 
    				{
            	      flood(1),
                	  discard(2)
                	}
    	MAX-ACCESS  read-write
    	STATUS      current
    	DESCRIPTION
      			"This configures whether traffic from unknown multicast addresses must be flooded or be discarded."
        DEFVAL { flood }
    ::= { hm2AgentSwitchGARPGroup 1 }

    --**************************************************************************************

	hm2AgentSwitchGmrpPortTable OBJECT-TYPE
		SYNTAX 		SEQUENCE OF Hm2AgentSwitchGmrpPortEntry
		MAX-ACCESS 	not-accessible
		STATUS 		current
		DESCRIPTION
				"GMRP control and status information for a bridge port.
				Augments dot1dPortGmrpEntry in P-BRIDGE-MIB."
	::= { hm2AgentSwitchGARPGroup 10 }
	 
	hm2AgentSwitchGmrpPortEntry OBJECT-TYPE
		SYNTAX 		Hm2AgentSwitchGmrpPortEntry
		MAX-ACCESS 	not-accessible
		STATUS 		current
		DESCRIPTION
				"GMRP control and status information for a bridge port.
				Augments dot1dPortGmrpEntry in P-BRIDGE-MIB."
		AUGMENTS { dot1dBasePortEntry } 
	::= { hm2AgentSwitchGmrpPortTable 1 }

	Hm2AgentSwitchGmrpPortEntry ::= SEQUENCE
		{
			hm2AgentSwitchGmrpPortPktRx			Counter32,
			hm2AgentSwitchGmrpPortPktTx 		Counter32
		}
	 
	hm2AgentSwitchGmrpPortPktRx OBJECT-TYPE
		SYNTAX 		Counter32
		MAX-ACCESS 	read-only
		STATUS 		current
		DESCRIPTION
				"The total number of GMRP packets received, 
				in all VLANs, on this port."
	::= { hm2AgentSwitchGmrpPortEntry 1 }

	hm2AgentSwitchGmrpPortPktTx OBJECT-TYPE
		SYNTAX 		Counter32
		MAX-ACCESS 	read-only
		STATUS 		current
		DESCRIPTION
				"The total number of GMRP packets transmitted, 
				in all VLANs, on this port."
	::= { hm2AgentSwitchGmrpPortEntry 2 }

    --**************************************************************************************

	hm2AgentSwitchGvrpPortTable OBJECT-TYPE
		SYNTAX 		SEQUENCE OF Hm2AgentSwitchGvrpPortEntry
		MAX-ACCESS 	not-accessible
		STATUS 		current
		DESCRIPTION
				"GVRP control and status information for a bridge port.
				Augments dot1qPortVlanEntry in Q-BRIDGE-MIB."
	::= { hm2AgentSwitchGARPGroup 15 }
	 
	hm2AgentSwitchGvrpPortEntry OBJECT-TYPE
		SYNTAX 		Hm2AgentSwitchGvrpPortEntry
		MAX-ACCESS 	not-accessible
		STATUS 		current
		DESCRIPTION
				"GVRP control and status information for a bridge port.
				Augments dot1qPortVlanEntry in Q-BRIDGE-MIB."
		AUGMENTS { dot1dBasePortEntry } 
	::= { hm2AgentSwitchGvrpPortTable 1 }

	Hm2AgentSwitchGvrpPortEntry ::= SEQUENCE
		{
			hm2AgentSwitchGvrpPortPktRx			Counter32,
			hm2AgentSwitchGvrpPortPktTx 		Counter32
		}
	 
	hm2AgentSwitchGvrpPortPktRx OBJECT-TYPE
		SYNTAX 		Counter32
		MAX-ACCESS 	read-only
		STATUS 		current
		DESCRIPTION
				"The total number of GVRP packets received on this port."
	::= { hm2AgentSwitchGvrpPortEntry 1 }

	hm2AgentSwitchGvrpPortPktTx OBJECT-TYPE
		SYNTAX 		Counter32
		MAX-ACCESS 	read-only
		STATUS 		current
		DESCRIPTION
				"The total number of GVRP packets transmitted on this port."
	::= { hm2AgentSwitchGvrpPortEntry 2 }
	
    --**************************************************************************************
    -- hm2AgentSwitchDVlanTagInterfaceGroup
    --
    --**************************************************************************************

    hm2AgentSwitchDVlanTagInterfaceGroup                      OBJECT IDENTIFIER ::= {    hm2AgentSwitchConfigGroup 250 }

    hm2AgentSwitchDVlanTagInterfaceTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchDVlanTagInterfaceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
         "A table that holds the double vlan tagging status per interface."
         ::= { hm2AgentSwitchDVlanTagInterfaceGroup 1 }

    hm2AgentSwitchDVlanTagInterfaceEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchDVlanTagInterfaceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
         "A table entry specifying the double vlan tagging status per interface."
         INDEX        { hm2AgentSwitchDVlanTagInterfaceIfIndex}
         ::= { hm2AgentSwitchDVlanTagInterfaceTable 1 }

    Hm2AgentSwitchDVlanTagInterfaceEntry ::=
         SEQUENCE {
          hm2AgentSwitchDVlanTagInterfaceIfIndex           InterfaceIndex,
          hm2AgentSwitchDVlanTagInterfaceStatus            INTEGER
          }

    hm2AgentSwitchDVlanTagInterfaceIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
         "Interface ID on to which the double vlan tagging status is mapped"
         ::= { hm2AgentSwitchDVlanTagInterfaceEntry 1 }

    hm2AgentSwitchDVlanTagInterfaceStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                     enable(1),
                     disable(2)
                  }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Controls the Double Vlan Tag status on this interface. 
                     
                      When the value is enable(1), it becomes a core port. 
                      If at least one port has value enable(1), all other 
                      ports which have value disable(2) become access ports. 
                      
                      When all ports have value disable(2), they become 
                      normal ports."
         DEFVAL { disable }
         ::= { hm2AgentSwitchDVlanTagInterfaceEntry 2} 
	
	
	--**************************************************************************************
    -- hm2AgentSwitchDVlanTagGroup
    --
    --**************************************************************************************

    hm2AgentSwitchDVlanTagGroup                      OBJECT IDENTIFIER ::= {    hm2AgentSwitchConfigGroup 11 }

    hm2AgentSwitchDVlanTagEthertype OBJECT-TYPE         
         SYNTAX      Integer32 (1..65535) -- 0x0001..0xFFFF         
         MAX-ACCESS  read-only -- This object was made read-only because of problems with setting a different ethertype. Hotfix for #38576
         STATUS      current         
         DESCRIPTION                     
         "Configures the Double Vlan Tag Ethertype for the switch.
          If this object is supported, ethertype cannot be configured per port.                      
          Commonly used are the Ethertypes for vman tags (34984, or 0x88A8)                      
          and dot1q tags (33024, or 0x8100)."         
         DEFVAL { 33024 }        
          ::= { hm2AgentSwitchDVlanTagGroup 1 }

    --**************************************************************************************
    -- hm2AgentSwitchVlanMacAssociationGroup
    --**************************************************************************************
    
	hm2AgentSwitchVlanMacAssociationGroup                     OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 17 }
    
	hm2AgentSwitchVlanMacAssociationTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchVlanMacAssociationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The switch's MAC To VLAN association table"
         ::= { hm2AgentSwitchVlanMacAssociationGroup 1 }

    hm2AgentSwitchVlanMacAssociationEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchVlanMacAssociationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "VLAN to be assigned to untagged or priority tagged
                     packets based on MAC address."
         INDEX       { hm2AgentSwitchVlanMacAssociationMacAddress,hm2AgentSwitchVlanMacAssociationVlanId }
         ::= { hm2AgentSwitchVlanMacAssociationTable 1 }

    Hm2AgentSwitchVlanMacAssociationEntry ::=
    SEQUENCE {
        hm2AgentSwitchVlanMacAssociationMacAddress
            MacAddress,
        hm2AgentSwitchVlanMacAssociationVlanId
            VlanIndex,
        hm2AgentSwitchVlanMacAssociationRowStatus
            RowStatus
      }

    hm2AgentSwitchVlanMacAssociationMacAddress OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The Mac address"
         ::= { hm2AgentSwitchVlanMacAssociationEntry 1 }

    hm2AgentSwitchVlanMacAssociationVlanId  OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The VLAN the Mac address assigned to"
         ::= { hm2AgentSwitchVlanMacAssociationEntry 2 }

    hm2AgentSwitchVlanMacAssociationRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The Mac to VLAN association row status.

                     Supported values:
                     active(1)      - valid entry
                     createAndGo(4) - used to create a new entry
                     destroy(6)     - removes the entry"
         ::= { hm2AgentSwitchVlanMacAssociationEntry 3 }


    --**************************************************************************************
    -- hm2AgentSwitchProtectedPortGroup
    --**************************************************************************************

    hm2AgentSwitchProtectedPortConfigGroup         OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 18 }
    
    hm2AgentSwitchProtectedPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchProtectedPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The switch's protected port mapping table"
         ::= { hm2AgentSwitchProtectedPortConfigGroup 1 }

    hm2AgentSwitchProtectedPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchProtectedPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Protected ports assigned to groups."
         INDEX       { hm2AgentSwitchProtectedPortGroupId }
         ::= { hm2AgentSwitchProtectedPortTable 1 }

    Hm2AgentSwitchProtectedPortEntry ::=
    SEQUENCE {
        hm2AgentSwitchProtectedPortGroupId
            Integer32,
        hm2AgentSwitchProtectedPortGroupName
            DisplayString,
        hm2AgentSwitchProtectedPortPortList
            PortList
      }

    hm2AgentSwitchProtectedPortGroupId  OBJECT-TYPE
         SYNTAX      Integer32 (0..2147483647)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The group that this port belongs to"
         ::= { hm2AgentSwitchProtectedPortEntry 1 }

    hm2AgentSwitchProtectedPortGroupName  OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(0..32))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The name of the group"
         ::= { hm2AgentSwitchProtectedPortEntry 2 }

    hm2AgentSwitchProtectedPortPortList  OBJECT-TYPE
         SYNTAX      PortList
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The set of ports that are protected in this group"
         ::= { hm2AgentSwitchProtectedPortEntry 3 }

    --**************************************************************************************
    -- hm2AgentSwitchVlanSubnetAssociationGroup
    --**************************************************************************************
    
	hm2AgentSwitchVlanSubnetAssociationGroup                     OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 19 }
    
	hm2AgentSwitchVlanSubnetAssociationTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchVlanSubnetAssociationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The switch's Subnet To VLAN association table"
         ::= { hm2AgentSwitchVlanSubnetAssociationGroup 1 }

    hm2AgentSwitchVlanSubnetAssociationEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchVlanSubnetAssociationEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "VLAN to be assigned to untagged or priority tagged
                     packets based on IP address and Subnet Mask."
         INDEX       { 
                       hm2AgentSwitchVlanSubnetAssociationIPAddress,
                       hm2AgentSwitchVlanSubnetAssociationSubnetMask,
                       hm2AgentSwitchVlanSubnetAssociationVlanId
                     }
         ::= { hm2AgentSwitchVlanSubnetAssociationTable 1 }

    Hm2AgentSwitchVlanSubnetAssociationEntry ::=
    SEQUENCE {
        hm2AgentSwitchVlanSubnetAssociationIPAddress
            IpAddress,
        hm2AgentSwitchVlanSubnetAssociationSubnetMask
            IpAddress,
        hm2AgentSwitchVlanSubnetAssociationVlanId
            VlanIndex,
        hm2AgentSwitchVlanSubnetAssociationRowStatus
            RowStatus
      }

    hm2AgentSwitchVlanSubnetAssociationIPAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The ip address"
         ::= { hm2AgentSwitchVlanSubnetAssociationEntry 1 }
    hm2AgentSwitchVlanSubnetAssociationSubnetMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The subnet mask"
         ::= { hm2AgentSwitchVlanSubnetAssociationEntry 2 }

    hm2AgentSwitchVlanSubnetAssociationVlanId  OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The VLAN that the IP address and subnet mask assigned to"
         ::= { hm2AgentSwitchVlanSubnetAssociationEntry 3 }

    hm2AgentSwitchVlanSubnetAssociationRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The Subnet to VLAN association row status.

                     Supported values:
                     active(1)      - valid entry
                     createAndGo(4) - used to create a new entry
                     destroy(6)     - removes the entry"
         ::= { hm2AgentSwitchVlanSubnetAssociationEntry 4 }

    --**************************************************************************************
    -- hm2AgentSwitchSnoopingQuerierGroup
    --**************************************************************************************
    
	hm2AgentSwitchSnoopingQuerierGroup               OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 20 }

    hm2AgentSwitchSnoopingQuerierCfgTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchSnoopingQuerierCfgEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IGMP/MLD Snooping Querier Global configuration entries."
         ::= { hm2AgentSwitchSnoopingQuerierGroup 1 }

    hm2AgentSwitchSnoopingQuerierCfgEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchSnoopingQuerierCfgEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for Snooping Querier Configuration."
         INDEX       { hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchSnoopingQuerierCfgTable 1 }

   Hm2AgentSwitchSnoopingQuerierCfgEntry ::= SEQUENCE {
           hm2AgentSwitchSnoopingQuerierAdminMode
              HmEnabledStatus,
           hm2AgentSwitchSnoopingQuerierVersion
              Integer32,
           hm2AgentSwitchSnoopingQuerierQueryInterval
              Integer32,
           hm2AgentSwitchSnoopingQuerierExpiryInterval
              Integer32
          }

    hm2AgentSwitchSnoopingQuerierAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables Snooping Querier on the system. "
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingQuerierCfgEntry  1 }

    hm2AgentSwitchSnoopingQuerierVersion OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the multicast protocol versions that are
                      supported by the system."
         DEFVAL { 2 }             
         ::= { hm2AgentSwitchSnoopingQuerierCfgEntry  2 }

    hm2AgentSwitchSnoopingQuerierQueryInterval OBJECT-TYPE
         SYNTAX      Integer32 (1..1800)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specified the timer interval after which the system
                      generates general queries."
         DEFVAL { 60 }
         ::= { hm2AgentSwitchSnoopingQuerierCfgEntry  4 }

    hm2AgentSwitchSnoopingQuerierExpiryInterval OBJECT-TYPE
         SYNTAX      Integer32 (60..300)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specified the timer interval after which the detected
                      other querier information is no longer valid."
         DEFVAL { 125 }
         ::= { hm2AgentSwitchSnoopingQuerierCfgEntry  5 }


    --**************************************************************************************
    -- hm2AgentSwitchSnoopingQuerierVlanCfgTable
    --**************************************************************************************
    
	hm2AgentSwitchSnoopingQuerierVlanTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchSnoopingQuerierVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the Snooping Querier Vlan configuration entries."
         ::= { hm2AgentSwitchSnoopingQuerierGroup 2 }

    hm2AgentSwitchSnoopingQuerierVlanEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchSnoopingQuerierVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Snooping Querier configurable Vlan."
         INDEX       { dot1qVlanIndex, hm2AgentSwitchSnoopingProtocol }
         ::= { hm2AgentSwitchSnoopingQuerierVlanTable 1 }

   Hm2AgentSwitchSnoopingQuerierVlanEntry ::= SEQUENCE {
          hm2AgentSwitchSnoopingQuerierVlanAdminMode
              HmEnabledStatus,
           hm2AgentSwitchSnoopingQuerierVlanOperMode
              INTEGER,
          hm2AgentSwitchSnoopingQuerierElectionParticipateMode
              HmEnabledStatus,
          hm2AgentSwitchSnoopingQuerierVlanAddress
              InetAddress,
          hm2AgentSwitchSnoopingQuerierOperVersion
              Integer32,
          hm2AgentSwitchSnoopingQuerierOperMaxResponseTime
              Integer32,
          hm2AgentSwitchSnoopingQuerierLastQuerierAddress
              InetAddress,
          hm2AgentSwitchSnoopingQuerierLastQuerierVersion
              Integer32

          }

   hm2AgentSwitchSnoopingQuerierVlanAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables Snooping Querier on a selected Vlan interface."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry 1 }

   hm2AgentSwitchSnoopingQuerierVlanOperMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     disabled(0),
                     querier(1),
                     non-querier(2)
                  }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the current state of the Snooping Querier on a selected vlan interface"
         DEFVAL { disabled }
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry 2 }

   hm2AgentSwitchSnoopingQuerierElectionParticipateMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      deprecated
         DESCRIPTION
         	 	 	 "This object is deprecated. 
				      This enables or disables the Snooping Querier Election Participation mode. When enabled
				      snooping querier switch will participate in querier election up on discovering another
				      querier in the specified vlan. When disabled, up on discovering another querier, snooping
				      querier moves to non-querier state.
				      The state of the querier is solely set by hm2AgentSwitchSnoopingQuerierVlanAdminMode. 
				      If hm2AgentSwitchSnoopingQuerierVlanAdminMode is set to
				      enable(1) hm2AgentSwitchSnoopingQuerierElectionParticipateMode will be set internally to enable(1).
				      If hm2AgentSwitchSnoopingQuerierVlanAdminMode is set to
				      disable(2) hm2AgentSwitchSnoopingQuerierElectionParticipateMode will be set internally to disable(2)."
         DEFVAL { disable }
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry 3 }

   hm2AgentSwitchSnoopingQuerierVlanAddress OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This specifies the default source ip address to be used while generating general queries on
                      the specified vlan."
         DEFVAL { '00000000'H }
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry 4 }

   hm2AgentSwitchSnoopingQuerierOperVersion OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the multicast protocol version that is currently being used by the snooping
                      switch for the specified vlan while generating query messages."
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry  5 }

   hm2AgentSwitchSnoopingQuerierOperMaxResponseTime OBJECT-TYPE
         SYNTAX      Integer32(-1|0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The amount of time in seconds a switch will wait after sending
                      a query on the selected vlan because it did not receive a report for
                      a particular group in the interface participating in the vlan. This
                      object is valid only when hm2AgentSwitchSnoopingQuerierOperVersion object
                      is valid.
                      (-1) - indicates that parameter is not available; 
                      ( 0) - indicates that response time is less then 1 second."
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry  6 }

   hm2AgentSwitchSnoopingQuerierLastQuerierAddress OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the last querier's ip address for the specified vlan.
                      It represents the detected other multicast querier in the vlan. "
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry  7 }

   hm2AgentSwitchSnoopingQuerierLastQuerierVersion OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the multicast protocol version that is currently being used
                      by the detected other multicast querier for the specified vlan.
                      (-1) - indicates that parameter is not available."
         ::= { hm2AgentSwitchSnoopingQuerierVlanEntry  8 }


    --**************************************************************************************
    --    hm2AgentPortMirroringGroup
    --**************************************************************************************

    hm2AgentPortMirroringGroup                     OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 10 }

    --**************************************************************************************
    --    hm2AgentPortMirroringGroup
    --**************************************************************************************

    hm2AgentPortMirrorTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPortMirrorEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This table includes entries for each Port Mirroring session."
         ::= { hm2AgentPortMirroringGroup 4 }

    hm2AgentPortMirrorEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPortMirrorEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Provides configuration of a Port Mirroring session specifying the
                     destination port, and the source Port Mask, providing a many-to-one
                     mapping."
         INDEX       { hm2AgentPortMirrorSessionNum }
         ::= { hm2AgentPortMirrorTable 1 }

    Hm2AgentPortMirrorEntry ::= SEQUENCE {
         hm2AgentPortMirrorSessionNum
              Unsigned32,
         hm2AgentPortMirrorDestinationPort
              InterfaceIndexOrZero,
         hm2AgentPortMirrorSourcePortMask
              Hm2AgentPortMask,
         hm2AgentPortMirrorAdminMode
              INTEGER,
         hm2AgentPortMirrorSourceVlan
              Unsigned32,
         hm2AgentPortMirrorRemoteSourceVlan
              Unsigned32,
         hm2AgentPortMirrorRemoteDestinationVlan
              Unsigned32,
         hm2AgentPortMirrorReflectorPort
              InterfaceIndexOrZero,
         hm2AgentPortMirrorAllowMgmtMode
         	  HmEnabledStatus,
		 hm2AgentPortMirrorReset
         	  INTEGER,
         hm2AgentPortMirrorDestinationPortSecondary
         	  InterfaceIndexOrZero
         }

    hm2AgentPortMirrorSessionNum OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The Session number of this mirroring entry.  The number of sessions is
                     fixed and platform dependant."
         ::= { hm2AgentPortMirrorEntry 1 }

    hm2AgentPortMirrorDestinationPort OBJECT-TYPE
         SYNTAX      InterfaceIndexOrZero
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The port which traffic from the mirrored ports will be sent to."
         DEFVAL    { 0 }
         ::= { hm2AgentPortMirrorEntry 2 }

    hm2AgentPortMirrorSourcePortMask OBJECT-TYPE
         SYNTAX      Hm2AgentPortMask
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The ports from which traffic will be sent to the destination port.
                     The destination port can not be included in this list of ports."
         ::= { hm2AgentPortMirrorEntry 3 }

    hm2AgentPortMirrorAdminMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     enable(1),
                     disable(2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The status of this port mirroring session.

                     enable(1)  - This session is active and all traffic from the source ports
                                  will be mirrored to the destination port.
                     disable(2) - This session is not active."
         DEFVAL    { disable }            
         ::= { hm2AgentPortMirrorEntry 4 }

    hm2AgentPortMirrorSourceVlan OBJECT-TYPE
         SYNTAX      Unsigned32(0..4042)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The vlan from which traffic will be sent to the destination port."
         ::= { hm2AgentPortMirrorEntry 5 }

    hm2AgentPortMirrorRemoteSourceVlan OBJECT-TYPE
         SYNTAX      Unsigned32(0|2..4042)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The remote vlan from which traffic will be sent to the destination port."
         ::= { hm2AgentPortMirrorEntry 6 }

    hm2AgentPortMirrorRemoteDestinationVlan OBJECT-TYPE
         SYNTAX      Unsigned32(0|2..4042)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The VLAN that forwards the network traffic to the destination switch."
         ::= { hm2AgentPortMirrorEntry 7 }

    hm2AgentPortMirrorReflectorPort OBJECT-TYPE
         SYNTAX      InterfaceIndexOrZero
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The port which traffic from the mirrored ports will be sent to in case of destination being remote VLAN."
         ::= { hm2AgentPortMirrorEntry 8 }
         
     hm2AgentPortMirrorAllowMgmtMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The status of the management access possibility for this session.

                     enable(1)  - Management is allowed - The device is accessible via this port and is 
								  responsive to protocols while mirroring the probe port.
                     disable(2) - Management not is allowed - the device is not accessible via this port and
								  is not responsive to protocols. It only mirrors the probe port."
         DEFVAL    { disable }            
         ::= { hm2AgentPortMirrorEntry 9 }
         
    hm2AgentPortMirrorReset OBJECT-TYPE
         SYNTAX      INTEGER {
                     other(1),
                     reset(2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Removes, reset(2) the configuration for this session.
                      Returns always other(1) when read."
         ::= { hm2AgentPortMirrorEntry 248 }
         
	hm2AgentPortMirrorDestinationPortSecondary OBJECT-TYPE
         SYNTAX      InterfaceIndexOrZero
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The secondary port which traffic from the mirrored
                     ports will be sent to."
         ::= { hm2AgentPortMirrorEntry 249 }

hm2AgentPortMirrorTypeTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPortMirrorTypeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This table includes entries for each source ports direction of port mirroring."
         ::= { hm2AgentPortMirroringGroup 5 }

    hm2AgentPortMirrorTypeEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPortMirrorTypeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Provides configuration of a Port Mirroring direction specifying the
                     session of the port mirroring and source port."
         INDEX       { hm2AgentPortMirrorSessionNum, hm2AgentPortMirrorTypeSourcePort }
         ::= { hm2AgentPortMirrorTypeTable 1 }
    Hm2AgentPortMirrorTypeEntry ::= SEQUENCE {
         hm2AgentPortMirrorTypeSourcePort
              Unsigned32,
         hm2AgentPortMirrorTypeType
              INTEGER
         }

    hm2AgentPortMirrorTypeSourcePort OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The port from which traffic will be sent to the destination port.
                      This port should be a source port in the corresponding session."
         ::= { hm2AgentPortMirrorTypeEntry 1 }

    hm2AgentPortMirrorTypeType OBJECT-TYPE
         SYNTAX      INTEGER {
         			 none(0),
                     tx(1),
                     rx(2),
                     txrx(3)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The direction of the data to be mirrored on this source port.
					 none(0) - No configuration is set.
                     tx(1)  - The data that is transmitted from the source port.
                     rx(2) - The data that is received on the source port.
                     txrx(3)  - The data that is transmitted/received from/on the source port"
         DEFVAL { none }
         ::= { hm2AgentPortMirrorTypeEntry 2 }

    hm2AgentPortMirrorRemoteVlan OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The VLAN configured as RSPAN VLAN."
         ::= { hm2AgentPortMirroringGroup 6 }

   --***************************************************************************
   -- hm2AgentMirrorSNMPExtensionGroup
   --***************************************************************************
         
    hm2AgentPortMirrorSNMPExtensionGroup                 OBJECT IDENTIFIER ::= { hm2AgentPortMirroringGroup 248 }
          
    hm2AgentPortMirrorVlanMirrorPortConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "VLAN has been already configured as a source interface. At the same time physical interface and VLAN interface cannot be configured as source interfaces for a session."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 1 }
       
    hm2AgentPortMirrorPortVlanMirrorConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "A physical interface has been already configured as a source interface. At the same time physical interface and VLAN interface cannot be configured as source interfaces for a session."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 2 }
       
    hm2AgentPortMirrorProbePortAlreadySet OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Selected interface is already used."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 3 }
       
    hm2AgentPortMirrorProbePortVlanConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Destination interface cannot participate in source VLAN."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 4 }
       
    hm2AgentPortMirrorVlanNotCreated OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Not existing VLAN cannot be configured as source interface for a session."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 5 }
       
    hm2AgentPortMirrorInvalidSourcePort OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Selected interface () cannot be configured as source interface."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 6 }
       
    hm2AgentPortMirrorSourcePortDestinationPortConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Destination interface () cannot be configured as source interface."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 7 }
       
    hm2AgentPortMirrorDestinationPortInvalid OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Conflict with another feature: Selected interface () is already used by () and cannot be configured as a destination interface."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 8 }
       
    hm2AgentPortMirrorVlanRspanVlanConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "RSPAN vlan () cannot be configured as source vlan."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 9 }
       
    hm2AgentPortMirrorRemoteSourceRemoteDestinationConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Source and destination cannot be set to remote VLAN at the same time."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 10 }
       
    hm2AgentPortMirrorReflectorPortInvalid OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Selected interface () cannot be configured as a reflector interface. Only physical interface can be configured as a reflector interface."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 11 }
       
    hm2AgentPortMirrorSourcePortReflectorPortConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Source interface () cannot be configured as reflector interface."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 12 }
       
    hm2AgentPortMirrorReflectorPortVlanConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Reflector interface () cannot participate in source vlan ()."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 13 }
       
    hm2AgentPortMirrorPrivateVlanConfigured OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Selected VLAN is already configured as private VLAN and cannot be configured as RSPAN VLAN."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 14 }
       
    hm2AgentPortMirrorDestinationRemotePortNotSet OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "A destination/reflector port must first be set before mirroring/remote-mirroring can be enabled."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 15 }

    hm2AgentPortMirrorRspanVlanInconsistent OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "The RSPAN VLAN ID is inconsistent with the RSPAN source/destination VLAN ID."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 16 }

    hm2AgentPortMirrorRspanVlanIdInvalid OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "VLAN 1 cannot be used as the RSPAN VLAN."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 17 }

    hm2AgentPortMirrorSourcePortSettingConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Source Port mirror can not be configured."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 18 }

    hm2AgentPortMirrorDestinationPortSettingConflict OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Destination Port mirror can not be configured."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 19 }

    hm2AgentVlanInvalidSubnet OBJECT-IDENTITY
       STATUS      current
       DESCRIPTION "Invalid subnet cannot be added."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 20 }

    hm2AgentPortMirrorSecondaryPortDestinationNotSupported OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "Vlan mirroring and RSPAN are not supported on second probe port."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 21 }

    hm2AgentPortMirrorTxOverUnitBoundaryNotSupported OBJECT-IDENTITY
       STATUS        current
       DESCRIPTION   "TX mirroring accross unit boundaries is not supported."
       ::= { hm2AgentPortMirrorSNMPExtensionGroup 22 }

    --**************************************************************************************
    -- hm2AgentDot3adAggPortTable
    --**************************************************************************************

    hm2AgentDot3adAggPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentDot3adAggPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This table provides 802.3ad link aggregation information for each
                      physical port that is not available through the standard MIB."
         ::= { hm2AgentConfigGroup 12 }

    hm2AgentDot3adAggPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentDot3adAggPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Information about a table entry.  The hm2AgentDot3adAggPort identifies
                      the external interface number of the port."
         INDEX       { hm2AgentDot3adAggPort }
         ::= { hm2AgentDot3adAggPortTable 1 }

    Hm2AgentDot3adAggPortEntry ::= SEQUENCE {
         hm2AgentDot3adAggPort
              Integer32,
         hm2AgentDot3adAggPortLACPMode
              HmEnabledStatus
         }

    hm2AgentDot3adAggPort OBJECT-TYPE
         SYNTAX      Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "ifIndex of this physical port"
         ::= { hm2AgentDot3adAggPortEntry 1 }

    hm2AgentDot3adAggPortLACPMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Enable/disable 802.3ad LACP on this port"
         ::= { hm2AgentDot3adAggPortEntry 2 }

    --**************************************************************************************
	-- hm2AgentPortConfigTable
    --**************************************************************************************

    hm2AgentPortConfigTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPortConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the switch's physical port config entries"
         ::= { hm2AgentConfigGroup 13 }

    hm2AgentPortConfigEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPortConfigEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's physical port config entry"
         INDEX       { hm2AgentPortDot1dBasePort }
         ::= { hm2AgentPortConfigTable 1 }

    Hm2AgentPortConfigEntry ::= SEQUENCE {
          hm2AgentPortDot1dBasePort
              Integer32,
          hm2AgentPortIfIndex
              Integer32,
          hm2AgentPortClearStats
              HmEnabledStatus,
          hm2AgentPortDot3FlowControlMode
              INTEGER,
          hm2AgentPortMaxFrameSizeLimit
              Integer32,
          hm2AgentPortMaxFrameSize
              Integer32,
          hm2AgentPortBroadcastControlMode
              HmEnabledStatus,
          hm2AgentPortBroadcastControlThreshold
              Integer32,
          hm2AgentPortMulticastControlMode
              HmEnabledStatus,
          hm2AgentPortMulticastControlThreshold
              Integer32,
          hm2AgentPortUnicastControlMode
              HmEnabledStatus,
          hm2AgentPortUnicastControlThreshold
              Integer32,
          hm2AgentPortBroadcastControlThresholdUnit
              INTEGER,
          hm2AgentPortMulticastControlThresholdUnit
              INTEGER,
          hm2AgentPortUnicastControlThresholdUnit
              INTEGER,
          hm2AgentPortVoiceVlanMode
              INTEGER,
          hm2AgentPortVoiceVlanID
              Integer32,
          hm2AgentPortVoiceVlanPriority
              Integer32,
          hm2AgentPortVoiceVlanDataPriorityMode
              INTEGER,
          hm2AgentPortVoiceVlanOperationalStatus
              INTEGER,
          hm2AgentPortVoiceVlanUntagged
              INTEGER,
          hm2AgentPortVoiceVlanNoneMode
              INTEGER,
          hm2AgentPortVoiceVlanDSCP
              Integer32,
          hm2AgentPortVoiceVlanAuthMode
              HmEnabledStatus,
          hm2AgentPortDot3FlowControlOperStatus
              INTEGER,
          hm2AgentPortSwitchportMode
              INTEGER,
          hm2AgentPortSfpLinkLossAlert
              HmEnabledStatus
          }

    hm2AgentPortDot1dBasePort OBJECT-TYPE
         SYNTAX  Integer32 (1..65535)
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
                 "The number of this port."
         ::= { hm2AgentPortConfigEntry 1 }

    hm2AgentPortIfIndex OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The switchs Port IfIndex."
         ::= { hm2AgentPortConfigEntry 2 }

     hm2AgentPortClearStats OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Clear stats for this port only."
         ::= { hm2AgentPortConfigEntry 10 }

    hm2AgentPortDot3FlowControlMode OBJECT-TYPE
         SYNTAX      INTEGER {
								symmetric(1),
								asymmetric(2),
								disable(3)
 	 	 	 	 	 }
    	MAX-ACCESS  read-write
    	STATUS      current
    	DESCRIPTION
    	 "Config flowcontrol allows you to enable or disable
    	 802.3x flow control for this port. This value
    	 applies to only full-duplex mode ports. Enabling
    	 symmetric flow control allows the port to send
    	 and receive pause frames. Enabling asymmetric
    	 flow control allows the port to receive pause
    	 frames but it will not transmit pause frames."
         ::= { hm2AgentPortConfigEntry 14 }

    hm2AgentPortMaxFrameSizeLimit OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This object identifies the largest value that can be
                     configured for hm2AgentPortMaxFrameSize."
         ::= { hm2AgentPortConfigEntry 18 }

    hm2AgentPortMaxFrameSize OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This object identifies the currently configured maximum frame size
                     value for this port. The maximum value that this object can be set
                     to is the value of hm2AgentPortMaxFrameSizeLimit.  For Ethernet ports
                     which support 802.1Q vlan tagging, the minimum value that this object
                     can be set to is 1522"
         ::= { hm2AgentPortConfigEntry 19 }

    hm2AgentPortBroadcastControlMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "If enabled, broadcast storm recovery will function on this port.
                     When you specify Enable for Broadcast Storm Recovery and the broadcast
                     traffic on this Ethernet port exceeds the configured threshold, the
                     switch blocks (discards) the broadcast traffic."
         ::= { hm2AgentPortConfigEntry 20 }

    hm2AgentPortBroadcastControlThreshold OBJECT-TYPE
         SYNTAX      Integer32 (0..14880000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the broadcast storm recovery threshold for this port
                     as a percentage of port speed or as an absolute pps rate."
         ::= { hm2AgentPortConfigEntry 21 }

    hm2AgentPortMulticastControlMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "If enabled, multicast storm recovery will function on this port.
                     When you specify Enable for Multicast Storm Recovery and the multicast
                     traffic on this Ethernet port exceeds the configured threshold, the
                     switch blocks (discards) the multicast traffic."
         ::= { hm2AgentPortConfigEntry 22 }

    hm2AgentPortMulticastControlThreshold OBJECT-TYPE
         SYNTAX      Integer32 (0..14880000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the multicast storm recovery threshold for this port
                     as a percentage of port speed or as an absolute pps rate."
         ::= { hm2AgentPortConfigEntry 23 }

    hm2AgentPortUnicastControlMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "If enabled, unicast storm recovery will function on this port.
                     When you specify Enable for Unicast Storm Recovery and the unknown unicast
                     traffic on this Ethernet port exceeds the configured threshold, the
                     switch blocks (discards) the unknown unicast traffic."
         ::= { hm2AgentPortConfigEntry 24 }

    hm2AgentPortUnicastControlThreshold OBJECT-TYPE
         SYNTAX      Integer32 (0..14880000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the unicast storm recovery threshold for this port
                     as a percentage of port speed or as an absolute pps rate."
         ::= { hm2AgentPortConfigEntry 25 }

     hm2AgentPortBroadcastControlThresholdUnit OBJECT-TYPE
         SYNTAX      INTEGER {
                     percent(1),
                     pps(2)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the units of the threshold value to percentage of
                     port speed or absolute packets per second."
         DEFVAL { percent }
         ::= { hm2AgentPortConfigEntry 26 }

    hm2AgentPortMulticastControlThresholdUnit OBJECT-TYPE
         SYNTAX      INTEGER {
                     percent(1),
                     pps(2)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the units of the threshold value to percentage of
                     port speed or absolute packets per second."
         DEFVAL { percent }
         ::= { hm2AgentPortConfigEntry 27 }

    hm2AgentPortUnicastControlThresholdUnit OBJECT-TYPE
         SYNTAX      INTEGER {
                     percent(1),
                     pps(2)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the units of the threshold value to percentage of
                     port speed or absolute packets per second."
         DEFVAL { percent }
         ::= { hm2AgentPortConfigEntry 28 }

    hm2AgentPortVoiceVlanMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     none(1),
                     vlanid(2),
                     dot1p(3),
                     vlanidanddot1p(4),
                     untagged(5),
                     disable(6)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN Mode. This object
                      can only be set to disable(5)."
         ::= { hm2AgentPortConfigEntry 29 }


    hm2AgentPortVoiceVlanID OBJECT-TYPE
         SYNTAX      Integer32 (0|1..4042)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN ID
                     if the Voice Vlan Mode is Vlan ID. 0 can not be set."
         DEFVAL { 0 }           
         ::= { hm2AgentPortConfigEntry 30 }

    hm2AgentPortVoiceVlanPriority OBJECT-TYPE
         SYNTAX      Integer32 (0..7|255)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN Priority
                     if the Voice Vlan Mode is dot1p.  A value of 255 indicates
                     that the priority is not configured."
         DEFVAL { 255 }             
         ::= { hm2AgentPortConfigEntry 31 }

    hm2AgentPortVoiceVlanDataPriorityMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     trust(1),
                     untrust(2)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN Data Priority Mode."
         DEFVAL { trust }           
         ::= { hm2AgentPortConfigEntry 32 }

    hm2AgentPortVoiceVlanOperationalStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                     enabled(1),
                     disabled(2)
                  }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Describes the Port Voice VLAN Operational Status."
         ::= { hm2AgentPortConfigEntry 33 }

    hm2AgentPortVoiceVlanUntagged OBJECT-TYPE
         SYNTAX      INTEGER{
                     false(0),
                     true(1)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN tagging mode."
         DEFVAL { false }           
         ::= { hm2AgentPortConfigEntry 34 }

    hm2AgentPortVoiceVlanNoneMode OBJECT-TYPE
         SYNTAX      INTEGER{
                     false(0),
                     true(1)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN None mode."
         DEFVAL { false }            
         ::= { hm2AgentPortConfigEntry 35 }

     hm2AgentPortVoiceVlanDSCP OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN DSCP value."
         DEFVAL { 0 }            
         ::= { hm2AgentPortConfigEntry 36 }

       hm2AgentPortVoiceVlanAuthMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Describes and Configures the Port Voice VLAN Authentication mode.
                     Disable means authentication not required for voice devices when dot1x is enabled."
         DEFVAL { enable }            
         ::= { hm2AgentPortConfigEntry 37 }

    hm2AgentPortDot3FlowControlOperStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                     active(1),
                     inactive(2)
                  }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This object identifies operational status of the flow control per port."
         ::= { hm2AgentPortConfigEntry 38 }

    hm2AgentPortSwitchportMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     general(1),
                     access(2),
                     trunk(3),
                     host(4),
                     promiscuous(5)
                  }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Different types of Switchport modes."
         ::= { hm2AgentPortConfigEntry 45 }

    hm2AgentPortSfpLinkLossAlert OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "If enabled, this object helps in the detecting the loss of a SFP link by
                     deactivating its light."
         DEFVAL { disable }
         ::= { hm2AgentPortConfigEntry 248 }
    --**************************************************************************************
    --    hm2AgentProtocolConfigGroup
    --**************************************************************************************

    hm2AgentProtocolConfigGroup                     OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 14 }

    --**************************************************************************************
    --    hm2AgentProtocolGroupTable
    --**************************************************************************************

    hm2AgentProtocolGroupTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentProtocolGroupEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the switch's Protocol-based VLAN entries"
         ::= { hm2AgentProtocolConfigGroup 2 }

    hm2AgentProtocolGroupEntry OBJECT-TYPE
         SYNTAX      Hm2AgentProtocolGroupEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's Protocol-based VLAN entry"
         INDEX       { hm2AgentProtocolGroupId }
         ::= { hm2AgentProtocolGroupTable 1 }

    Hm2AgentProtocolGroupEntry ::= SEQUENCE {
          hm2AgentProtocolGroupId
              Integer32,
          hm2AgentProtocolGroupName
              DisplayString,
          hm2AgentProtocolGroupVlanId
              Integer32,
          hm2AgentProtocolGroupStatus
              RowStatus
          }

    hm2AgentProtocolGroupId OBJECT-TYPE
         SYNTAX  Integer32 (0..2147483647)
         MAX-ACCESS  not-accessible
         STATUS  current
         DESCRIPTION
                 "Group identifier of the Protocol-based VLAN entry."
         ::= { hm2AgentProtocolGroupEntry 1 }

    hm2AgentProtocolGroupName OBJECT-TYPE
         SYNTAX  DisplayString (SIZE(0|1..16))
         MAX-ACCESS  read-write
         STATUS  current
         DESCRIPTION
                 "Group name of the Protocol-based VLAN entry."
         ::= { hm2AgentProtocolGroupEntry 2 }

    hm2AgentProtocolGroupVlanId OBJECT-TYPE
         SYNTAX  Integer32 (0..4093)
         MAX-ACCESS  read-write
         STATUS  current
         DESCRIPTION
                 "VLAN associated with the Protocol-based VLAN entry.  Set to 0 to remove."
         ::= { hm2AgentProtocolGroupEntry 3 }

    hm2AgentProtocolGroupStatus OBJECT-TYPE
         SYNTAX  RowStatus
         MAX-ACCESS   read-create
         STATUS  current
         DESCRIPTION
                 "The status of the Protocol-based VLAN entry.

                 active(1)  - this entry is active
                 createAndGo(4) - used to create a new entry
                 destroy(6) - remove this entry"
         ::= { hm2AgentProtocolGroupEntry 7 }

    --**************************************************************************************
    --    hm2AgentProtocolGroupPortTable
    --**************************************************************************************

    hm2AgentProtocolGroupPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentProtocolGroupPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the switch's physical port config entries"
         ::= { hm2AgentProtocolConfigGroup 3 }

    hm2AgentProtocolGroupPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentProtocolGroupPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's physical port config entry"
         INDEX       { hm2AgentProtocolGroupId, hm2AgentProtocolGroupPortIfIndex }
         ::= { hm2AgentProtocolGroupPortTable 1 }

    Hm2AgentProtocolGroupPortEntry ::= SEQUENCE {
          hm2AgentProtocolGroupPortIfIndex
              Integer32,
          hm2AgentProtocolGroupPortStatus
              RowStatus
          }

    hm2AgentProtocolGroupPortIfIndex OBJECT-TYPE
         SYNTAX  Integer32 (0..2147483647)
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
                 "The interface number of this instance."
         ::= { hm2AgentProtocolGroupPortEntry 1 }

    hm2AgentProtocolGroupPortStatus OBJECT-TYPE
         SYNTAX  RowStatus
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
                 "The status of this entry.

                 active(1)        - the port is associated with this group
                 createAndGo(4)   - add the port to this group
                 createAndWait(5) - add the port to this group
                 destroy(6)       - remove the port from this group"
         ::= { hm2AgentProtocolGroupPortEntry 2 }

    --**************************************************************************************
    --    hm2AgentProtocolGroupProtocolTable
    --**************************************************************************************

    hm2AgentProtocolGroupProtocolTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentProtocolGroupProtocolEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the switch's physical port config entries"
         ::= { hm2AgentProtocolConfigGroup 4 }

    hm2AgentProtocolGroupProtocolEntry OBJECT-TYPE
         SYNTAX      Hm2AgentProtocolGroupProtocolEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's physical port config entry"
         INDEX       { hm2AgentProtocolGroupId, hm2AgentProtocolGroupProtocolID }
         ::= { hm2AgentProtocolGroupProtocolTable 1 }

    Hm2AgentProtocolGroupProtocolEntry ::= SEQUENCE {
          hm2AgentProtocolGroupProtocolID
              Integer32,
          hm2AgentProtocolGroupProtocolStatus
              RowStatus
          }

    hm2AgentProtocolGroupProtocolID OBJECT-TYPE
         SYNTAX  Integer32  (1536..65535)
         MAX-ACCESS not-accessible 
         STATUS  current
         DESCRIPTION
                 "The protocol ID of this instance. The value for IP is 2048 (0x0800), ARP is 2054 (0x0806) and IPX is 33079 (0x8137).
                  Other protocol Ids in the range 1536 to 65535 can also be configured."
                  
         ::= { hm2AgentProtocolGroupProtocolEntry 1 }

    hm2AgentProtocolGroupProtocolStatus OBJECT-TYPE
         SYNTAX  RowStatus
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
                 "The status of this entry.

                 active(1)        - the port is associated with this group
                 createAndGo(4)   - add the port to this group
                 createAndWait(5) - add the port to this group
                 destroy(6)       - remove the port from this group"
         ::= { hm2AgentProtocolGroupProtocolEntry 2 }

    --**************************************************************************************
    --    hm2AgentStpSwitchConfigGroup
    --**************************************************************************************

    hm2AgentStpSwitchConfigGroup                     OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 15 }

    hm2AgentStpConfigDigestKey OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(16))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MST configuration digest key."
         ::= { hm2AgentStpSwitchConfigGroup 1 }

    hm2AgentStpConfigFormatSelector OBJECT-TYPE
         SYNTAX      Unsigned32 (0..255)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MST configuration format selector. A value other than 0 (zero)
                     indicates non-support for the IEEE 802.1s standard."
         ::= { hm2AgentStpSwitchConfigGroup 2 }

    hm2AgentStpConfigName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..32))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MST configuration name of at most 32 characters."
         ::= { hm2AgentStpSwitchConfigGroup 3 }

    hm2AgentStpConfigRevision OBJECT-TYPE
         SYNTAX      Unsigned32 (0..65535)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MST configuration revision. The default value is 1."
         DEFVAL { 1 }
         ::= { hm2AgentStpSwitchConfigGroup 4 }

    hm2AgentStpForceVersion OBJECT-TYPE
         SYNTAX      INTEGER {
                     stp(1),
                     rstp(2),
                     mstp(3)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MST configuration force protocol version. The default version is RSTP."
         DEFVAL { rstp }
         ::= { hm2AgentStpSwitchConfigGroup 5 }

    hm2AgentStpAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The spanning tree operational status.

                     enable(1)  - enables spanning tree operational status on the switch.
                     disable(2) - disables spanning tree operational status on the switch.

                     The default status is enabled."
         DEFVAL { enable }            
         ::= { hm2AgentStpSwitchConfigGroup 6 }

    --**************************************************************************************
    -- 	hm2AgentStpPortTable
    --**************************************************************************************

    hm2AgentStpPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStpPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "STP port table."
         ::= { hm2AgentStpSwitchConfigGroup 7 }

    hm2AgentStpPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStpPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "STP port entry."
         INDEX       { ifIndex }
         ::= { hm2AgentStpPortTable 1 }

    Hm2AgentStpPortEntry ::=
         SEQUENCE {
         hm2AgentStpPortState
                 HmEnabledStatus,
         hm2AgentStpPortStatsMstpBpduRx
                 Counter32,
         hm2AgentStpPortStatsMstpBpduTx
                 Counter32,
         hm2AgentStpPortStatsRstpBpduRx
                 Counter32,
         hm2AgentStpPortStatsRstpBpduTx
                 Counter32,
         hm2AgentStpPortStatsStpBpduRx
                 Counter32,
         hm2AgentStpPortStatsStpBpduTx
                 Counter32,
         hm2AgentStpPortUpTime
                 TimeTicks,
         hm2AgentStpPortMigrationCheck
                 INTEGER
         }

    hm2AgentStpPortState OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The administrative STP state for the port.

                     enable(1)  - enables STP on the port.
                     disable(2) - disables STP on the port.

                     The default port STP state is enabled for the first 4095
                     ports and disabled for any ports beyond."
         ::= { hm2AgentStpPortEntry 1 }

    hm2AgentStpPortStatsMstpBpduRx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP BPDUs received on a specific port."
         ::= { hm2AgentStpPortEntry 2 }

    hm2AgentStpPortStatsMstpBpduTx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP BPDUs sent from a specific port."
         ::= { hm2AgentStpPortEntry 3 }

    hm2AgentStpPortStatsRstpBpduRx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The RSTP BPDUs received on a specific port."
         ::= { hm2AgentStpPortEntry 4 }

    hm2AgentStpPortStatsRstpBpduTx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The RSTP BPDUs sent from a specific port."
         ::= { hm2AgentStpPortEntry 5 }

    hm2AgentStpPortStatsStpBpduRx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The STP BPDUs received on a specific port."
         ::= { hm2AgentStpPortEntry 6 }

    hm2AgentStpPortStatsStpBpduTx OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The STP BPDUs sent from a specific port."
         ::= { hm2AgentStpPortEntry 7 }

    hm2AgentStpPortUpTime OBJECT-TYPE
         SYNTAX      TimeTicks
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Time since port was reset.
                     It is displayed in days, hours, minutes, and seconds."
         ::= { hm2AgentStpPortEntry 8 }

    hm2AgentStpPortMigrationCheck OBJECT-TYPE
         SYNTAX      INTEGER {
                     false(0),
                     true(1)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Force the specified port to transmit RSTP or MSTP BPDUs.

                     Supported values:
                     false(0) - BPDUs are not to be transmitted.
                     true(1)  - BPDUs are to be transmitted

                     A non-zero value indicates that BPDUs are to be sent on the specified port."
         ::= { hm2AgentStpPortEntry 9 }

    --**************************************************************************************
    -- 	hm2AgentStpCstConfigGroup
    --**************************************************************************************

    hm2AgentStpCstConfigGroup                      OBJECT IDENTIFIER ::= { hm2AgentStpSwitchConfigGroup 8 }

    hm2AgentStpCstHelloTime OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP root port hello time for the CIST."
         ::= { hm2AgentStpCstConfigGroup 1 }

    hm2AgentStpCstMaxAge OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP root port max age for the CIST."
         ::= { hm2AgentStpCstConfigGroup 2 }

    hm2AgentStpCstRegionalRootId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP regional root identifier for the CIST."
         ::= { hm2AgentStpCstConfigGroup 3 }

    hm2AgentStpCstRegionalRootPathCost OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP regional root path cost for the CIST."
         ::= { hm2AgentStpCstConfigGroup 4 }

    hm2AgentStpCstRootFwdDelay OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP root port forward delay for the CIST."
         ::= { hm2AgentStpCstConfigGroup 5 }

    hm2AgentStpCstBridgeFwdDelay OBJECT-TYPE
         SYNTAX      Unsigned32 (4..30)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge forward delay for the CIST. The default value is 15."
         DEFVAL { 15 }
         ::= { hm2AgentStpCstConfigGroup 6 }

    hm2AgentStpCstBridgeHelloTime OBJECT-TYPE
         SYNTAX      Unsigned32 (1..2)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge hello time for the CIST. The default
                      value is 2."
         DEFVAL { 2 }
         ::= { hm2AgentStpCstConfigGroup 7 }

    hm2AgentStpCstBridgeHoldTime OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge hold time for the CIST."
         ::= { hm2AgentStpCstConfigGroup 8 }

    hm2AgentStpCstBridgeMaxAge OBJECT-TYPE
         SYNTAX      Unsigned32 (6..40)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge max age for the CIST. The default value is 20."
         DEFVAL { 20 }
         ::= { hm2AgentStpCstConfigGroup 9 }

    hm2AgentStpCstBridgeMaxHops OBJECT-TYPE
         SYNTAX      Unsigned32 (6..40)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge max hops for the CIST. The default value is 20."
         DEFVAL { 20 }
         ::= { hm2AgentStpCstConfigGroup 10 }

    hm2AgentStpCstBridgePriority OBJECT-TYPE
         SYNTAX      Unsigned32 (0..61440)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge priority for the CIST. The default value is 32768."
         DEFVAL { 32768 }
         ::= { hm2AgentStpCstConfigGroup 11 }

     hm2AgentStpCstBridgeHoldCount OBJECT-TYPE
         SYNTAX      Unsigned32 (1..40)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge hold count for the CIST. This command sets the value of
                      maximum bpdus that a bridge is allowed to send within a hello time window.
                      The default value is 10."
         DEFVAL { 10 }
         ::= { hm2AgentStpCstConfigGroup 12 }
         
    --**************************************************************************************
    -- hm2AgentStpCstPortTable
    --**************************************************************************************

    hm2AgentStpCstPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStpCstPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "CIST port table."
         ::= { hm2AgentStpSwitchConfigGroup 9 }

    hm2AgentStpCstPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStpCstPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "CIST port entry."
         INDEX       { ifIndex }
         ::= { hm2AgentStpCstPortTable 1 }

    Hm2AgentStpCstPortEntry ::=
         SEQUENCE {
         hm2AgentStpCstPortOperEdge
                 HmEnabledStatus,
         hm2AgentStpCstPortOperPointToPoint
                 INTEGER,
         hm2AgentStpCstPortTopologyChangeAck
                 INTEGER,
         hm2AgentStpCstPortEdge
                 HmEnabledStatus,
         hm2AgentStpCstPortForwardingState
                 INTEGER,
         hm2AgentStpCstPortId
                 OCTET STRING,
         hm2AgentStpCstPortPathCost
                 Unsigned32,
         hm2AgentStpCstPortPriority
                 Unsigned32,
         hm2AgentStpCstDesignatedBridgeId
                 OCTET STRING,
         hm2AgentStpCstDesignatedCost
                 Unsigned32,
         hm2AgentStpCstDesignatedPortId
                 OCTET STRING,
         hm2AgentStpCstExtPortPathCost
                 Unsigned32,
         hm2AgentStpCstPortBpduGuardEffect
                 HmEnabledStatus,
         hm2AgentStpCstPortBpduFilter
                 HmEnabledStatus,
         hm2AgentStpCstPortBpduFlood
                 HmEnabledStatus,
         hm2AgentStpCstPortAutoEdge
                 HmEnabledStatus,
         hm2AgentStpCstPortRootGuard
                 HmEnabledStatus,
         hm2AgentStpCstPortTCNGuard
                 HmEnabledStatus,
         hm2AgentStpCstPortLoopGuard
                 HmEnabledStatus,
         hm2AgentStpCstPortBpduFilterState
         		 HmEnabledStatus
         }

    hm2AgentStpCstPortOperEdge OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP operational status of a specific port for the CIST."
         ::= { hm2AgentStpCstPortEntry 1 }

    hm2AgentStpCstPortOperPointToPoint OBJECT-TYPE
         SYNTAX      INTEGER {
                     true(1),
                     false(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP operational point to point mac of a specific port for the CIST."
         ::= { hm2AgentStpCstPortEntry 2 }

    hm2AgentStpCstPortTopologyChangeAck OBJECT-TYPE
         SYNTAX      INTEGER {
                     true(1),
                     false(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP topology change acknowledge for a specific port in the CIST."
         ::= { hm2AgentStpCstPortEntry 3 }

    hm2AgentStpCstPortEdge OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The administrative state of a specific port in CIST.

                     enable(1)  - enables the port.
                     disable(2) - disables the port.

                     The default port state is disabled."
         DEFVAL { disable }
         ::= { hm2AgentStpCstPortEntry 4 }

    hm2AgentStpCstPortForwardingState OBJECT-TYPE
         SYNTAX      INTEGER {
                     discarding(1),
                     learning(2),
                     forwarding(3),
                     disabled(4),
                     manualFwd(5),
                     notParticipate(6)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP forwarding state of a specific port in CIST."
         ::= { hm2AgentStpCstPortEntry 5 }

    hm2AgentStpCstPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP port identifier of a specific port in CIST."
         ::= { hm2AgentStpCstPortEntry 6 }

    hm2AgentStpCstPortPathCost OBJECT-TYPE
         SYNTAX      Unsigned32 (0..200000000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP port path cost in CIST. The default value will
                     correspond to the recommendation specified in IEEE 802.1s Table 13-2
                     which varies depending upon link speed."
         ::= { hm2AgentStpCstPortEntry 7 }

    hm2AgentStpCstPortPriority OBJECT-TYPE
         SYNTAX      Unsigned32 (0..240)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP port priority in CIST. The priority is
                     in the increments of 16. The default value is 128."
         DEFVAL { 128 }
         ::= { hm2AgentStpCstPortEntry 8 }

    hm2AgentStpCstDesignatedBridgeId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated bridge ID of a specific port in CIST."
         ::= { hm2AgentStpCstPortEntry 9 }

    hm2AgentStpCstDesignatedCost OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated cost of a specific port in CIST."
         ::= { hm2AgentStpCstPortEntry 10 }

    hm2AgentStpCstDesignatedPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated port ID of a specific port in CIST."
         ::= { hm2AgentStpCstPortEntry 11 }

    hm2AgentStpCstExtPortPathCost OBJECT-TYPE
         SYNTAX      Unsigned32 (0..200000000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP external port path cost in CIST. The default value varies depending upon the link speed."
         ::= { hm2AgentStpCstPortEntry 12 }

    hm2AgentStpCstPortBpduGuardEffect OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "BPDU Guard Mode effect on the port.

                     enable(1)  - BPDU Guard Mode is enabled on the port.
                     disable(2) - BPDU Guard Mode is disabled on the port."
         ::= { hm2AgentStpCstPortEntry 13 }

    hm2AgentStpCstPortBpduFilter OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command sets BPDU Filter mode on the port.

                     enable(1)  - BPDU Filter Mode is enabled on the port.
                     disable(2) - BPDU Filter Mode is disabled on the port."
         DEFVAL { disable }
         ::= { hm2AgentStpCstPortEntry 14 }

    hm2AgentStpCstPortBpduFlood OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command sets BPDU Flood mode on the port.

                     enable(1)  - BPDU Flood Mode is enabled on the port.
                     disable(2) - BPDU Flood Mode is disabled on the port."
         DEFVAL	{ disable }
         ::= { hm2AgentStpCstPortEntry 15 }

    hm2AgentStpCstPortAutoEdge OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command sets the auto-edge mode of the port which enables it
                      to become an edge port if it does not see BPDUs for some duration.

                     enable(1)  - enables the auto-edge mode for the port.
                     disable(2) - disables the auto-edge mode for the port.

                     The default auto-edge mode is enabled."
         DEFVAL { enable }
         ::= { hm2AgentStpCstPortEntry 16 }

    hm2AgentStpCstPortRootGuard OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command sets a port to discard any superior information
                      received by the port and thus protect against root of the device
                      from changing.The port gets put into discarding state and does
                      not forward any packets.

                     enable(1)  - enables the root guard mode for the port.
                     disable(2) - disables the root guard mode for the port.

                     The default root guard mode is disabled."
         DEFVAL { disable }
         ::= { hm2AgentStpCstPortEntry 17 }

    hm2AgentStpCstPortTCNGuard OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command restricts the port from propagating any topology change
                      information received through that port.

                     enable(1)  - enables the TCN guard mode for the port.
                     disable(2) - disables the TCN guard mode for the port.

                     The default TCN guard mode is disabled."
         DEFVAL { disable }
         ::= { hm2AgentStpCstPortEntry 18 }

    hm2AgentStpCstPortLoopGuard OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This command enables loop guard on this port. This setting applies
                     to all Spanning Tree instances of which this port is a member.

                     enable(1)  - enables the loop guard mode for the port.
                     disable(2) - disables the loop guard mode for the port.

                     The default loop guard mode is disabled."
         DEFVAL { disable }
         ::= { hm2AgentStpCstPortEntry 19 }
         
    hm2AgentStpCstPortBpduFilterState OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This command displays the BPDU Filter state on the port.

                     enable(1)  - BPDU Filter Mode is active on the port.
                     disable(2) - BPDU Filter Mode is inactive on the port."
         ::= { hm2AgentStpCstPortEntry 248 }
   
    --**************************************************************************************
    -- hm2AgentStpMstTable
    --**************************************************************************************

    hm2AgentStpMstTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStpMstEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST table."
         ::= { hm2AgentStpSwitchConfigGroup 10 }

    hm2AgentStpMstEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStpMstEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST entry."
         INDEX       { hm2AgentStpMstId }
         ::= { hm2AgentStpMstTable 1 }

    Hm2AgentStpMstEntry ::=
         SEQUENCE {
         hm2AgentStpMstId
                 Unsigned32,
         hm2AgentStpMstBridgePriority
                 Unsigned32,
         hm2AgentStpMstBridgeIdentifier
                 OCTET STRING,
         hm2AgentStpMstDesignatedRootId
                 OCTET STRING,
         hm2AgentStpMstRootPathCost
                 Unsigned32,
         hm2AgentStpMstRootPortId
                 OCTET STRING,
         hm2AgentStpMstTimeSinceTopologyChange
                 TimeTicks,
         hm2AgentStpMstTopologyChangeCount
                 Counter32,
         hm2AgentStpMstTopologyChangeParm
                 INTEGER,
         hm2AgentStpMstRowStatus
                 RowStatus
         }

    hm2AgentStpMstId OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP instance ID."
         ::= { hm2AgentStpMstEntry 1 }

    hm2AgentStpMstBridgePriority OBJECT-TYPE
         SYNTAX      Unsigned32 (0..61440)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge priority in a specific instance. The priority is
                     in the increments of 4096. The recommended default value is 32768."
         DEFVAL { 32768 }
         ::= { hm2AgentStpMstEntry 2 }

    hm2AgentStpMstBridgeIdentifier OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP bridge identifier in a specific instance."
         ::= { hm2AgentStpMstEntry 3 }

    hm2AgentStpMstDesignatedRootId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated root bridge identifier in a specific instance."
         ::= { hm2AgentStpMstEntry 4 }

    hm2AgentStpMstRootPathCost OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP root path cost in a specific instance."
         ::= { hm2AgentStpMstEntry 5 }

    hm2AgentStpMstRootPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP root port ID in a specific instance."
         ::= { hm2AgentStpMstEntry 6 }

    hm2AgentStpMstTimeSinceTopologyChange OBJECT-TYPE
         SYNTAX      TimeTicks
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP time since the last topology change in a specific instance."
         ::= { hm2AgentStpMstEntry 7 }

    hm2AgentStpMstTopologyChangeCount OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP count of topology changes in a specific instance."
         ::= { hm2AgentStpMstEntry 8 }

    hm2AgentStpMstTopologyChangeParm OBJECT-TYPE
         SYNTAX      INTEGER {
                     true(1),
                     false(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP topology change parameter in a specific instance."
         ::= { hm2AgentStpMstEntry 9 }

    hm2AgentStpMstRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The MSTP instance status.

                     Supported values:
                     active(1)      - valid instance.
                     notReady(3)    - row has incomplete values.                     
                     createAndGo(4) - used to create a new instance.
                     destroy(6)     - removes an instance."
         ::= { hm2AgentStpMstEntry 10 }

    --**************************************************************************************
    -- hm2AgentStpMstPortTable
    --**************************************************************************************

    hm2AgentStpMstPortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStpMstPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST port table."
         ::= { hm2AgentStpSwitchConfigGroup 11 }

    hm2AgentStpMstPortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStpMstPortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST port entry."
         INDEX       { hm2AgentStpMstId, ifIndex }
         ::= { hm2AgentStpMstPortTable 1 }

    Hm2AgentStpMstPortEntry ::=
         SEQUENCE {
         hm2AgentStpMstPortForwardingState
                 INTEGER,
         hm2AgentStpMstPortId
                 OCTET STRING,
         hm2AgentStpMstPortPathCost
                 Unsigned32,
         hm2AgentStpMstPortPriority
                 Unsigned32,
         hm2AgentStpMstDesignatedBridgeId
                 OCTET STRING,
         hm2AgentStpMstDesignatedCost
                 Unsigned32,
         hm2AgentStpMstDesignatedPortId
                 OCTET STRING,
         hm2AgentStpMstPortLoopInconsistentState
                 INTEGER,
         hm2AgentStpMstPortTransitionsIntoLoopInconsistentState
                 Counter32,
         hm2AgentStpMstPortTransitionsOutOfLoopInconsistentState
                 Counter32,
         hm2AgentStpMstPortRole
                 INTEGER,
         hm2AgentStpCstAutoPortPathCost
                 INTEGER,
         hm2AgentStpMstPortReceivedBridgeId 
                 OCTET STRING,
         hm2AgentStpMstPortReceivedRPC
                 Unsigned32,
         hm2AgentStpMstPortReceivedPortId
                 OCTET STRING,
         hm2AgentStpMstAutoPortPathCost
                 INTEGER,
         hm2AgentStpMstPortReceivedRegionalRPC
                 Unsigned32
         }

    hm2AgentStpMstPortForwardingState OBJECT-TYPE
         SYNTAX      INTEGER {
                     discarding(1),
                     learning(2),
                     forwarding(3),
                     disabled(4),
                     manualFwd(5),
                     notParticipate(6)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP forwarding state of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 1 }

    hm2AgentStpMstPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP port identifier of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 2 }

    hm2AgentStpMstPortPathCost OBJECT-TYPE
         SYNTAX      Unsigned32 (0..200000000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP port path cost in a specific instance. The default value will
                     correspond to the recommendation specified in IEEE 802.1s Table 13-2
                     which varies depending upon link speed."
		 DEFVAL { 0 }
         ::= { hm2AgentStpMstPortEntry 3 }

    hm2AgentStpMstPortPriority OBJECT-TYPE
         SYNTAX      Unsigned32 (0..240)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The MSTP port priority in a specific instance. The priority is
                     in the increments of 16. The default value is 128."
         DEFVAL { 128 }
         ::= { hm2AgentStpMstPortEntry 4 }

    hm2AgentStpMstDesignatedBridgeId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated bridge ID of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 5 }

    hm2AgentStpMstDesignatedCost OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated cost of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 6 }

    hm2AgentStpMstDesignatedPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The MSTP designated port ID of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 7 }

    hm2AgentStpMstPortLoopInconsistentState OBJECT-TYPE
         SYNTAX      INTEGER {
                     false(0),
                     true(1)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The loop inconsistent state of a specific port in a specific instance.
                     This value can only report as true(1) when loop guard is enabled on the port
                     and the port has transitioned from blocking state in this MST instance."
         ::= { hm2AgentStpMstPortEntry 8 }

    hm2AgentStpMstPortTransitionsIntoLoopInconsistentState OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The number of times this interface has transitioned into loop inconsistent state."
         ::= { hm2AgentStpMstPortEntry 9 }

    hm2AgentStpMstPortTransitionsOutOfLoopInconsistentState OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The number of times this interface has transitioned out of loop inconsistent state."
         ::= { hm2AgentStpMstPortEntry 10 }

    hm2AgentStpMstPortRole OBJECT-TYPE
         SYNTAX      INTEGER {
                     root(1),
                     alternate(2),
                     designated(3),
                     backup(4),
                     master(5),
                     disabled(6)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The current port pole for a specific port (i.e., root, alternate, designated or backup) in a specific instance." 
         ::= { hm2AgentStpMstPortEntry 248 }

    hm2AgentStpCstAutoPortPathCost OBJECT-TYPE
         SYNTAX      INTEGER {
                     false(0),
                     true(1)
                     }

         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Spanning Tree auto port path cost. If the value is true, the port 
                     path cost will be calculated depending on link speed corresponding to the 
                     recommendation specified in IEEE 802.1s Table 13-2 which varies depending 
                     upon link speed."
         ::= { hm2AgentStpMstPortEntry 249 }

    hm2AgentStpMstPortReceivedBridgeId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(8))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The received bridge ID on a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 250 }
         
    hm2AgentStpMstPortReceivedRPC OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The received root path cost of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 251 }

    hm2AgentStpMstPortReceivedPortId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(2))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The received port ID on a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 252 }   

    hm2AgentStpMstAutoPortPathCost OBJECT-TYPE
         SYNTAX      INTEGER {
                     false(0),
                     true(1)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Spanning Tree auto port path cost of a given instance. If the value 
		      is true, the port path cost will be calculated depending on link speed 
                      corresponding to the recommendation specified in IEEE 802.1s Table 13-2 
                      which varies depending upon link speed."
         ::= { hm2AgentStpMstPortEntry 253 }
         
    hm2AgentStpMstPortReceivedRegionalRPC OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The received regional (internal) root path cost of a specific port in a specific instance."
         ::= { hm2AgentStpMstPortEntry 254 }         
         
    --**************************************************************************************
    -- hm2AgentStpMstVlanTable
    --**************************************************************************************

    hm2AgentStpMstVlanTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStpMstVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST VLAN table."
         ::= { hm2AgentStpSwitchConfigGroup 12 }

    hm2AgentStpMstVlanEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStpMstVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "MST VLAN entry."
         INDEX       { hm2AgentStpMstId, dot1qVlanIndex }
         ::= { hm2AgentStpMstVlanTable 1 }

    Hm2AgentStpMstVlanEntry ::=
         SEQUENCE {
         hm2AgentStpMstVlanRowStatus
                 RowStatus
         }

    hm2AgentStpMstVlanRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The association status of an MSTP instance and a VLAN.

                     Supported values:
                     active(1)      - valid association between an MSTP instance and a VLAN.
                     notReady(3)    - inconsistent values for the the association between an MSTP instance and a VLAN (VLAN it's not created or version is not MSTP).
                     createAndGo(4) - used to create a new association between an MSTP instance and a VLAN.
                     destroy(6)     - removes the association between an MSTP instance and a VLAN."
         ::= { hm2AgentStpMstVlanEntry 1 }

    hm2AgentStpBpduGuardMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The spanning tree BPDU Guard Mode.

                     enable(1)  - enables BPDU Guard Mode on the switch.
                     disable(2) - disables BPDU Guard Mode on the switch.

                     The default status is disabled."
		 DEFVAL		{disable}
         ::= { hm2AgentStpSwitchConfigGroup 13 }


    hm2AgentStpBpduFilterDefault OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The spanning tree BPDU Filter Mode, it enables BPDU Filter on all
                     edge ports.

                     enable(1)  - enables BPDU Filter Mode on the switch.
                     disable(2) - disables BPDU Filter Mode on the switch.

                     The default status is disabled."
		 DEFVAL		{disable}
         ::= { hm2AgentStpSwitchConfigGroup 14 }

     hm2AgentStpRingOnlyMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "When RSTP Ring Only Mode is enabled the switch ignores the BPDUs age on Ring Only Mode ports.
                     The topology change BPDUs sent on Ring Only Mode ports will have a message age of 1.

                     enable(1)  - enables RSTP Ring Only Mode globally.
                     disable(2) - disables RSTP Ring Only Mode globally.

                     The default status is disabled."
		 DEFVAL		{disable}
         ::= { hm2AgentStpSwitchConfigGroup 248 }

     hm2AgentStpRingOnlyModeIntfOne     OBJECT-TYPE
        SYNTAX           InterfaceIndexOrZero
        MAX-ACCESS       read-write
        STATUS           current
        DESCRIPTION
                         "Interface index of the first interface."
        DEFVAL           { 0 }
        ::= { hm2AgentStpSwitchConfigGroup 249 }

     hm2AgentStpRingOnlyModeIntfTwo     OBJECT-TYPE
        SYNTAX           InterfaceIndexOrZero
        MAX-ACCESS       read-write
        STATUS           current
        DESCRIPTION
                         "Interface index of the second interface."
        DEFVAL           { 0 }
        ::= { hm2AgentStpSwitchConfigGroup 250 }

    hm2AgentStpTrapMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The spanning tree trap status.

                     enable(1)  - enables spanning tree traps on the switch.
                     disable(2) - disables spanning tree traps on the switch.

                     The default status is enabled."
         DEFVAL { enable }            
         ::= { hm2AgentStpSwitchConfigGroup 251 }

	--**************************************************************************************
    -- 	hm2AgentStpMstSNMPExtensionGroup
    --**************************************************************************************

    hm2AgentStpMstSNMPExtensionGroup   OBJECT IDENTIFIER ::= { hm2AgentStpSwitchConfigGroup 260 }     

	hm2AgentStpMstInstanceVlanErrorReturn OBJECT-IDENTITY
   		STATUS        current
   		DESCRIPTION   
   					"Invalid value for instance. Instance 0 is a system managed instance and the user should not modify it."
   		::= { hm2AgentStpMstSNMPExtensionGroup 1 }
   		
   	hm2AgentStpCstFwdDelayErrorReturn OBJECT-IDENTITY
   		STATUS        current
   		DESCRIPTION   
   					"Invalid value combination for Max Age/Forward Delay."
   		::= { hm2AgentStpMstSNMPExtensionGroup 2 }

    hm2AgentStpMstSwitchVersionConflict OBJECT-IDENTITY
        STATUS       current
        DESCRIPTION 
                    "Cannot switch version while spanning-tree is disabled."
        ::= { hm2AgentStpMstSNMPExtensionGroup 3 }

	--**************************************************************************************
	--    hm2AgentClassOfServiceGroup
	--**************************************************************************************
    
	hm2AgentClassOfServiceGroup                     OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 17 }

    hm2AgentClassOfServicePortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentClassOfServicePortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                    "A table that contains information about the 802.1p priority
                     mapping to traffic class priority queue for every physical port."
         ::= { hm2AgentClassOfServiceGroup 1 }

    hm2AgentClassOfServicePortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentClassOfServicePortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                    "A 802.1p priority mapped to a traffic class priority queue."
         INDEX       { ifIndex, hm2AgentClassOfServicePortPriority }
         ::= { hm2AgentClassOfServicePortTable 1 }

    Hm2AgentClassOfServicePortEntry ::= SEQUENCE {
         hm2AgentClassOfServicePortPriority
              Integer32,
         hm2AgentClassOfServicePortClass
              Integer32
         }

    hm2AgentClassOfServicePortPriority OBJECT-TYPE
         SYNTAX      Integer32 (0..7)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                    "The Priority value determined for the received frame.
                     This value is equivalent to the priority indicated in
                     the tagged frame received, or one of the evaluated
                     priorities, determined according to the media type.

                     For untagged frames received from Ethernet media, this
                     value is equal to the dot1dPortDefaultUserPriority value
                     for the ingress port."
         ::= { hm2AgentClassOfServicePortEntry 1 }

    hm2AgentClassOfServicePortClass OBJECT-TYPE
         SYNTAX      Integer32 (0..7)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                    "Traffic class priority queue the received frame is mapped to."
         ::= { hm2AgentClassOfServicePortEntry 2 }

	--**************************************************************************************
    -- hm2AgentKeepalivePortTable
    --
    --**************************************************************************************

    hm2AgentKeepalivePortTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentKeepalivePortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Keepalive port table."
         ::= { hm2AgentConfigGroup  31 }

    hm2AgentKeepalivePortEntry OBJECT-TYPE
         SYNTAX      Hm2AgentKeepalivePortEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Keepalive port table."
         INDEX       { ifIndex }
         ::= { hm2AgentKeepalivePortTable 1 }

    Hm2AgentKeepalivePortEntry ::=
         SEQUENCE {
         hm2AgentKeepalivePortState
                 INTEGER,
         hm2AgentKeepalivePortLoopDetected
                 INTEGER,
         hm2AgentKeepalivePortLoopCount
                 Counter32,
         hm2AgentKeepalivePortRxAction
                 INTEGER,
         hm2AgentKeepalivePortLastLoopDetectedTime
                 DateAndTime,
         hm2AgentKeepalivePortTpidType
                 INTEGER,
         hm2AgentKeepalivePortVlanId
                 VlanIdOrNone,
         hm2AgentKeepalivePortMode
                 INTEGER,
		 hm2AgentKeepalivePortTxFrameCount
                 Counter32,
		 hm2AgentKeepalivePortRxFrameCount
                 Counter32,
		 hm2AgentKeepalivePortDiscardFrameCount
                 Counter32,
		 hm2AgentKeepalivePortStatsClear
                 INTEGER
         }

    hm2AgentKeepalivePortState OBJECT-TYPE
         SYNTAX      INTEGER {
                     enable(1),
                     disable(2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The keepalive state for the port.

                     enable(1)  - enables keepalive on the port.
                     disable(2) - disables keepalive on the port.

                     The default port keepalive state is disabled."
         DEFVAL      { 2 }
         ::= { hm2AgentKeepalivePortEntry 1 }

    hm2AgentKeepalivePortLoopDetected OBJECT-TYPE
         SYNTAX      INTEGER {
                     yes (1),
                     no (2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Keepalive status for the port.

                     yes (1)  - loop detected on the port.
                     no  (2)  - no loop detected on the port."
         ::= { hm2AgentKeepalivePortEntry 2 }

    hm2AgentKeepalivePortLoopCount OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The loop count on a specific port."
         ::= { hm2AgentKeepalivePortEntry 3 }

    hm2AgentKeepalivePortRxAction OBJECT-TYPE
         SYNTAX      INTEGER {
                     trap         (10),
                     auto-disable (11),
                     all          (12)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Action on detecting a loop on the port.

                     trap         (10) - send a trap.
                     auto-disable (11) - execute auto disable configured action.
                     all          (12) - all above mentioned actions."
         DEFVAL      {11}
         ::= { hm2AgentKeepalivePortEntry 5 }
    
    hm2AgentKeepalivePortLastLoopDetectedTime OBJECT-TYPE
         SYNTAX      DateAndTime 
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION  
                     "TimeStamp when last loop was detected on a port."
         DEFVAL      { '00000000'H }            
         ::= { hm2AgentKeepalivePortEntry 7 }

    hm2AgentKeepalivePortTpidType OBJECT-TYPE
         SYNTAX      INTEGER {
                     none       (0),
                     dot1q      (1),
                     dot1ad     (2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Type of TPID to be used for loop protection or None if no vlan based loop protection is required."
         DEFVAL      {0}
         ::= { hm2AgentKeepalivePortEntry 8 }

    hm2AgentKeepalivePortVlanId OBJECT-TYPE
         SYNTAX      VlanIdOrNone
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Vlan Id to be used for loop protection or None if no vlan based loop protection is required."
         DEFVAL      {0}
         ::= { hm2AgentKeepalivePortEntry 9 }

    hm2AgentKeepalivePortMode OBJECT-TYPE
         SYNTAX      INTEGER {
                     active(1),
                     passive(2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The keepalive mode for the port.

                     active(1)  - enables transmission of keepalive check frames.
                     passive(2) - disables transmission of check frames, only reception is active.

                     The default port keepalive mode is passive."
         DEFVAL      {2}
         ::= { hm2AgentKeepalivePortEntry 248 }

    hm2AgentKeepalivePortTxFrameCount OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The amount of keepalive check frames sent on a specific port."
         ::= { hm2AgentKeepalivePortEntry 249 }

    hm2AgentKeepalivePortRxFrameCount OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The amount of keepalive check frames received on a specific port."
         ::= { hm2AgentKeepalivePortEntry 250 }

    hm2AgentKeepalivePortDiscardFrameCount OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The amount of keepalive check frames discarded on a specific port."
         ::= { hm2AgentKeepalivePortEntry 251 }

    hm2AgentKeepalivePortStatsClear OBJECT-TYPE
         SYNTAX      INTEGER {
                     other(1),
                     clear(2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Clear keepalive statistics on a specific port. When read always returns 'other'."
         ::= { hm2AgentKeepalivePortEntry 252 }


--**************************************************************************************
--    hm2AgentSystemGroup
--**************************************************************************************

hm2AgentSystemGroup                             OBJECT IDENTIFIER ::= { hm2PlatformSwitching 3 }

         
     hm2AgentClearVlan OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "clear vlan entries"
         ::= { hm2AgentSystemGroup 9 }

--**************************************************************************************
    hm2AgentDaiConfigGroup                OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 21 }
--**************************************************************************************
--************ The Dynamic ARP Inspection Global Config Table ********

    hm2AgentDaiSrcMacValidate OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether Sender MAC validation in the ARP
             packets is enabled.

             If this object is set to 'true', validation
             is enabled.

             If this object is set to 'false', validation
             is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDaiConfigGroup 1 }

    hm2AgentDaiDstMacValidate OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether Target MAC validation in the ARP
             Response packets is enabled.

             If this object is set to 'true', validation
             is enabled.

             If this object is set to 'false', validation
             is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDaiConfigGroup 2 }

    hm2AgentDaiIPValidate OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether IP address validation in the ARP
             packets is enabled.

             If this object is set to 'true', validation
             is enabled.

             If this object is set to 'false', validation
             is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDaiConfigGroup 3 }


--************ The Dynamic ARP Inspection VLAN Config Table ********

    hm2AgentDaiVlanConfigTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Hm2AgentDaiVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        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."
        ::= { hm2AgentDaiConfigGroup 4 }

    hm2AgentDaiVlanConfigEntry OBJECT-TYPE
        SYNTAX       Hm2AgentDaiVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A row instance contains the configuration for Dynamic
             ARP Inspection at each existing VLAN."
        INDEX { hm2AgentDaiVlanIndex }
        ::= { hm2AgentDaiVlanConfigTable 1 }

    Hm2AgentDaiVlanConfigEntry ::= SEQUENCE {
        hm2AgentDaiVlanIndex                  VlanIndex,
        hm2AgentDaiVlanDynArpInspEnable       TruthValue,
        hm2AgentDaiVlanLoggingEnable          TruthValue,
        hm2AgentDaiVlanArpAclName             DisplayString,
        hm2AgentDaiVlanArpAclStaticFlag       TruthValue,
        hm2AgentDaiVlanBindingCheckEnable     TruthValue
    }

    hm2AgentDaiVlanIndex OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                "This object indicates the VLAN number on which Dynamic ARP
                 Inspection feature is configured."
         ::= { hm2AgentDaiVlanConfigEntry 1 }

    hm2AgentDaiVlanDynArpInspEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        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."
        DEFVAL      { false }
        ::= { hm2AgentDaiVlanConfigEntry 2 }

    hm2AgentDaiVlanLoggingEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "This object indicates whether the Dynamic ARP Inspection
            logging is enabled on this VlAN.
            If this object is set to 'true', Dynamic ARP Inspection
            logging is enabled.
            If this object is set to 'false', Dynamic ARP Inspection
            loging is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDaiVlanConfigEntry 3 }

    hm2AgentDaiVlanArpAclName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..31))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "This object indicates the ARP ACL name set for this VLAN. Notice
            that the ACL is regarded only if the corresponding row in
            'agentArpAclTable' is active."
        ::= { hm2AgentDaiVlanConfigEntry 4 }

    hm2AgentDaiVlanArpAclStaticFlag OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "If an ARP ACL is defined for the VLAN and there is no match for
             the received ARP packet, the further proceeding depends on this
             MIB object. If it is 'true', then the packet is dropped, otherwise
             the packet is checked against the DHCP snooping bindings database
             (optional, see 'hm2AgentDaiVlanBindingCheckEnable'). If there is
             no match in the bindings database too, the packet is dropped."
        DEFVAL      { false }
        ::= { hm2AgentDaiVlanConfigEntry 5 }

    hm2AgentDaiVlanBindingCheckEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "If enabled, the ARP frame received on an untrusted port (in a DAI
             enabled VLAN) is checked against the ARP ACL and the DHCP Snooping
             bindings database. If disabled it is only checked against the ARP
             ACL."
        DEFVAL      { true }
        ::= { hm2AgentDaiVlanConfigEntry 248 }

--************ The Dynamic ARP Inspection Vlan Statistics Table ********

    hm2AgentDaiStatsReset OBJECT-TYPE
        SYNTAX       INTEGER {
                     none(0),
                     reset(1)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
             "Clear the DAI statistics on all vlans. A value of reset(1)
              is used to reset the statistics. A read on this object will
              always return the value none(0). The value none(0) cannot
              be forcibly set by the administrator."
        ::= { hm2AgentDaiConfigGroup 5 }

    hm2AgentDaiVlanStatsTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Hm2AgentDaiVlanStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        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."
        ::= { hm2AgentDaiConfigGroup 6 }

    hm2AgentDaiVlanStatsEntry OBJECT-TYPE
        SYNTAX       Hm2AgentDaiVlanStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A row instance contains the Dynamic ARP Inspection
             statistics per VLAN."
        INDEX { hm2AgentDaiVlanStatsIndex }
        ::= { hm2AgentDaiVlanStatsTable 1 }

    Hm2AgentDaiVlanStatsEntry ::= SEQUENCE {
        hm2AgentDaiVlanStatsIndex          VlanIndex,
        hm2AgentDaiVlanPktsForwarded       Counter32,
        hm2AgentDaiVlanPktsDropped         Counter32,
        hm2AgentDaiVlanDhcpDrops           Counter32,
        hm2AgentDaiVlanDhcpPermits         Counter32,
        hm2AgentDaiVlanAclDrops            Counter32,
        hm2AgentDaiVlanAclPermits          Counter32,
        hm2AgentDaiVlanSrcMacFailures      Counter32,
        hm2AgentDaiVlanDstMacFailures      Counter32,
        hm2AgentDaiVlanIpValidFailures     Counter32
    }

    hm2AgentDaiVlanStatsIndex OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This object indicates the VLAN number on which Dynamic ARP
            Inspection statistics are retrieved."
        ::= { hm2AgentDaiVlanStatsEntry 1 }

    hm2AgentDaiVlanPktsForwarded OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of valid ARP packets forwarded by DAI."
        ::= { hm2AgentDaiVlanStatsEntry 2 }

    hm2AgentDaiVlanPktsDropped OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of invalid ARP packets dropped by DAI."
        ::= { hm2AgentDaiVlanStatsEntry 3 }

    hm2AgentDaiVlanDhcpDrops OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were dropped by DAI as
             there is no matching DHCP Snooping binding entry found."
        ::= { hm2AgentDaiVlanStatsEntry 4 }

    hm2AgentDaiVlanDhcpPermits OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were forwarded by DAI as
             there is a matching DHCP Snooping binding entry found."
        ::= { hm2AgentDaiVlanStatsEntry 5 }

    hm2AgentDaiVlanAclDrops OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were dropped by DAI as
             there is no matching ARP ACL rule found for this Vlan and
             the static flag is set on this vlan."
        ::= { hm2AgentDaiVlanStatsEntry 6 }

    hm2AgentDaiVlanAclPermits OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were permitted by DAI as
             there is a matching ARP ACL rule found for this Vlan."
        ::= { hm2AgentDaiVlanStatsEntry 7 }

    hm2AgentDaiVlanSrcMacFailures OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were dropped by DAI as the
             sender mac address in ARP packet didn't match the source
             mac in ethernet header."
        ::= { hm2AgentDaiVlanStatsEntry 8 }

    hm2AgentDaiVlanDstMacFailures OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were dropped by DAI as the
             target mac address in ARP reply packet didn't match the
             destination mac in ethernet header."
        ::= { hm2AgentDaiVlanStatsEntry 9 }

    hm2AgentDaiVlanIpValidFailures OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Number of ARP packets that were dropped by DAI as the
             sender IP address in ARP packet or target IP address in
             ARP reply packet is invalid. Invalid addresses include
             0.0.0.0, 255.255.255.255, IP multicast addresses,
             class E addresses (240.0.0.0/4), loopback addresses (127.0.0.0/8)."
        ::= { hm2AgentDaiVlanStatsEntry 10 }

--************ The Dynamic ARP Inspection Interface Config Table ********

    hm2AgentDaiIfConfigTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Hm2AgentDaiIfConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A table provides the mechanism to configure the trust
            state for Dynamic ARP Inspection purpose at each physical
            interface capable of this feature."
        ::= { hm2AgentDaiConfigGroup 7 }

    hm2AgentDaiIfConfigEntry OBJECT-TYPE
        SYNTAX       Hm2AgentDaiIfConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A row instance contains the configuration for
             Dynamic ARP Inspection at each physical
             interface capable of this feature."
        INDEX { ifIndex }
        ::= { hm2AgentDaiIfConfigTable 1 }

    Hm2AgentDaiIfConfigEntry ::= SEQUENCE {
        hm2AgentDaiIfTrustEnable       TruthValue,
        hm2AgentDaiIfRateLimit         Integer32,
        hm2AgentDaiIfBurstInterval     Unsigned32,
        hm2AgentDaiIfAutoDisable       TruthValue
    }

    hm2AgentDaiIfTrustEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        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."
        DEFVAL      { false }
        ::= { hm2AgentDaiIfConfigEntry 1 }

    hm2AgentDaiIfRateLimit OBJECT-TYPE
        SYNTAX      Integer32 (-1|0..300)
        UNITS       "packets per second"
        MAX-ACCESS  read-write
        STATUS      current
        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 for consecutively
             burst interval seconds, ARP packets will be
             dropped. Value of -1 indicates that there is no rate limit."
        DEFVAL      { -1 }
        ::= { hm2AgentDaiIfConfigEntry 2 }

    hm2AgentDaiIfBurstInterval OBJECT-TYPE
        SYNTAX      Unsigned32 (1..15)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the burst interval value
             for rate limiting purpose on this interface."
        DEFVAL      { 1 }
        ::= { hm2AgentDaiIfConfigEntry 3 }

     hm2AgentDaiIfAutoDisable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
             "This object indicates whether a port is auto-disabled when the
              configured ARP threshold is exceeded."
        DEFVAL      { true }
    ::= { hm2AgentDaiIfConfigEntry 248 }


--**************************************************************************************
    hm2AgentArpAclGroup                 OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 22 }
--**************************************************************************************

--*********************** ARP ACL Config Table ***********************

    hm2AgentArpAclTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentArpAclEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the ARP ACL entries"
         ::= { hm2AgentArpAclGroup 1 }

    hm2AgentArpAclEntry OBJECT-TYPE
         SYNTAX      Hm2AgentArpAclEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for an ARP ACL"
         INDEX       { hm2AgentArpAclName }
         ::= { hm2AgentArpAclTable 1 }

    Hm2AgentArpAclEntry ::= SEQUENCE {
          hm2AgentArpAclName
              DisplayString,
          hm2AgentArpAclRowStatus
              RowStatus
          }

    hm2AgentArpAclName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Name of the ARP ACL, which must consist of 1 to 31 alphanumeric
                      characters and uniquely identify this ARP ACL. This object must
                      be set to complete a new ARP ACL row instance."
         ::= { hm2AgentArpAclEntry 1 }

    hm2AgentArpAclRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row. Entries can not be deleted until all rows in
                     arpAclRuleTable with corresponding values of arpAclIndex have been deleted.

                     active(1)  		- This ACL instance is active.
					 notInService(2) 	- Row has been suspended.
					 notReady(3)		- Row has incomplete values.
					 createAndGo(4)		- Accept row values and activate.
					 createAndWait(5)	- Accept row values and wait.
                     destroy(6) 		- Set to this value to delete this instance."
         ::= { hm2AgentArpAclEntry 2 }


--*********************** ARP ACL Rule Config Table ***********************

    hm2AgentArpAclRuleTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentArpAclRuleEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the ARP ACL Rule entries"
         ::= { hm2AgentArpAclGroup 2 }

    hm2AgentArpAclRuleEntry OBJECT-TYPE
         SYNTAX      Hm2AgentArpAclRuleEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a set of ARP ACL-match rules"
         INDEX       { hm2AgentArpAclName, hm2AgentArpAclRuleMatchSenderIpAddr, hm2AgentArpAclRuleMatchSenderMacAddr }
         ::= { hm2AgentArpAclRuleTable 1 }

    Hm2AgentArpAclRuleEntry ::= SEQUENCE {
          hm2AgentArpAclRuleMatchSenderIpAddr
              IpAddress,
          hm2AgentArpAclRuleMatchSenderMacAddr
              MacAddress,
          hm2AgentArpAclRuleRowStatus
              RowStatus
          }

    hm2AgentArpAclRuleMatchSenderIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Sender IP address match value for the ARP ACL.
                      This address must be a unicast address unequal to 0.0.0.0."
         ::= { hm2AgentArpAclRuleEntry 1 }

    hm2AgentArpAclRuleMatchSenderMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Sender MAC address match value for the ARP ACL.
                      This address must be a unicast address unequal to 00:0:00:00:00:00."
         ::= { hm2AgentArpAclRuleEntry 2 }

    hm2AgentArpAclRuleRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                     active(1)  		- This ACL Rule is active.
					 notInService(2) 	- Row has been suspended.
					 notReady(3)		- Row has incomplete values.
					 createAndGo(4)		- Accept row values and activate.
					 createAndWait(5)	- Accept row values and wait.
                     destroy(6) 		- Set to this value to delete an instance."
         ::= { hm2AgentArpAclRuleEntry 3 }


--**************************************************************************************
    hm2AgentDhcpSnoopingConfigGroup     OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 23 }
--**************************************************************************************
--************ The DHCP SNOOPING Global Config Table ********

   hm2AgentDhcpSnoopingAdminMode OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether DHCP Snooping
             is enabled globally.

             If this object is set to 'true',admin mode
             is enabled globally.

             If this object is set to 'false',admin mode
             is disabled globally."
        DEFVAL      { false }
        ::= { hm2AgentDhcpSnoopingConfigGroup 1 }

   hm2AgentDhcpSnoopingVerifyMac OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether source Mac address
             in the received DHCP Message needs to be verified or not.

             If this object is set to 'true',verifyMac
             is enabled globally.

             If this object is set to 'false',verifyMac
             is disabled globally."
        DEFVAL      { false }
        ::= { hm2AgentDhcpSnoopingConfigGroup 2 }

    hm2AgentDhcpSnoopingVlanConfigTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Hm2AgentDhcpSnoopingVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A table provides the mechanism to control DHCP SNOOPING
             per VLAN. When a VLAN is created in a device
            supporting this table, a corresponding entry of this table
            will be added."
        ::= { hm2AgentDhcpSnoopingConfigGroup 3 }


    hm2AgentDhcpSnoopingVlanConfigEntry OBJECT-TYPE
        SYNTAX       Hm2AgentDhcpSnoopingVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A row instance contains the configuration for DHCP
             SNOOPING at each existing VLAN."
        INDEX { hm2AgentDhcpSnoopingVlanIndex }
        ::= { hm2AgentDhcpSnoopingVlanConfigTable  1 }

    Hm2AgentDhcpSnoopingVlanConfigEntry ::= SEQUENCE {
        hm2AgentDhcpSnoopingVlanIndex        VlanIndex,
        hm2AgentDhcpSnoopingVlanEnable       TruthValue
    }

    hm2AgentDhcpSnoopingVlanIndex OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                "This object indicates the VLAN number on which DHCP SNOOPING
                 Inspection feature is configured."
         ::= { hm2AgentDhcpSnoopingVlanConfigEntry 1 }

    hm2AgentDhcpSnoopingVlanEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether DHCP SNOOPING is
             enabled in this VLAN.

             If this object is set to 'true', DHCP SNOOPING
             is enabled.

             If this object is set to 'false', DHCP SNOOPING
             is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDhcpSnoopingVlanConfigEntry 2 }


--************ The DHCP snooping Interface Config Table ********

 hm2AgentDhcpSnoopingIfConfigTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF Hm2AgentDhcpSnoopingIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table provides the mechanism to configure the trust
        state for DHCP snooping purpose at each physical
        interface capable of this feature."
    ::= { hm2AgentDhcpSnoopingConfigGroup 4 }

 hm2AgentDhcpSnoopingIfConfigEntry OBJECT-TYPE
    SYNTAX       Hm2AgentDhcpSnoopingIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the configuration for
         DHCP snooping at each physical interface capable of this feature."
    INDEX { ifIndex }
    ::= { hm2AgentDhcpSnoopingIfConfigTable 1 }

 Hm2AgentDhcpSnoopingIfConfigEntry ::= SEQUENCE {
    hm2AgentDhcpSnoopingIfTrustEnable       TruthValue,
    hm2AgentDhcpSnoopingIfLogEnable         TruthValue,
    hm2AgentDhcpSnoopingIfRateLimit         Integer32,
    hm2AgentDhcpSnoopingIfBurstInterval     Integer32,
    hm2AgentDhcpSnoopingIfAutoDisable       TruthValue
 }

 hm2AgentDhcpSnoopingIfTrustEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether the interface is trusted for
        DHCP snooping purpose."

    DEFVAL      { false }
    ::= { hm2AgentDhcpSnoopingIfConfigEntry 1 }

 hm2AgentDhcpSnoopingIfLogEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether the Logging needs on DHCP snooping validations
         or not"

    DEFVAL      { false }
    ::= { hm2AgentDhcpSnoopingIfConfigEntry 2 }

    hm2AgentDhcpSnoopingIfRateLimit OBJECT-TYPE
        SYNTAX      Integer32 (-1|0..150)
        UNITS       "packets per second"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates rate limit value for DHCP
             Snooping purpose. If the incoming rate of DHCP packets
             exceeds the value of this object for consecutively
             burst interval seconds, DHCP packets will be
             dropped. Value of -1 indicates that there is no rate limit."
        DEFVAL      { -1 }
        ::= { hm2AgentDhcpSnoopingIfConfigEntry 3 }

    hm2AgentDhcpSnoopingIfBurstInterval OBJECT-TYPE
        SYNTAX      Integer32 (1..15)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the burst interval value
             for rate limiting purpose on this interface."
        DEFVAL      { 1 }
        ::= { hm2AgentDhcpSnoopingIfConfigEntry 4 }

     hm2AgentDhcpSnoopingIfAutoDisable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
             "This object indicates whether a port is auto-disabled when the
              configured threshold is reached."
        DEFVAL      { true }
    ::= { hm2AgentDhcpSnoopingIfConfigEntry 248 }

--************ The IPSG Interface Config Table ********

  hm2AgentIpsgIfConfigTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF Hm2AgentIpsgIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table provides the mechanism to configure the IPSG
         at each physical interface capable of this feature."
    ::= { hm2AgentDhcpSnoopingConfigGroup 5 }

  hm2AgentIpsgIfConfigEntry OBJECT-TYPE
    SYNTAX       Hm2AgentIpsgIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the configuration for
         IPSG at each physical interface capable of this feature."
    INDEX { ifIndex }
    ::= { hm2AgentIpsgIfConfigTable 1 }

  Hm2AgentIpsgIfConfigEntry ::= SEQUENCE {
    hm2AgentIpsgIfVerifySource       TruthValue,
    hm2AgentIpsgIfPortSecurity       TruthValue
   }

 hm2AgentIpsgIfVerifySource    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether IP packets received on this interface
        are filtered based on whether IP Source Guard considers the source IP address
        to be a valid client address. Setting this variable to false automatically
        sets hm2AgentIpsgIfPortSecurity to false."

    DEFVAL      { false }
    ::= { hm2AgentIpsgIfConfigEntry 1 }

 hm2AgentIpsgIfPortSecurity OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether IP packets received on this interface 
        are filtered based on whether IP Source Guard considers the source MAC address
        to be a valid client address. The port security option cannot be enabled
        unless hm2AgentIpsgIfVerifySource is also enabled. That is, MAC address filtering
        cannot be done without also doing IP address filtering. But IP address filtering
        can be done without MAC address filtering. Once the port security 
        option is enabled, it can only be disabled by disabling hm2AgentIpsgIfVerifySource."

    DEFVAL      { false }
    ::= { hm2AgentIpsgIfConfigEntry 2 }

--************ The DHCP snooping Statistics Table ********

  hm2AgentDhcpSnoopingStatsReset OBJECT-TYPE
    SYNTAX  INTEGER {
         none(0),
         reset(1)
     }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
         "Clear the DHCP snooping statistics on all ports. A value of reset(1)
          is used to reset the statistics. A read on this object will
          always return the value none(0). The value none(0) cannot
          be forcibly set by the administrator."
    ::= { hm2AgentDhcpSnoopingConfigGroup 6 }

 hm2AgentDhcpSnoopingStatsTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF Hm2AgentDhcpSnoopingStatsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table provides the mechanism for statics of DHCP snooping."
    ::= { hm2AgentDhcpSnoopingConfigGroup 7 }

 hm2AgentDhcpSnoopingStatsEntry OBJECT-TYPE
    SYNTAX       Hm2AgentDhcpSnoopingStatsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the DHCP snooping statistics per VLAN."
    INDEX { ifIndex }
    ::= { hm2AgentDhcpSnoopingStatsTable 1 }

 Hm2AgentDhcpSnoopingStatsEntry ::= SEQUENCE {

    hm2AgentDhcpSnoopingMacVerifyFailures     Counter32,
    hm2AgentDhcpSnoopingInvalidClientMessages    Counter32,
    hm2AgentDhcpSnoopingInvalidServerMessages    Counter32
  }

 hm2AgentDhcpSnoopingMacVerifyFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of failure verifications of client mac address with
         source mac address"
    ::= { hm2AgentDhcpSnoopingStatsEntry  1 }

 hm2AgentDhcpSnoopingInvalidClientMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of invalid DHCP releases and deny messages"
    ::= { hm2AgentDhcpSnoopingStatsEntry  2 }

 hm2AgentDhcpSnoopingInvalidServerMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of invalid DHCP server mesaages"
    ::= { hm2AgentDhcpSnoopingStatsEntry  3 }

--*********************** IPSG static entries Config Table ***********************

    hm2AgentStaticIpsgBindingTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStaticIpsgBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IPSG static entries"
         ::= { hm2AgentDhcpSnoopingConfigGroup 8 }

    hm2AgentStaticIpsgBindingEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStaticIpsgBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a binding in IPSG table"
         INDEX       { hm2AgentStaticIpsgBindingIfIndex, hm2AgentStaticIpsgBindingVlanId,
                       hm2AgentStaticIpsgBindingMacAddr, hm2AgentStaticIpsgBindingIpAddr
                     }
         ::= { hm2AgentStaticIpsgBindingTable  1 }

    Hm2AgentStaticIpsgBindingEntry ::= SEQUENCE {

          hm2AgentStaticIpsgBindingIfIndex     InterfaceIndex,
          hm2AgentStaticIpsgBindingVlanId      VlanIndex,
          hm2AgentStaticIpsgBindingMacAddr     MacAddress,
          hm2AgentStaticIpsgBindingIpAddr      IpAddress,
          hm2AgentStaticIpsgBindingRowStatus   RowStatus,
          hm2AgentStaticIpsgBindingHwStatus    TruthValue
          }

     hm2AgentStaticIpsgBindingIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Interface on which this IPSG binding is going to be added."
         ::= { hm2AgentStaticIpsgBindingEntry  1 }

     hm2AgentStaticIpsgBindingVlanId OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     " VLAN to which this IPSG binding is going to be added."
         ::= { hm2AgentStaticIpsgBindingEntry  2 }

     hm2AgentStaticIpsgBindingMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "MAC address match value for the IPSG Binding.
                      This address must be a unicast address unequal to 00:0:00:00:00:00."
         ::= { hm2AgentStaticIpsgBindingEntry  3 }

     hm2AgentStaticIpsgBindingIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP address match value for the IPSG Binding.
                      This address must be a unicast address unequal to 0.0.0.0."
         ::= { hm2AgentStaticIpsgBindingEntry 4 }

    hm2AgentStaticIpsgBindingRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                     active(1)  		- This DHCP Snooping binding is active.
					 notInService(2) 	- Row has been suspended.
					 notReady(3)		- Row has incomplete values.
					 createAndGo(4)		- Accept row values and activate.
					 createAndWait(5)	- Accept row values and wait.
                     destroy(6) 		- Set to this value to remove this binding."
         ::= { hm2AgentStaticIpsgBindingEntry 5 }


     hm2AgentStaticIpsgBindingHwStatus OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Set to true when Binding is applied to the Hardware"
         DEFVAL      { false }
         ::= { hm2AgentStaticIpsgBindingEntry 248 }


--*********************** IPSG dynamic entries Config ready only Table ***********************

    hm2AgentDynamicIpsgBindingTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentDynamicIpsgBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the IPSG dynamic entries"
         ::= { hm2AgentDhcpSnoopingConfigGroup 9 }

    hm2AgentDynamicIpsgBindingEntry OBJECT-TYPE
         SYNTAX      Hm2AgentDynamicIpsgBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a binding in IPSG table"
         INDEX       { hm2AgentDynamicIpsgBindingIfIndex, hm2AgentDynamicIpsgBindingVlanId,
                       hm2AgentDynamicIpsgBindingMacAddr, hm2AgentDynamicIpsgBindingIpAddr
                     }
         ::= { hm2AgentDynamicIpsgBindingTable  1 }

    Hm2AgentDynamicIpsgBindingEntry ::= SEQUENCE {

          hm2AgentDynamicIpsgBindingIfIndex     InterfaceIndex,
          hm2AgentDynamicIpsgBindingVlanId      VlanIndex,
          hm2AgentDynamicIpsgBindingMacAddr     MacAddress,
          hm2AgentDynamicIpsgBindingIpAddr      IpAddress,
          hm2AgentDynamicIpsgBindingHwStatus    TruthValue
          }

     hm2AgentDynamicIpsgBindingIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Interface on which this IPSG binding is added."
         ::= { hm2AgentDynamicIpsgBindingEntry  1 }

     hm2AgentDynamicIpsgBindingVlanId OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     " VLAN to which this IPSG binding is going to be added."
         ::= { hm2AgentDynamicIpsgBindingEntry  2 }

     hm2AgentDynamicIpsgBindingMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "MAC address match value for the IPSG Binding."
         ::= { hm2AgentDynamicIpsgBindingEntry  3 }


     hm2AgentDynamicIpsgBindingIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Sender IP address match value for the IPSG Binding."
         ::= { hm2AgentDynamicIpsgBindingEntry 4 }

     hm2AgentDynamicIpsgBindingHwStatus OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Set to true when Binding is applied to the Hardware"
         ::= { hm2AgentDynamicIpsgBindingEntry 248 }

--*********************** DHCP SNOOPING static bindings Config Table ***********************

    hm2AgentStaticDsBindingTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentStaticDsBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP SNOOPING static entries"
         ::= { hm2AgentDhcpSnoopingConfigGroup 10 }

    hm2AgentStaticDsBindingEntry OBJECT-TYPE
         SYNTAX      Hm2AgentStaticDsBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a binding in DHCP SNOOPING table"
         INDEX       {
                       hm2AgentStaticDsBindingMacAddr
                     }
         ::= { hm2AgentStaticDsBindingTable  1 }

    Hm2AgentStaticDsBindingEntry ::= SEQUENCE {

          hm2AgentStaticDsBindingIfIndex     InterfaceIndexOrZero,
          hm2AgentStaticDsBindingVlanId      VlanId,
          hm2AgentStaticDsBindingMacAddr     MacAddress,
          hm2AgentStaticDsBindingIpAddr      IpAddress,
          hm2AgentStaticDsBindingRowStatus   RowStatus
          }

     hm2AgentStaticDsBindingIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndexOrZero
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Interface on which this DHCP SNOOPING binding is going to be added."
         DEFVAL      { 0 }
         ::= { hm2AgentStaticDsBindingEntry  1 }

     hm2AgentStaticDsBindingVlanId OBJECT-TYPE
         SYNTAX      VlanId
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "VLAN to which this DHCP SNOOPING binding is going to be added."
         DEFVAL      { 1 }
         ::= { hm2AgentStaticDsBindingEntry  2 }
     hm2AgentStaticDsBindingMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "MAC address match value for the DHCP SNOOPING Binding.
                      This address must be a unicast address unequal to 00:0:00:00:00:00."
         ::= { hm2AgentStaticDsBindingEntry  3 }

     hm2AgentStaticDsBindingIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP address match value for the DHCP SNOOPING Binding.
                      This address must be a unicast address unequal to 0.0.0.0."
         DEFVAL { '00000000'H }      -- 0.0.0.0 
         ::= { hm2AgentStaticDsBindingEntry 4 }

    hm2AgentStaticDsBindingRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                     active(1)  		- This DHCP Snooping binding is active.
					 notInService(2) 	- Row has been suspended.
					 notReady(3)		- Row has incomplete values.
					 createAndGo(4)		- Accept row values and activate.
					 createAndWait(5)	- Accept row values and wait.
                     destroy(6) 		- Set to this value to remove this binding."
         ::= { hm2AgentStaticDsBindingEntry 5 }

--*********************** DHCP SNOOPING Dynamic bindings Config Table ***********************

    hm2AgentDynamicDsBindingTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentDynamicDsBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DHCP SNOOPING Dynamic entries"
         ::= { hm2AgentDhcpSnoopingConfigGroup 11 }

    hm2AgentDynamicDsBindingEntry OBJECT-TYPE
         SYNTAX      Hm2AgentDynamicDsBindingEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a binding in DHCP SNOOPING table"
         INDEX       { hm2AgentDynamicDsBindingMacAddr }
         ::= { hm2AgentDynamicDsBindingTable  1 }

    Hm2AgentDynamicDsBindingEntry ::= SEQUENCE {

          hm2AgentDynamicDsBindingIfIndex     InterfaceIndex,
          hm2AgentDynamicDsBindingVlanId      VlanIndex,
          hm2AgentDynamicDsBindingMacAddr     MacAddress,
          hm2AgentDynamicDsBindingIpAddr      IpAddress,
          hm2AgentDynamicDsBindingLeaseRemainingTime TimeTicks
          }

     hm2AgentDynamicDsBindingIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Interface on which this DHCP SNOOPING binding is going to be added."
         ::= { hm2AgentDynamicDsBindingEntry  1 }

     hm2AgentDynamicDsBindingVlanId OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     " VLAN to which this DHCP SNOOPING binding is going to be added."
         ::= { hm2AgentDynamicDsBindingEntry  2 }
     hm2AgentDynamicDsBindingMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "MAC address match value for the DHCP SNOOPING Binding."
         ::= { hm2AgentDynamicDsBindingEntry  3 }

     hm2AgentDynamicDsBindingIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "IP address match value for the DHCP SNOOPING Binding."
         ::= { hm2AgentDynamicDsBindingEntry 4 }

    hm2AgentDynamicDsBindingLeaseRemainingTime OBJECT-TYPE
         SYNTAX      TimeTicks
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "This specifies the period for which the DHCP SNOOPING Binding is valid."
         ::= { hm2AgentDynamicDsBindingEntry 5 }


--*********************** DHCP SNOOPING Remote Storage configurations ***********************a

   hm2AgentDhcpSnoopingRemoteFileName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the file name on the remote machine
             to save the DHCP Snooping bindings."
        DEFVAL { "" }
        ::= { hm2AgentDhcpSnoopingConfigGroup 12 }

   hm2AgentDhcpSnoopingRemoteIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the IP address of the remote machine
             to save the DHCP Snooping bindings. This will be set only
             when we have a valid file name."
        DEFVAL { '00000000'H }      -- 0.0.0.0 
        ::= { hm2AgentDhcpSnoopingConfigGroup 13 }

   hm2AgentDhcpSnoopingStoreInterval OBJECT-TYPE
        SYNTAX      Unsigned32(15..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the perodic time interval
             to save the (changed) DHCP Snooping bindings database."
        DEFVAL { 300 }
        ::= { hm2AgentDhcpSnoopingConfigGroup 14 }


--**************************************************************************************
-- hm2AgentDhcpL2RelayConfigGroup
--**************************************************************************************

   hm2AgentDhcpL2RelayConfigGroup     OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 24 }

--**************************************************************************************

   hm2AgentDhcpL2RelayAdminMode OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether DHCP L2 Relay
             is enabled globally.

             If this object is set to 'true',admin mode
             is enabled globally.

             If this object is set to 'false',admin mode
             is disabled globally."
        DEFVAL      { false }
        ::= { hm2AgentDhcpL2RelayConfigGroup 1 }


--************ The DHCP L2Relay Interface Config Table ********

 hm2AgentDhcpL2RelayIfConfigTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF Hm2AgentDhcpL2RelayIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table provides the mechanism to enable/disable and configure
         the trust state for DHCP L2Relay purpose at each physical
        interface capable of this feature."
    ::= { hm2AgentDhcpL2RelayConfigGroup 2 }

 hm2AgentDhcpL2RelayIfConfigEntry OBJECT-TYPE
    SYNTAX       Hm2AgentDhcpL2RelayIfConfigEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the configuration for
         DHCP L2 Relay at each physical interface capable of this feature."
    INDEX { ifIndex }
    ::= { hm2AgentDhcpL2RelayIfConfigTable 1 }

 Hm2AgentDhcpL2RelayIfConfigEntry ::= SEQUENCE {
    hm2AgentDhcpL2RelayIfEnable         TruthValue,
    hm2AgentDhcpL2RelayIfTrustEnable    TruthValue
 }

 hm2AgentDhcpL2RelayIfEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether the DHCP L2Relay is enabled
         or not"
    DEFVAL      { false }
    ::= { hm2AgentDhcpL2RelayIfConfigEntry 1 }

 hm2AgentDhcpL2RelayIfTrustEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether the interface is trusted for
        DHCP L2 Relay purpose."
    DEFVAL      { false }
    ::= { hm2AgentDhcpL2RelayIfConfigEntry 2 }

--************ The DHCP L2 Relay VLAN Config Table ********

  hm2AgentDhcpL2RelayVlanConfigTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Hm2AgentDhcpL2RelayVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A table provides the mechanism to control DHCP L2 Relay
             per VLAN. When a VLAN is created in a device
            supporting this table, a corresponding entry of this table
            will be added."
        ::= { hm2AgentDhcpL2RelayConfigGroup 3 }


    hm2AgentDhcpL2RelayVlanConfigEntry OBJECT-TYPE
        SYNTAX       Hm2AgentDhcpL2RelayVlanConfigEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "A row instance contains the configuration for DHCP
             L2 Relay at each existing VLAN."
        INDEX { hm2AgentDhcpL2RelayVlanIndex }
        ::= { hm2AgentDhcpL2RelayVlanConfigTable  1 }

    Hm2AgentDhcpL2RelayVlanConfigEntry ::= SEQUENCE {
        hm2AgentDhcpL2RelayVlanIndex            VlanIndex,
        hm2AgentDhcpL2RelayVlanEnable           TruthValue,
        hm2AgentDhcpL2RelayCircuitIdVlanEnable  TruthValue,
        hm2AgentDhcpL2RelayRemoteIdVlanEnable   DisplayString,
        hm2AgentDhcpL2RelayVlanRemoteIdType     INTEGER
    }

    hm2AgentDhcpL2RelayVlanIndex OBJECT-TYPE
         SYNTAX      VlanIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                "This object indicates the VLAN number on which DHCP L2 Relay
                 feature is configured."
         ::= { hm2AgentDhcpL2RelayVlanConfigEntry 1 }

    hm2AgentDhcpL2RelayVlanEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether DHCP L2 Relay is
             enabled in this VLAN.

             If this object is set to 'true', DHCP L2 Relay
             is enabled.

             If this object is set to 'false', DHCP L2 Relay
             is disabled."
        DEFVAL      { false }
        ::= { hm2AgentDhcpL2RelayVlanConfigEntry 2 }

    hm2AgentDhcpL2RelayCircuitIdVlanEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates whether DHCP CircuitId is
             enabled for L2 relaying in this VLAN.

             If this object is set to 'true', DHCP CircuitId
             is enabled.

             If this object is set to 'false', DHCP CircuitId
             is disabled."
        DEFVAL      { true }
        ::= { hm2AgentDhcpL2RelayVlanConfigEntry 3 }

    hm2AgentDhcpL2RelayRemoteIdVlanEnable OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..32))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "When this object is set with a non-empty string, DHCP RemoteId is
             enabled for L2 relaying in this VLAN. Notice that you can set this
             object only if hm2AgentDhcpL2RelayVlanRemoteIdType is 'other'."
        DEFVAL { "" }
        ::= { hm2AgentDhcpL2RelayVlanConfigEntry 4 }

    hm2AgentDhcpL2RelayVlanRemoteIdType OBJECT-TYPE
        SYNTAX INTEGER {
            ip(1),
            mac(2),
            client-id(3),
            other(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
             "This option determines the content of the option 82 Remote ID.
             ip(1)        - inserts the IP address
             mac(2)       - inserts the MAC adress
             client-id(3) - inserts the client identifier (sysName)
             other(4)     - inserts the value in hm2AgentDhcpL2RelayRemoteIdVlanEnable"
        DEFVAL  { mac }
        ::= { hm2AgentDhcpL2RelayVlanConfigEntry 248 }


--************ The DHCP L2 Relay Statistics Table ********

  hm2AgentDhcpL2RelayStatsReset OBJECT-TYPE
    SYNTAX  INTEGER {
         none(0),
         reset(1)
     }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
         "Clear the DHCP L2Relay statistics on all ports. A value of reset(1)
          is used to reset the statistics. A read on this object will
          always return the value none(0). The value none(0) cannot
          be forcibly set by the administrator."
    ::= { hm2AgentDhcpL2RelayConfigGroup 6 }

 hm2AgentDhcpL2RelayStatsTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF Hm2AgentDhcpL2RelayStatsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table provides the mechanism for statics of DHCP L2 Relay."
    ::= { hm2AgentDhcpL2RelayConfigGroup 7 }

 hm2AgentDhcpL2RelayStatsEntry OBJECT-TYPE
    SYNTAX       Hm2AgentDhcpL2RelayStatsEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A row instance contains the DHCP L2Relay statistics per interface."
    INDEX { ifIndex }
    ::= { hm2AgentDhcpL2RelayStatsTable 1 }

 Hm2AgentDhcpL2RelayStatsEntry ::= SEQUENCE {

    hm2AgentDhcpL2RelayUntrustedSrvrMsgsWithOptn82     Counter32,
    hm2AgentDhcpL2RelayUntrustedClntMsgsWithOptn82     Counter32,
    hm2AgentDhcpL2RelayTrustedSrvrMsgsWithoutOptn82    Counter32,
    hm2AgentDhcpL2RelayTrustedClntMsgsWithoutOptn82    Counter32
  }

 hm2AgentDhcpL2RelayUntrustedSrvrMsgsWithOptn82 OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of DHCP server messages received with Option-82 field
         on the untrusted interface."
    ::= { hm2AgentDhcpL2RelayStatsEntry  1 }

 hm2AgentDhcpL2RelayUntrustedClntMsgsWithOptn82 OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of DHCP client messages received with Option-82 field
         on the untrusted interface."
    ::= { hm2AgentDhcpL2RelayStatsEntry  2 }

 hm2AgentDhcpL2RelayTrustedSrvrMsgsWithoutOptn82 OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of DHCP server messages received without Option-82 field
         on the trusted interface."
    ::= { hm2AgentDhcpL2RelayStatsEntry  3 }

 hm2AgentDhcpL2RelayTrustedClntMsgsWithoutOptn82 OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of DHCP client messages received without Option-82 field
         on the trusted interface."
    ::= { hm2AgentDhcpL2RelayStatsEntry  4 }

	--**************************************************************************************
    -- hm2AgentSwitchVoiceVLANGroup
    --**************************************************************************************

    hm2AgentSwitchVoiceVLANGroup                      OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 25 }

    hm2AgentSwitchVoiceVLANAdminMode OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This enables or disables Voice VLAN on the system."
         DEFVAL { disable }
         ::= { hm2AgentSwitchVoiceVLANGroup 1 }

      hm2AgentSwitchVoiceVlanDeviceTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSwitchVoiceVlanDeviceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the Voice Vlan device entries."
         ::= { hm2AgentSwitchVoiceVLANGroup 2 }

     hm2AgentSwitchVoiceVlanDeviceEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSwitchVoiceVlanDeviceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Voice Device on the interface."
         INDEX       { hm2AgentSwitchVoiceVlanInterfaceNum, hm2AgentSwitchVoiceVlanDeviceMacAddress }
         ::= { hm2AgentSwitchVoiceVlanDeviceTable 1 }

        Hm2AgentSwitchVoiceVlanDeviceEntry ::= SEQUENCE {
            hm2AgentSwitchVoiceVlanInterfaceNum
                Integer32,
            hm2AgentSwitchVoiceVlanDeviceMacAddress
               MacAddress
        }

        hm2AgentSwitchVoiceVlanInterfaceNum  OBJECT-TYPE
         SYNTAX  Integer32 (1..65535)
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
                 "The interface number of this interface."
         ::= {hm2AgentSwitchVoiceVlanDeviceEntry 1 }

        hm2AgentSwitchVoiceVlanDeviceMacAddress OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Voice Device Mac address"
         ::= { hm2AgentSwitchVoiceVlanDeviceEntry 2 }
         
   
    --**************************************************************************************
    -- hm2AgentSwitchAddresConflictGroup
    --
    --**************************************************************************************

    hm2AgentSwitchAddressConflictGroup       OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 26 }

    hm2AgentSwitchAddressConflictDetectionStatus OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Displays if an address conflict was detected on the switch
                     since the last reset of the status. Set to 'true'
                     if detected, 'false' otherwise."
         ::= { hm2AgentSwitchAddressConflictGroup 1 }

    hm2AgentSwitchAddressConflictDetectionStatusReset OBJECT-TYPE
        SYNTAX       INTEGER {
                     none(0),
                     reset(1)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                     "Clear the last address conflict detection status in the switch.
                     A value of reset(1) is used to reset the status. A read on this
                     object always returns the value none (0). The value none (0) cannot
                     be forcibly set by the administrator."
        ::= { hm2AgentSwitchAddressConflictGroup 2 }

   hm2AgentSwitchLastConflictingIPAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                     "The reported conflicting IP address on the switch since the last
                     reset of the conflict detection status."
        ::= { hm2AgentSwitchAddressConflictGroup 3 }

    hm2AgentSwitchLastConflictingMacAddr OBJECT-TYPE
        SYNTAX       MacAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                     "The MAC address of the host corresponding to the reported 
                     conflicting IP address on the switch since the last reset of
                     the conflict detection status."
        ::= { hm2AgentSwitchAddressConflictGroup 4 }

    hm2AgentSwitchLastConflictReportedTime OBJECT-TYPE
        SYNTAX       TimeTicks
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                     "Time since the last address conflict was detected. It is displayed
                     in days, hours, minutes and seconds. It is set to a valid value only
                     when the conflict detection status is 'true'."
        ::= { hm2AgentSwitchAddressConflictGroup 5 }

    hm2AgentSwitchConflictIPAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
                     "The IP address on the switch reported to have a conflict with
                     another host's IP address."
        ::= { hm2AgentSwitchAddressConflictGroup 6 }

    hm2AgentSwitchConflictMacAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
                     "The MAC address of the host that has an IP address conflicting
                     with the IP address on the switch."
        ::= { hm2AgentSwitchAddressConflictGroup 7 }

    hm2AgentSwitchAddressConflictDetectionRun OBJECT-TYPE
        SYNTAX       INTEGER {
                     none(0),
                     run(1)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                     "Trigger the action to run the active address conflict detection.
                     A value of run(1) is used to issue the action command. A read on
                     this object always returns the value none(0). The value none (0)
                     cannot be forcibly set by the administrator."
        ::= { hm2AgentSwitchAddressConflictGroup 8 }
   
    hm2AgentSwitchAddressConflictTrap OBJECT-TYPE
         SYNTAX      HmEnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Enable or disable the sending of conflict traps."
         DEFVAL { enable }
         ::= { hm2AgentSwitchAddressConflictGroup 248 }
   
   
         
--*******************************************************************************************

     hm2AgentSdmPreferConfigGroup               OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 27 }


     hm2AgentSdmPreferCurrentTemplate OBJECT-TYPE
      SYNTAX     INTEGER {
                 ipv4RoutingDefault(2),
                 ipv4DataCenter(3),
                 ipv4RoutingUnicast(10),
                 ipv4RoutingMulticast(11)
                 }
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
       " Displays the current active SDM Template."

    ::= { hm2AgentSdmPreferConfigGroup 1 }

     hm2AgentSdmPreferNextTemplate OBJECT-TYPE
      SYNTAX     INTEGER {
                 default(0),
                 ipv4RoutingDefault(2),
                 ipv4DataCenter(3),
                 ipv4RoutingUnicast(10),
                 ipv4RoutingMulticast(11)
                 } 
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Configures the next active template. It will be active only after the next reboot.
         To revert to the default template after the next reboot, use the option default(0)."

    ::= { hm2AgentSdmPreferConfigGroup 2 }

--*******************************************************************************************

    hm2AgentSdmTemplateSummaryTable               OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 28 }


    hm2AgentSdmTemplateTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentSdmTemplateEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Displays Switch Database Management Template Information."
         ::= { hm2AgentSdmTemplateSummaryTable 1 }

    hm2AgentSdmTemplateEntry OBJECT-TYPE
         SYNTAX      Hm2AgentSdmTemplateEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Information about a SDM Template table entry."
         INDEX       { hm2AgentSdmTemplateId }
         ::= { hm2AgentSdmTemplateTable 1 }

    Hm2AgentSdmTemplateEntry::= SEQUENCE {
         hm2AgentSdmTemplateId
              INTEGER,
         hm2AgentArpEntries
              Integer32,
         hm2AgentIPv4UnicastRoutes
              Integer32,
         hm2AgentIPv6NdpEntries
              Integer32,
         hm2AgentIPv6UnicastRoutes
              Integer32,
         hm2AgentEcmpNextHops
              Integer32,
         hm2AgentIPv4MulticastRoutes
              Integer32,
         hm2AgentIPv6MulticastRoutes
              Integer32
         }

    hm2AgentSdmTemplateId OBJECT-TYPE
         SYNTAX      INTEGER {
                     ipv4RoutingDefault(2),
                     ipv4DataCenter(3),
                     ipv4RoutingUnicast(10),
                     ipv4RoutingMulticast(11)
                     }
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The SDM Template type this instance is associated with."
         ::= { hm2AgentSdmTemplateEntry 1 }

    hm2AgentArpEntries OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of entries in the IPv4 Address Resolution Protocol (ARP) cache for routing interfaces."
         ::= { hm2AgentSdmTemplateEntry 2 }

    hm2AgentIPv4UnicastRoutes OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of IPv4 unicast forwarding table entries."
         ::= { hm2AgentSdmTemplateEntry 3 }

    hm2AgentIPv6NdpEntries OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of IPv6 Neighbor Discovery Protocol (NDP) cache entries."
         ::= { hm2AgentSdmTemplateEntry 4 }

    hm2AgentIPv6UnicastRoutes OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of IPv6 unicast forwarding table entries."
         ::= { hm2AgentSdmTemplateEntry 5 }

    hm2AgentEcmpNextHops OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of Equal cost next hops that can be installed in the IPv4 and IPv6 unicast forwarding tables."
         ::= { hm2AgentSdmTemplateEntry 6 }

    hm2AgentIPv4MulticastRoutes OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of IPv4 multicast forwarding table entries."
         ::= { hm2AgentSdmTemplateEntry 7 }

    hm2AgentIPv6MulticastRoutes OBJECT-TYPE
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The maximum number of IPv6 multicast forwarding table entries."
         ::= { hm2AgentSdmTemplateEntry 8 }

--*****************************************************************************************
--    Private Vlan
--
--*****************************************************************************************
    hm2AgentPrivateVlanGroup          OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 31 }

    hm2AgentPrivateVlanTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPrivateVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the Private VLAN configuration entries."
         ::= { hm2AgentPrivateVlanGroup 1 }

    hm2AgentPrivateVlanEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPrivateVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Private VLAN."
         INDEX       { dot1qVlanIndex }
         ::= { hm2AgentPrivateVlanTable 1 }

    Hm2AgentPrivateVlanEntry ::= SEQUENCE {
         hm2AgentPrivateVlanType
              INTEGER,
         hm2AgentPrivateVlanAssociate
              VlanList
         }

    hm2AgentPrivateVlanType OBJECT-TYPE
        SYNTAX       INTEGER {
                     primary(1),
                     isolated(2),
                     community(3),
                     unconfigured(4)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                     "Enables vlan for Private Vlan and configures private vlan type."
        ::= { hm2AgentPrivateVlanEntry 1 }

    hm2AgentPrivateVlanAssociate OBJECT-TYPE
         SYNTAX      VlanList
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "This field lists all the VlanIDs which are associated with the selected vlan.
                     If the selected vlan type is not primary(1), a zero-length bitmask is returned."
         ::= { hm2AgentPrivateVlanEntry 2 }

--*****************************************************************************************

    hm2AgentPrivateVlanIntfAssocTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPrivateVlanIntfAssocEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the Private VLAN Interface configuration entries."
         ::= { hm2AgentPrivateVlanGroup 2 }

    hm2AgentPrivateVlanIntfAssocEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPrivateVlanIntfAssocEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a Private VLAN Interface."
         INDEX       { ifIndex }
         ::= { hm2AgentPrivateVlanIntfAssocTable 1 }

    Hm2AgentPrivateVlanIntfAssocEntry ::= SEQUENCE {
         hm2AgentPrivateVlanIntfAssocHostPrimary
              Integer32,
         hm2AgentPrivateVlanIntfAssocHostSecondary
              Integer32,
         hm2AgentPrivateVlanIntfAssocPromiscuousPrimary
              Integer32,
         hm2AgentPrivateVlanIntfAssocPromiscuousSecondary
              VlanList,
         hm2AgentPrivateVlanIntfAssocOperational
              VlanList
    }
    hm2AgentPrivateVlanIntfAssocHostPrimary OBJECT-TYPE
         SYNTAX      Integer32 (0|1..4093)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the primary host vlan association with the interface.
                     This must be configured along with hm2AgentPrivateVlanIntfAssocHostSecondary before
                     the association will be operational.

                     NOTE: Both hm2AgentPrivateVlanIntfAssocHostPrimary and hm2AgentPrivateVlanIntfAssocHostSecondary 
                     objects must be specified at the same time."
         ::= { hm2AgentPrivateVlanIntfAssocEntry 1 }

    hm2AgentPrivateVlanIntfAssocHostSecondary OBJECT-TYPE
         SYNTAX      Integer32 (0|1..4093)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the secondary host vlan association with the interface.  
                     This must be configured along with hm2AgentPrivateVlanIntfAssocHostPrimary before
                     the association will be operational.
                     To remove host-association value of hm2AgentPrivateVlanIntfAssocHostSecondary must be passed as 1.
                     NOTE: Both hm2AgentPrivateVlanIntfAssocHostPrimary and hm2AgentPrivateVlanIntfAssocHostSecondary 
                     objects must be specified at the same time."
         ::= { hm2AgentPrivateVlanIntfAssocEntry 2 }

    hm2AgentPrivateVlanIntfAssocPromiscuousPrimary OBJECT-TYPE
         SYNTAX      Integer32 (0|1..4093)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the primary promiscuous vlan association with the interface.
                     This must be configured along with hm2AgentPrivateVlanIntfAssocPromiscuousSecondary before
                     the association will be operational."
         ::= { hm2AgentPrivateVlanIntfAssocEntry 3 }

    hm2AgentPrivateVlanIntfAssocPromiscuousSecondary OBJECT-TYPE
         SYNTAX      VlanList
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Configures the secondary promiscuous vlan association with the interface.
                     This must be configured along with hm2AgentPrivateVlanIntfAssocPromiscuousPrimary before
                     the association will be operational."
         ::= { hm2AgentPrivateVlanIntfAssocEntry 4 }

    hm2AgentPrivateVlanIntfAssocOperational OBJECT-TYPE
         SYNTAX      VlanList
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Shows the operational private vlans associated with the interface."
         ::= { hm2AgentPrivateVlanIntfAssocEntry 5 }

   --***************************************************************************
   -- hm2AgentPrivateVlanSNMPExtensionGroup
   --**************************************************************************

    hm2AgentPrivateVlanSNMPExtensionGroup   OBJECT IDENTIFIER ::= { hm2AgentPrivateVlanGroup 3 }
    
    hm2AgentInvalidPrivateVlan OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "{0} VLAN cannot be used in private VLAN."

         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 1 }

    hm2AgentVlanIdAlreadyAssociated OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "VLAN already associated with a private domain."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 2 }

    hm2AgentPrimarySecondarySameVlans OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Primary VLAN cannot be associated to itself."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 3 }

    hm2AgentMaxPrivateVlanDomain OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Creation of the private VLAN domain was unsuccessful. Max. count of private VLAN domains reached."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 4 }

    hm2AgentInvalidVLANType OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "VLAN passed as {0} does not belong to type {1}."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 5 }

    hm2AgentSecondaryVlanAlreadyAssociated OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Secondary VLAN already associated."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 6 }

    hm2AgentInvalidSwitchPortMode OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Set the Switchport mode to {0}."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 7 }

    hm2AgentVlansNotAssociated OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Cannot set {0} association. Primary and secondary VLANs are not associated."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 8 }

    hm2AgentInterfaceNotConfigurable OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Interface cannot be configured."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 9 }
 
    hm2AgentVlanNotPrimaryVlanofIntf OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "VLAN is not the primary VLAN of interface."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 10 }
 
    hm2AgentVlansIDNotPresent OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "VLAN does not exist."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 11 }

    hm2AgentSwitchPortModeConflict OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "The switchport mode cannot be changed. The interface is already associated with {0}."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 12 }

    hm2AgentMoreThanOneIsolatedVlan OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "A private domain can only contain one isolated VLAN."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 13 }

    hm2AgentInvalidPrimaryVlan OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "Invalid {0} primary VLAN."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 14 }

    hm2AgentInvalidInterface OBJECT-IDENTITY
         STATUS      current
         DESCRIPTION "A private VLAN cannot be configured on the LAG interface."
         ::= { hm2AgentPrivateVlanSNMPExtensionGroup 15 }

    --**************************************************************************************
    -- hm2AgentSwitchKeepaliveGroup
    --
    --**************************************************************************************

    hm2AgentSwitchKeepaliveGroup                       OBJECT IDENTIFIER ::= { hm2AgentSwitchConfigGroup 43 }

    hm2AgentSwitchKeepaliveState OBJECT-TYPE
         SYNTAX      INTEGER {
                     enable  (1),
                     disable (2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "The keepalive state for the switch.

                     enable  (1) - enables keepalive on the switch.
                     disable (2) - disables keepalive on the switch.

                     The default switch keepalive state is disabled."
         DEFVAL      { 2 }
         ::= { hm2AgentSwitchKeepaliveGroup 1 }

    hm2AgentSwitchKeepaliveTransmitInterval OBJECT-TYPE
         SYNTAX      Integer32 (1..10)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Transmit interval for detection PDUs."
         ::= { hm2AgentSwitchKeepaliveGroup 2 }
         
    hm2AgentSwitchKeepaliveRxThreshold OBJECT-TYPE
         SYNTAX      INTEGER (0|1..50) 
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Amount of frames to be recevied until an action is taken."
         ::= { hm2AgentSwitchKeepaliveGroup 248 }


    --**************************************************************************************
    --    hm2AgentPortRedirectGroup
    --**************************************************************************************

    hm2AgentPortRedirectGroup                     OBJECT IDENTIFIER ::= { hm2AgentConfigGroup 248 }

    hm2AgentPortRedirectTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF Hm2AgentPortRedirectEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This table includes entries for each Redirect session."
         ::= { hm2AgentPortRedirectGroup 1 }

    hm2AgentPortRedirectEntry OBJECT-TYPE
         SYNTAX      Hm2AgentPortRedirectEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Provides configuration of a Redirect session specifying the
                     destination port, and the source Port Mask, providing a many-to-one
                     mapping."
         INDEX       { hm2AgentPortRedirectDestinationPort }
         ::= { hm2AgentPortRedirectTable 1 }

    Hm2AgentPortRedirectEntry ::= SEQUENCE {
         hm2AgentPortRedirectDestinationPort
              InterfaceIndex,
         hm2AgentPortRedirectSourcePortMask
              PortList,
         hm2AgentPortRedirectRowStatus
              RowStatus
         }

    hm2AgentPortRedirectDestinationPort OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The port which traffic from the redirected ports will be sent to."
         ::= { hm2AgentPortRedirectEntry 1 }

    hm2AgentPortRedirectSourcePortMask OBJECT-TYPE
         SYNTAX      PortList
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The ports from which traffic will be redirected to the destination port.
                     The destination port can not be included in this list of ports."
         ::= { hm2AgentPortRedirectEntry 2 }

    hm2AgentPortRedirectRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this port mirroring session."           
         ::= { hm2AgentPortRedirectEntry 3 }
         


--*************************************************************************************
--   Traps
--**************************************************************************************

     hm2PlatformSwitchingTraps OBJECT IDENTIFIER ::= { hm2PlatformSwitching 0 }

     hm2PlatformStpInstanceNewRootTrap NOTIFICATION-TYPE
         OBJECTS {
                      hm2AgentStpMstId
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when this machine is a new STP Root when there is more
             than one STP instance."
         ::= { hm2PlatformSwitchingTraps 10 }

     hm2PlatformStpInstanceTopologyChangeTrap NOTIFICATION-TYPE
         OBJECTS {
                      hm2AgentStpMstId
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when there is a STP topology change when there is more
             than one STP instance."
         ::= { hm2PlatformSwitchingTraps 11 }

     hm2PlatformDaiIntfErrorDisabledTrap NOTIFICATION-TYPE
         OBJECTS {
                     ifIndex
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent once an interface is error disabled by DAI when the
              incoming packet rate exceeded configured rate limit during a
              burst-interval."
         ::= { hm2PlatformSwitchingTraps 15 }

     hm2PlatformStpInstanceLoopInconsistentStartTrap NOTIFICATION-TYPE
         OBJECTS {
                      hm2AgentStpMstId,
                      ifIndex
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when this port in this STP instance enters
             loop inconsistent state upon failure to receive a BPDU."
         ::= { hm2PlatformSwitchingTraps 16 }

     hm2PlatformStpInstanceLoopInconsistentEndTrap NOTIFICATION-TYPE
         OBJECTS {
                      hm2AgentStpMstId,
                      ifIndex
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when this port in this STP instance exits
             loop inconsistent state upon reception of a BPDU."
         ::= { hm2PlatformSwitchingTraps 17 }


     hm2PlatformDhcpSnoopingIntfErrorDisabledTrap NOTIFICATION-TYPE
         OBJECTS {
                     ifIndex
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent once an interface is error disabled by DHCP Snooping when the
              incoming packet rate exceeded configured rate limit during a
              burst-interval."
         ::= { hm2PlatformSwitchingTraps 18 }
         
         
    hm2AgentSwitchIpAddressConflictTrap NOTIFICATION-TYPE
        OBJECTS {
                    hm2AgentSwitchConflictIPAddr,
                    hm2AgentSwitchConflictMacAddr
                }
        STATUS             current
        DESCRIPTION
             "IP address conflict trap signifies the reception of an ARP from
              another host in the LAN that has conflicting IP address."
        ::= { hm2PlatformSwitchingTraps 20 }
		
		
    hm2AgentSwitchLoopProtectionTrap NOTIFICATION-TYPE
		OBJECTS {
					ifIndex
				}
		STATUS             current
		DESCRIPTION
			 "Trap is sent on detection of loop on an interface."
		::= { hm2PlatformSwitchingTraps 32 }
     
         
     hm2PlatformStpCstBpduGuardTrap NOTIFICATION-TYPE
		 OBJECTS {
        	 	 	 ifIndex, hm2AgentStpCstPortEdge, hm2AgentStpCstPortBpduGuardEffect
				 }
		 STATUS      current
		 DESCRIPTION
					 "This trap is sent if on this port when the BPDU guard 
					  functionality is enabled (globally and for this port) 
					  and a (R)STP BPDU is received on this port. That means when 
					  hm2AgentStpCstPortBpduGuardEffect is set to enable(1) for this port.
					  Then ifAdminStatus for this port is set to down(2)." 
		 ::= { hm2PlatformSwitchingTraps 248 }

END
