41 commonLayerStatistics_{{}}
51 "PHYI %03hu Models::Bypass::PHYLayer::%s",
65 "PHYI %03hu Models::Bypass::PHYLayer::%s",
79 std::chrono::duration_cast<Microseconds>(Clock::now() - beginTime));
94 "PHYI %03hu Models::Bypass::PHYLayer::%s",
99 std::chrono::duration_cast<Microseconds>(Clock::now() - beginTime));
108 "PHYI %03hu Models::Bypass::PHYLayer::%s",
119 "PHYI %03hu Models::Bypass::PHYLayer::%s",
125 throw ConfigureException(
"Models::Bypass::PHYLayer: Unexpected configuration items.");
133 "PHYI %03hu Models::Bypass::PHYLayer::%s",
142 "PHYI %03hu Models::Bypass::PHYLayer::%s",
151 "PHYI %03hu Models::Bypass::PHYLayer::%s",
162 "PHYI %03hu Models::Bypass::PHYLayer::%s",
175 "PHYI %03hu Models::Bypass::PHYLayer::%s",
std::string Serialization
A Packet class that allows upstream processing to strip layer headers as the packet travels up the st...
void processUpstreamPacket(const CommonPHYHeader &hdr, UpstreamPacket &pkt, const ControlMessages &msgs) override
The Registrar interface provides access to all of the emulator registrars.
void processDownstreamPacket(DownstreamPacket &pkt, const ControlMessages &msgs) override
#define LOGGER_VERBOSE_LOGGING(logger, level, fmt, args...)
virtual StatisticRegistrar & statisticRegistrar()=0
void processOutbound(const UpstreamPacket &pkt, Microseconds delay, size_t dropCode={})
Interface used to create a PHY layer plugin implementation.
void processEvent(const EventId &id, const Serialization &serialization) override
std::list< const ControlMessage * > ControlMessages
DECLARE_PHY_LAYER(EMANE::Models::Bypass::PHYLayer)
void sendDownstreamPacket(const CommonPHYHeader &hdr, DownstreamPacket &pkt, const ControlMessages &msgs=DownstreamTransport::empty)
void registerStatistics(StatisticRegistrar &statisticRegistrar)
void processDownstreamControl(const ControlMessages &msgs) override
PHYLayer(NEMId id, PlatformServiceProvider *pPlatformService)
constructor
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
void initialize(Registrar ®istrar) override
void configure(const ConfigurationUpdate &update) override
void processTimedEvent(TimerEventId eventId, const TimePoint &expireTime, const TimePoint &scheduleTime, const TimePoint &fireTime, const void *arg) override
std::list< FrequencySegment > FrequencySegments
std::vector< ConfigurationNameAnyValues > ConfigurationUpdate
Clock::time_point TimePoint
std::list< Transmitter > Transmitters
void sendUpstreamPacket(UpstreamPacket &pkt, const ControlMessages &msgs=empty)
#define LOGGER_STANDARD_LOGGING(logger, level, fmt, args...)
Implementation of the bypass PHY layer.
void processInbound(const UpstreamPacket &pkt)