/libwifi

An 802.11 (WiFi) Frame Generation and Parsing Library in C

Primary LanguageCApache License 2.0Apache-2.0

libwifi

802.11 Parsing / Generation library

Build Status OS
linux Linux
macOS macOS

What is this?

libwifi is a C library with a permissive license for generating and parsing a wide variety of 802.11 wireless frames (see the Feature Checklist) on Linux and macOS with a few lines of straight forward code (see the Examples section below).

libwifi has been tested across Linux and macOS, on x86, MIPS and ARM, and is written with a simple-to-use approach while also exposing features that allow more advanced use, with clean and readable code being a priority. Other goals of the library include cross-architecture support, clean compilation without warnings and strict error checking.

The library is fully documented with code comments in both the headers files and the code files.

Building and Installing

Building as Release

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

Building as Debug

You can also specify -DCMAKE_BUILD_TYPE=Debug to CMake, to generate a library with debug symbols present. This also sets the library version number to dev-BRANCHNAME-COMMITHASH.

$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
$ make
$ sudo make install
$ ./test_misc
libwifi version: dev-fixup-7909700

Examples

Some examples are available in the examples directory, which show the general flow of how libwifi is used to generate and parse different types of 802.11 frame.

Running Tests

Using ctest, you can run the tests for the parse and generation functions of libwifi.

$ cd test/
$ mkdir build
$ cd build
$ cmake ..
$ make && make test

Using Utilities

Included in the source are some utilities that use libwifi, and serve as references or examples if you need them.

$ cd utils/
$ mkdir build
$ cd build
$ cmake ..
$ make