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:50
vanetza::geonet::TrafficClass
Definition:
traffic_class.hpp:16
vanetza::geonet::CommonHeader
Definition:
common_header.hpp:28
vanetza::geonet::DataRequest
Definition:
data_request.hpp:25
vanetza::geonet::ManagementInformationBase
Definition:
mib.hpp:57
vanetza::geonet::ShbDataRequest
Definition:
data_request.hpp:98
vanetza
geonet
common_header.hpp
Generated on Thu Nov 30 2023 12:03:35 for Vanetza by
1.9.6