]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r306837:
authoreadler <eadler@FreeBSD.org>
Mon, 5 Mar 2018 07:54:57 +0000 (07:54 +0000)
committereadler <eadler@FreeBSD.org>
Mon, 5 Mar 2018 07:54:57 +0000 (07:54 +0000)
commit27d34c94c9fb9ab82c69007efeafd0d1eadcd9c6
tree5e885d97bbf2534d94ced1776c387d69945ea544
parentcc6636ba1167451a175d8a6452403d6ec5b205f5
MFC r306837:

[net80211] extend the ieee80211_rx_stats struct to include more information.

There are a variety of more interesting RX statistics that we should
keep track of but we don't.  This is a starting point for adding more
information.

Specifically:

* now the RX rate information and some of the packet status is
  passed up;
* The 32 bit or 64 bit TSF is passed up;
* the PHY mode is passed up;
* the "I'm decap'ed AMSDU!" state is passed up;
* number of RX chains is bumped to 4.

This is all mostly a placeholder for getting the data into the RX status
before we pass it up to net80211 - unfortunately we don't yet enforce
that drivers provide it, nor do we pass the provided info back up the
stack so anyone can use the data.

We're going to need to use some of this data moving forward.
Notably, now that some hardware can do AMSDU decap for us (the intel iwm
driver can do it when we flip it on; the ath10k port I'm doing does
it for us) then we need to pass it up through the stack so the duplicate
RX sequence numbers and crypto/IV details don't cause the packet to
be dropped and/or counted against a replay counter.

It's also the beginning of being able to do more interesting node
accounting in net80211.  Specifically, once drivers start populating
per-packet rate information, AMPDU information, timestamps, etc,
we can start providing histograms of rate-versus-RSSI, account
for receive time spent per node and other such interesting things.

(Note: I'm also hoping to include ranging and RTT information for
future chipset support; and it's likely going to include it in
this kind of fashion.)
sys/dev/iwm/if_iwm.c
sys/dev/otus/if_otus.c
sys/dev/usb/wlan/if_rsu.c
sys/net80211/ieee80211_freebsd.h
sys/net80211/ieee80211_input.c