RUCKUS-DHCPV6-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32, IpAddress
	   FROM SNMPv2-SMI
	snSwitch
	   FROM FOUNDRY-SN-SWITCH-GROUP-MIB
	NDType, NDState
	   FROM RUCKUS-NDI-MIB
	MacAddress, TruthValue, TEXTUAL-CONVENTION
	   FROM SNMPv2-TC
        Ipv6Address
            FROM IPV6-TC
	VlanIndex
	   FROM Q-BRIDGE-MIB --RFC 2674
	DisplayString
	   FROM FOUNDRY-SN-AGENT-MIB
	ifIndex
	   FROM IF-MIB; --RFC 2863
	  
ruckusDhcpv6SnoopMIB MODULE-IDENTITY
	LAST-UPDATED "202008040000Z" -- Aug 4, 2020
	ORGANIZATION "Ruckus Wireless, Inc."
	CONTACT-INFO
		"Technical Support Center
              350 West Java Drive,
              Sunnyvale, CA 94089, USA
              Support URL: https://support.ruckuswireless.com
              Phone: +1-855-782-5871
              ROW TF Numbers: https://support.ruckuswireless.com/contact-us"
	DESCRIPTION
		"Management Information for configuration of DHCPv6 Snooping feature. 
		DHCPv6 Snooping  is a security feature which enables the device to filter
		untrusted DHCPv6 packets in a subnet. It can also stop unauthorized DHCPv6 
		serves and prevent errors due to user mis-configuration servers.
			
		Copyright 1996-2020 Ruckus Wireless, Inc.  
  		All rights reserved.
  		This Ruckus Wireless, Inc SNMP Management Information Base Specification
 		embodies Ruckus Wireless, Inc' confidential and proprietary
 		intellectual property. Ruckus Wireless, Inc retains all
  		title and ownership in the Specification, including any revisions.
                                                
 		This Specification is supplied AS IS, and Ruckus Wireless, Inc makes
 		no warranty, either express or implied, as to the use,
 		operation, condition, or performance of the specification, and any unintended 
 		consequence it may on the user environment."
 		
   ::= { snSwitch 48}

--
-- Textual Conventions
--

ClearAction ::= TEXTUAL-CONVENTION
	STATUS	  current
	DESCRIPTION
		"Represents action of Clear operation to be used."
	SYNTAX	INTEGER{
		valid(0),
		clear(1)
		}

ruckusDhcpv6SnoopNotify         OBJECT IDENTIFIER  ::=  { ruckusDhcpv6SnoopMIB 0 }
ruckusDhcpv6SnoopObjects        OBJECT IDENTIFIER  ::=  { ruckusDhcpv6SnoopMIB 1 }
ruckusDhcpv6SnoopConformance    OBJECT IDENTIFIER  ::=  { ruckusDhcpv6SnoopMIB 2 }

ruckusDhcpv6SnoopGlobalObjects  OBJECT IDENTIFIER ::= { ruckusDhcpv6SnoopObjects 1 }
ruckusDhcpv6SnoopVlan  OBJECT IDENTIFIER ::= { ruckusDhcpv6SnoopObjects 2 }
ruckusDhcpv6SnoopInterface  OBJECT IDENTIFIER ::= { ruckusDhcpv6SnoopObjects 3 }
ruckusDhcpv6SnoopBind OBJECT IDENTIFIER ::= { ruckusDhcpv6SnoopObjects 4 }

--
-- DHCPv6 Snooping global Scalar Object
--

ruckusDhcpv6SnoopGlobalClearOper OBJECT-TYPE
    SYNTAX     ClearAction
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "valid(0) - this value is always returned when the variable is read. 
         clear(1) - setting the variable to this value clears all entries in the 
         DHCPv6 binding database."
    ::= { ruckusDhcpv6SnoopGlobalObjects 1 }

--
-- DHCPv6 Snooping VLAN configuration table
--

ruckusDhcpv6SnoopVlanConfigTable OBJECT-TYPE
	SYNTAX SEQUENCE OF RuckusDhcpv6SnoopVlanConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A table provides the mechanism to control DHCPv6 Snooping
		per VLAN. When a VLAN is created in a device
		supporting this table, a corresponding entry of this table
		will be added."
	::= { ruckusDhcpv6SnoopVlan 1 }

ruckusDhcpv6SnoopVlanConfigEntry OBJECT-TYPE
	SYNTAX RuckusDhcpv6SnoopVlanConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A row instance contains the configuration to enable
		or disable DHCPv6 Snooping at the existing VLAN."
	INDEX { ruckusDhcpv6SnoopVlanConfigVLanId }
	::= { ruckusDhcpv6SnoopVlanConfigTable 1 }

RuckusDhcpv6SnoopVlanConfigEntry ::= SEQUENCE {
	ruckusDhcpv6SnoopVlanConfigVLanId 
		VlanIndex,
	ruckusDhcpv6SnoopVlanConfigDhcpv6SnoopEnable 
		TruthValue
	}

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

ruckusDhcpv6SnoopVlanConfigDhcpv6SnoopEnable	 OBJECT-TYPE
	SYNTAX 		TruthValue
	MAX-ACCESS 	read-write
	STATUS 		current
	DESCRIPTION
		"This object indicates whether DHCPv6 Snooping is enabled in this VLAN.
		
		If this object is set to 'true', DHCPv6 Snooping is enabled.
		If this object is set to 'false', DHCPv6 Snooping is disabled."
        DEFVAL { false }
	::= { ruckusDhcpv6SnoopVlanConfigEntry 2 }

--
-- DHCPv6 Snooping Interface configuration table
--

ruckusDhcpv6SnoopIfConfigTable OBJECT-TYPE
	SYNTAX SEQUENCE OF RuckusDhcpv6SnoopIfConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A table provides the mechanism to configure the trust
		state for DHCPv6 Snooping purpose at each physical
		interface."
	::= { ruckusDhcpv6SnoopInterface 1 }

ruckusDhcpv6SnoopIfConfigEntry OBJECT-TYPE
	SYNTAX RuckusDhcpv6SnoopIfConfigEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A row instance contains the configuration to enable or
		disable trust state for DHCPv6 Snooping at each
		physical interface capable of this feature."
	INDEX { ifIndex }
	::= { ruckusDhcpv6SnoopIfConfigTable 1 }

RuckusDhcpv6SnoopIfConfigEntry ::= SEQUENCE {
	ruckusDhcpv6SnoopIfConfigTrustValue 
		TruthValue
	}

ruckusDhcpv6SnoopIfConfigTrustValue  OBJECT-TYPE
	SYNTAX		TruthValue
	MAX-ACCESS	read-create
	STATUS		current
	DESCRIPTION
		"This object indicates whether the interface is trusted for
		DHCPv6 Snooping.
		If this object is set to 'true', the interface is trusted.
		DHCPv6 packets coming to this interface will be forwarded
		without checking.
		If this object is set to 'false', the interface is not trusted. 
		DHCPv6 packets received on this interface will be subjected 
		to DHCPv6 checks."
        DEFVAL { false }
	::= { ruckusDhcpv6SnoopIfConfigEntry 1 }

--
-- DHCPv6 Snooping binding database table
-- Use this table to display DHCPv6 Snooping entries
--

ruckusDhcpv6SnoopBindTable OBJECT-TYPE
	SYNTAX SEQUENCE OF RuckusDhcpv6SnoopBindEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A table provides the information of DHCPv6 snooping 
		binding database learnt by the device"
	::= { ruckusDhcpv6SnoopBind 1 }

ruckusDhcpv6SnoopBindEntry OBJECT-TYPE
	SYNTAX RuckusDhcpv6SnoopBindEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"A row instance contains the information of DHCPv6 snoonping entry."
	INDEX { ruckusDhcpv6SnoopBindMacAddr, ruckusDhcpv6SnoopBindVlanId}
	::= { ruckusDhcpv6SnoopBindTable 1 }

RuckusDhcpv6SnoopBindEntry ::= SEQUENCE {
	ruckusDhcpv6SnoopBindMacAddr 
		MacAddress,
	ruckusDhcpv6SnoopBindVlanId
		VlanIndex,
	ruckusDhcpv6SnoopBindIpAddr
		Ipv6Address,
	ruckusDhcpv6SnoopBindType
		NDType,
	ruckusDhcpv6SnoopBindState
		NDState,
	ruckusDhcpv6SnoopBindPort
		Integer32,
	ruckusDhcpv6SnoopBindClearOper
		ClearAction
	}
	
ruckusDhcpv6SnoopBindMacAddr  OBJECT-TYPE
	SYNTAX		MacAddress
	MAX-ACCESS      not-accessible	
	STATUS		current
	DESCRIPTION
		"The device MAC address."
	::= { ruckusDhcpv6SnoopBindEntry 1 }

ruckusDhcpv6SnoopBindVlanId  OBJECT-TYPE
	SYNTAX		VlanIndex
	MAX-ACCESS      not-accessible
	STATUS 		current
	DESCRIPTION
		"This object indicates the VLAN number on which DHCPv6 snooping
		feature is configured."
	::= { ruckusDhcpv6SnoopBindEntry 2 }

ruckusDhcpv6SnoopBindIpAddr  OBJECT-TYPE
	SYNTAX		Ipv6Address
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The device IP address."
	::= { ruckusDhcpv6SnoopBindEntry 3}

ruckusDhcpv6SnoopBindType OBJECT-TYPE
	SYNTAX     NDType
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The type of the ND entry"
	::= { ruckusDhcpv6SnoopBindEntry 4 }

ruckusDhcpv6SnoopBindState OBJECT-TYPE
	SYNTAX    NDState
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The state of the ND entry"
	::= { ruckusDhcpv6SnoopBindEntry 5 }

ruckusDhcpv6SnoopBindPort OBJECT-TYPE
	SYNTAX   Integer32 
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The port of the ND entry"
	::= { ruckusDhcpv6SnoopBindEntry 6 }

ruckusDhcpv6SnoopBindClearOper OBJECT-TYPE
	SYNTAX    ClearAction
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"valid(0) - this value is always returned when the variable is read.
         	clear(1) - setting the variable to this value clears this entry in the 
                DHCPv6 binding database."
	::= {ruckusDhcpv6SnoopBindEntry 7 }

-- --------------------------------------------------------------------------------
-- DHCPv6Snooping MIB Conformance
-- --------------------------------------------------------------------------------
ruckusDhcpv6SnoopCompliances OBJECT IDENTIFIER       ::= { ruckusDhcpv6SnoopConformance 1 }

ruckusDhcpv6SnoopCompliance	MODULE-COMPLIANCE
        STATUS          current
        DESCRIPTION     "The compliance statement for entities which
                         implement RUCKUS-DHCPv6Snoop-MIB."
        MODULE          -- this module
        ::= { ruckusDhcpv6SnoopConformance 1 }

   END
