|
|
@ -124,20 +124,6 @@ struct BeaconData {
|
|
|
|
|
|
|
|
|
|
|
|
static_assert(sizeof(BeaconData) == 0x12, "BeaconData has incorrect size.");
|
|
|
|
static_assert(sizeof(BeaconData) == 0x12, "BeaconData has incorrect size.");
|
|
|
|
|
|
|
|
|
|
|
|
/// Information about a received WiFi packet.
|
|
|
|
|
|
|
|
/// Acts as our own 802.11 header.
|
|
|
|
|
|
|
|
struct WifiPacket {
|
|
|
|
|
|
|
|
enum class PacketType { Beacon, Data };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PacketType type; ///< The type of 802.11 frame, Beacon / Data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Raw 802.11 frame data, starting at the management frame header for management frames.
|
|
|
|
|
|
|
|
std::vector<u8> data;
|
|
|
|
|
|
|
|
MacAddress transmitter_address; ///< Mac address of the transmitter.
|
|
|
|
|
|
|
|
MacAddress destination_address; ///< Mac address of the receiver.
|
|
|
|
|
|
|
|
u8 channel; ///< WiFi channel where this frame was transmitted.
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Decrypts the beacon data buffer for the network described by `network_info`.
|
|
|
|
* Decrypts the beacon data buffer for the network described by `network_info`.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -150,10 +136,5 @@ void DecryptBeaconData(const NetworkInfo& network_info, std::vector<u8>& buffer)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
std::vector<u8> GenerateBeaconFrame(const NetworkInfo& network_info, const NodeList& nodes);
|
|
|
|
std::vector<u8> GenerateBeaconFrame(const NetworkInfo& network_info, const NodeList& nodes);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Returns a list of received 802.11 frames from the specified sender
|
|
|
|
|
|
|
|
* matching the type since the last call.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
std::deque<WifiPacket> GetReceivedPackets(WifiPacket::PacketType type, const MacAddress& sender);
|
|
|
|
|
|
|
|
} // namespace NWM
|
|
|
|
} // namespace NWM
|
|
|
|
} // namespace Service
|
|
|
|
} // namespace Service
|
|
|
|