1#ifndef MAC_ADDRESS_HPP_FDINBLBS
2#define MAC_ADDRESS_HPP_FDINBLBS
4#include <vanetza/common/serialization.hpp>
5#include <boost/operators.hpp>
6#include <boost/optional.hpp>
10#include <initializer_list>
21 static constexpr std::size_t length_bytes = 6;
24 MacAddress(std::initializer_list<uint8_t> args);
30 std::array<uint8_t, length_bytes> octets;
36std::ostream& operator<<(std::ostream& os,
const MacAddress&);
39
40
41
42
43
44bool parse_mac_address(
const std::string& str,
MacAddress& addr);
47
48
49
50
51boost::optional<
MacAddress> parse_mac_address(
const std::string& str);
54
55
56
57
62 const std::size_t octets = std::min(mac.octets.size(),
sizeof(T));
63 for (std::size_t i = 0; i < octets; ++i) {
64 mac.octets[i] = value >> (8 * (octets - i - 1)) & 0xff;
70
71
72
73
77
78
79
80
91 size_t operator()(
const vanetza::
MacAddress& addr)
const
94 for (
auto octet : addr.octets) {
95 tmp ^= hash<
decltype(octet)>()(octet);
static constexpr std::size_t bits
Link layer header used by ITS-G5 stations.
Frame Control field in IEEE 802.11 MAC header.
BitNumber< std::uint16_t, 2 > Protocol
static FrameControl qos_data_frame()
QoS Control field in IEEE 802.11 MAC header.
void user_priority(AccessCategory ac)
Sequence Control field in IEEE 802.11 MAC header.