RUCKUS-WIRED-CLIENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32,
	Counter64,
	TimeTicks,
	NOTIFICATION-TYPE
		FROM SNMPv2-SMI			-- [RFC2578]
	ifIndex
	   	FROM IF-MIB			-- [RFC2863]
	MacAddress,
	TruthValue,
	TEXTUAL-CONVENTION
	   	FROM SNMPv2-TC			-- [RFC2579]
	InetAddressIPv4,
	InetAddressIPv6
		FROM INET-ADDRESS-MIB		-- [RFC4001]
	EnabledStatus
		FROM P-BRIDGE-MIB
	SnmpAdminString
		FROM SNMP-FRAMEWORK-MIB 	-- [RFC3411]
	MODULE-COMPLIANCE,
	OBJECT-GROUP,
	NOTIFICATION-GROUP
		FROM SNMPv2-CONF
	snSwitch
		FROM FOUNDRY-SN-SWITCH-GROUP-MIB;
    
ruckusWiredClientMIB MODULE-IDENTITY
	LAST-UPDATED "201902280000Z" -- Jan 26, 2019 
	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 discovering/querying
		 the directly connected clients of Ruckus ICX
		 Switches/Routers. The information consists of:
			1. Device MAC/IPv4/IPv6 addresses
			2. Port/VLAN information
			3. User, if client is authenticated
			4. Client usage statistics

		Copyright 1996-2019 Ruckus Wireless, Inc.  
  		All rights reserved.

  		This Ruckus Wireless, Inc SNMP MIB 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."
	REVISION
		"201902280000Z" -- Feb 28, 2019
	DESCRIPTION
		"Initial Version"
	::= { snSwitch 43 }

ruckusWiredClientNotify		OBJECT IDENTIFIER  ::=  { ruckusWiredClientMIB 0 }
ruckusWiredClientObjects	OBJECT IDENTIFIER  ::=  { ruckusWiredClientMIB 1 }
ruckusWiredClientConformance	OBJECT IDENTIFIER  ::=  { ruckusWiredClientMIB 2 }
ruckusWiredClients		OBJECT IDENTIFIER  ::=  { ruckusWiredClientObjects 1 }

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------
VlanId ::= TEXTUAL-CONVENTION
	STATUS	current
	DESCRIPTION
		"An ID used to represent VLAN identifier in the
		 system for both untagged and tagged VLANs packets)."
	SYNTAX	INTEGER (1..4094)


-- ------------------------------------------------------------
-- Client Devices
-- List of devices directly connected Ruckus Device (Switch/Router)
-- ------------------------------------------------------------

ruckusWiredClientsTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF RuckusWiredClientEntry 
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A table providing information about the clients 
		 directly connected on all the ports in the Ruckus
		 devices.

		 When FlexAuth is enabled, this table contains entries
		 for all the authenticated clients (success/failure).
		 Entries get created when clients are authenticated
		 and cleared when they logoff or timeout.

		 When FlexAuth is not enabled, this table populates the
		 entries with devices learned through LLDP/CDP, if
		 LLDP/CDP is enabled."
	::= { ruckusWiredClients 1}

ruckusWiredClientEntry 	OBJECT-TYPE
	SYNTAX		RuckusWiredClientEntry 
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry containing information about a specific client
		 on a given port"
	INDEX		{ ifIndex, ruckusWiredClientMac }
	::= { ruckusWiredClientsTable 1 }

RuckusWiredClientEntry ::=	SEQUENCE {
	ruckusWiredClientMac		MacAddress,
	ruckusWiredClientVlan		VlanId,
	ruckusWiredClientType		INTEGER,
	ruckusWiredClientAuthType	INTEGER,
	ruckusWiredClientStatus		INTEGER,
	ruckusWiredClientDescr		SnmpAdminString,
	ruckusWiredClientUserName	SnmpAdminString,
	ruckusWiredClientV4Addr		InetAddressIPv4,
	ruckusWiredClientV6Addr		InetAddressIPv6,
	ruckusWiredClientUpTime		TimeTicks,
	ruckusWiredClientTxPkts		Counter64,
	ruckusWiredClientRxPkts		Counter64,
	ruckusWiredClientTxOctets	Counter64,
	ruckusWiredClientRxOctets	Counter64
}

ruckusWiredClientMac	OBJECT-TYPE
	SYNTAX		MacAddress
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Specifies the MAC Address of the client
		 (device/host) represented by this client entry"
	::= { ruckusWiredClientEntry 1 }

ruckusWiredClientVlan	OBJECT-TYPE
	SYNTAX		VlanId
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Specifies the VLAN, the client (device/host) belongs
		 to, represented by this client entry.

		 In case of voice-phones, this VLAN is the voice-VLAN
		 (tagged) and in all other cases, likely it would be 
		 an untagged VLAN, unless it's a tagged VM client"
	::= { ruckusWiredClientEntry 2 }

ruckusWiredClientType	 OBJECT-TYPE
	SYNTAX		INTEGER {
				other(1),
				phone(2),
				wlanAP(3),
				router(4),
				bridge(5),
				cableDevice(6)
			}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Decribes the type of the client connnected on this port"
	::= { ruckusWiredClientEntry 3 }

ruckusWiredClientAuthType	OBJECT-TYPE
	SYNTAX		INTEGER {
				none(1),
				dot1x(2),
				macAuth(3),
				webAuth(4)
			}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Specifies the authentication method that is used for
		 authenticating the client on this port represented
		 by this client (when FlexAuth is enabled). Otherwise,
		 it's none."
	::= { ruckusWiredClientEntry 4 }

ruckusWiredClientStatus	OBJECT-TYPE
	SYNTAX		INTEGER {
				noAuth(1),
				allowed(2),
				blocked(3),
				restricted(4),
				critical(5),
				guest(6)
			}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The authentication state of the client which can
		 take the following values.

		 noAuth		- not authenticated
		 allowed	- client authentication is successful, so
				  the complete access is granted
		 blocked	- client failed authentication, so access
				  is denied
		 restrict	- client failed authentication, but
				  allowed restricted access
		 critical	- client authentication timedout, so
				  access is limited to critical operations
		 guest		- client is not Dot1x capable, so allowed
				  guest role access"
	::= { ruckusWiredClientEntry 5 }

ruckusWiredClientDescr	OBJECT-TYPE
	SYNTAX		SnmpAdminString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Desribes the client as derived from LLDP/CDP device
		 description for LLDP/CDP learned devices. Otherwise
		 it's an empty string for now."
	::= { ruckusWiredClientEntry 6 }

ruckusWiredClientUserName	OBJECT-TYPE
	SYNTAX		SnmpAdminString
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Specified the User name associated with the client, 
		 represented by this entry. It coule be username or
		 MAC address, where user-name is not present and 
		 not applicable."
	::= { ruckusWiredClientEntry 7 }

ruckusWiredClientV4Addr	OBJECT-TYPE
	SYNTAX		InetAddressIPv4
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The IPv4 address of the client represented by this
		 entry. A client can have both IPv4 and IPv6
		 addresses bound on dual-stack hosts."
	::= { ruckusWiredClientEntry 8 }

ruckusWiredClientV6Addr	OBJECT-TYPE
	SYNTAX		InetAddressIPv6
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The IPv6 address of the client represented by this
		 entry. A client can have both IPv4 and IPv6
		 addresses bound on dual-stack hosts."
	::= { ruckusWiredClientEntry 9 }

ruckusWiredClientUpTime	OBJECT-TYPE
	SYNTAX		TimeTicks
	UNITS       	"centi-seconds"
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Specifies the time the client had been up from the 
		 time the client entry is created in the Ruckus device."
	::= { ruckusWiredClientEntry 10 }

ruckusWiredClientTxPkts	OBJECT-TYPE
	SYNTAX		Counter64	
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of packets transmitted on this port
		 for this client."
	::= { ruckusWiredClientEntry 11 }

ruckusWiredClientRxPkts	OBJECT-TYPE
	SYNTAX		Counter64	
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of packets received on this port for
		 this client."
	::= { ruckusWiredClientEntry 12 }

ruckusWiredClientTxOctets OBJECT-TYPE
	SYNTAX		Counter64	
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of octets transmitted on this port
		 for this client."
	::= { ruckusWiredClientEntry 13 }

ruckusWiredClientRxOctets OBJECT-TYPE
	SYNTAX		Counter64	
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of octets receivedon this port for 
		 this client."
	::= { ruckusWiredClientEntry 14 }

-- ------------------------------------------------------------
-- Client MIB Notifications
-- ------------------------------------------------------------
ruckusWiredClientConnectedNotify NOTIFICATION-TYPE
	OBJECTS	{
			ifIndex,
			ruckusWiredClientMac
		}
	STATUS		current
	DESCRIPTION	"This notification is sent if a client is detected
		and/or authenticated."
	::= { ruckusWiredClientNotify 1 }

ruckusWiredClientDisconnectedNotify NOTIFICATION-TYPE
	OBJECTS	{
			ifIndex,
			ruckusWiredClientMac
		}
	STATUS		current
	DESCRIPTION	"This notification is sent if client is deleted
		 for reasons such as log-off or inactivity."
	::= { ruckusWiredClientNotify 2 }


-- ------------------------------------------------------------
-- Client MIB Conformance
-- ------------------------------------------------------------
ruckusWiredClientMIBCompliances	OBJECT IDENTIFIER	::= { ruckusWiredClientConformance 1 }
ruckusWiredClientMIBGroups	OBJECT IDENTIFIER	::= { ruckusWiredClientConformance 2 }

ruckusWiredClientCompliance MODULE-COMPLIANCE
	STATUS          current
	DESCRIPTION	"The compliance statement for entities which
		 	 implement RUCKUS-CLIENT-MIB."
	MODULE          -- this module
	MANDATORY-GROUPS { ruckusWiredClientGroup }
	::= { ruckusWiredClientMIBCompliances 1 }

------------------------
-- Units of Conformance
------------------------

ruckusWiredClientGroup OBJECT-GROUP
	OBJECTS	{
		ruckusWiredClientMac,
		ruckusWiredClientVlan,
		ruckusWiredClientType,
		ruckusWiredClientAuthType,
		ruckusWiredClientStatus,
		ruckusWiredClientDescr,
		ruckusWiredClientUserName,
		ruckusWiredClientV4Addr,
		ruckusWiredClientV6Addr,
		ruckusWiredClientUpTime,
		ruckusWiredClientTxPkts,
		ruckusWiredClientRxPkts,
		ruckusWiredClientTxOctets,
		ruckusWiredClientRxOctets
	}
	STATUS		current
	DESCRIPTION	"A collection of objects that provide client
		information for a specific client."
	::= { ruckusWiredClientMIBGroups 1 }

END
