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

Commit a76b1942 authored by Johannes Berg's avatar Johannes Berg
Browse files

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: default avatarJohannes Berg <johannes.berg@intel.com>
parent 319090bf
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -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;
};
};


/**
/**
+5 −0
Original line number Original line Diff line number Diff line
@@ -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,
+2 −0
Original line number Original line Diff line number Diff line
@@ -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);