FOUNDRY-DHCPSERVER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, IpAddress, Integer32,
    TimeTicks, Counter32
        FROM SNMPv2-SMI
    snSwitch
        FROM FOUNDRY-SN-SWITCH-GROUP-MIB
    RowStatus, MacAddress
        FROM SNMPv2-TC;

snDhcpServer MODULE-IDENTITY
    LAST-UPDATED "201808070000Z" -- Aug 7, 2018
    ORGANIZATION "Ruckus Wireless, Inc."
    CONTACT-INFO
            "
            Technical Support Center, Ruckus Wireless, Inc,
            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
            "
            Copyright 1996-2017 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.
            "
    REVISION     "201808070000Z" -- Aug 7, 2018
    DESCRIPTION
            "convert from SMIv1 to SMIv2"
    REVISION     "201808070000Z" -- Aug 7, 2018
    DESCRIPTION
                 "Initial Version"
   ::= { snSwitch 42 }

--
-- Define the DHCP Server Tables.
--
    snDhcpServerGlobalObjects OBJECT IDENTIFIER ::= { snDhcpServer 1 }
    snDhcpServerTableObjects  OBJECT IDENTIFIER ::= { snDhcpServer 2 }
    
-- =================================================================
-- DHCPv4 Server Global Scalar Object Section
-- =================================================================

snDhcpServerGlobalConfigState OBJECT-TYPE
	SYNTAX    INTEGER { 
	            disabled(0),
			    enabled(1)
			  }
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"Configure state for DHCPv4 server on the global level.
		   enabled: DHCPv4 server is enabled
		   disabled: DHCPv4 server is disabled
		 Note: DHCPv4 client should be disabled when enabling DHCPv4 server"
	::= { snDhcpServerGlobalObjects 1}
    

-- =================================================================
-- 1st Table of DHCPServerTables: DHCPSrvGlobalPoolConfigTable
-- =================================================================
    snDhcpServerPoolConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnDhcpServerPoolConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the configurations of dhcp
            server global pools."
        ::= { snDhcpServerTableObjects 1 }

    snDhcpServerPoolConfigEntry OBJECT-TYPE
        SYNTAX      SnDhcpServerPoolConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            the network ip or host ip etc. to global pools for
            DHCP server."
        INDEX { snDhcpServerPoolName }
        ::= { snDhcpServerPoolConfigTable 1 }

    SnDhcpServerPoolConfigEntry ::=
        SEQUENCE
            {
				snDhcpServerPoolName              OCTET STRING,
                snDhcpServerPoolNetwork           IpAddress,
                snDhcpServerPoolNetworkMask       IpAddress,
                snDhcpServerPoolStartAddr         IpAddress,
                snDhcpServerPoolEndAddr           IpAddress,
				snDhcpServerPoolLeaseDay          Integer32,
                snDhcpServerPoolLeaseHour         Integer32,
                snDhcpServerPoolLeaseMinute       Integer32,
				snDhcpServerPoolDeploy		       INTEGER,
                snDhcpServerPoolRowStatus         INTEGER
            }

	snDhcpServerPoolName OBJECT-TYPE
		SYNTAX      OCTET STRING(SIZE(0..255))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "DHCP server global pool name."
        ::= { snDhcpServerPoolConfigEntry 1 }

    snDhcpServerPoolNetwork OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Network ip of a DHCP global pool."
        ::= { snDhcpServerPoolConfigEntry 2 }

    snDhcpServerPoolNetworkMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Net mask of a DHCP global pool(network)."
        ::= { snDhcpServerPoolConfigEntry 3 }

    snDhcpServerPoolStartAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Start IP of a DHCP global pool."
        ::= { snDhcpServerPoolConfigEntry 4 }

    snDhcpServerPoolEndAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "End ip of a DHCP global pool."
        ::= { snDhcpServerPoolConfigEntry 5 }

	snDhcpServerPoolLeaseDay OBJECT-TYPE
        SYNTAX      Integer32(0..365)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of days of the lease."
        DEFVAL { 1 }
        ::= { snDhcpServerPoolConfigEntry 6 }

    snDhcpServerPoolLeaseHour OBJECT-TYPE
        SYNTAX      Integer32(0..23)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of hours of the lease."
        DEFVAL { 0 }
        ::= { snDhcpServerPoolConfigEntry 7 }

   snDhcpServerPoolLeaseMinute OBJECT-TYPE
        SYNTAX      Integer32(0..59)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Number of minutes of the lease."
        DEFVAL { 0 }
        ::= { snDhcpServerPoolConfigEntry 8 }

    snDhcpServerPoolDeploy OBJECT-TYPE
        SYNTAX      INTEGER
            {				
                nodeploy(0),
                deploy(1)
            }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Flag of undo operation for DHCPSrvGlobalPoolConfigTable."
        ::= { snDhcpServerPoolConfigEntry 9 }
   
    snDhcpServerPoolRowStatus OBJECT-TYPE
    SYNTAX  INTEGER {
        other(1),
        valid(2),
        delete(3),
        create(4)
        }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "This object is used to create and
        delete row in the table and control
        if they are used. The values
        that can be written are:
          delete(3)...deletes the row
          create(4)...creates a new row

        If the row exists, then a SET with
        value of create(4) returns error
        'badValue'. Deleted rows go away
        immediately. The following values
        can be returned on reads:
          noSuch(0)...no such row
          other(1)....some other case
          valid(2)....the row exists and is valid"
        ::= { snDhcpServerPoolConfigEntry 10 }
    
-- =================================================================
-- 2nd Table of DHCPServerTables: DHCPSrvGlobalPoolOptionTable
-- =================================================================
    snDhcpServerPoolOptionConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnDhcpServerPoolOptionConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring options to DHCP global pools."
        ::= { snDhcpServerTableObjects 2 }

    snDhcpServerPoolOptionConfigEntry OBJECT-TYPE
        SYNTAX      SnDhcpServerPoolOptionConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            options to DHCP global pools."
        INDEX { snDhcpServerPoolName, snDhcpServerPoolOptionCode }
        ::= { snDhcpServerPoolOptionConfigTable 1 }

    SnDhcpServerPoolOptionConfigEntry ::=
        SEQUENCE
            {
                snDhcpServerPoolOptionCode         Integer32,
                snDhcpServerPoolOptionType         INTEGER,
                snDhcpServerPoolOptionAscii        OCTET STRING,
                snDhcpServerPoolOptionHexString    OCTET STRING,
                snDhcpServerPoolOptionIPString     OCTET STRING,
                snDhcpServerPoolOptionRowStatus    RowStatus
             }

    snDhcpServerPoolOptionCode OBJECT-TYPE
        SYNTAX      Integer32 (1..254)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Option code."
        ::= { snDhcpServerPoolOptionConfigEntry 1 }

    snDhcpServerPoolOptionType OBJECT-TYPE
        SYNTAX      INTEGER
            {
                ascii(0),
                hex(1),
                ip(2)
            }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Option type."
        ::= { snDhcpServerPoolOptionConfigEntry 2 }

    snDhcpServerPoolOptionAscii OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..128))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Ascii string of an option."
        ::= { snDhcpServerPoolOptionConfigEntry 3 }

    snDhcpServerPoolOptionHexString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..128))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Hex string of an option. 1st to 16th hex strings,
            which are 2 bytes, 4 bytes, 6 bytes or 8 bytes,
            can be configured at most simultaneously.
            That means the format of each string
            must be '12', '1234', '123456' or '12345678'."
        ::= { snDhcpServerPoolOptionConfigEntry 4 }

    snDhcpServerPoolOptionIPString OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(4..12))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Ip string of an option. 1 to 3 ip addresses  can
            be configured at most simultaneously."
        ::= { snDhcpServerPoolOptionConfigEntry 5 }

    snDhcpServerPoolOptionRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus. Three actions are used: active,
            createAndGo, destroy."
        ::= { snDhcpServerPoolOptionConfigEntry 6 }

-- =================================================================
-- 3rd Table of snDhcpServerTableObjects : snDhcpServerPoolExcludedSingleAddressTable
-- =================================================================
    snDhcpServerPoolExcludedSingleAddressTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnDhcpServerPoolExcludedSingleAddressEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring single excluded address to DHCP server address pools."
        ::= { snDhcpServerTableObjects 3 }

    snDhcpServerPoolExcludedSingleAddressEntry OBJECT-TYPE
        SYNTAX      SnDhcpServerPoolExcludedSingleAddressEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            single excluded address to DHCP server address pools."
        INDEX { snDhcpServerPoolName , snDhcpServerPoolExcludedAddressIndex }
        ::= { snDhcpServerPoolExcludedSingleAddressTable 1 }

    SnDhcpServerPoolExcludedSingleAddressEntry ::=
        SEQUENCE
            {
                snDhcpServerPoolExcludedAddressIndex     Integer32,    
                snDhcpServerPoolExcludedSingleAddress    IpAddress,
                snDhcpServerPoolExcludedSingleAddressRowStatus    RowStatus
             }

   snDhcpServerPoolExcludedAddressIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..128)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Excluded Address Index."
        ::= { snDhcpServerPoolExcludedSingleAddressEntry 1 }
   
 
    snDhcpServerPoolExcludedSingleAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            " Single address excluded from the address pool."
        ::= { snDhcpServerPoolExcludedSingleAddressEntry 2 }


    snDhcpServerPoolExcludedSingleAddressRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus. Three actions are used: active,
            createAndGo, destroy."
        ::= { snDhcpServerPoolExcludedSingleAddressEntry 3 }

-- =================================================================
-- 4th Table of snDhcpServerTableObjects : snDhcpServerPoolExcludedAddressRangeTable
-- =================================================================
    snDhcpServerPoolExcludedAddressRangeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SnDhcpServerPoolExcludedAddressRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table for configuring excluded address range to DHCP server address pools."
        ::= { snDhcpServerTableObjects 4 }

    snDhcpServerPoolExcludedAddressRangeEntry OBJECT-TYPE
        SYNTAX      SnDhcpServerPoolExcludedAddressRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry containing the objects for configuring
            excluded address and excluded address range to DHCP server address pools."
        INDEX { snDhcpServerPoolName , snDhcpServerPoolExcludedAddressRangeIndex }
        ::= { snDhcpServerPoolExcludedAddressRangeTable 1 }

    SnDhcpServerPoolExcludedAddressRangeEntry ::=
        SEQUENCE
            {
                snDhcpServerPoolExcludedAddressRangeIndex     Integer32,
                snDhcpServerPoolExcludedStartAddress     IpAddress,
                snDhcpServerPoolExcludedEndAddress    IpAddress,
                snDhcpServerPoolExcludedAddressRowStatus    RowStatus
            }

   snDhcpServerPoolExcludedAddressRangeIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..85)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Excluded address range index."
        ::= { snDhcpServerPoolExcludedAddressRangeEntry 1 }

   snDhcpServerPoolExcludedStartAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Start addresses of the excluded from the address pool."
        ::= { snDhcpServerPoolExcludedAddressRangeEntry 2 }

   snDhcpServerPoolExcludedEndAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "End addresses of the excluded from the address pool."
        ::= { snDhcpServerPoolExcludedAddressRangeEntry 3 }
 
    snDhcpServerPoolExcludedAddressRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus. Three actions are used: active,
            createAndGo, destroy."
        ::= { snDhcpServerPoolExcludedAddressRangeEntry 4 }

END	
