Vanetza
Loading...
Searching...
No Matches
duplicate_packet_list.hpp
1
#ifndef DUPLICATE_PACKET_LIST_HPP_T8JWKCKG
2
#define DUPLICATE_PACKET_LIST_HPP_T8JWKCKG
3
4
#include <vanetza/geonet/sequence_number.hpp>
5
#include <boost/circular_buffer.hpp>
6
7
namespace
vanetza
8
{
9
namespace
geonet
10
{
11
12
/**
13
* Duplicate Packet List for a single source SO.
14
* Those objects area meant as extension to LocationTableEntry.
15
*
16
* \see EN 302 636-4-1 v1.3.1 Annex A.2
17
*/
18
class
DuplicatePacketList
19
{
20
public
:
21
DuplicatePacketList
(
unsigned
elements);
22
23
/**
24
* Duplicate packet detection based on sequence number.
25
*
26
* Sequence number will be included in list afterwards.
27
* \param sn sequence number
28
* \return true if its a duplicate
29
*/
30
bool
check
(
SequenceNumber
);
31
32
/**
33
* Retrieve duplicate packet counter
34
* \param sn sequence number
35
* \return number of duplicates seen for given sequence number
36
*/
37
unsigned
counter
(
SequenceNumber
)
const
;
38
39
private
:
40
struct
ListElement
41
{
42
ListElement
(
SequenceNumber
);
43
44
SequenceNumber
sequence_number;
45
unsigned
counter;
46
};
47
48
ListElement
* find(
SequenceNumber
);
49
50
boost::circular_buffer<ListElement> m_elements;
51
};
52
53
}
// namespace geonet
54
}
// namespace vanetza
55
56
#endif
/* DUPLICATE_PACKET_LIST_HPP_T8JWKCKG */
57
vanetza::geonet::DuplicatePacketList
Definition:
duplicate_packet_list.hpp:19
vanetza::geonet::DuplicatePacketList::check
bool check(SequenceNumber)
Definition:
duplicate_packet_list.cpp:15
vanetza::geonet::DuplicatePacketList::counter
unsigned counter(SequenceNumber) const
Definition:
duplicate_packet_list.cpp:27
vanetza::geonet::SequenceNumber
Definition:
sequence_number.hpp:17
vanetza::geonet::DuplicatePacketList::ListElement
Definition:
duplicate_packet_list.hpp:41
vanetza
geonet
duplicate_packet_list.hpp
Generated on Thu Nov 30 2023 12:03:35 for Vanetza by
1.9.6