Vanetza
Loading...
Searching...
No Matches
common_header.hpp
1
#ifndef COMMON_HEADER_HPP_SEFIWCT4
2
#define COMMON_HEADER_HPP_SEFIWCT4
3
4
#include <vanetza/common/bit_number.hpp>
5
#include <vanetza/geonet/header_type.hpp>
6
#include <vanetza/geonet/mib.hpp>
7
#include <vanetza/geonet/position_vector.hpp>
8
#include <vanetza/geonet/serialization.hpp>
9
#include <vanetza/geonet/traffic_class.hpp>
10
#include <cstdint>
11
12
namespace
vanetza
13
{
14
namespace
geonet
15
{
16
17
struct
Area
;
18
struct
DataRequest
;
19
struct
ShbDataRequest
;
20
class
LocationTable
;
21
22
enum class
NextHeaderCommon
23
{
24
Any = 0, BTP_A = 1, BTP_B = 2, IPv6 = 3
25
};
26
27
struct
CommonHeader
28
{
29
public
:
30
CommonHeader();
31
CommonHeader(
const
MIB&);
32
CommonHeader(
const
DataRequest
&,
const
MIB&);
33
CommonHeader(
const
ShbDataRequest
&,
const
MIB&);
34
35
static
constexpr
std::size_t length_bytes = 8;
36
37
NextHeaderCommon next_header;
// 4 bit
38
BitNumber<unsigned, 4>
reserved1;
39
HeaderType header_type;
40
TrafficClass
traffic_class;
41
uint8_t flags;
// Bit 0: itsGnIsMobile
42
uint16_t payload;
// number of octets following whole GeoNet header
43
uint8_t maximum_hop_limit;
44
uint8_t reserved2;
45
};
46
47
void
serialize(
const
CommonHeader
&,
OutputArchive
&);
48
void
deserialize(
CommonHeader
&,
InputArchive
&);
49
50
}
// namespace geonet
51
}
// namespace vanetza
52
53
#endif
/* COMMON_HEADER_HPP_SEFIWCT4 */
54
vanetza::BitNumber
Definition
bit_number.hpp:18
vanetza::InputArchive
Definition
archives.hpp:17
vanetza::OutputArchive
Definition
archives.hpp:62
vanetza::geonet::LocationTable
Definition
location_table.hpp:112
vanetza::geonet::TrafficClass
Definition
traffic_class.hpp:16
vanetza::geonet::Area
Definition
areas.hpp:68
vanetza::geonet::CommonHeader
Definition
common_header.hpp:28
vanetza::geonet::DataRequest
Definition
data_request.hpp:26
vanetza::geonet::ShbDataRequest
Definition
data_request.hpp:100
vanetza
geonet
common_header.hpp
Generated on
for Vanetza by
1.14.0