
BAY-STACK-DHCP-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, Unsigned32
        FROM SNMPv2-SMI
    TruthValue, MacAddress, RowStatus
        FROM SNMPv2-TC
    InterfaceIndex
        FROM IF-MIB
    VlanIndex
        FROM Q-BRIDGE-MIB
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    bayStackMibs
        FROM SYNOPTICS-ROOT-MIB;

bayStackDhcpSnoopingMib MODULE-IDENTITY
      LAST-UPDATED "200606230000Z"
      ORGANIZATION "Nortel Ltd."
      CONTACT-INFO "nortel.com"
      DESCRIPTION
              "This MIB module is used for DHCP snooping configuration
               settings in Nortel's software and products."

      REVISION     "200606230000Z"  -- June 23, 2006
      DESCRIPTION
              "Ver 1:  Initial version."
      ::= { bayStackMibs 17 }

bsDhcpSnoopingNotifications OBJECT IDENTIFIER ::= { bayStackDhcpSnoopingMib 0 }
bsDhcpSnoopingObjects       OBJECT IDENTIFIER ::= { bayStackDhcpSnoopingMib 1 }

--
-- Scalar objects
--

bsDhcpSnoopingScalars OBJECT IDENTIFIER ::= { bsDhcpSnoopingObjects 1 }

bsDhcpSnoopingEnabled OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This object is used to control whether DHCP snooping is enabled
         globally.  When globally enabled, DHCP snooping is enabled or
         disabled for each individual VLAN in the bsDhcpSnoopingVlanTable."
    ::= { bsDhcpSnoopingScalars 1 }

--
-- VLAN table
--

bsDhcpSnoopingVlanTable   OBJECT-TYPE
    SYNTAX SEQUENCE OF BsDhcpSnoopingVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table is used to control DHCP snooping settings per-VLAN."
    ::= { bsDhcpSnoopingObjects 2 }

bsDhcpSnoopingVlanEntry OBJECT-TYPE
    SYNTAX       BsDhcpSnoopingVlanEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "An entry containing objects for controlling DHCP snooping settings
         for a VLAN."
    INDEX { bsDhcpSnoopingVlanId }
    ::= { bsDhcpSnoopingVlanTable 1 }

BsDhcpSnoopingVlanEntry ::=
    SEQUENCE {
        bsDhcpSnoopingVlanId        VlanIndex,
        bsDhcpSnoopingVlanEnabled   TruthValue
    }

bsDhcpSnoopingVlanId OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VLAN ID value of the VLAN."
    ::= { bsDhcpSnoopingVlanEntry 1 }

bsDhcpSnoopingVlanEnabled OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This object is used to control whether DHCP snooping is enabled
         for this VLAN."
    ::= { bsDhcpSnoopingVlanEntry 2 }

--
-- Interface table
--

bsDhcpSnoopingIfTable   OBJECT-TYPE
    SYNTAX SEQUENCE OF BsDhcpSnoopingIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table is used to control DHCP snooping settings per-interface."
    ::= { bsDhcpSnoopingObjects 3 }

bsDhcpSnoopingIfEntry OBJECT-TYPE
    SYNTAX       BsDhcpSnoopingIfEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "An entry containing objects for controlling DHCP snooping settings
         for an interface."
    INDEX { bsDhcpSnoopingIfIndex }
    ::= { bsDhcpSnoopingIfTable 1 }

BsDhcpSnoopingIfEntry ::=
    SEQUENCE {
        bsDhcpSnoopingIfIndex     InterfaceIndex,
        bsDhcpSnoopingIfTrusted   TruthValue
    }

bsDhcpSnoopingIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ifIndex value of the interface."
    ::= { bsDhcpSnoopingIfEntry 1 }

bsDhcpSnoopingIfTrusted OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This object is used to control whether this interface is trusted
         for DHCP snooping purposes."
    ::= { bsDhcpSnoopingIfEntry 2 }

--
-- Binding table
--

bsDhcpSnoopingBindingTable   OBJECT-TYPE
    SYNTAX SEQUENCE OF BsDhcpSnoopingBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains the DHCP bindings that have been learned."
    ::= { bsDhcpSnoopingObjects 4 }

bsDhcpSnoopingBindingEntry OBJECT-TYPE
    SYNTAX       BsDhcpSnoopingBindingEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "An entry containing a learned DHCP binding."
    INDEX { bsDhcpSnoopingBindingVlanId, bsDhcpSnoopingBindingMacAddress }
    ::= { bsDhcpSnoopingBindingTable 1 }

BsDhcpSnoopingBindingEntry ::=
    SEQUENCE {
        bsDhcpSnoopingBindingVlanId      VlanIndex,
        bsDhcpSnoopingBindingMacAddress  MacAddress,
        bsDhcpSnoopingBindingAddressType InetAddressType,
        bsDhcpSnoopingBindingAddress     InetAddress,
        bsDhcpSnoopingBindingInterface   InterfaceIndex,
        bsDhcpSnoopingBindingLeaseTime   Unsigned32,
        bsDhcpSnoopingBindingRowStatus   RowStatus
    }

bsDhcpSnoopingBindingVlanId OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VLAN to which the DHCP client belongs."
    ::= { bsDhcpSnoopingBindingEntry 1 }

bsDhcpSnoopingBindingMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The MAC address of the DHCP client."
    ::= { bsDhcpSnoopingBindingEntry 2 }

bsDhcpSnoopingBindingAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The type of address contained in the corresponding instance of
         bsDhcpSnoopingBindingAddress."
    ::= { bsDhcpSnoopingBindingEntry 3 }

bsDhcpSnoopingBindingAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The internet address assigned to this DHCP client."
    ::= { bsDhcpSnoopingBindingEntry 4 }

bsDhcpSnoopingBindingInterface OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The interface to which the DHCP client is connected."
    ::= { bsDhcpSnoopingBindingEntry 5 }

bsDhcpSnoopingBindingLeaseTime OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "seconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The lease time of this DHCP client's binding."
    ::= { bsDhcpSnoopingBindingEntry 6 }

bsDhcpSnoopingBindingRowStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
        "This object is used only to delete DHCP bindings from the table of
         learned bindings (this does not actually delete the binding, only
         this system's knowledge of the binding).  Entries in this table cannot
         be created using this object, only deleted.  On retrieval, its value
         will always be active(1).  Setting it to destroy(6) will delete the
         DHCP binding from the table of learned bindings."
    ::= { bsDhcpSnoopingBindingEntry 7 }

END

