#
69b6c4a6 |
|
21-May-2024 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix for_each_sta_active_link() Likely a c&p error from for_each_vif_active_link() to for_each_sta_active_link(). We are checking the nitems on the vif instead of the sta in this macro. Function wise there is no difference as the arrays are the same size but for correctness fix this. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
2f029bf9 |
|
29-Jan-2024 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: extend ieee80211_key_seq and WLAN_KEY_LEN_* defines For iwlwifi(4) d3.c we need another struct in struct ieee80211_key_seq and related WLAN_KEY_LEN_* defines in. MFC after: 3 days Reviewed by: cc, emaste Differential Revision: https://reviews.freebsd.org/D43646
|
#
828ce22f |
|
27-Jan-2024 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix field order in ieee80211_key_conf When adding the new field link_id to struct ieee80211_key_conf, it was erroneously placed at the end of the struct; the zero-length (variable sized) array for the key always needs to stay last. Resort fields and add hopefully helpful comment to avoid the problem in the future. Fixes: adff403fe7a87 MFC after: 3 days Reviewed by: cc Differential Revision: https://reviews.freebsd.org/D43635
|
#
eac3646f |
|
11-Dec-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: more TXQ implementation and locking Implement ieee80211_handle_wake_tx_queue() and ieee80211_tx_dequeue_ni() while looking at the code. They are needed by various wireless drivers. Introduce an ltxq lock and protect the skbq by that. This prevents panics due to a race between a driver upcall and the net80211 tx downcall. While the former should be rcu protected we cannot rely on that. It remains questionable if we need to protect further fields there (with a different lock?). Also introduce a txq_mtx on the lhw which needs to be further deployed but we need to come up with a good strategy to not end up with 7 different locks. Sponsored by: The FreeBSD Foundation PR: 274178, 275710 Tested by: cc MFC after: 3 days
|
#
9fb91463 |
|
26-Oct-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: bring in some HT code Fix defines and structures to use proper types. Bring in basic ni->sta synchronization, some channel width handling, and overload the net80211 functions so that we can talk to driver/firmware to setup parameters. We will likely not need one or two of those but it is good for tracing currently. Cover HT and bits of VHT code in LinuxKPI behind apropriate #ifdef which are currently not enabled (like LKPI_80211_HW_CRYPTO) until confirmed to work. Last, IEEE80211_AMPDU_RX_START made some firmware unhappy. This will allow others to work on it and test as well. Sponsored by: The FreeBSD Foundation MFC after: 10 days
|
#
616e1330 |
|
20-Sep-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: adjust code to new structure layout With past commits new structures were added. Now switch over some bss_conf fields into vif->cfg where they got moved to and remove the old fields. This allows drivers to find the expected values in the now expected places and work better. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
3e1f5cc9 |
|
14-Sep-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: prepare for iwlwifi driver updates Unconditionally enable the changes for newer drivers, as needed by iwlwifi (and others). Sposnored by: The FreeBSD Foundation MFC after: 3 days X-Note: breaks build until iwlwifi update (next hash)
|
#
815b7436 |
|
05-Sep-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
iwlwifi/LinuxKPI: 802.11: update ieee80211_request_smps() Update ieee80211_request_smps() to the new number of arguments in LinuxKPI (which was already prepared) and update the one call in the older iwlwifi driver version. This will allow iwlwifi as-is now and rtw88 to compile in case someone else wants to work on the latter in parallel to predominant efforts on the former. Sponsored by: The FreeBSD Foundation MFC after: 20 days
|
#
adff403f |
|
16-May-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: update compat code for updated drivers Adjust and add structs, fields, functions to make more modern versions of LinuxKPI based wireless drivers (based on wireless-testing ( wt-2023-06-09, wt-2023-07-24, and later)) compile. Some of these changes can only be applied once all drivers get updated to not break the old versions currently in the tree. Mark those changes with __FOR_LATER_DRV_UPDATE for now and flip the switch at a later point. Sponsored by: The FreeBSD Foundation MFC after: 20 days
|
#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
910a8343 |
|
11-May-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix IEEE80211_TX_INFO_DRIVER_DATA_SIZE Fix the sizing of IEEE80211_TX_INFO_DRIVER_DATA_SIZE so that it also works on 32bit platforms. Otherwise it triggers a compile-time assertion in ath10k for i386. Sponsored by: The FreeBSD Foundation MFC after: 10 days
|
#
35f7fa4a |
|
20-Apr-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: improve assertion and tkip code Move a KASSERT out of a function and make it a CTASSERT with appropriate comments. Skeleton implement two tkip functions, still left TODO, initializing variables with dummy values to quiten compiler warnings. It is unclear to me if we should still ever properly implement TKIP compat code at this point. If so the current code gives a good idea what needs to be done in addition to allocating references to real state along with keyconf. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
f369f10d |
|
19-Apr-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix a -Wenum-compare warning We are asserting that two values from different enums are the same. gcc warns about these. Cast the values to (int) to avoid the warning. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
2336248a |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix ff76cbc81d57ffc4bbc9bc20fd22325b2a8c2028 (pspoll) Add the lost "inline". Sponsored by: The FreeBSD Foundation MFC after: 3 days X-MFC with: ff76cbc81d57ffc4bbc9bc20fd22325b2a8c2028
|
#
ff76cbc8 |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: implement ieee80211_is_pspoll() Implement ieee80211_is_pspoll() and move it up to the set of implemented ieee80211_is_*() functions. There are no further changes (git diff just looks weird). Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
5a9a0d78 |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: basic implementation of *queue(s)/*txq* Very basic implementations of ieee80211_{wake,stop}_queue[s], as well as ieee80211_txq_schedule_start(), ieee80211_next_txq(), and ieee80211_schedule_txq(). Various combinations of these are used by different wireless drivers, incl. iwlwifi. Sponsored by: The FreeBSD Foundation (parts of this work) MFC after: 3 days
|
#
a8397571 |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: implement ieee80211_tx_status_ext() Add an implementation of ieee80211_tx_status_ext() extending the internal linuxkpi_ieee80211_tx_status() implementation. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
e30e05d3 |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: extend linuxkpi_ieee80211_rx() Extend linuxkpi_ieee80211_rx() by another argument for the ieee80211_rx_list() implementation (even though the argument is currently ignored). Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
a3baca22 |
|
31-Jan-2023 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix types and whitespace Correct struct member types, fix whitespace, and remove superfluous return statements in void functions. No functional changes. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
4b0af114 |
|
30-Dec-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: move ieee80211_{unregister,restart}_hw out of header Migrate the two functions from the header into the implementation file in order to have access to more facilities and not to run into possible allocation/locking/... problems in the future. Sponsored by: The FreeBSD Foundation MFC after: 10 days
|
#
c990500b |
|
30-Dec-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI; 802.11: update mac80211.h structures and fields Cleanup some fields and structures and add new ones. Sponsored by: The FreeBSD Foundation MFC after: 10 days
|
#
5db817d8 |
|
30-Dec-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: implement some *eleme/ie* lookup functions Implement cfg80211_find_elem(), ieee80211_bss_get_elem(), ieee80211_bss_get_ie(), and cfg80211_find_vendor_ie() with the last one having a short cut always also checking oui_type in the pattern. Sponsored by: The FreeBSD Foundation MFC after: 10 days
|
#
05e640dc |
|
31-Oct-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: update struct member types Update struct member types for ongoing work towards HT support. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
1d70218e |
|
31-Oct-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 update header files Adjust struct members, add more (for HE dummy) defines, add more (wrapper) functions in order to acoomodate another driver. MFC after: 3 days
|
#
0080f30f |
|
22-Oct-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: add changes to support debugfs in iwlwifi Add new fields (also have to move a struct up, no changes there) in order to make iwlwifi debugfs support compile. Sposnored by: The FreeBSD Foundation MFC after: 3 days
|
#
f02e2115 |
|
21-Sep-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: add more header compat bits First part adding more bits in order to synch up drivers to the same level and enable a new ones. MFC after: 3 days
|
#
800aa9cd |
|
09-Sep-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 80211 (+net80211): update and cleanup headers Fix types for various struct fields (initially added as int). Move structs and inline functions logically together, e.g., for wowlan. Add more skeleton functions and #defines needed for iwlwifi d3.c in the future. Add struct ieee80211_vht_cap (without "_ie") to net80211 and remove duplicate definitions in LinuxKPI headers now using net80211 structs. For now leave ieee80211_ie_vhtcap in net80211. I am not sure yet if we actually need it as such. That'll be cleaned up with more VHT updates in net80211 in the future. No functional changes in currently compiled code intended. Try to implement ieee80211_action_contains_tpc() as I ran into it with an older iwlwifi chipset. This depends on c994352a8841eb453. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|
#
d6d687da |
|
09-Sep-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 80211: add ieee80211_stop_tx_ba_session() rtw89 needs ieee80211_stop_tx_ba_session(). Add the skeleton function for now so we can implement BA functions all together. MFC after: 3 days
|
#
549198b1 |
|
07-Sep-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI, dev: 80211 update mac80211 KPI Update the mac80211 ops KPI for (*conf_tx), (*assign_vif_chanctx), (*unassign_vif_chanctx), (*start_ap), and (*stop_ap), as well as ieee80211_beacon_get_tim() and ieee80211_beacon_get_template(). Update in-tree drivers iwlwifi and rtw88 accordingly based on upstream changes (as well as out-of-tree ones). This was triggered by trying to synchronize more drivers to a common state. MFC after: 1 week
|
#
ec190d91 |
|
05-Sep-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 80211: improve linuxkpi_ieee80211_get_tid() Continue what was started in 26a36948331bd08d9afaddfc0da724eacdb953dd in iwlwifi and extend out internal implementation of linuxkpi_ieee80211_get_tid() by an argument as to whether "no-QoS" answers are acceptable. For the LinuxKPI ieee80211_get_tid() set this to false as the Linux derived drivers seem to do extra checks for the QoS-Data frame before acquiring the tid. Add KASSERTs to enforce the extra argument. This allows us to use the net80211 variant in LinuxKPI for other means explicitly documenting that we do accept a IEEE80211_NONQOS_TID. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
caaa79c3 |
|
27-Aug-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI 802.11: change type of bssid in struct ieee80211_bss_conf Enabling other driver code found that the bssid in struct ieee80211_bss_conf is not an array but expected to be a const pointer (const, != NULL checks). Adjust accordingly in the header and in the LinuxKPI compat code. There initialization now needs to be a static array always present as we need a value before we will have a BSS (node in scan_to_auth) as the mac80211 driver (*handlers) are expecting the pointer to be not NULL (copying without checks). This is a pre-req to enable d3 (CONFIG_PM[_SLEEP]) in the future. Tested by: Tomoaki AOKI (junchoon dec.sakura.ne.jp) Tested by: Berislav Purgar (bpurgar gmail.com) Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
b0f73768 |
|
29-Jul-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 header updates While working on new and updates to drivers more structs, fields, functions, .. were found, had to be shuffled around, .. Some of these are (so far still dummy) functions or not properly typed fields. The IEEE80211_HE_ constants are all still dummy. This was msotly as a start to make new (out-of-tree) things compile. Sponsored by: The FreeBSD Foundation (minor VHT/chan width bits) MFC after: 1 week
|
#
467d3e2e |
|
28-Jul-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI 802.11/iwlwifi/rtw88: update KPI Upgrade the argument of (*bss_info_changed) mac80211 ops function call from 32 to 64 bit. Add an extra argument to ieee80211_beacon_get_template(). Both changes are needed in order to keep other out-of-tree drivers in synch and to move forward. The driver changes were extracted from Linux wireless-testing 7b7090b4c6a906cc7c3e2a460335f705b93f4506 and 6e8912a503759bb8f1f01c5b761d0d45815fa6de. Sponsored by: The FreBSD Foundation MFC after: 1 week
|
#
799051e2 |
|
15-Jun-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: ieee80211_start_tx_ba_session() For as long as we do not implement the compat code for tx aggregation return -EINVAL in ieee80211_start_tx_ba_session() as both rtw88 and rtw89 check for this value and only then disable further attempts. MFC after: 3 days
|
#
6cf748ad |
|
20-May-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI 802.11 / iwlwifi / rtw88 : re-factor ieee802211_sta for MLO Working on an update for rtw88 baed on wireless-testing I ran into a build issue with struct ieee802211_sta. Some fields were factored out into their own struct apparently preparing for MLO (Multi Link Operation). In order to be able to update one driver we have to adjust both rtw88 and iwlwifi (and the ones still out-of-tree) now. This is mostly a sed-replace job and no functional changes are intended. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
00614c9c |
|
30-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fill in two more TODOs Implement ieee80211_is_data_present() and a subset of ieee80211_is_bufferable_mmpdu() which hopefully is good enough in the compat code for now. This is partly in preparation for some TXQ changes coming up soon. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
b3e7f403 |
|
25-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 ieee80211_sn_sub() fix In ieee80211_sn_sub() we need to shift the mask before applying it. This fixes the logic from 978f25e840fe4975f243e6077a764842f0e9d3eb. Reported by: J.R. Oldroyd (fbsd opal.com) MFC after: 3 days Sponsored by: The FreeBSD Foundation
|
#
383b3e8f |
|
15-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: start adding rate control to ieee80211_tx_status() Start adding rate control feedback in ieee80211_tx_status() in order for net80211 to be able to report something back (which may not yet be the view of the firmware). iwlwifi is reporting back an MSC 0 even with HT disabled (to be investigated) so we cannot (yet) use the firmware/driver rate feedback directly. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
ade774b1 |
|
14-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: implement ieee80211_probereq_get() Implement ieee80211_probereq_get() needed by Realtek drivers. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
978f25e8 |
|
08-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: add ieee80211_beacon_get_tim(), ieee80211_sn_sub() Add a dummy implementation for ieee80211_beacon_get_tim(). Add the implementation for ieee80211_sn_sub(). Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
60970a32 |
|
01-Apr-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix RSSI (and NF) As in 4a22cd6c4e5f4fc4a38aa7400742d4005c5ae3de nf and rss should be signed and not unsigned. Change the types in the header and while here change a magic number to a define as done elsewhere (value does not change). When calculating c_rssi we need to make it relative so subtract nf. And while here improve the debug output. This will hopefully fix ifconfig wlanN list scan S:N output which tools use to chose a BSSID and help net80211 internal calculations. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
86220d3c |
|
31-Mar-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: fix compat code for i386 Compiling another driver on i386 revealed two problems: - ieee80211_tx_info.status.status_driver_data space needs to be calculated. While a pointer is 32bit vm_paddr_t is 64 bit on i386 so we didn't fit more than one of these in but needed more space. - the arguments to ieee80211_txq_get_depth() are expected to unsigned long and not uint64_t. No user noticable changes. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
bb81db90 |
|
22-Mar-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11: implement ieee80211_beacon_loss() Implement ieee80211_beacon_loss() similar to ieee80211_connection_loss() with different state handling. While here leave a comment in connection_loss() about the state change argument. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
d875aa15 |
|
22-Feb-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: update 802.11 headers Add new defines, struct members, and (stub) functions needed for an updated iwlwifi. Most of the defines are for rfkill or HE. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
2e183d99 |
|
15-Feb-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 header updates and add/adjust source dependencies. This update is for more/newer versions of drivers: - add and properly place more structs, enums, defines needed by drivers. - correct types of struct fields. - make various function arguments const. - move REG_RULE() macro to its own file regulatory.h and use macros for calculations. - add linuxkpi_ieee80211_get_channel() implementation. - change linuxkpi_ieee80211_ifattach() to return int for error checking. No intended functional changes for iwlwifi. Sponsored by: The FreeBSD Foundation (partially) MFC after: 3 days
|
#
7043ca91 |
|
07-Feb-2022 |
John Baldwin <jhb@FreeBSD.org> |
linuxkpi: Add parentheses to pacify -Wparentheses warnings from GCC. Reviewed by: bz, emaste Differential Revision: https://reviews.freebsd.org/D34145
|
#
c8dafefa |
|
15-Jan-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 Refine/add DTIM/TSF handling Correct data types related to delivery traffic indication map (DTIM)/ timing synchronization function (TSF) and implement/refine their handling. This information is used/needed by iwlwifi to set a station as associated. This will hopefully avoid more "no beacon heard" time event failures. The recording of the Linux specific sync_device_ts is done in the receive path for now in case we do have the right information available. I need to investigate as to how-much it may make sense to also migrate it into net80211 in the future depending on the usage in other drivers (or how we did handle this in the past in natively ported versions, e.g. iwm). Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
51b461b3 |
|
09-Jan-2022 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: 802.11 update compat code for driver updates Add more (dummy in case of HE) defines, structs, functions and another mac80211 function pointer needed to update and support recent drivers. MFC after: 3 days
|
#
6b4cac81 |
|
26-Dec-2021 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
LinuxKPI: add 802.11 compat code Add 802.11 compat code for mac80211 and to a minimal degree cfg80211. This allows us to compile and use basic functionality of wireless drivers such as iwlwifi. This is a constant work in progress but having it in the tree will allow others to test and more easy to track changes and avoid having snapshots no longer applying to branches. Sponsored by: The FreeBSD Foundation MFC after: 3 days
|