a different BSS, because that keeps drivers like atw from detecting
ad hoc beacons with the same SSID but different BSSID for the
purpose of IBSS merges.
This should be revisited: maybe drivers should check for beacons
before handing packets up with ieee80211_input(). However, this
restores the atw(4) to working like it did with the old 802.11
layer, and it *is* nice to re-use the 802.11 layer's packet-decode
& -dispatch code (i.e., the ic_recv_mgmt callback).
* Add Kevin Lahey's power-saving support from the old 802.11 layer
* Support for frequency-hopping PHYs
* Add support frequency-hopping PHY mode, IFM_IEEE80211_FH
* Add channel flags for frequency-hopping
* Add mode<->media mappings in for FH PHY in ieee80211_media2rate
and ieee80211_rate2media
* Stop using IFM_MAKEMODE macro since the mode constants
(e.g., IFM_IEEE80211_11A) are pre-shifted in sys/net/if_media.h
* Add some PLCP constants.
* Add Kevin Lahey's power-saving support from the old 802.11 layer
* Add a FHPARMS or DSPARMS info element to probe responses and beacons
as appropriate.
* Add Kevin Lahey's power-saving support from the old 802.11 layer
* Add my stop-gap rate-selection routine, ieee80211_get_rate,
from the old 802.11 layer
* Also from the old 802.11 layer: factor ieee80211_match_bss out
of ieee80211_end_scan, since atw(4) uses it for IBSS merges.
#ifdef __FreeBSD__
/* FreeBSDism */
#else
/* NetBSDism */
#endif
An important and non-obvious change is in ieee80211_mgmt_output,
#ifdef __FreeBSD__
KASSERT(m->m_pkthdr.rcvif == NULL, ("rcvif not null"));
#endif
Because NetBSD mbufs are not bzero'd like FreeBSD's, we cannot
count on rcvif == NULL.
striving to keep the diffs short and simple.
* Replace FreeBSDisms (e.g. struct arpcom) with conditionally-compiled
NetBSDism (struct ethercom).
* Add compatibility shims in ieee80211_compat.*: provide NetBSD with
if_printf, for example.
* Convert FreeBSD node mutex uses to generic node critical-section
protection (ieee80211_node_critsect_begin, _end), replace
FreeBSD atomic arithmetic with generic alternative, and implement
generics in NetBSD
* Provide NetBSD-style 802.11 ioctls
* Style nits