A server for shipping channel state information obtained using the Atheros CSI Tool via UDP in real time.
The CSI Server was written for usage in combination with an OpenWRT based embedded device but should be capable of being executed on a x86 based system as well. It is based upon the code of the Atheros CSI tool’s recvCSI user space app.
The project provides a Makefile that by default cross compiles the program for run-
ning one OpenWRT, which can be used after the folder containing the mips-openwrt-- linux-gcc
executable file, which can be found in the staging_dir
after the OpenWRT
firmware has been built, was added to the PATH
.
make
To build the software for x86, simply run:
make x86
The entire communication uses UDP. Clients are able to (un)subscribe to the server by sending it a subscription message containing filter options. At the moment, the only filter that is supported is the payload length of the received packet for which CSI is to be calculated. Set to 0 to ignore.
The CSI Server reads information about received CSI values from the /dev/CSI_dev
kernel device of the CSI tool. It then packages this information and forwards it to all
subscribed devices with applicable filter options using UDP.