putterer / csi-server

A server for shipping channel state information obtained using the Atheros CSI Tool via UDP in real time.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSI-Server

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.

It also supports obtaining CSI using the Intel IWL5300 using the Linux CSI tool. The tool is not integrated with this application, you can just pipe the output of the Linux CSI tool's log_to_file executable into the stdin of this application which will cause it to treat the received CSI data the same way it would using the Atheros CSI tool.

Prebuilt binary

A prebuilt binary for the MIPS architecture can be found at https://github.com/putterer/csi-auxiliary/tree/main/router.

Building

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

Operation

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 Atheros CSI tool or from stdin for the Intel CSI tool. It then packages this information and forwards it to all subscribed devices with applicable filter options using UDP.

About

A server for shipping channel state information obtained using the Atheros CSI Tool via UDP in real time.

License:GNU General Public License v2.0


Languages

Language:C 98.4%Language:Makefile 1.2%Language:Shell 0.4%