Dear Friends,
Thank you all for the fantastic work that you guys are doing with Nexmon-csi. I will like to bring to your attention the following interesting CSI support in intel Linux wireless drivers. If you get time please do look into it and integrate them.
[08/21] iwlwifi: mvm: implement CSI reporting
https://patchwork.kernel.org/project/linux-wireless/patch/20190127101908.6428-9-luca@coelho.fi/
IWL_MVM_VENDOR_CMD_CSI_EVENT: CSI event, use as a command to enable unicast reporting to the calling socket
https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git/tree/drivers/net/wireless/intel/iwlwifi/iwl-vendor-cmd.h?h=release/core59
struct iwl_csi_chunk_notification
https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git/tree/drivers/net/wireless/intel/iwlwifi/fw/api/location.h?h=release/core59
There are two papers published that actually use the latest Intel Wi-Fi chips for CSI
- The "On Phase Offsets of 802.11ac Commodity WiFi - Anatolij Zubow, Piotr Gawlowicz, Falko Dressler" uses the modern commodity 802.11ac chips like Intel 9260. More precisely they backported the release/core46 to Linux 5.5.1 kernel.
- The "Sensor-Aided Learning for Wi-Fi Position With Beacon Channel State Information J Choi Intel" paper uses the latest AX200 series Wi-Fi chip apparently with a custom tool from intel themselves.
I hope this will benefit the community a lot if someone who has time can take it up and integrate it with Nexmon.
Dear Friends,
Thank you all for the fantastic work that you guys are doing with Nexmon-csi. I will like to bring to your attention the following interesting CSI support in intel Linux wireless drivers. If you get time please do look into it and integrate them.
[08/21] iwlwifi: mvm: implement CSI reporting
IWL_MVM_VENDOR_CMD_CSI_EVENT: CSI event, use as a command to enable unicast reporting to the calling socket
struct iwl_csi_chunk_notification
There are two papers published that actually use the latest Intel Wi-Fi chips for CSI
Apparently the authors ran it in monitoring mode (supported on most intel Wi-Fi cards as per https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi )
About the monitor / sniffer mode as per https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
Intel says their devices support monitor mode. When you have VHT APs around, you should load the iwlwifi module with
amsdu_size=3This will put lots of pressure on the memory subsystem, but it will allow you to hear 12K long packets.Each packet was captured probably using say the management frame (CSI is in the management frame) got through nl80211.h from userpace via libnl Netlink API.
https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git/tree/include/uapi/linux/nl80211.h
It is known that as per https://wireless.wiki.kernel.org/en/developers/p2p/overview NL80211_CMD_REGISTER_FRAME - Allows a user space application to register for receiving a given type of (management) frame through nl80211, and also replying to it. Applications can also specify a filter so for example they don't have to handle all the different action frames but just a subset. Further, currently only one process can register to receive these frames as per https://www.spinics.net/lists/linux-wireless/msg129677.html
The authors in the above paper said, they reverse engineered the intel specific encoded CSI frame by comparing results with old intel 5300 NIC.
I hope this will benefit the community a lot if someone who has time can take it up and integrate it with Nexmon.