21 #ifndef SATELLITE_GEO_MAC_H
22 #define SATELLITE_GEO_MAC_H
30 #include <ns3/address.h>
31 #include <ns3/nstime.h>
32 #include <ns3/object.h>
33 #include <ns3/packet.h>
104 void SetLlc(Ptr<SatGeoLlc> llc);
113 typedef Callback<void, SatPhy::PacketContainer_t, Ptr<SatSignalParameters>>
SatLinkDir_t
Link direction used for packet tracing.
RegenerationMode_t
The regeneration mode used in satellites.
The SatGeoMac models the global link MAC layer of the satellite node.
Callback< void, Ptr< SatSignalParameters > > TransmitCallback
Ptr< SatGeoLlc > m_llc
LLC layer linked to this MAC.
virtual void SetGuardTime(Time guardTime)
void StartTransmission(uint32_t carrierId)
Start sending a Packet Down the Wire.
virtual Time GetGuardTime() const
SatGeoMac(void)
Default constructor.
TracedCallback< Ptr< SatBbFrame > > m_bbFrameTxTrace
Trace for transmitted BB frames.
virtual void RxTraces(SatPhy::PacketContainer_t packets)
Invoke the Rx trace source for each received packet.
Time m_guardTime
Guard time for BB frames.
void StartPeriodicTransmissions()
Starts periodical transmissions.
uint32_t m_satId
ID of sat for UT.
TransmitCallback m_txCallback
virtual void DoInitialize(void)
virtual void DoDispose(void)
Dispose of this class instance.
void SetLlc(Ptr< SatGeoLlc > llc)
Set the Geo LLC associated to this Geo MAC layer.
uint32_t m_beamId
ID of beam for UT.
void SetTransmitCallback(SatGeoMac::TransmitCallback cb)
void SetReceiveNetDeviceCallback(SatGeoMac::ReceiveNetDeviceCallback cb)
Callback< void, SatPhy::PacketContainer_t, Ptr< SatSignalParameters > > ReceiveNetDeviceCallback
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()=0
Get the link RX direction.
void SetFwdScheduler(Ptr< SatFwdLinkScheduler > fwdScheduler)
Method to set link scheduler (forward or SCPC)
Ptr< SatFwdLinkScheduler > m_fwdScheduler
Scheduler for the forward link.
ReceiveNetDeviceCallback m_rxNetDeviceCallback
TypeId GetInstanceTypeId(void) const
static TypeId GetTypeId(void)
inherited from Object
virtual void SendPacket(SatPhy::PacketContainer_t packets, uint32_t carrierId, Time duration, SatSignalParameters::txInfo_s txInfo)
Send packets to lower layer by using a callback.
virtual void EnquePacket(Ptr< Packet > packet)=0
Add new packet to the LLC queue.
virtual Address GetRxUtAddress(Ptr< Packet > packet)=0
Get the UT address associated to this RX packet.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()=0
Get the link TX direction.
virtual ~SatGeoMac()
Destructor for SatGeoMac.
Base MAC class for SatNetDevices.
SatSignalParameters::PacketsInBurst_t PacketContainer_t
Define PacketContainer in SatPhy.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Struct for storing the packet specific Tx information.