ITS
CommonHeader.h
Go to the documentation of this file.
1
18
#ifndef COMMONHEADER_H
19
#define COMMONHEADER_H
20
21
#include <
api.h
>
22
#include <QByteArray>
23
#include <QDataStream>
24
#include <
TrafficClass.h
>
25
29
typedef
struct
sniff_commonHeader_s
30
{
31
quint8
nextHeader
;
32
quint8
headerType_HeaderSubType
;
33
sniff_trafficClass_t
trafficClass
;
34
quint8
flags
;
35
quint16
payloadLength
;
36
quint8
maximumHopLimit
;
37
quint8
reserved
;
38
}
sniff_commonHeader_t
;
39
40
class
CommonHeader
41
{
42
public
:
46
enum
e_helper
47
{
48
helper_size
= 8
49
};
50
54
enum
e_upperProtocolEntity
55
{
56
nextHeaderType_any
= 0,
57
nextHeaderType_BTP_A
= 1,
58
nextHeaderType_BTP_B
= 2,
59
nextHeaderType_IPv6
= 3
60
};
61
65
enum
e_headerType
66
{
67
headerType_any
= 0,
68
headerType_beacon
= 1,
69
headerType_geoUnicast
= 2,
70
headerType_geoAnycast
= 3,
71
headerType_geoBroadcast
= 4,
72
headerType_topologicallyScopedBroadcast
= 5,
73
headerType_locationService
= 6
74
};
78
enum
e_headerSubTypeAny
79
{
80
headerSubTypeAny_unspecified
= 0
81
};
85
enum
e_headerSubTypeBeacon
86
{
87
headerSubTypeBeacon_unspecified
= 0
88
};
92
enum
e_headerSubTypeGeoUnicast
93
{
94
headerSubTypeGeoUnicast_unspecified
= 0
95
};
99
enum
e_headerSubTypeGeoAnycast
100
{
101
headerSubTypeGeoAnycast_circle
= 0,
102
headerSubTypeGeoAnycast_rectangle
= 1,
103
headerSubTypeGeoAnycast_ellipse
= 2
104
};
108
enum
e_headerSubTypeGeoBroadcast
109
{
110
headerSubTypeGeoBroadcast_circle
= 0,
111
headerSubTypeGeoBroadcast_rectangle
= 1,
112
headerSubTypeGeoBroadcast_ellipse
= 2
113
};
117
enum
e_headerSubTypeTopologicallyScopedBroadcast
118
{
119
headerSubTypeTopologicallyScopedBroadcast_singleHop
= 0,
120
headerSubTypeTopologicallyScopedBroadcast_multiHop
= 1
121
};
125
enum
e_headerSubTypeLocationService
126
{
127
headerSubTypeLocationService_Request
= 0,
128
headerSubTypeLocationService_Reply
= 1
129
};
130
131
/* Constructors */
135
CommonHeader
();
147
CommonHeader
(quint8
nextHeader
,
enum
e_headerType
headerType
, quint8
headerSubType
,
TrafficClass
trafficClass
, quint8
flags
, quint16
payloadLength
, quint8
maximumHopLimit
);
157
CommonHeader
(quint8
nextHeader
, quint8
headerType_HeaderSubType
,
TrafficClass
trafficClass
, quint8
flags
, quint16
payloadLength
, quint8
maximumHopLimit
);
162
CommonHeader
(
const
CommonHeader
& other);
163
168
CommonHeader
(
sniff_commonHeader_t
ch);
169
170
/* API */
175
QByteArray
toHex
();
176
177
/* Getters */
182
quint8
nextHeader
()
const
{
return
m_nextHeader
;}
187
quint8
headerType_HeaderSubType
()
const
{
return
m_headerType_HeaderSubType
;}
188
193
quint8
headerType
()
const
{
return
(
m_headerType_HeaderSubType
& 0xF0) >> 4;}
198
quint8
headerSubType
()
const
{
return
(
m_headerType_HeaderSubType
& 0xF);}
203
TrafficClass
trafficClass
()
const
{
return
m_trafficClass
;}
208
quint8
flags
()
const
{
return
m_flags
;}
213
quint8
itsGnIsMobile
()
const
{
return
m_flags
>> 7;}
218
quint16
payloadLength
()
const
{
return
m_payloadLength
;}
223
quint8
maximumHopLimit
()
const
{
return
m_maximumHopLimit
;}
224
225
private
:
226
quint8
m_nextHeader
;
227
quint8
m_headerType_HeaderSubType
;
228
TrafficClass
m_trafficClass
;
229
quint8
m_flags
;
230
quint16
m_payloadLength
;
231
quint8
m_maximumHopLimit
;
232
quint8
m_reserved
;
233
};
234
235
#endif // COMMONHEADER_H
CommonHeader::headerSubTypeGeoAnycast_circle
Definition:
CommonHeader.h:101
api.h
Usefull functions and declarations.
CommonHeader::toHex
QByteArray toHex()
toHex Create a QByteArray containing the hexadecimal format of the CommonHeader.
Definition:
CommonHeader.cpp:59
CommonHeader::nextHeaderType_BTP_B
Definition:
CommonHeader.h:58
CommonHeader::headerType_beacon
Definition:
CommonHeader.h:68
CommonHeader::m_trafficClass
TrafficClass m_trafficClass
Definition:
CommonHeader.h:228
CommonHeader::m_nextHeader
quint8 m_nextHeader
Definition:
CommonHeader.h:226
CommonHeader::headerType_geoBroadcast
Definition:
CommonHeader.h:71
CommonHeader::headerSubTypeGeoUnicast_unspecified
Definition:
CommonHeader.h:94
CommonHeader::e_headerSubTypeAny
e_headerSubTypeAny
The e_headerSubTypeAny enum defines the Header sub-type values of ANY type.
Definition:
CommonHeader.h:78
CommonHeader::headerSubTypeLocationService_Request
Definition:
CommonHeader.h:127
CommonHeader::helper_size
Definition:
CommonHeader.h:48
CommonHeader::m_flags
quint8 m_flags
Definition:
CommonHeader.h:229
TrafficClass
Definition:
TrafficClass.h:28
CommonHeader::m_headerType_HeaderSubType
quint8 m_headerType_HeaderSubType
Definition:
CommonHeader.h:227
CommonHeader::itsGnIsMobile
quint8 itsGnIsMobile() const
itsGnIsMobile First bit of flags field getter.
Definition:
CommonHeader.h:213
CommonHeader::headerSubTypeGeoBroadcast_circle
Definition:
CommonHeader.h:110
CommonHeader::m_maximumHopLimit
quint8 m_maximumHopLimit
Definition:
CommonHeader.h:231
CommonHeader::payloadLength
quint16 payloadLength() const
payloadLength Payload length field getter.
Definition:
CommonHeader.h:218
CommonHeader::headerSubTypeGeoAnycast_ellipse
Definition:
CommonHeader.h:103
CommonHeader::headerType_any
Definition:
CommonHeader.h:67
sniff_commonHeader_s::headerType_HeaderSubType
quint8 headerType_HeaderSubType
Definition:
CommonHeader.h:32
CommonHeader::headerSubTypeLocationService_Reply
Definition:
CommonHeader.h:128
CommonHeader::headerSubTypeTopologicallyScopedBroadcast_singleHop
Definition:
CommonHeader.h:119
CommonHeader::headerSubTypeTopologicallyScopedBroadcast_multiHop
Definition:
CommonHeader.h:120
CommonHeader::headerSubTypeGeoAnycast_rectangle
Definition:
CommonHeader.h:102
sniff_commonHeader_s::payloadLength
quint16 payloadLength
Definition:
CommonHeader.h:35
CommonHeader::nextHeaderType_IPv6
Definition:
CommonHeader.h:59
CommonHeader::nextHeaderType_BTP_A
Definition:
CommonHeader.h:57
sniff_trafficClass_s
The sniff_trafficClass_t structure is a C style version of the TrafficClass.
Definition:
TrafficClass.h:23
CommonHeader::e_headerType
e_headerType
The e_headerType enum defines the Header type values.
Definition:
CommonHeader.h:65
CommonHeader::e_headerSubTypeGeoUnicast
e_headerSubTypeGeoUnicast
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:92
CommonHeader::headerType
quint8 headerType() const
headerType Header field getter.
Definition:
CommonHeader.h:193
sniff_commonHeader_s::reserved
quint8 reserved
Definition:
CommonHeader.h:37
CommonHeader::e_headerSubTypeBeacon
e_headerSubTypeBeacon
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:85
TrafficClass.h
TrafficClass definition.
CommonHeader::m_reserved
quint8 m_reserved
Definition:
CommonHeader.h:232
CommonHeader::nextHeaderType_any
Definition:
CommonHeader.h:56
CommonHeader::e_upperProtocolEntity
e_upperProtocolEntity
The e_upperProtocolEntity enum defines the Next header values.
Definition:
CommonHeader.h:54
sniff_commonHeader_s::nextHeader
quint8 nextHeader
Definition:
CommonHeader.h:31
CommonHeader::trafficClass
TrafficClass trafficClass() const
trafficClass Traffic class field getter.
Definition:
CommonHeader.h:203
CommonHeader::flags
quint8 flags() const
flags Flags field getter.
Definition:
CommonHeader.h:208
CommonHeader::m_payloadLength
quint16 m_payloadLength
Definition:
CommonHeader.h:230
CommonHeader::e_headerSubTypeGeoBroadcast
e_headerSubTypeGeoBroadcast
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:108
sniff_commonHeader_s::trafficClass
sniff_trafficClass_t trafficClass
Definition:
CommonHeader.h:33
CommonHeader::CommonHeader
CommonHeader()
CommonHeader Default constructor.
Definition:
CommonHeader.cpp:3
CommonHeader::headerSubTypeBeacon_unspecified
Definition:
CommonHeader.h:87
CommonHeader::headerSubType
quint8 headerSubType() const
headerSubType Header sub-type field getter.
Definition:
CommonHeader.h:198
CommonHeader
Definition:
CommonHeader.h:40
CommonHeader::e_headerSubTypeLocationService
e_headerSubTypeLocationService
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:125
CommonHeader::e_helper
e_helper
The e_helper enum is used to help to have sizes.
Definition:
CommonHeader.h:46
CommonHeader::nextHeader
quint8 nextHeader() const
nextHeader Next header field getter.
Definition:
CommonHeader.h:182
sniff_commonHeader_s
The sniff_commonHeader_t is a C version of the class.
Definition:
CommonHeader.h:29
CommonHeader::headerSubTypeGeoBroadcast_rectangle
Definition:
CommonHeader.h:111
sniff_commonHeader_s::flags
quint8 flags
Definition:
CommonHeader.h:34
CommonHeader::headerType_topologicallyScopedBroadcast
Definition:
CommonHeader.h:72
CommonHeader::maximumHopLimit
quint8 maximumHopLimit() const
maximumHopLimit Maximum hop limit field getter.
Definition:
CommonHeader.h:223
CommonHeader::headerSubTypeGeoBroadcast_ellipse
Definition:
CommonHeader.h:112
CommonHeader::headerType_locationService
Definition:
CommonHeader.h:73
CommonHeader::e_headerSubTypeTopologicallyScopedBroadcast
e_headerSubTypeTopologicallyScopedBroadcast
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:117
CommonHeader::headerType_HeaderSubType
quint8 headerType_HeaderSubType() const
headerType_HeaderSubType Header type + header sub-type fields getter.
Definition:
CommonHeader.h:187
CommonHeader::headerType_geoUnicast
Definition:
CommonHeader.h:69
sniff_commonHeader_s::maximumHopLimit
quint8 maximumHopLimit
Definition:
CommonHeader.h:36
CommonHeader::e_headerSubTypeGeoAnycast
e_headerSubTypeGeoAnycast
The e_headerSubTypeAny enum defines the Header sub-type values of Beacon type.
Definition:
CommonHeader.h:99
sniff_commonHeader_t
struct sniff_commonHeader_s sniff_commonHeader_t
The sniff_commonHeader_t is a C version of the class.
CommonHeader::headerType_geoAnycast
Definition:
CommonHeader.h:70
CommonHeader::headerSubTypeAny_unspecified
Definition:
CommonHeader.h:80
network
include
CommonHeader.h
Generated by
1.8.14