| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
little bit more to do though before it can be enabled.
|
|
|
|
|
|
|
|
| |
This works around an issue on the BCM43602 where ieee80211 calls
this too quickly during authentication and triggers "unexpected
pairwise key update" errors.
ok patrick
|
|
|
|
| |
get_routefd() and set_user().
|
| |
|
|
|
|
|
|
| |
promiscuous mode.
ok gerhard@
|
|
|
|
|
|
| |
splsoftnet was used for the upper layers of the network stack and
should no longer be used.
OK patrick@
|
|
|
|
|
|
|
|
|
|
| |
Fix code which was still looking for this flag at the old location.
The 'hidenwid' feature was slightly broken as a result: The SSID was leaked
in probe responses to wildcard probe requests. There are other trivial ways
of snooping a "hidden" SSID however so this is not a big deal.
Problem reported by Mogens Jensen.
|
|
|
|
| |
ok dlg@ tobhe@
|
|
|
|
|
|
|
|
|
| |
on the RockPro64 WiFi module.
Note that there is no fiirmware for this chip in the bwfm-firmware package
at the moment.
ok patrick@
|
|
|
|
|
| |
constraints in a separate blob, instead of in the firmware.
This .clm_blob needs to be loaded as well.
|
|
|
|
|
|
|
| |
external tool to pre-process the NVRAM, even though it's simple to
do ourselves. This allows easier firmware distribution.
ok kurt@
|
|
|
|
|
|
|
| |
This reduces drops caused by the ifq pressure drop mechanism and hence
increases throughput.
ok tobhe@
|
|
|
|
| |
ok bluhm@
|
|
|
|
|
|
|
|
| |
passive scans, which works well enough as long as you don't use
hidden networks. Even without hidden networks, using an active scan
seems to be quicker and feels like it works better.
ok stsp@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to connect, e.g. due to a timeout, we will switch the state to SCAN.
Unfortunately this skips clearing the active channel set, which
means that on a scan on all bands only the nodes on the active
channel set, which is defined by whatever node we tried to connect
to, are allowed and all other APs are ignored. Fix this by properly
calling begin_scan(). When we fail to connect and start a scan,
make sure to let the chip know that we don't want to associate
anymore.
Another issue existed when we interrupt a scan, for instance by
setting a new nwid or wpakey. In this case we didn't abort the
scan and started a new scan while the old one as still active.
This could lead to a SCAN -> SCAN transition loop.
Remove the "set ssid" event, since this would be an event in
addition to a failed auth/assoc event, which would make us try
to handle failure twice.
Discussed with and ok stsp@
|
|
|
|
|
|
| |
Synced from iwm(4).
ok patrick@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wiping the entire cache every time a scan is triggered.
This has benefits for userland programs trying to look at scan results,
and for drivers which don't get a full view from hardware on every scan.
Nodes will still be evicted from the cache in one of several ways:
Add a new way of timing out inactive nodes which don't send a beacon
within 10 scan iterations, for client mode only. This should get rid
of stale APs if we're scanning for some time in a changing environment.
If we fail to associate a few times, the corresponding node is removed.
If net80211 transitions back to INIT state (e.g. because of a
user-initiated configuration change) all nodes are removed.
When a background scan starts all nodes will be removed. This could be
revisited later but has been intentionally left as-is for now.
Tested by myself, jmc@, benno@, procter@ on iwm(4), athn(4) and ral(4).
|
|
|
|
|
|
|
|
| |
the limited ring for asynchronous can easily overflow.
Work around this by chaining the mbufs into a list.
Fixes a panic for jcs@
ok stsp@
|
| |
|
|
|
|
|
|
| |
all nodes and set the link down, this already happened the first
time we went to SCAN mode. This brings us in line with the net80211
stack and fixes an incomplete node list during ifconfig(8) scan.
|
|
|
|
|
|
|
| |
in x_media_change(), return the errno from ieee80211_media_change() and
do the error check from x_init().
ok stsp@, jmatthew@, phessler@
|
|
|
|
|
|
|
|
| |
a 16-bit value, so we have to use letoh16() instead of letoh32().
Also properly cast it to signed, so that it can be sign-extended
properly.
ok stsp@
|
|
|
|
| |
ok patrick@ mpi@
|
|
|
|
| |
error cases.
|
|
|
|
|
|
| |
This task is used to deliver mbufs (for events, not data), but it's
possible that the queue overruns. In that case it does leak mbufs.
For now, assert the size to see if we hit the issue.
|
|
|
|
|
| |
ifconfig asks for such information.
ok patrick@
|
|
|
|
|
|
|
|
| |
the network stack since the stack will create the node for us if we
pass the ibss stack. On assocation request the node already has to
exist, so we error out if we don't have a record of the node. Fixes
hostap on 5 GHz channels, since now the node's channel is recorded
correctly.
|
|
|
|
|
|
|
|
|
| |
sent in order. Otherwise it is possible that the key is set before
we send out the EAPOL packet, or that packets are sent out before
the key is set. Thus modify the SDIO backend to put both types into
the same internal TX queue, which will be sent asynchronously.
Discussed with bluhm@
|
| |
|
|
|
|
| |
check.
|
|
|
|
|
| |
specific receive path into the generic receive path, since PCIe
supplied packets can be misaligned as well.
|
|
|
|
|
|
|
|
| |
seen by Coverity CID 1470240. Cast the ieee80211_frame struct pointer
to uint8_t to address concerns raised by Coverity CID 1470239 and CID
1470237.
ok stsp@
|
|
|
|
|
| |
not in INIT state. Otherwise we can have bogus state changes on ifconfig
down. Also don't try to end a scan if we were not scanning.
|
|
|
|
|
|
|
|
|
|
|
| |
the channel specification (channel, freq, bandwidth, control channel)
which is parsed and understood by the bwfm(4) firmware. Another part
is that we shouldn't start a scan if the channel is selected by the
user, otherwise we override the chosen channel. The remaining part is
bringing the device down properly. If it's not disabled properly, we
cannot bring it up again.
ok stsp@
|
|
|
|
|
|
|
| |
and initialize bwfm(4) later in the case that the firmware was not
available on bootup and was only later installed.
ok stsp@
|
|
|
|
| |
accessed using the Chipcommon core anymore.
|
|
|
|
|
|
|
|
|
| |
ids. So far we were only able to have one command in flight at a time
and race conditions could easily lead to unexpected behaviour, especia-
lly combined with a slow bus and timeouts. With this rework we send or
enqueue a control packet command and wait for replies to happen. Thus
we can have multiple control packets in flight and a reply with the
correct id will wake us up.
|
|
|
|
|
|
|
| |
they flush old nodes and set the interface link state to down, like the
framework does.
OK stsp@ pirofti@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following removes the functionality of the SIOCS80211SCAN ioctl.
After long discussions with stps@, mpi@, and deraadt@ we decided that
this was the correct way of fixing ifconfig scan from blocking the
network stack.
The kernel will continue scanning in the background and filling the
nodes array, but ifconfig scan commands will now basically do just a
SIOCG80211ALLNODES and pretty print the array. So the output stays the
same but is instant.
In fact, when the interface is freshly brought up, if you type fast
enough, you can see the array being filled by running multiple ifconfig
scans in sequence.
The SIOCS80211SCAN ioctl stays for now as wi(4), pgt(4) and malo(4)
still need it around. But not for long...
Another change that this introduces is the fact that ifconfig scan no
longer plays with UP and DOWN. If the interface is down it complains and
exits. This is needed in order to maintain the nodes list.
Works on iwm(4), iwn(4), urtwn(4), run(4) and athn(4).
Tested by mpi@, landry@, florian@, thanks!
OK mpi@.
|
|
|
|
| |
don't fault on strict alignment architectures.
|
|
|
|
|
| |
alignment can be variable, it's better to move taking care of alignment
into the BCDC receive code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ifq dequeue semantics. This basically means we need to check for
available space before dequeuing a packet. As soon as we dequeue
a packet we commit to it. On the PCIe backend this check can not
be done easily since the flowring depends on the packet contents and
we cannot take a peek. When there is no flowring we cache the mbuf
and send it out as soon as the flowring opened up. Then the ifq can
be restarted and traffic can flow. Typically we usually run out of
packet ids, which can be checked without consulting the packet. The
flowring probably never becomes full as the bwfm(4) firmware takes
the packets off the ring without actually sending them out.
Discussed with dlg@
|
|
|
|
| |
function so it can be shared with the SDIO attachment driver.
|
|
|
|
| |
in the SDIO bus glue.
|
|
|
|
| |
version of the SOCRAM one.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a state transitioning race condition. Event packets, like completing
authentication and the following association completion, are usually
received shortly after another. The code that handles those events is
scheduled using a task, so it can easily happen that the state change
caused by the authentication packet was not done before the following
association event arrived. By moving the event packet handling into the
same context as the state task we serialize the processing and remove
the race condition. Fixes connecting to the 5GHz WiFi AP used at a2k18.
ok stsp@
|
|
|
|
|
|
| |
transitions, which means those state transition won't be shown in dmesg
in interface debug mode. Make drivers print these transitions themselves.
ok patrick@
|
|
|
|
|
|
|
| |
handle, into a debug printf. Also do not print a pointer to kernel buffers
so that we don't leak kernel addresses.
Spotted by and ok stsp@
|
|
|
|
|
|
| |
with nicer integer equivalents.
Spotted by and ok stsp@
|