38 const std::uint16_t DROP_CODE_REGISTRATION_ID = 1;
48 commonLayerStatistics_{STATISTIC_TABLE_LABELS}
58 "MACI %03hu Models::Bypass::MACLayer::%s",
67 "MACI %03hu Models::Bypass::MACLayer::%s",
85 "MACI %03hu Models::Bypass::MACLayer::%s: MAC Registration Id %hu does not match our Id %hu, drop.",
92 std::chrono::duration_cast<Microseconds>(Clock::now() - beginTime),
93 DROP_CODE_REGISTRATION_ID);
101 "MACI %03hu Models::Bypass::MACLayer::%s src %hu dst %hu dscp %hhu",
109 std::chrono::duration_cast<Microseconds>(Clock::now() - beginTime));
125 "MACI %03hu Models::Bypass::MACLayer::%s src %hu dst %hu dscp %hhu",
133 std::chrono::duration_cast<Microseconds>(Clock::now() - beginTime));
143 "MACI %03hu Models::Bypass::MACLayer::%s",
154 "MACI %03hu Models::Bypass::MACLayer::%s",
160 throw ConfigureException(
"Models::Bypass::MACLayer: Unexpected configuration items.");
168 "MACI %03hu Models::Bypass::MACLayer::%s",
177 "MACI %03hu Models::Bypass::MACLayer::%s",
187 "MACI %03hu Models::Bypass::MACLayer::%s",
196 "MACI %03hu Models::Bypass::MACLayer::%s",
207 "MACI %03hu Models::Bypass::MACLayer::%s",
std::string Serialization
A Packet class that allows upstream processing to strip layer headers as the packet travels up the st...
const PacketInfo & getPacketInfo() const
The Registrar interface provides access to all of the emulator registrars.
#define LOGGER_VERBOSE_LOGGING(logger, level, fmt, args...)
void initialize(EMANE::Registrar ®istrar) override
virtual StatisticRegistrar & statisticRegistrar()=0
void processOutbound(const UpstreamPacket &pkt, Microseconds delay, size_t dropCode={})
std::list< const ControlMessage * > ControlMessages
Implementation of the bypass MAC layer.
NEMId getDestination() const
void registerStatistics(StatisticRegistrar &statisticRegistrar)
void processTimedEvent(EMANE::TimerEventId eventId, const EMANE::TimePoint &timePoint, const void *arg)
void processUpstreamPacket(const EMANE::CommonMACHeader &hdr, EMANE::UpstreamPacket &pkt, const EMANE::ControlMessages &msgs)
MACLayer(NEMId id, PlatformServiceProvider *pPlatformService, RadioServiceProvider *pRadioServiceProvider)
constructor
std::vector< std::string > StatisticTableLabels
const PacketInfo & getPacketInfo() const
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
void processDownstreamControl(const EMANE::ControlMessages &msgs)
The RadioServiceProvider interface provides access to radio (RF) model specific services.
void sendDownstreamPacket(const CommonMACHeader &hdr, DownstreamPacket &pkt, const ControlMessages &msgs=DownstreamTransport::empty)
void configure(const EMANE::ConfigurationUpdate &update) override
Priority getPriority() const
void processDownstreamPacket(EMANE::DownstreamPacket &pkt, const EMANE::ControlMessages &msgs)
std::vector< ConfigurationNameAnyValues > ConfigurationUpdate
void processEvent(const EMANE::EventId &id, const EMANE::Serialization &serialization)
Clock::time_point TimePoint
void sendUpstreamPacket(UpstreamPacket &pkt, const ControlMessages &msgs=empty)
#define LOGGER_STANDARD_LOGGING(logger, level, fmt, args...)
DECLARE_MAC_LAYER(EMANE::Models::Bypass::MACLayer)
void processInbound(const UpstreamPacket &pkt)
void processUpstreamControl(const EMANE::ControlMessages &msgs)
Interface used to create a MAC layer plugin implementation.