cfg80211: add nl80211 beacon-only statistics
Add these two values: * BEACON_RX: number of beacons received from this peer * BEACON_SIGNAL_AVG: signal strength average for beacons only These can then be used for Android Lollipop's statistics request. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
		
					parent
					
						
							
								319090bf6c
							
						
					
				
			
			
				commit
				
					
						a76b1942a1
					
				
			
		
					 3 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
					@ -987,6 +987,9 @@ struct sta_bss_parameters {
 | 
				
			||||||
 * @nonpeer_pm: non-peer mesh STA power save mode
 | 
					 * @nonpeer_pm: non-peer mesh STA power save mode
 | 
				
			||||||
 * @expected_throughput: expected throughput in kbps (including 802.11 headers)
 | 
					 * @expected_throughput: expected throughput in kbps (including 802.11 headers)
 | 
				
			||||||
 *	towards this station.
 | 
					 *	towards this station.
 | 
				
			||||||
 | 
					 * @rx_beacon: number of beacons received from this peer
 | 
				
			||||||
 | 
					 * @rx_beacon_signal_avg: signal strength average (in dBm) for beacons received
 | 
				
			||||||
 | 
					 *	from this peer
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
struct station_info {
 | 
					struct station_info {
 | 
				
			||||||
	u32 filled;
 | 
						u32 filled;
 | 
				
			||||||
| 
						 | 
					@ -1026,6 +1029,9 @@ struct station_info {
 | 
				
			||||||
	enum nl80211_mesh_power_mode nonpeer_pm;
 | 
						enum nl80211_mesh_power_mode nonpeer_pm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	u32 expected_throughput;
 | 
						u32 expected_throughput;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						u64 rx_beacon;
 | 
				
			||||||
 | 
						u8 rx_beacon_signal_avg;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2375,6 +2375,9 @@ enum nl80211_sta_bss_param {
 | 
				
			||||||
 *	802.11 header (u32, kbps)
 | 
					 *	802.11 header (u32, kbps)
 | 
				
			||||||
 * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons
 | 
					 * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons
 | 
				
			||||||
 *	(u64)
 | 
					 *	(u64)
 | 
				
			||||||
 | 
					 * @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64)
 | 
				
			||||||
 | 
					 * @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average
 | 
				
			||||||
 | 
					 *	for beacons only (u8, dBm)
 | 
				
			||||||
 * @__NL80211_STA_INFO_AFTER_LAST: internal
 | 
					 * @__NL80211_STA_INFO_AFTER_LAST: internal
 | 
				
			||||||
 * @NL80211_STA_INFO_MAX: highest possible station info attribute
 | 
					 * @NL80211_STA_INFO_MAX: highest possible station info attribute
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -2408,6 +2411,8 @@ enum nl80211_sta_info {
 | 
				
			||||||
	NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
 | 
						NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
 | 
				
			||||||
	NL80211_STA_INFO_EXPECTED_THROUGHPUT,
 | 
						NL80211_STA_INFO_EXPECTED_THROUGHPUT,
 | 
				
			||||||
	NL80211_STA_INFO_RX_DROP_MISC,
 | 
						NL80211_STA_INFO_RX_DROP_MISC,
 | 
				
			||||||
 | 
						NL80211_STA_INFO_BEACON_RX,
 | 
				
			||||||
 | 
						NL80211_STA_INFO_BEACON_SIGNAL_AVG,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* keep last */
 | 
						/* keep last */
 | 
				
			||||||
	__NL80211_STA_INFO_AFTER_LAST,
 | 
						__NL80211_STA_INFO_AFTER_LAST,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3768,6 +3768,8 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	PUT_SINFO(T_OFFSET, t_offset, u64);
 | 
						PUT_SINFO(T_OFFSET, t_offset, u64);
 | 
				
			||||||
	PUT_SINFO(RX_DROP_MISC, rx_dropped_misc, u64);
 | 
						PUT_SINFO(RX_DROP_MISC, rx_dropped_misc, u64);
 | 
				
			||||||
 | 
						PUT_SINFO(BEACON_RX, rx_beacon, u64);
 | 
				
			||||||
 | 
						PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#undef PUT_SINFO
 | 
					#undef PUT_SINFO
 | 
				
			||||||
	nla_nest_end(msg, sinfoattr);
 | 
						nla_nest_end(msg, sinfoattr);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue