blob: be91fe5e10b2ee1667a91dbf6d9e3195c92bd529 [file] [log] [blame] [view]
# WLAN Common
This library encapsulates WLAN functions that are very general or are shared between multiple layers of the WLAN stack.
## Major Responsibilities
### Field and Element Parsing
The ['ie parser'](./rust/src/ie/mod.rs) contains many definitions and parsing functions for parsing binary fields and information elements from WLAN frames into internal representations.
### MAC Frame parsing
The ['mac frame parser'](./rust/src/mac/mod.rs) parses binary frames to determine their types. A user of WLAN Common can use this information to determine which field and element parsing should be performed.
### Test Utilities
Utilities for genering a set of ['fake frames'](./rust/src/test_utils/fake_frames.rs) as well as entire ['fake stations'](./rust/src/test_utils/fake_stas.rs) for unit testing throughout the WLAN stack.
Also provides an 'assert_variant' macro that is used extensively in testing.
### Frame writing
Various utilities for writing fields and frames into binary formats.
## Rust Transition
This library currently contains both Rust and C++ implementions for many different functions. The C++ functions are mostly deprecated; our MLME implemention is transitioning from C++ to Rust, and we will remove this C++ functionality when the transition is complete.