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
7namespace vanetza
8{
9namespace 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 */
19{
20public:
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 */
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
39private:
41 {
43
44 SequenceNumber sequence_number;
45 unsigned counter;
46 };
47
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
unsigned counter(SequenceNumber) const