Vanetza
Loading...
Searching...
No Matches
basic_header.hpp
1
#ifndef BASIC_HEADER_HPP_8QS7WLG3
2
#define BASIC_HEADER_HPP_8QS7WLG3
3
4
#include <vanetza/common/bit_number.hpp>
5
#include <vanetza/geonet/lifetime.hpp>
6
#include <vanetza/geonet/mib.hpp>
7
#include <vanetza/geonet/serialization.hpp>
8
9
namespace
vanetza
10
{
11
namespace
geonet
12
{
13
14
struct
DataRequest
;
15
struct
ShbDataRequest
;
16
17
/// NextHeaderBasic specified in ETSI EN 302 636-4-1 v1.2.1, section 8.6.3
18
enum class
NextHeaderBasic : uint8_t
19
{
20
Any = 0,
21
Common = 1,
22
Secured = 2,
23
};
24
25
/// BasicHeader specified in ETSI EN 302 636-4-1 v1.2.1, section 8.6
26
struct
BasicHeader
27
{
28
BasicHeader();
29
BasicHeader(
const
MIB&);
30
BasicHeader(
const
DataRequest
&,
const
MIB&);
31
BasicHeader(
const
ShbDataRequest
&,
const
MIB&);
32
33
static
constexpr
std::size_t length_bytes = 3 +
sizeof
(
Lifetime
);
34
35
BitNumber<unsigned, 4>
version;
36
NextHeaderBasic next_header;
// 4 bit
37
uint8_t reserved;
38
Lifetime
lifetime;
39
uint8_t hop_limit;
40
};
41
42
/**
43
* \brief Serializes a BasicHeader into a binary archive
44
* \param basic to serialize
45
* \param ar to serialize in
46
*/
47
void
serialize(
const
BasicHeader
&,
OutputArchive
&);
48
49
/**
50
* \brief Deserializes a BasicHeader from a binary archive
51
* \param basic to deserialize
52
* \param ar with a serialized BasicHeader at the beginning
53
*/
54
void
deserialize(
BasicHeader
&,
InputArchive
&);
55
56
}
// namespace geonet
57
}
// namespace vanetza
58
59
#endif
/* BASIC_HEADER_HPP_8QS7WLG3 */
vanetza::BitNumber
Definition
bit_number.hpp:18
vanetza::InputArchive
Definition
archives.hpp:17
vanetza::OutputArchive
Definition
archives.hpp:62
vanetza::geonet::Lifetime
Definition
lifetime.hpp:16
vanetza::geonet::BasicHeader
BasicHeader specified in ETSI EN 302 636-4-1 v1.2.1, section 8.6.
Definition
basic_header.hpp:27
vanetza::geonet::DataRequest
Definition
data_request.hpp:26
vanetza::geonet::ShbDataRequest
Definition
data_request.hpp:100
vanetza
geonet
basic_header.hpp
Generated on
for Vanetza by
1.14.0