Age | Commit message (Collapse) | Author |
|
timeout, timeout in blocked state, fix essid seprint race
- add some milisecond timestamps to the status change debug printing
- flush the packets in the queue on deassoc to avoid processing old pae
packets on next association.
- make roaming timeout shorter (60 -> 20 seconds)
- automatically timeout and restart wpa/pae blocked state
- fix printing race when essid gets changed underneath seprint
|
|
- drivers enable short preamble and sort timeslot depending
on the ap beacon capinfo field (bss->cap)
- wifi sets short preamble bit in capinfo on association request
- wifi sets short timeslot bit when ap advertized it in beacon
|
|
|
|
|
|
if beacon/proble contains both wpa information element and rsne, the rsne wins.
|
|
introduce wificfg() function to convert ether->opt[] strings
to wifictl messages, which needs quoting for the value. so
etherX=type=iwl essid='something with spaces' works.
|
|
|
|
Wnode gets two new counters: txcount and txerror
and actrate pointer that will be between minrate
and maxrate.
driver should use actrate instead of maxrate for
transmission when it can provide error feedback.
when a driver detects a transmission failed, it calls
wifitxfail() with the original packet. wifitxfail() then
reduces wn->actrate.
every 256th packet, we optimistically increase wn->actrate
before transmitting.
|
|
- reduce delay for channel hop to 200ms
- use 1000ms timeout for auth response (dont hop channels while we wait)
- bunny hop sequence is mathematically prooven
|
|
we used to read beyond the boundaries of the becon because of
the end pointer was offset by the beacon header. this is
also what caused the double entries.
|
|
|
|
|
|
driver sets wifi->rates array to tell wifi layer what
rates it supports. when we receive beacon, we determine
the minimum and maximum data rates and set wn->minrate
and wn->maxrate to point to the entries in wifi->rates.
it is the responsibility of the driver to use this
information on transmit.
|
|
we do not need to check block length in wifidecrypt()
again as wifiiq() already filters out truncated frames.
|
|
|
|
catch the error() that can be thrown by sleep() and tsleep()
in kprocs.
add missing pexit() calls.
always set the freemem argument to pexit() from kproc otherwise
the process gets added to the broken list.
|
|
|
|
scan to complete.
|
|
Required for upcoming RT2860 driver
|
|
network until rsne is setup
|
|
|
|
ap's (roaming)
|
|
deauthenticated by the ap
|
|
|
|
aux/wpa needs to reset its reply counter on deassociation to
properly restart key negotiation. we signal this with a zero
length read on the connections filtering for eapol protocol.
|
|
allow the driver to associate the node with a new aid right after
we receive the association response, not just when we transmit
a packet which usualy does not happen as eapol is initiated by
the access point so there are no transmit calls. we just call
transmit from the wifiproc with a nil block to introduce the node.
|
|
|
|
|
|
|
|
wifictl command
|
|
add a debug flag that can be set in the ethernet options which
causes status transitions and wifictl messages to be printed.
|
|
it is usefull to see what encryption keys have been
estabished by aux/wpa.
|
|
|
|
we only used wifi->iq to process management frames only, now its also used
to forward encrypted data frames, so size it accordingly.
|
|
|
|
cleanup wifiencrypt()/wifidecrypt() routines moving tkip
and ccmp in separate routines so we dont use less stack
space.
|
|
do the xoring word wise for 16-byte block instead
of doing it bytewise in a loop.
|
|
|
|
|
|
mode, cleanup
|
|
|
|
|
|
|
|
|
|
the channel= plan9.ini parameter isnt needed anymore as we now
hop the channels to scan for beacons. the status is also indicated
with the link led :-)
handle all these flags on packet transmission like RTS for big
packets and sending data packets to the AP instead of broadcasting
everything.
properly setup bss hardware node table and filtering. now promisc
mode is only used when requested.
handle deauth message from ap.
increase node table to 32 entries.
|
|
|
|
information
|
|
|