FreeBSD/src 2eab1f6sys/net80211 ieee80211_output.c

net80211: document the 802.11 specification for ieee80211_getcapinfo()

Add a reference to the 802.11 specification for the management frame
capability info field.

Differential Revision:  https://reviews.freebsd.org/D49513
Reviewed by:    thj
DeltaFile
+6-0sys/net80211/ieee80211_output.c
+6-01 files

FreeBSD/src 37e5446sys/net80211 ieee80211.h ieee80211_adhoc.c

net80211: clean up / add more macros to check the frame types

* Add new macros to check the version+type and version+type+subtype of a frame.
* Use these for existing frame checks.
* Convert the flag checks in net80211 to use the macros, rather than direct
  header poking.

Notably I'm callign out things like QOS any versus QOS data, the
kind of NULL frames, etc.  Eg, in the TKIP code it's checking whether
a frame is ANY kind of QOS frame, not just QOS data.

These macros should hopefully make the header checks clearer and less
error prone.  They're also useful in drivers that are doing their
own header parsing.

Locally:

* ath(4), AP, STA, AP+STA modes
* local ath10k/athp - AP, STA modes

    [3 lines not shown]
DeltaFile
+43-11sys/net80211/ieee80211.h
+1-2sys/net80211/ieee80211_adhoc.c
+2-1sys/net80211/ieee80211_crypto_tkip.c
+1-2sys/net80211/ieee80211_hostap.c
+1-2sys/net80211/ieee80211_mesh.c
+1-2sys/net80211/ieee80211_output.c
+49-203 files not shown
+52-259 files

FreeBSD/src 9d5aef2sbin/ifconfig ifieee80211.c, sys/net80211 ieee80211.h ieee80211_vht.c

net80211: adjust more VHT structures/fields

Replace ieee80211_ie_vhtcap with ieee80211_vht_cap and
ieee80211_ie_vht_operation with ieee80211_vht_operation.
The "ie" version has the two bytes type/length at the beginning which
we did not actually use as such (the one place doing did just as unused
extra work).

Using the non-"ie" versions allows us to re-use them on shared code.
Using an enum helps us to not accidentally get unsuppored or unhandled
values tough we cannot use it in the struct as we need to ensure the
field width.

ieee80211_vht_operation is guarded by _KERNEL/WANT_NET80211.  While the
header is supposed to be exported to user land historically, software
such as wpa bring their own structure definitions.  For in-tree usage
it is only ifconfig which really cares (at least for now).

Sponsored by:   The FreeBSD Foundation

    [4 lines not shown]
DeltaFile
+17-21sys/net80211/ieee80211.h
+24-8sbin/ifconfig/ifieee80211.c
+6-17sys/net80211/ieee80211_vht.c
+8-8sys/net80211/ieee80211_output.c
+2-2sys/net80211/ieee80211_vht.h
+2-2sys/net80211/ieee80211_input.c
+59-581 files not shown
+61-607 files

FreeBSD/src 586aaa8sbin/ifconfig ifieee80211.c, sys/net80211 ieee80211.h ieee80211_vht.c

net80211: adjust more VHT structures/fields

Replace ieee80211_ie_vhtcap with ieee80211_vht_cap and
ieee80211_ie_vht_operation with ieee80211_vht_operation.
The "ie" version has the two bytes type/length at the beginning which
we did not actually use as such (the one place doing did just as unused
extra work).

Using the non-"ie" versions allows us to re-use them on shared code.
Using an enum helps us to not accidentally get unsuppored or unhandled
values tough we cannot use it in the struct as we need to ensure the
field width.

ieee80211_vht_operation is guarded by _KERNEL/WANT_NET80211.  While the
header is supposed to be exported to user land historically, software
such as wpa bring their own structure definitions.  For in-tree usage
it is only ifconfig which really cares (at least for now).

Sponsored by:   The FreeBSD Foundation

    [4 lines not shown]
DeltaFile
+17-21sys/net80211/ieee80211.h
+24-8sbin/ifconfig/ifieee80211.c
+6-17sys/net80211/ieee80211_vht.c
+8-8sys/net80211/ieee80211_output.c
+2-2sys/net80211/ieee80211_input.c
+2-2sys/net80211/ieee80211_vht.h
+59-581 files not shown
+61-607 files

FreeBSD/src e85eb4csbin/ifconfig ifieee80211.c, sys/net80211 ieee80211.h ieee80211_vht.c

net80211: adjust more VHT structures/fields

Replace ieee80211_ie_vhtcap with ieee80211_vht_cap and
ieee80211_ie_vht_operation with ieee80211_vht_operation.
The "ie" version has the two bytes type/length at the beginning which
we did not actually use as such (the one place doing did just as unused
extra work).

Using the non-"ie" versions allows us to re-use them on shared code.
Using an enum helps us to not accidentally get unsuppored or unhandled
values tough we cannot use it in the struct as we need to ensure the
field width.

ieee80211_vht_operation is guarded by _KERNEL/WANT_NET80211.  While the
header is supposed to be exported to user land historically, software
such as wpa bring their own structure definitions.  For in-tree usage
it is only ifconfig which really cares (at least for now).

Sponsored by:   The FreeBSD Foundation

    [3 lines not shown]
DeltaFile
+17-21sys/net80211/ieee80211.h
+24-8sbin/ifconfig/ifieee80211.c
+6-17sys/net80211/ieee80211_vht.c
+8-8sys/net80211/ieee80211_output.c
+2-2sys/net80211/ieee80211_input.c
+2-2sys/net80211/ieee80211_vht.h
+59-581 files not shown
+61-607 files

FreeBSD/src a8c36fd. ObsoleteFiles.inc, share/man/man9 ieee80211_node.9 Makefile

net80211: remove ieee80211_unref_node()

ieee80211_unref_node() was only used in two error cases in
ieee80211_send_nulldata().  There we do not need to guard against
ni pointer reuse after decrementing the refcount of the ni as we
only update the stats and return.

Update the man page and remove the link for the now gone function.

Note: the last uses of the function were removed in 493d6255434ce.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    adrian, emaste
Differential Revision: https://reviews.freebsd.org/D42035

(cherry picked from commit 1137943b1c5b225e30b82350ff7fb12c258ea90f)
DeltaFile
+4-11share/man/man9/ieee80211_node.9
+0-7sys/net80211/ieee80211_node.h
+2-2sys/net80211/ieee80211_output.c
+3-0ObsoleteFiles.inc
+1-2share/man/man9/Makefile
+10-225 files

FreeBSD/src 5f760adsys/net80211 ieee80211_ht.c ieee80211_vht.c

net80211: rename iv_flags_vht to iv_vht_flags

While the flag field is internal start naming it as well as "iv_vht*"
so we keep all "VHT" fields together.  This breaks with what was done
done for HT but with HE, EHT, .. coming one day seems the more logic
choice.

No functional changes intended.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    adrian, cc
Differential Revision: https://reviews.freebsd.org/D42419

(cherry picked from commit ef48d4fa122d863db11e41608ceea641eec54704)
DeltaFile
+6-6sys/net80211/ieee80211_ht.c
+5-5sys/net80211/ieee80211_vht.c
+4-4sys/net80211/ieee80211_scan_sta.c
+3-3sys/net80211/ieee80211_output.c
+3-3sys/net80211/ieee80211.c
+3-3sys/net80211/ieee80211_node.c
+24-243 files not shown
+28-289 files

FreeBSD/src fec7988sys/net80211 ieee80211_ht.c ieee80211_vht.c

net80211: rename iv_flags_vht to iv_vht_flags

While the flag field is internal start naming it as well as "iv_vht*"
so we keep all "VHT" fields together.  This breaks with what was done
done for HT but with HE, EHT, .. coming one day seems the more logic
choice.

No functional changes intended.

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit ef48d4fa122d863db11e41608ceea641eec54704)
DeltaFile
+6-6sys/net80211/ieee80211_ht.c
+5-5sys/net80211/ieee80211_vht.c
+4-4sys/net80211/ieee80211_scan_sta.c
+3-3sys/net80211/ieee80211.c
+3-3sys/net80211/ieee80211_node.c
+3-3sys/net80211/ieee80211_output.c
+24-243 files not shown
+28-289 files

FreeBSD/src ef48d4fsys/net80211 ieee80211_ht.c ieee80211_vht.c

net80211: rename iv_flags_vht to iv_vht_flags

While the flag field is internal start naming it as well as "iv_vht*"
so we keep all "VHT" fields together.  This breaks with what was done
done for HT but with HE, EHT, .. coming one day seems the more logic
choice.

No functional changes intended.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Reviewed by:    adrian, cc
Differential Revision: https://reviews.freebsd.org/D42419
DeltaFile
+6-6sys/net80211/ieee80211_ht.c
+5-5sys/net80211/ieee80211_vht.c
+4-4sys/net80211/ieee80211_scan_sta.c
+3-3sys/net80211/ieee80211.c
+3-3sys/net80211/ieee80211_node.c
+3-3sys/net80211/ieee80211_output.c
+24-243 files not shown
+28-289 files

FreeBSD/src 1137943. ObsoleteFiles.inc, share/man/man9 ieee80211_node.9 Makefile

net80211: remove ieee80211_unref_node()

ieee80211_unref_node() was only used in two error cases in
ieee80211_send_nulldata().  There we do not need to guard against
ni pointer reuse after decrementing the refcount of the ni as we
only update the stats and return.

Update the man page and remove the link for the now gone function.

Sponsored by:   The FreeBSD Foundation
X-MFC:          never
Reviewed by:    adrian, emaste
Differential Revision: https://reviews.freebsd.org/D42035
DeltaFile
+4-11share/man/man9/ieee80211_node.9
+0-7sys/net80211/ieee80211_node.h
+2-2sys/net80211/ieee80211_output.c
+1-2share/man/man9/Makefile
+3-0ObsoleteFiles.inc
+10-225 files

FreeBSD/src 3bc8099sys/dev/ioat ioat_test.h ioat_internal.h, sys/dev/pwm pwm_backlight.c

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/

Similar commit in current:
(cherry picked from commit 685dc743dc3b)
DeltaFile
+0-3sys/riscv/riscv/swtch.S
+0-3sys/riscv/riscv/bus_space_asm.S
+0-3sys/kern/subr_syscall.c
+0-3sys/dev/pwm/pwm_backlight.c
+0-3sys/dev/ioat/ioat_test.h
+0-3sys/dev/ioat/ioat_internal.h
+0-184,033 files not shown
+0-7,9144,039 files

FreeBSD/src 685dc74sys/dev/ioat ioat_test.h, sys/dev/mana mana_sysctl.c

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
DeltaFile
+0-3sys/riscv/riscv/swtch.S
+0-3sys/riscv/riscv/bus_space_asm.S
+0-3sys/kern/subr_syscall.c
+0-3sys/dev/pwm/pwm_backlight.c
+0-3sys/dev/mana/mana_sysctl.c
+0-3sys/dev/ioat/ioat_test.h
+0-183,795 files not shown
+0-7,4523,801 files

FreeBSD/src caa41f6include bitstring.h complex.h, sys/dev/qlxge qls_isr.c

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with:         pfg
MFC After:              3 days
Sponsored by:           Netflix

(cherry picked from commit 4d846d260e2b9a3d4d0a701462568268cbfe7a5b)
DeltaFile
+2-2sys/dev/qlxge/qls_isr.c
+2-2sys/xen/xenbus/xenbusb.h
+1-1include/bitstring.h
+1-1include/complex.h
+1-1include/cpio.h
+1-1include/elf-hints.h
+8-85,432 files not shown
+5,440-5,4405,438 files

FreeBSD/src 4d846d2lib/libc/gen utxdb.c utxdb.h, sys/dev/qlxge qls_isr.c

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with:         pfg
MFC After:              3 days
Sponsored by:           Netflix
DeltaFile
+2-2sys/dev/qlxge/qls_isr.c
+2-2sys/xen/xenbus/xenbusb.h
+1-1lib/libc/gen/utxdb.c
+1-1lib/libc/gen/utxdb.h
+1-1lib/libc/gen/waitid.c
+1-1lib/libc/gen/wordexp.c
+8-85,571 files not shown
+5,579-5,5795,577 files

FreeBSD/src 3d0d5b2sys/net80211 ieee80211_ddb.c, sys/netinet ip_reass.c sctp_os_bsd.h

IfAPI: Explicitly include <net/if_private.h> in netstack

Summary:
In preparation of making if_t completely opaque outside of the netstack,
explicitly include the header.  <net/if_var.h> will stop including the
header in the future.

Sponsored by:   Juniper Networks, Inc.
Reviewed by:    glebius, melifaro
Differential Revision: https://reviews.freebsd.org/D38200
DeltaFile
+3-3sys/net80211/ieee80211_ddb.c
+1-1sys/netinet6/nd6.h
+1-0sys/netinet/ip_reass.c
+1-0sys/netinet/netdump/netdump_client.c
+1-0sys/netinet/sctp_os_bsd.h
+1-0sys/netinet/tcp_lro.c
+8-480 files not shown
+88-486 files

FreeBSD/src 342b7b5sys/net80211 ieee80211_output.c

net80211: move IEEE80211_F_WME check to vap for consistency

The IEEE80211_F_WME checks done on the ic were changed to be per-vap
back in the time when multi-bss was introduced or earlier in 2008.
This one was left out but given it is a (re-)accos-req case I see
no reason not to use the vap value here for consistency too.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D36733

(cherry picked from commit f82316f67883b53ee0f79bf28be32dfa7d64d5e3)
DeltaFile
+1-1sys/net80211/ieee80211_output.c
+1-11 files

FreeBSD/src f82316fsys/net80211 ieee80211_output.c

net80211: move IEEE80211_F_WME check to vap for consistency

The IEEE80211_F_WME checks done on the ic were changed to be per-vap
back in the time when multi-bss was introduced or earlier in 2008.
This one was left out but given it is a (re-)accos-req case I see
no reason not to use the vap value here for consistency too.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D36733
DeltaFile
+1-1sys/net80211/ieee80211_output.c
+1-11 files

FreeBSD/src 4e1153csys/compat/linuxkpi/common/include/linux ieee80211.h, sys/net80211 ieee80211.h ieee80211_adhoc.c

net80211 / drivers: rename to IEEE80211_FC0_SUBTYPE_QOS_DATA

Going through the Frame (Sub)types the "QOS Data" being called "QOS"
scheme leads to a naming conflict for QOS_CFPOLL and QOS_CFACKPOLL
(if added).   Rename QOS* to QOS_DATA* to avoid the conflict and
to also better match the standards name.

No functional changes intended.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    hselasky
Differential Revision: https://reviews.freebsd.org/D36409

(cherry picked from commit c9b7e9df18e413a27bbddd776315a595255453f1)
DeltaFile
+7-7sys/net80211/ieee80211.h
+4-4sys/compat/linuxkpi/common/include/linux/ieee80211.h
+2-2sys/net80211/ieee80211_adhoc.c
+2-2sys/net80211/ieee80211_hostap.c
+2-2sys/net80211/ieee80211_sta.c
+2-2sys/net80211/ieee80211_wds.c
+19-193 files not shown
+22-229 files

FreeBSD/src b1a57b1sys/net80211 ieee80211_output.c

net80211: simplify an #ifdef INET/INET6 block

I got lost in the #ifdef #endif here so I changed the code to a
switch block with two non-overlapping #ifdef parts and a default
which makes it a lot easier to read.

No functional changes.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    (zlei.huang gmail.com)
Differential Revision: https://reviews.freebsd.org/D36411

(cherry picked from commit 8def06d5afdcd8020a039b1de994cfe6ad18229e)
DeltaFile
+18-11sys/net80211/ieee80211_output.c
+18-111 files

FreeBSD/src f36e7c5sys/net80211 ieee80211_output.c ieee80211_freebsd.c

net80211: consistently use the IEEE80211_M_ memory related options

Replace a malloc() by IEEE80211_MALLOC().
For malloc flags even in the local ieee80211_freebsd.c there was a mix
of both versions M_ and IEEE80211_M_.
Consistently use the IEEE80211_M_ malloc options everywhere.
If the field is changed for malloc, it'll also be changed for the
other accessor functions taking a "how" field to avoid any confusion.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D36249

(cherry picked from commit bd29f81763aa9cac74c75b663c2cf46723f05528)
DeltaFile
+14-13sys/net80211/ieee80211_output.c
+8-8sys/net80211/ieee80211_freebsd.c
+4-3sys/net80211/ieee80211.c
+3-3sys/net80211/ieee80211_mesh.c
+3-3sys/net80211/ieee80211_superg.c
+2-2sys/net80211/ieee80211_ioctl.c
+34-328 files not shown
+43-4114 files

FreeBSD/src c9b7e9dsys/compat/linuxkpi/common/include/linux ieee80211.h, sys/net80211 ieee80211.h ieee80211_sta.c

net80211 / drivers: rename to IEEE80211_FC0_SUBTYPE_QOS_DATA

Going through the Frame (Sub)types the "QOS Data" being called "QOS"
scheme leads to a naming conflict for QOS_CFPOLL and QOS_CFACKPOLL
(if added).   Rename QOS* to QOS_DATA* to avoid the conflict and
to also better match the standards name.

No functional changes intended.

Sponsored by:   The FreeBSD Foundation
MFC after:      5 days
Reviewed by:    hselasky
Differential Revision: https://reviews.freebsd.org/D36409
DeltaFile
+7-7sys/net80211/ieee80211.h
+4-4sys/compat/linuxkpi/common/include/linux/ieee80211.h
+2-2sys/net80211/ieee80211_sta.c
+2-2sys/net80211/ieee80211_wds.c
+2-2sys/net80211/ieee80211_hostap.c
+2-2sys/net80211/ieee80211_adhoc.c
+19-193 files not shown
+22-229 files

FreeBSD/src 8def06dsys/net80211 ieee80211_output.c

net80211: simplify an #ifdef INET/INET6 block

I got lost in the #ifdef #endif here so I changed the code to a
switch block with two non-overlapping #ifdef parts and a default
which makes it a lot easier to read.

No functional changes.

Sponsored by:   The FreeBSD Foundation
Reviewed by:    (zlei.huang gmail.com)
MFC after:      5 days
Differential Revision: https://reviews.freebsd.org/D36411
DeltaFile
+18-11sys/net80211/ieee80211_output.c
+18-111 files

FreeBSD/src bd29f81sys/net80211 ieee80211_output.c ieee80211_freebsd.c

net80211: consistently use the IEEE80211_M_ memory related options

Replace a malloc() by IEEE80211_MALLOC().
For malloc flags even in the local ieee80211_freebsd.c there was a mix
of both versions M_ and IEEE80211_M_.
Consistently use the IEEE80211_M_ malloc options everywhere.
If the field is changed for malloc, it'll also be changed for the
other accessor functions taking a "how" field to avoid any confusion.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Reviewed by:    adrian
Differential Revision: https://reviews.freebsd.org/D36249
DeltaFile
+14-13sys/net80211/ieee80211_output.c
+8-8sys/net80211/ieee80211_freebsd.c
+4-3sys/net80211/ieee80211.c
+3-3sys/net80211/ieee80211_superg.c
+3-3sys/net80211/ieee80211_mesh.c
+2-2sys/net80211/ieee80211_ioctl.c
+34-328 files not shown
+43-4114 files

FreeBSD/src 2889cbesys/net80211 ieee80211_hostap.c ieee80211_adhoc.c

net80211: add an IEEE80211_IS_PROTECTED() macro

Summary: This returns whether the given 802.11 frame has the protected bit set.

Test Plan:
* tested in AP/STA mode
* STA mode - local athp/ath10k driver
* AP mode - in tree ath driver

Subscribers: imp, melifaro, glebius
Reviewed by: bz
Approved by: bz

Differential Revision: https://reviews.freebsd.org/D36183
DeltaFile
+2-2sys/net80211/ieee80211_hostap.c
+2-2sys/net80211/ieee80211_adhoc.c
+2-2sys/net80211/ieee80211_sta.c
+2-2sys/net80211/ieee80211_wds.c
+3-0sys/net80211/ieee80211.h
+1-1sys/net80211/ieee80211_proto.c
+12-92 files not shown
+14-118 files

FreeBSD/src 6d7dc79sys/net80211 ieee80211_output.c

net80211: Remove tautological state display

When printing the current state name and the old state numeric value,
both are always the same. Remove the redundant ostate. It is always
the same as iv_state.

Reviewed by:            bz
Differential Revision:  https://reviews.freebsd.org/D35849

(cherry picked from commit 4f158a444ee7365454cc3ea1547b1b5c323dae55)
DeltaFile
+2-2sys/net80211/ieee80211_output.c
+2-21 files

FreeBSD/src 4f158a4sys/net80211 ieee80211_output.c

net80211: Remove tautological state display

When printing the current state name and the old state numeric value,
both are always the same. Remove the redundant ostate. It is always
the same as iv_state.

Reviewed by:            bz
MFC after:              1 week
Differential Revision:  https://reviews.freebsd.org/D35849
DeltaFile
+2-2sys/net80211/ieee80211_output.c
+2-21 files

FreeBSD/src 1e80cdasys/net80211 ieee80211_output.c

net80211: remove (optional) RSN from preobereq

802.11i-2004 did not specify that RSN can be added to the probereq,
only to the proberesp (and others) yet it was added in what seems was
b032f27c365b992e9d8e42214183b39acfb8c6ac (multi-BSS support).
802.11-2020 does not list the IE either for probereq so remove it.

Sponsored by:   The FreeBSD Foundation
Okayed by:      adrian
Differential Revision: https://reviews.freebsd.org/D34893

(cherry picked from commit 892b1874ace0245a08b0764a45622fbdee3668a9)
DeltaFile
+0-4sys/net80211/ieee80211_output.c
+0-41 files

FreeBSD/src 892b187sys/net80211 ieee80211_output.c

net80211: remove (optional) RSN from preobereq

802.11i-2004 did not specify that RSN can be added to the probereq,
only to the proberesp (and others) yet it was added in what seems was
b032f27c365b992e9d8e42214183b39acfb8c6ac (multi-BSS support).
802.11-2020 does not list the IE either for probereq so remove it.

Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Okayed by:      adrian
Differential Revision: https://reviews.freebsd.org/D34893
DeltaFile
+0-4sys/net80211/ieee80211_output.c
+0-41 files

FreeBSD/src e560997sys/net80211 ieee80211_output.c

net80211: adjust a printf to toeee80211_note

Throughout net80211 there are multiple ways to log (debugging)
information.  Start to clenaup one as I kept hitting it to harmonize
the output.  The more we get away from printfs into either wrapper
functions or macros the more likely we can use holistic systematic
tracing in the future.

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 2e59c9c7f01e9e8878664f59438d1ed6c27d0e2b)
DeltaFile
+1-1sys/net80211/ieee80211_output.c
+1-11 files

FreeBSD/src de4b87bsys/net80211 ieee80211_output.c ieee80211_proto.c

net80211: add debugging information

Add more STATE / DEBUG probes and enhance the output of one in order
to track state changes triggered by "ack" (or not).
This helped to narrow down causes from drivers or the LinuxKPI 802.11
compat framework which kept us in a scan -> auth -> scan loop.

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 04efa18f83d12dca2b69dd4cdb626f92e5ce64f0)
DeltaFile
+17-1sys/net80211/ieee80211_output.c
+2-2sys/net80211/ieee80211_proto.c
+3-0sys/net80211/ieee80211_node.c
+22-33 files