33 #ifndef EMANETDMABASEMODELIMPL_HEADER_ 34 #define EMANETDMABASEMODELIMPL_HEADER_ 76 void start()
override;
82 void destroy()
throw()
override;
103 std::uint64_t u64BandwidthHz,
115 std::unique_ptr<Scheduler> pScheduler_;
116 std::unique_ptr<QueueManager> pQueueManager_;
119 bool bFlowControlEnable_;
120 std::uint16_t u16FlowControlTokens_;
121 std::string sPCRCurveURI_;
129 std::uint64_t u64SequenceNumber_;
131 std::uint64_t u64BandwidthHz_;
137 std::uint64_t u64ScheduleIndex_;
140 void sendDownstreamPacket(
double dSlotRemainingRatio);
142 void processTxOpportunity(std::uint64_t u64ScheduleIndex);
148 #endif // EMANETDMABASEMODELIMPL_HEADER_ void processSchedulerPacket(DownstreamPacket &pkt) override
std::string Serialization
A Packet class that allows upstream processing to strip layer headers as the packet travels up the st...
The Registrar interface provides access to all of the emulator registrars.
Implementation(NEMId id, PlatformServiceProvider *pPlatformServiceProvider, RadioServiceProvider *pRadioServiceProvider, Scheduler *pScheduler, QueueManager *pQueueManager, MACLayerImplementor *pRadioModel)
Flow Control Manager (token producer) side.
std::list< const ControlMessage * > ControlMessages
void initialize(Registrar ®istrar) override
void processConfiguration(const ConfigurationUpdate &update) override
Implementation of BaseModel.
std::vector< QueueInfo > QueueInfos
void processDownstreamPacket(DownstreamPacket &pkt, const ControlMessages &msgs) override
Specialized packet the allows downstream processing to add layer specific headers as the packet trave...
std::set< std::uint64_t > Frequencies
std::chrono::microseconds Microseconds
Transmit slot information.
void postStart() override
The RadioServiceProvider interface provides access to radio (RF) model specific services.
Aggregation statistic and statistic table status publisher.
void processDownstreamControl(const ControlMessages &msgs) override
Interface used by a scheduler module to communicate information with BaseModel.
Scheduler interface used by BaseModel to communicate with a scheduler module.
void configure(const ConfigurationUpdate &update) override
Queue management interface used by BaseModel
Manages all receive side message processing.
std::vector< ConfigurationNameAnyValues > ConfigurationUpdate
void notifyScheduleChange(const Frequencies &frequencies, std::uint64_t u64BandwidthHz, const Microseconds &slotDuration, const Microseconds &slotOverhead) override
Implementation of PacketStatusPublisher.
void processSchedulerControl(const ControlMessages &msgs) override
QueueInfos getPacketQueueInfo() const override
Clock::time_point TimePoint
std::list< TxSlotInfo > TxSlotInfos
void processUpstreamPacket(const CommonMACHeader &hdr, UpstreamPacket &pkt, const ControlMessages &msgs) override
Slot statistic and statistic table status publisher.
void processUpstreamControl(const ControlMessages &msgs) override
Manages neighbor metrics and sends neighbor metric control message upstream.
void processEvent(const EventId &, const Serialization &) override
Interface used to create a MAC layer plugin implementation.