about summary refs log tree commit diff stats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md88
1 files changed, 88 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..2be5699 --- /dev/null +++ b/README.md
@@ -0,0 +1,88 @@
1# libwifi
2802.11 Parsing / Generation library
3
4| Build Status | OS | Architecture |
5| ---------------------------------------------------------------------------------- | ------| ------------ |
6|![X86_64](https://github.com/libwifi/libwifi/actions/workflows/x86_64.yml/badge.svg) | Linux | x86_64 |
7
8## What is this?
9libwifi is a C library with a permissive license for generating and parsing a wide variety of 802.11 wireless frames (see the [Feature Checklist](#feature-checklist) below) on Linux with a few lines of straight forward code (see the [Examples section](#examples) below).
10
11It 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.
12
13The library is fully documented with code comments in both the headers files and the code files, and also has doxygen HTML documentation in `docs/html`.
14
15## Building and Installing
16### Linux
17```
18$ mkdir build
19$ cd build
20$ cmake ..
21$ make
22$ sudo make install
23```
24
25## Examples
26Some 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.
27
28## Feature Checklist
29- Generation
30 - [X] Radiotap Header
31 - Management
32 - [X] Association Request
33 - [X] Association Response
34 - [X] Reassociation Request
35 - [X] Ressociation Response
36 - [X] Probe Request
37 - [X] Probe Response
38 - [X] Timing Advertisement
39 - [X] Beacon
40 - [X] ATIM
41 - [X] Disassociation
42 - [X] Deauthentication
43 - [X] Action
44 - [X] Action No ACK
45 - Control
46 - [X] RTS (Request-to-Send)
47 - [X] CTS (Clear-to-Send)
48 - Data
49 - [ ] Data Frame
50 - [ ] QoS Data Frame
51 - [ ] EAPOL
52
53- Parsing
54 - [X] Radiotap Header
55 - Management
56 - [X] Association Request
57 - [X] Association Response
58 - [X] Reassociation Request
59 - [X] Ressociation Response
60 - [X] Probe Request
61 - [X] Probe Response
62 - [ ] Timing Advertisement
63 - [X] Beacon
64 - [ ] ATIM
65 - [X] Disassociation
66 - [X] Deauthentication
67 - [ ] Action
68 - [ ] Action No ACK
69 - Control
70 - [ ] RTS (Request-to-Send)
71 - [ ] CTS (Clear-to-Send)
72 - Data
73 - [X] Data Frame (Partial)
74 - [X] QoS Data Frame (Partial)
75 - [X] EAPOL
76
77## Running Tests
78```
79$ cd tests/
80$ mkdir build
81$ cd build
82$ cmake ..
83$ make
84$ sudo iw <interface> set type monitor && sudo ip link set dev <interface> up
85$ ./test-program
86```
87
88