nl80211/cfg80211: add channel switch command
To allow channel switch announcements within beacons, add the channel switch command to nl80211/cfg80211. This is implementation is intended for AP and (later) IBSS mode. Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
		
					parent
					
						
							
								7cf1f14ecf
							
						
					
				
			
			
				commit
				
					
						16ef1fe272
					
				
			
		
					 5 changed files with 229 additions and 1 deletions
				
			
		|  | @ -676,6 +676,16 @@ | |||
|  * @NL80211_CMD_GET_COALESCE: Get currently supported coalesce rules. | ||||
|  * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules. | ||||
|  * | ||||
|  * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the | ||||
|  *	the new channel information (Channel Switch Announcement - CSA) | ||||
|  *	in the beacon for some time (as defined in the | ||||
|  *	%NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the | ||||
|  *	new channel. Userspace provides the new channel information (using | ||||
|  *	%NL80211_ATTR_WIPHY_FREQ and the attributes determining channel | ||||
|  *	width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform | ||||
|  *	other station that transmission must be blocked until the channel | ||||
|  *	switch is complete. | ||||
|  * | ||||
|  * @NL80211_CMD_MAX: highest used command number | ||||
|  * @__NL80211_CMD_AFTER_LAST: internal use | ||||
|  */ | ||||
|  | @ -841,6 +851,8 @@ enum nl80211_commands { | |||
| 	NL80211_CMD_GET_COALESCE, | ||||
| 	NL80211_CMD_SET_COALESCE, | ||||
| 
 | ||||
| 	NL80211_CMD_CHANNEL_SWITCH, | ||||
| 
 | ||||
| 	/* add new commands above here */ | ||||
| 
 | ||||
| 	/* used to define NL80211_CMD_MAX below */ | ||||
|  | @ -1469,6 +1481,18 @@ enum nl80211_commands { | |||
|  * | ||||
|  * @NL80211_ATTR_COALESCE_RULE: Coalesce rule information. | ||||
|  * | ||||
|  * @NL80211_ATTR_CH_SWITCH_COUNT: u32 attribute specifying the number of TBTT's | ||||
|  *	until the channel switch event. | ||||
|  * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission | ||||
|  *	must be blocked on the current channel (before the channel switch | ||||
|  *	operation). | ||||
|  * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information | ||||
|  *	for the time while performing a channel switch. | ||||
|  * @NL80211_ATTR_CSA_C_OFF_BEACON: Offset of the channel switch counter | ||||
|  *	field in the beacons tail (%NL80211_ATTR_BEACON_TAIL). | ||||
|  * @NL80211_ATTR_CSA_C_OFF_PRESP: Offset of the channel switch counter | ||||
|  *	field in the probe response (%NL80211_ATTR_PROBE_RESP). | ||||
|  * | ||||
|  * @NL80211_ATTR_MAX: highest attribute number currently defined | ||||
|  * @__NL80211_ATTR_AFTER_LAST: internal use | ||||
|  */ | ||||
|  | @ -1771,6 +1795,12 @@ enum nl80211_attrs { | |||
| 
 | ||||
| 	NL80211_ATTR_COALESCE_RULE, | ||||
| 
 | ||||
| 	NL80211_ATTR_CH_SWITCH_COUNT, | ||||
| 	NL80211_ATTR_CH_SWITCH_BLOCK_TX, | ||||
| 	NL80211_ATTR_CSA_IES, | ||||
| 	NL80211_ATTR_CSA_C_OFF_BEACON, | ||||
| 	NL80211_ATTR_CSA_C_OFF_PRESP, | ||||
| 
 | ||||
| 	/* add attributes here, update the policy in nl80211.c */ | ||||
| 
 | ||||
| 	__NL80211_ATTR_AFTER_LAST, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Wunderlich
				Simon Wunderlich