- In ieee80211_setmode(), don't mark basic rates on ieee80211com.ic_sup_rates.
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 1 Jan 2007 08:51:45 +0000 (08:51 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 1 Jan 2007 08:51:45 +0000 (08:51 +0000)
commit9639b71dd323cccd267d933956685056076bd8dc
tree3049808ce8a6114c84887394a3ea8d4217a34423
parent5f72456d8ac2c4cc9af538f7c629814559251ee5
- In ieee80211_setmode(), don't mark basic rates on ieee80211com.ic_sup_rates.
  The basic rates will be marked on ieee80211com.ic_sup_rates once we get the
  BSS' basic rate set, in ieee80211_sta_join().
- Rename ieee80211_set11gbasicrates() to ieee80211_set_basicrates().  Add
  additional parameter to indicate whether we are using Pure G or not.
- In ieee80211_set_basicrates():
  o  Extend basic rate set array by adding items for Turbo G mode (mixed 11B/G
     basic rates) and Turbo A mode (11A mandatory rates).
  o  Add an assertion to make sure we will not go beyond the end of the basic
     rate set array.
  o  Use a seperate constant for Pure G basic rate set.
  o  If 'mode' is 11G or Turbo G, and Pure G is required, use Pure G's basic
     rate set, instead of mixed 11B/G basic rate set.  This makes a standard
     conforming 11B STA not try joining a Pure G BSS created by us.
- In ieee80211_recv_mgmt():
  o  Send probe response even if rate negotiation fails.  According to
     IEEE Std 802.11, 1999 Edition, subclause 11.1.3.2.1:
     ....
     STAs, subject to criteria below, receiving Probe Request frames shall
     respond with a probe response only if the SSID in the probe request is
     the broadcast SSID or matches the specific SSID of the STA.  ... ...
     An AP shall respond to all probe requests meeting the above criteria.
     In an IBSS, the STA that generated the last beacon shall be the STA that
     responds to a probe request.
     ....

     If we reach the rate negotiation step, then the "criteria" outlined by
     the standard is already met.
  o  Don't do rate negotiation for temporary nodes, which are created just for
     sending probe responses.  This may save us some cpu time.
- Reset NIC for Pure G change, only if opmode is HOSTAP or IBSS(*), and phy
  mode is either Turbo G or 11G.
- Don't allocate TX rate control data for temporary nodes, since they will be
  reclaimed immediately after management frames are sent.

# (*) Actually, for IBSS opmode, we need to reset the NIC iff we are the only
#     member of the current IBSS.
sys/netproto/802_11/ieee80211_proto.h
sys/netproto/802_11/wlan/ieee80211.c
sys/netproto/802_11/wlan/ieee80211_input.c
sys/netproto/802_11/wlan/ieee80211_ioctl.c
sys/netproto/802_11/wlan/ieee80211_node.c
sys/netproto/802_11/wlan/ieee80211_output.c
sys/netproto/802_11/wlan/ieee80211_proto.c