EMANE
1.2.1
packetstatuspublisher.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015-2016 - Adjacent Link LLC, Bridgewater, New Jersey
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* * Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in
13
* the documentation and/or other materials provided with the
14
* distribution.
15
* * Neither the name of Adjacent Link LLC nor the names of its
16
* contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
#ifndef EMANEMODELSTDMAPACKETSTATUSPUBLISHER_HEADER_
34
#define EMANEMODELSTDMAPACKETSTATUSPUBLISHER_HEADER_
35
36
#include "
emane/models/tdma/messagecomponent.h
"
37
38
namespace
EMANE
39
{
40
namespace
Models
41
{
42
namespace
TDMA
43
{
51
class
PacketStatusPublisher
52
{
53
public
:
57
virtual
~PacketStatusPublisher
(){}
58
62
enum class
InboundAction
63
{
64
ACCEPT_GOOD
,
65
DROP_BAD_CONTROL
,
66
DROP_SLOT_NOT_RX
,
67
DROP_SLOT_MISSED_RX
,
68
DROP_MISS_FRAGMENT
,
69
DROP_SPECTRUM_SERVICE
,
70
DROP_SINR
,
71
DROP_REGISTRATION_ID
,
72
DROP_DESTINATION_MAC
,
73
DROP_TOO_LONG
,
74
DROP_FREQUENCY
75
};
76
80
enum class
OutboundAction
81
{
82
ACCEPT_GOOD
,
83
DROP_TOO_BIG,
84
DROP_OVERFLOW,
85
DROP_FLOW_CONTROL
86
};
87
95
virtual
void
inbound
(
NEMId
src
,
96
const
MessageComponent
& component,
97
InboundAction
action) = 0;
98
106
virtual
void
inbound
(
NEMId
src,
107
const
MessageComponents
& components,
108
InboundAction
action) = 0;
109
119
virtual
void
inbound
(
NEMId
src,
120
NEMId
dst
,
121
Priority
priority,
122
size_t
size,
123
InboundAction
action) = 0;
124
134
virtual
void
outbound
(
NEMId
src,
135
NEMId
dst,
136
Priority
priority,
137
size_t
size,
138
OutboundAction
action) = 0;
139
147
virtual
void
outbound
(
NEMId
src,
148
const
MessageComponents
& components,
149
OutboundAction
action) = 0;
150
151
protected
:
155
PacketStatusPublisher
(){}
156
};
157
}
158
}
159
}
160
161
#endif // EMANEMODELSTDMAPACKETSTATUSPUBLISHER_HEADER_
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_BAD_CONTROL
EMANE::Models::TDMA::PacketStatusPublisher::OutboundAction
OutboundAction
Definition:
packetstatuspublisher.h:80
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_FREQUENCY
EMANE::Models::TDMA::PacketStatusPublisher::outbound
virtual void outbound(NEMId src, NEMId dst, Priority priority, size_t size, OutboundAction action)=0
messagecomponent.h
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction
InboundAction
Definition:
packetstatuspublisher.h:62
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_SLOT_MISSED_RX
dst
union EtherAddr dst
Definition:
netutils.h:390
EMANE::Priority
std::uint8_t Priority
Definition:
types.h:64
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_REGISTRATION_ID
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_TOO_LONG
EMANE::Models::TDMA::MessageComponents
std::list< MessageComponent > MessageComponents
Definition:
messagecomponent.h:187
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_SPECTRUM_SERVICE
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_DESTINATION_MAC
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_SINR
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_SLOT_NOT_RX
EMANE::NEMId
std::uint16_t NEMId
Definition:
types.h:52
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::DROP_MISS_FRAGMENT
EMANE::Models::TDMA::PacketStatusPublisher::~PacketStatusPublisher
virtual ~PacketStatusPublisher()
Definition:
packetstatuspublisher.h:57
EMANE::Models::TDMA::PacketStatusPublisher::PacketStatusPublisher
PacketStatusPublisher()
Definition:
packetstatuspublisher.h:155
EMANE::Models::TDMA::PacketStatusPublisher
Packet status interface used to publish statistics and tables showing accepted and rejected byte coun...
Definition:
packetstatuspublisher.h:51
EMANE::Models::TDMA::PacketStatusPublisher::InboundAction::ACCEPT_GOOD
src
union EtherAddr src
Definition:
netutils.h:391
EMANE
Definition:
agent.h:43
EMANE::Models::TDMA::MessageComponent
Holds a message component that may be all or part of a data or control message.
Definition:
messagecomponent.h:64
EMANE::Models::TDMA::PacketStatusPublisher::inbound
virtual void inbound(NEMId src, const MessageComponent &component, InboundAction action)=0
include
emane
models
tdma
packetstatuspublisher.h
Generated by
1.8.13