Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b19fcc3 authored by Dan Williams's avatar Dan Williams Committed by John W. Linville
Browse files

[PATCH] libertas: Purge non-mesh ioctls

parent 3ce40232
Loading
Loading
Loading
Loading
+0 −516
Original line number Original line Diff line number Diff line
@@ -40,64 +40,11 @@ NAME
SYNOPSIS
SYNOPSIS
	iwpriv <ethX> <command> [sub-command] ...
	iwpriv <ethX> <command> [sub-command] ...


	iwpriv ethX version
	iwpriv ethX scantype [sub-command]
	iwpriv ethX getSNR <n>
	iwpriv ethX getNF <n>
	iwpriv ethX getRSSI <n>
	iwpriv ethX setrxant <n>
	iwpriv ethX getrxant
	iwpriv ethX settxant <n>
	iwpriv ethX gettxant
	iwpriv ethX authalgs <n>
	iwpriv ethX pre-TBTT <n>
	iwpriv ethX 8021xauthalgs <n>
	iwpriv ethX encryptionmode <n>
	iwpriv ethX setregioncode <n>
	iwpriv ethX setregioncode <n>
	iwpriv ethX getregioncode
	iwpriv ethX getregioncode
	iwpriv ethX setbcnavg <n>
	iwpriv ethX getbcnavg
	iwpriv ethX setdataavg <n>
	iwpriv ethX setlisteninter <n>
	iwpriv ethX getlisteninter
	iwpriv ethX setmultipledtim <n>
	iwpriv ethX getmultipledtim
	iwpriv ethX atimwindow <n>
	iwpriv ethX deauth
	iwpriv ethX adhocstop
	iwpriv ethX radioon
	iwpriv ethX radiooff
	iwpriv ethX reasso-on
	iwpriv ethX reasso-off
	iwpriv ethX scanmode  [sub-command]
	iwpriv ethX setwpaie <n>
	iwpriv ethX wlanidle-off
	iwpriv ethX wlanidle-on
	iwpriv ethX getcis
	iwpriv ethX getlog
	iwpriv ethX getadhocstatus
	iwpriv ethX adhocgrate <n>

Version 4 Command:
	iwpriv ethX inactvityto <n>
	iwpriv ethX sleeppd <n>
	iwpriv ethX enable11d <n>
	iwpriv ethX tpccfg <n>
	iwpriv ethX powercfg <n>
	iwpriv ethX setafc <n>
	iwpriv ethX getafc


Version 5 Command:
Version 5 Command:
	iwpriv ethX ledgpio <n>
	iwpriv ethX ledgpio <n>
	iwpriv ethX scanprobes <n>
	iwpriv ethX lolisteninter <n>
	iwpriv ethX rateadapt <n> <m>
	iwpriv ethX txcontrol <n>
	iwpriv ethX psnullinterval <n>
	iwpriv ethX prescan <n>
	iwpriv ethX getrxinfo
	iwpriv ethX gettxrate
	iwpriv ethX beaconinterval


BT Commands:
BT Commands:
	The blinding table (BT) contains a list of mac addresses that should be
	The blinding table (BT) contains a list of mac addresses that should be
@@ -150,114 +97,6 @@ DESCRIPTION
	The ethX parameter specifies the network device that is to be used to
	The ethX parameter specifies the network device that is to be used to
		perform this command on. it could be eth0, eth1 etc.
		perform this command on. it could be eth0, eth1 etc.


version
	This is used to get the current version of the driver and the firmware.

scantype
	This command is used to set the scan type to be used by the driver in
	the scan command. This setting will not be used while performing a scan
	for a specific SSID, as it is always done with scan type being active.

	where the sub-commands are: -
			active 	-- to set the scan type to active
			passive -- to set the scan type to passive
			get 	-- to get the scan type set in the driver

getSNR
	This command gets the average and non average value of Signal to Noise
	Ratio of Beacon and Data.

	where value is:-
			0 	-- Beacon non-average.
			1 	-- Beacon average.
			2 	-- Data non-average.
			3 	-- Data average.

	If no value is given, all four values are returned in the order mentioned
	above.

	Note: This command is available only when STA is connected.

getRSSI
	This command gets the average and non average value os Receive Signal
	Strength of Beacon and Data.

	where value is:-
			0 	-- Beacon non-average.
			1 	-- Beacon average.
			2 	-- Data non-average.
			3 	-- Data average.

	Note: This command is available only when STA is connected.

getNF
	This command gets the average and non average value of Noise Floor of
	Beacon and Data.

	where value is:-
			0 	-- Beacon non-average.
			1 	-- Beacon average.
			2 	-- Data non-average.
			3 	-- Data average.

	Note: This command is available only when STA is connected.

setrxant
	This command is used to set the mode for Rx antenna.

	The options that can be sent are:-
			1 	-- Antenna 1.
			2 	-- Antenna 2.
			0xFFFF 	-- Diversity.

	Usage:
		iwpriv ethX setrxant 0x01: select Antenna 1.

getrxant
	This command is used to get the mode for Rx antenna.


settxant
	This command is used to set the mode for Tx antenna.
		The options that can be sent are:-
			1 	-- Antenna 1.
			2 	-- Antenna 2.
			0xFFFF 	-- Diversity.
	Usage:
		iwpriv ethX settxant 0x01: select Antenna 1.

gettxant
	This command is used to get the mode for Tx antenna.

authalgs
	This command is used by the WPA supplicant to set the authentication
	algorithms in the station.

8021xauthalgs
	This command is used by the WPA supplicant to set the 8021.x authentication algorithm type
	station.

	where values can be:-
			1 	-- None
			2 	-- LEAP
			4 	-- TLS
			8 	-- TTLs
			16	-- MD5


encryptionmode
	This command is used by the WPA supplicant to set the encryption algorithm.

	where values can be:-
			0 	-- NONE
			1 	-- WEP40
			2 	-- TKIP
			3 	-- CCMP
			4 	-- WEP104

pre-TBTT
	This command is used to set pre-TBTT time period where value is in microseconds.

setregioncode
setregioncode
	This command is used to set the region code in the station.
	This command is used to set the region code in the station.
	where value is 'region code' for various regions like
	where value is 'region code' for various regions like
@@ -270,114 +109,6 @@ getregioncode
	This command is used to get the region code information set in the
	This command is used to get the region code information set in the
	station.
	station.


setbcnavg
	Set the weighting factor for calculating RSSI.

getbcnavg
	Get weighting factor for calculating RSSI.

setdataavg
	Set the weighting factor for calculating SNR.

setlisteninter
	This command is used to set the listen interval in the
	station.

	where the value ranges between 1 - 255

getlisteninter
	This command is used to get the listen interval value set in the
	station.

setmultipledtim
	This command is used to set the multiple dtim value in the
	station.
		where the value is 1,2,3,4,5,0xfffe
		0xfffe means the firmware will use listen interval in association
		command for waking up

getmultipledtim
	This command is used to get the multiple dtim value set in the station.

atimwindow
	This command is used to set the atim value in the
	station.

	where the value ranges between 0 - 50

deauth
	This command is used to send the de-authentication to the AP with which
	the station is associated. This command is valid only when
	station is in Infrastructure mode.

	Note: This command is available only when STA is connected.

adhocstop
	This command is used to stop beacon transmission from the station and
	go into idle state in ad-hoc mode.

	Note: This command is available only when STA is connected.

radioon
	This command is used to turn on the RF antenna.

radiooff
	This command is sued to turn off the RF antenna.

scanmode
	This command is used to set the station to scan for either IBSS
	networks or BSS networks or both BSS and IBSS networks. This
	command can be used with sub commands,

	where the value for
			bss 	-- Scan All the BSS networks.
			ibss 	-- Scan All the IBSS networks.
			any 	-- Scan both BSS and IBSS networks.



setwpaie
	This command is used by WPA supplicant to send the WPA-IE to the driver.

wlanidle-off
	This command is used to get into idle state.

	Note: This command is available only when STA is connected.

wlanidle-on
	This command is used to get off the idle state.

	Note: This command is available only when STA is connected.


getlog
	This command is used to get the 802.11 statistics available in the
		station.

	Note: This command is available only when STA is connected.

getadhocstatus
	This command is used to get the ad-hoc Network Status.

	The various status codes are:
		AdhocStarted
		AdhocJoined
		AdhocIdle
		InfraMode
		AutoUnknownMode

	Note: This command is available only when STA is connected.

adhocgrate
	This command is used to enable(1) g_rate, Disable(0) g_rate
	and request(2) the status which g_rate is disabled/enabled,
	for Ad-hoc creator.

	where value is:-
		0	-- Disabled
		1	-- Enabled
		2	-- Get

ledgpio
ledgpio
	This command is used to set/get LEDs.
	This command is used to set/get LEDs.


@@ -400,253 +131,6 @@ ledgpio
	Note: LED0 is invalid
	Note: LED0 is invalid
	Note: Maximum Number of LEDs are 16.
	Note: Maximum Number of LEDs are 16.


inactivityto
	This command is used by the host to set/get the inactivity timeout value,
	which specifies when WLAN device is put to sleep.

	Usage:
		iwpriv ethX inactivityto [<timeout>]

	where the parameter are:
		timeout: timeout value in milliseconds.

	Example:
		iwpriv eth1 inactivityto
			"get the timeout value"

		iwpriv eth1 inactivityto X
			"set timeout value to X ms"


sleeppd
	This command is used to configure the sleep period of the WLAN device.

	Usage:
		iwpriv ethX sleeppd [<sleep period>]

	where the parameter are:
		Period: sleep period in milliseconds. Range 10~60.

	Example:
		iwpriv eth1 sleeppd 10
			"set period as 10 ms"
		iwpriv eth1 sleeppd
			"get the sleep period configuration"

enable11d
	This command is used to control 11d
	where value is:-
		1	-- Enabled
		0	-- Disabled
		2	-- Get




tpccfg
	Enables or disables automatic transmit power control.

	The first parameter turns this feature on (1) or off (0).  When turning
	on, the user must also supply four more parameters in the following
	order:
		-UseSNR (Use SNR (in addition to PER) for TPC algorithm),
		-P0 (P0 power level for TPC),
		-P1 (P1 power level for TPC),
		-P2 (P2 power level for TPC).

	Usage:
		iwpriv ethX tpccfg: Get current configuration
		iwpriv ethX tpccfg 0: disable auto TPC
		iwpriv ethX tpccfg 0x01 0x00 0x05 0x0a 0x0d: enable auto TPC; do not use SNR;
							     P0=0x05; P1=0x0a; P2=0x0d;
		iwpriv ethX tpccfg 0x01 0x01 0x05 0x0a 0x0d: enable auto TPC; use SNR;
							     P0=0x05; P1=0x0a; P2=0x0d.

powercfg
	Enables or disables power adaptation.

	The first parameter turns this feature on (1) or off (0).  When turning
	on, the user must also supply three more parameters in the following
	order:
		-P0 (P0 power level for Power Adaptation),
		-P1 (P1 power level for Power Adaptation),
		-P2 (P2 power level for Power Adaptation).

	Usage:
		iwpriv ethX powercfg: Get current configuration
		iwpriv ethX powercfg 0: disable power adaptation
		iwpriv ethX powercfg 1 0x0d 0x0f 0x12: enable power adaptation;
						       P0=0x0d; P1=0x0f; P2=0x12.

getafc
	This command returns automatic frequency control parameters.  It returns
	three integers:
		-P0: automatic is on (1), or off (0),
		-P1: current timing offset in PPM (part per million), and
		-P2: current frequency offset in PPM.

setafc
	Set automatic frequency control options.

	The first parameter turns automatic on (1) or off (0).
	The user must supply two more parameters in either case, in the following
  order:

  When auto is on:

		-P0 (automatic adjustment frequency threshold in PPM),
		-P1 (automatic adjustment period in beacon period),

  When auto is off:

		-P0 (manual adjustment timing offset in PPM), and
		-P1 (manual adjustment frequency offset in PPM).

	Usage:
		iwpriv ethX setafc 0 10 10: manual adjustment, both timing and frequcncy
    offset are 10 PPM.

		iwpriv ethX setafc 1 10 10 enable afc, automatic adjustment,
    frequency threshold 10 PPM, for every 10 beacon periods.



scanprobes
	This command sets number of probe requests per channel.

	Usage:
		iwpriv ethX scanprobes 3 (set scan probes to 3)
		iwpriv ethX scanprobes   (get scan probes)

lolisteninter
	This command sets the value of listen interval.

	Usage:
	iwpriv ethX lolisteninter 234 (set the lolisteninter to 234)
	iwpriv ethX lolisteninter     (get the lolisteninter value)

rateadapt
	This command sets the data rates bitmap.
	Where <n>
		0: Disable auto rate adapt
		1: Enable auto rate adapt

	      <m>
		 data rate bitmap
			Bit	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			12-15	Reserved

	Usage:
	iwpriv ethX rateadapt
			read the currect data rate setting
	iwpriv ethX rateadapt 1 0x07
			enable auto data rate adapt and
			data rates are 1Mbps, 2Mbsp and 5.5Mbps


txcontrol
	This command is used to set the Tx rate, ack policy, and retry limit on a per packet basis.

	Where value <n> is:
	    if bit[4] == 1:
		bit[3:0]        -- 0   1   2   3   4   5   6   7   8   9   10   11   12   13-16
		Data Rate(Mbps) -- 1   2   5.5 11  Rsv 6   9   12  18  24  36   48   54   Rsv

	    bit[12:8]
		if bit[12] == 1, bit[11:8] specifies the Tx retry limit.

	    bit[14:13] specifies per packet ack policy:
		bit[14:13]
		     1  0	use immediate ack policy for this packet
		     1  1       use no ack policy for this packet
		     0  x	use the per-packet ack policy setting

	Usage:
	iwpriv ethX txcontrol 0x7513
			Use no-ack policy, 5 retires for Tx, 11Mbps rate



psnullinterval
	This command is used to set/request NULL package interval for Power Save
	under infrastructure mode.

	where value is:-
		-1	-- Disabled
		n>0	-- Set interval as n (seconds)

prescan
	This command is used to enable (1)/disable(0) auto prescan before assoicate to the ap

	where value is:-
		0	-- Disabled
		1	-- Enabled
		2       -- Get

getrxinfo
	This command gets non average value of Signal to Noise Ratio of Data and rate index.

	The following table shows RateIndex and Rate

		     RateIndex	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			13-15	Reserved

gettxrate
	This command gets current Tx rate index of the first packet associated with Rate Adaptation.

	The following table shows RateIndex and Rate

		     RateIndex	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			13-15	Reserved

bcninterval
	This command is used to sets beacon interval in adhoc mode when an argument is given, and gets current adhoc
	beacon interval when no argument is given. The valid beacon interval is between 20 - 1000,
	default beacon interval is 100.

	Usage:
		iwpriv ethX bcninterval 100  (set adhoc beacon interval to 100)
		iwpriv ethX bcninterval      (get adhoc beacon interval)

fwt_add
fwt_add
	This command is used to insert an entry into the FWT table. The list of
	This command is used to insert an entry into the FWT table. The list of
	parameters must follow the following structure:
	parameters must follow the following structure:
+16 −1365

File changed.

Preview size limit exceeded, changes collapsed.

+0 −135
Original line number Original line Diff line number Diff line
@@ -96,20 +96,6 @@ int libertas_send_deauth(wlan_private * priv)
	return ret;
	return ret;
}
}


int libertas_do_adhocstop_ioctl(wlan_private * priv)
{
	wlan_adapter *adapter = priv->adapter;
	int ret = 0;

	if (adapter->mode == IW_MODE_ADHOC &&
	    adapter->connect_status == libertas_connected)
		ret = libertas_stop_adhoc_network(priv);
	else
		ret = -ENOTSUPP;

	return ret;
}

/**
/**
 *  @brief Associate to a specific BSS discovered in a scan
 *  @brief Associate to a specific BSS discovered in a scan
 *
 *
@@ -261,127 +247,6 @@ int libertas_send_deauthentication(wlan_private * priv)
				     0, cmd_option_waitforrsp, 0, NULL);
				     0, cmd_option_waitforrsp, 0, NULL);
}
}


/**
 *  @brief Set Idle Off
 *
 *  @param priv         A pointer to wlan_private structure
 *  @return             0 --success, otherwise fail
 */
int libertas_idle_off(wlan_private * priv)
{
	wlan_adapter *adapter = priv->adapter;
	int ret = 0;
	const u8 zeromac[] = { 0, 0, 0, 0, 0, 0 };
	int i;

	ENTER();

	if (adapter->connect_status == libertas_disconnected) {
		if (adapter->mode == IW_MODE_INFRA) {
			if (memcmp(adapter->previousbssid, zeromac,
				   sizeof(zeromac)) != 0) {

				lbs_pr_debug(1, "Previous SSID = %s\n",
				       adapter->previousssid.ssid);
				lbs_pr_debug(1, "Previous BSSID = "
				       "%02x:%02x:%02x:%02x:%02x:%02x:\n",
				       adapter->previousbssid[0],
				       adapter->previousbssid[1],
				       adapter->previousbssid[2],
				       adapter->previousbssid[3],
				       adapter->previousbssid[4],
				       adapter->previousbssid[5]);

				i = libertas_find_SSID_in_list(adapter,
						   &adapter->previousssid,
						   adapter->previousbssid,
						   adapter->mode);

				if (i < 0) {
					libertas_send_specific_BSSID_scan(priv,
							      adapter->
							      previousbssid,
							      1);
					i = libertas_find_SSID_in_list(adapter,
							   &adapter->
							   previousssid,
							   adapter->
							   previousbssid,
							   adapter->mode);
				}

				if (i < 0) {
					/* If the BSSID could not be found, try just the SSID */
					i = libertas_find_SSID_in_list(adapter,
							   &adapter->
							   previousssid, NULL,
							   adapter->mode);
				}

				if (i < 0) {
					libertas_send_specific_SSID_scan(priv,
							     &adapter->
							     previousssid,
							     1);
					i = libertas_find_SSID_in_list(adapter,
							   &adapter->
							   previousssid, NULL,
							   adapter->mode);
				}

				if (i >= 0) {
					ret =
					    wlan_associate(priv,
							   &adapter->
							   scantable[i]);
				}
			}
		} else if (adapter->mode == IW_MODE_ADHOC) {
			ret = libertas_prepare_and_send_command(priv,
						    cmd_802_11_ad_hoc_start,
						    0,
						    cmd_option_waitforrsp,
						    0, &adapter->previousssid);
		}
	}
	/* else it is connected */

	lbs_pr_debug(1, "\nwlanidle is off");
	LEAVE();
	return ret;
}

/**
 *  @brief Set Idle On
 *
 *  @param priv         A pointer to wlan_private structure
 *  @return             0 --success, otherwise fail
 */
int libertas_idle_on(wlan_private * priv)
{
	wlan_adapter *adapter = priv->adapter;
	int ret = 0;

	if (adapter->connect_status == libertas_connected) {
		if (adapter->mode == IW_MODE_INFRA) {
			lbs_pr_debug(1, "Previous SSID = %s\n",
			       adapter->previousssid.ssid);
			memmove(&adapter->previousssid,
				&adapter->curbssparams.ssid,
				sizeof(struct WLAN_802_11_SSID));
			libertas_send_deauth(priv);

		} else if (adapter->mode == IW_MODE_ADHOC) {
			ret = libertas_stop_adhoc_network(priv);
		}

	}

	lbs_pr_debug(1, "\nwlanidle is on");

	return ret;
}

/**
/**
 *  @brief This function prepares command of authenticate.
 *  @brief This function prepares command of authenticate.
 *
 *
+0 −4
Original line number Original line Diff line number Diff line
@@ -37,10 +37,6 @@ extern int libertas_ret_80211_disassociate(wlan_private * priv,
extern int libertas_ret_80211_associate(wlan_private * priv,
extern int libertas_ret_80211_associate(wlan_private * priv,
				     struct cmd_ds_command *resp);
				     struct cmd_ds_command *resp);


extern int libertas_idle_on(wlan_private * priv);
extern int libertas_idle_off(wlan_private * priv);

extern int libertas_do_adhocstop_ioctl(wlan_private * priv);
extern int libertas_reassociation_thread(void *data);
extern int libertas_reassociation_thread(void *data);


struct WLAN_802_11_SSID;
struct WLAN_802_11_SSID;
+0 −274
Original line number Original line Diff line number Diff line
@@ -986,136 +986,17 @@ static const struct iw_priv_args wlan_private_args[] = {
	/*
	/*
	 * { cmd, set_args, get_args, name }
	 * { cmd, set_args, get_args, name }
	 */
	 */
	{
	 WLANSCAN_TYPE,
	 IW_PRIV_TYPE_CHAR | 8,
	 IW_PRIV_TYPE_CHAR | 8,
	 "scantype"},

	{
	 WLAN_SETINT_GETINT,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 ""},
	{
	 WLANNF,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getNF"},
	{
	 WLANRSSI,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getRSSI"},
	{
	 WLANENABLE11D,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "enable11d"},
	{
	 WLANADHOCGRATE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "adhocgrate"},

	{
	 WLAN_SUBCMD_SET_PRESCAN,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "prescan"},
	{
	 WLAN_SETONEINT_GETONEINT,
	 IW_PRIV_TYPE_INT | 1,
	 IW_PRIV_TYPE_INT | 1,
	 ""},
	{
	 WLAN_BEACON_INTERVAL,
	 IW_PRIV_TYPE_INT | 1,
	 IW_PRIV_TYPE_INT | 1,
	 "bcninterval"},
	{
	 WLAN_LISTENINTRVL,
	 IW_PRIV_TYPE_INT | 1,
	 IW_PRIV_TYPE_INT | 1,
	 "lolisteninter"},
	{
	 WLAN_TXCONTROL,
	 IW_PRIV_TYPE_INT | 1,
	 IW_PRIV_TYPE_INT | 1,
	 "txcontrol"},
	{
	 WLAN_NULLPKTINTERVAL,
	 IW_PRIV_TYPE_INT | 1,
	 IW_PRIV_TYPE_INT | 1,
	 "psnullinterval"},
	/* Using iwpriv sub-command feature */
	/* Using iwpriv sub-command feature */
	{
	{
	 WLAN_SETONEINT_GETNONE,	/* IOCTL: 24 */
	 WLAN_SETONEINT_GETNONE,	/* IOCTL: 24 */
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 ""},
	 ""},

	{
	 WLAN_SUBCMD_SETRXANTENNA,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "setrxant"},
	{
	 WLAN_SUBCMD_SETTXANTENNA,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "settxant"},
	{
	 WLANSETENCRYPTIONMODE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "encryptionmode",
	 },
	{
	{
	 WLANSETREGION,
	 WLANSETREGION,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "setregioncode"},
	 "setregioncode"},
	{
	 WLAN_SET_LISTEN_INTERVAL,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "setlisteninter"},
	{
	 WLAN_SET_MULTIPLE_DTIM,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "setmultipledtim"},
	{
	 WLAN_SET_ATIM_WINDOW,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "atimwindow"},
	{
	 WLANSETBCNAVG,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "setbcnavg"},
	{
	 WLANSETDATAAVG,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "setdataavg"},
	{
	 WLAN_SET_LINKMODE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "linkmode"},
	{
	 WLAN_SET_RADIOMODE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "radiomode"},
	{
	 WLAN_SET_DEBUGMODE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_NONE,
	 "debugmode"},
	{
	{
	 WLAN_SUBCMD_MESH_SET_TTL,
	 WLAN_SUBCMD_MESH_SET_TTL,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
@@ -1131,41 +1012,6 @@ static const struct iw_priv_args wlan_private_args[] = {
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getregioncode"},
	 "getregioncode"},
	{
	 WLAN_GET_LISTEN_INTERVAL,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getlisteninter"},
	{
	 WLAN_GET_MULTIPLE_DTIM,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getmultipledtim"},
	{
	 WLAN_GET_TX_RATE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "gettxrate"},
	{
	 WLANGETBCNAVG,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "getbcnavg"},
	{
	 WLAN_GET_LINKMODE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "get_linkmode"},
	{
	 WLAN_GET_RADIOMODE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "get_radiomode"},
	{
	 WLAN_GET_DEBUGMODE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "get_debugmode"},
	{
	{
	 WLAN_SUBCMD_FWT_CLEANUP,
	 WLAN_SUBCMD_FWT_CLEANUP,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
@@ -1181,61 +1027,11 @@ static const struct iw_priv_args wlan_private_args[] = {
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
	 "mesh_get_ttl"},
	 "mesh_get_ttl"},
	{
	 WLAN_SETNONE_GETTWELVE_CHAR,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | 12,
	 ""},
	{
	 WLAN_SUBCMD_GETRXANTENNA,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | 12,
	 "getrxant"},
	{
	 WLAN_SUBCMD_GETTXANTENNA,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | 12,
	 "gettxant"},
	{
	 WLAN_GET_TSF,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | 12,
	 "gettsf"},
	{
	{
	 WLAN_SETNONE_GETNONE,
	 WLAN_SETNONE_GETNONE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 ""},
	 ""},
	{
	 WLANDEAUTH,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "deauth"},
	{
	 WLANADHOCSTOP,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "adhocstop"},
	{
	 WLANRADIOON,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "radioon"},
	{
	 WLANRADIOOFF,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "radiooff"},
	{
	 WLANWLANIDLEON,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "wlanidle-on"},
	{
	 WLANWLANIDLEOFF,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
	 "wlanidle-off"},
	{
	{
	 WLAN_SUBCMD_FWT_RESET,
	 WLAN_SUBCMD_FWT_RESET,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_NONE,
@@ -1298,86 +1094,16 @@ static const struct iw_priv_args wlan_private_args[] = {
	 IW_PRIV_TYPE_CHAR | 128,
	 IW_PRIV_TYPE_CHAR | 128,
	 IW_PRIV_TYPE_CHAR | 128,
	 IW_PRIV_TYPE_CHAR | 128,
	 "fwt_list_route"},
	 "fwt_list_route"},
	{
	 WLANSCAN_MODE,
	 IW_PRIV_TYPE_CHAR | 128,
	 IW_PRIV_TYPE_CHAR | 128,
	 "scanmode"},
	{
	 WLAN_GET_ADHOC_STATUS,
	 IW_PRIV_TYPE_CHAR | 128,
	 IW_PRIV_TYPE_CHAR | 128,
	 "getadhocstatus"},
	{
	 WLAN_SETNONE_GETWORDCHAR,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | 128,
	 ""},
	{
	 WLANGETLOG,
	 IW_PRIV_TYPE_NONE,
	 IW_PRIV_TYPE_CHAR | GETLOG_BUFSIZE,
	 "getlog"},
	{
	{
	 WLAN_SET_GET_SIXTEEN_INT,
	 WLAN_SET_GET_SIXTEEN_INT,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 ""},
	 ""},
	{
	 WLAN_TPCCFG,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "tpccfg"},
	{
	 WLAN_POWERCFG,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "powercfg"},
	{
	 WLAN_AUTO_FREQ_SET,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "setafc"},
	{
	 WLAN_AUTO_FREQ_GET,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "getafc"},
	{
	 WLAN_SCANPROBES,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "scanprobes"},
	{
	{
	 WLAN_LED_GPIO_CTRL,
	 WLAN_LED_GPIO_CTRL,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "ledgpio"},
	 "ledgpio"},
	{
	 WLAN_ADAPT_RATESET,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "rateadapt"},
	{
	 WLAN_INACTIVITY_TIMEOUT,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "inactivityto"},
	{
	 WLANSNR,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "getSNR"},
	{
	 WLAN_GET_RATE,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "getrate"},
	{
	 WLAN_GET_RXINFO,
	 IW_PRIV_TYPE_INT | 16,
	 IW_PRIV_TYPE_INT | 16,
	 "getrxinfo"},
};
};


static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
Loading