21#ifndef SATELLITE_UT_SCHEDULER_H_
22#define SATELLITE_UT_SCHEDULER_H_
26#include "ns3/callback.h"
27#include "ns3/mac48-address.h"
28#include "ns3/object.h"
153 typedef Callback<Ptr<Packet>, uint32_t, Mac48Address, uint8_t, uint32_t&, uint32_t&>
190 uint32_t payloadBytes,
199 virtual void SetNodeInfo(Ptr<SatNodeInfo> nodeInfo);
210 uint32_t& payloadBytes,
The SatLowerLayerServiceConf class holds information of all configures lower layer service entries.
The SatNodeInfo implements a container for all needed node related information.
SatSchedulingObject is on object which passes the LLC/encapsulator layer related information for MAC ...
SatTimeSlotType_t
Types for time slot.
SatUtScheduler()
Default constructor.
static TypeId GetTypeId(void)
Derived from Object.
std::vector< uint32_t > ByteCounterContainer_t
Byte counter container.
virtual void DoDispose(void)
Dispose of SatUtScheduler.
void SetSchedContextCallback(SatUtScheduler::SchedContextCallback cb)
Method to set Tx opportunity callback.
bool m_prioritizeControl
Strictly prioritize the control message scheduling regardless of the time slot information given from...
SatCompliancePolicy_t
Enum describing the wanted scheduler policy.
uint32_t DoSchedulingForRcIndex(std::vector< Ptr< Packet > > &packets, uint32_t &payloadBytes, uint8_t rcIndex)
Do scheduling for a given RC index.
std::vector< uint8_t > m_rcIndices
Available RC indices for scheduling.
SatUtScheduler::TxOpportunityCallback m_txOpportunityCallback
Callback to notify the txOpportunity to upper layer Returns a packet Attributes: payload in bytes.
virtual void NotifyConstructionCompleted() override
Notifier called once the ObjectBase is fully constructed.
Ptr< SatLowerLayerServiceConf > m_llsConf
The configured lower layer service configuration for this UT MAC.
virtual ~SatUtScheduler()
Destructor.
Callback< void, std::vector< Ptr< SatSchedulingObject > > & > SchedContextCallback
Callback to get scheduling contexts from upper layer.
SatUtScheduler::SchedContextCallback m_schedContextCallback
The scheduling context getter callback.
std::vector< uint8_t > GetPrioritizedRcIndexOrder()
Get a prioritized order of the available RC indices for LOOSE policy UT scheduling.
void DoScheduling(std::vector< Ptr< Packet > > &packets, uint32_t payloadBytes, SatTimeSlotConf::SatTimeSlotType_t type, uint8_t rcIndex, SatCompliancePolicy_t policy)
UT scheduling is responsible of selecting with which RC index to use when requesting packets from hig...
void SetTxOpportunityCallback(SatUtScheduler::TxOpportunityCallback cb)
Method to set Tx opportunity callback.
ByteCounterContainer_t m_utScheduledByteCounters
Byte counters for RC indices.
virtual void SetNodeInfo(Ptr< SatNodeInfo > nodeInfo)
Set the node info.
Callback< Ptr< Packet >, uint32_t, Mac48Address, uint8_t, uint32_t &, uint32_t & > TxOpportunityCallback
Callback to notify upper layer about Tx opportunity.
Ptr< SatNodeInfo > m_nodeInfo
Node information.
uint32_t m_framePduHeaderSizeInBytes
Frame PDU header size.
const std::vector< uint32_t > & m_cont
bool operator()(uint8_t p1, uint8_t p2)
Operator overload for function call.
SortByMetric(const std::vector< uint32_t > &m)
Sort a vector available RC indices based on unallocated load.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.