-
Notifications
You must be signed in to change notification settings - Fork 0
[PW_SID:996054] [v2,01/11] vendor_quirks: initial skeleton #479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This is taken care of by the individual cache items and if none exist, tar fails.
This module will provide a database for known issues or quirks with wireless vendors. The vendor_quirks_append_for_oui() API is intended to be called from scan.c when parsing vendor attributes. This will lookup any quirks associated with the OUI provided and combine them into an existing vendor_quirk structure. This can be repeated against all the vendor OUI's seen in the scan then referenced later to alter IWD behavior. In the future more critera could be added such as MAC address prefix or more generalized IE matches e.g. vendor_quirks_append_for_mac() vendor_quirks_append_for_ie() etc.
ignore_bss_tm_candidates: When a BSS requests a station roam it can optionally include a list of BSS's that can be roamed to. IWD uses this list and only scans on those frequencies. In some cases though the AP's list contains very poor options and it would be better for IWD to request a full neighbor report. replay_counter_mismatch: On some Aruba APs there is a mismatch in the replay counters between what is seen in scans versus authentications/associations. This difference is not allowed in the spec, therefore IWD will not connect. This quirk is intended to relax that check.
This is to prepare for supporting a vendor quirk, where we'll need the handshake to lookup if the quirk to disable a specific check.
As each vendor IE is parsed lookup if there are any quirks associated with it, and store these in a bit mask.
This has been a long standing issue on Aruba APs where the scan IEs differ from the IEs received during FT. For compatibility we have been carrying a patch to disable the replay counter check but this isn't something that was ever acceptable for upstream. Now with the addition of vendor quirks this check can be disabled only for the OUI of Aruba APs. Reported-by: Michael Johnson <mjohnson459@gmail.com> Co-authored-by: Michael Johnson <<mjohnson459@gmail.com>
If a BSS is requesting IWD roam elsewhere but does not include a preferred candidate list try getting a neighbor report before doing a full scan. If the limited scan based on the candidate list comes up empty this would previously result in IWD giving up on the AP roam entirely. This patch also improves that behavior slightly by doing a full scan afterwards as a last ditch effort. If no BSS's are found after that, IWD will give up on the AP roam.
If the AP vendor has known issues with the preferred candidate list ignore it and jump directly to requesting a neighbor report.
This makes it clear the BSS being selected for a connection/roam has any quirks associated with its OUI(s) and that IWD may behave differently based on these.
|
Fetch PR Prep - Setup ELL Make Distcheck Build - Configure Make Check Make Check w/Valgrind Incremental Build with patches |
0e452d2 to
d035ebb
Compare
This module will provide a database for known issues or quirks with
wireless vendors.
The vendor_quirks_append_for_oui() API is intended to be called from
scan.c when parsing vendor attributes. This will lookup any quirks
associated with the OUI provided and combine them into an existing
vendor_quirk structure. This can be repeated against all the vendor
OUI's seen in the scan then referenced later to alter IWD behavior.
In the future more critera could be added such as MAC address prefix
or more generalized IE matches e.g.
vendor_quirks_append_for_mac()
vendor_quirks_append_for_ie()
etc.
Makefile.am | 2 ++
src/vendor_quirks.c | 67 +++++++++++++++++++++++++++++++++++++++++++++
src/vendor_quirks.h | 39 ++++++++++++++++++++++++++
3 files changed, 108 insertions(+)
create mode 100644 src/vendor_quirks.c
create mode 100644 src/vendor_quirks.h
v2:
in the future to match MAC/IE's