GW specific Mac class for Sat Net Devices. More...
#include "satellite-gw-mac.h"
Public Types | |
typedef Callback< void > | ClearQueuesCallback |
Callback to clear LLC queues. More... | |
typedef Callback< void, Address, uint32_t, uint32_t > | ControlMessageReceivedCallback |
Callback to inform NCC a control burst has been received. More... | |
typedef Callback< void, uint32_t, uint32_t, Address, Ptr< SatCrMessage > > | CrReceiveCallback |
Callback to receive capacity request (CR) messages. More... | |
typedef Callback< void, Address, uint32_t, uint32_t, uint32_t, uint32_t > | HandoverCallback |
Callback to query/apply handover on the terrestrial network. More... | |
typedef Callback< void, Address, uint32_t, uint32_t, Callback< void, uint32_t > > | LogonCallback |
Callback to register UT logon. More... | |
typedef Callback< void, uint32_t, uint32_t > | PhyBeamCallback |
Callback to change phy-layer beam ID. More... | |
typedef Callback< void, Address, uint32_t, uint32_t > | RemoveUtCallback |
Callback to indicate NCC a UT needs to be removed. More... | |
typedef Callback< Ptr< Packet >, uint32_t, Mac48Address, uint32_t & > | TxOpportunityCallback |
Callback to notify upper layer about Tx opportunity. More... | |
Public Types inherited from ns3::SatMac | |
typedef Callback< Ptr< SatBeamScheduler >, uint32_t, uint32_t > | BeamSchedulerCallback |
Callback to get the SatBeamScheduler from the beam ID for handover. More... | |
typedef Callback< void, Ptr< const Packet > > | LoraReceiveCallback |
Callback to receive packet by upper layer. More... | |
typedef Callback< Ptr< SatControlMessage >, uint32_t > | ReadCtrlMsgCallback |
Callback to read control messages from container storing control messages. More... | |
typedef Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > | ReceiveCallback |
Callback to receive packet by upper layer. More... | |
typedef Callback< uint32_t, Ptr< SatControlMessage > > | ReserveCtrlMsgCallback |
Callback to reserve an id and initially store the control message. More... | |
typedef Callback< void, Address, Address > | RoutingUpdateCallback |
Callback to update routing and ARP tables after handover. More... | |
typedef Callback< uint32_t, uint32_t > | SendCtrlMsgCallback |
Callback to send a control message and allocate a recv ID for it. More... | |
typedef Callback< void, SatPhy::PacketContainer_t, uint32_t, Time, SatSignalParameters::txInfo_s > | TransmitCallback |
Callback to send packet to lower layer. More... | |
typedef Callback< void > | UpdateIslCallback |
Callback to update ISL routes when handovers are performed. More... | |
Public Member Functions | |
SatGwMac () | |
Default constructor, which is not used. More... | |
SatGwMac (Ptr< Node > node, uint32_t satId, uint32_t beamId, uint32_t feederSatId, uint32_t feederBeamId) | |
Construct a SatGwMac. More... | |
~SatGwMac () | |
Destroy a SatGwMac. More... | |
void | ChangeBeam (uint32_t satId, uint32_t beamId) |
Method handling beam handover. More... | |
void | ConnectUt (Mac48Address utAddress) |
Connect a UT to this satellite. More... | |
void | DisconnectUt (Mac48Address utAddress) |
Disconnect a UT to this satellite. More... | |
uint32_t | GetFeederBeamId () |
Get ID of beam linked to this GW. More... | |
uint32_t | GetFeederSatId () |
Get ID of satellite linked to this GW. More... | |
TypeId | GetInstanceTypeId (void) const |
Derived from Object. More... | |
void | Receive (SatPhy::PacketContainer_t packets, Ptr< SatSignalParameters >) |
Receive packet from lower layer. More... | |
void | SetBeamCallback (SatGwMac::PhyBeamCallback cb) |
Method to set phy-layer beam handover callback. More... | |
void | SetClearQueuesCallback (SatGwMac::ClearQueuesCallback cb) |
Method to set callback for LLC queues clearing. More... | |
void | SetControlMessageReceivedCallback (SatGwMac::ControlMessageReceivedCallback cb) |
Method to set callback for control burst reception. More... | |
void | SetCrReceiveCallback (SatGwMac::CrReceiveCallback cb) |
Method to set read control message callback. More... | |
void | SetFwdScheduler (Ptr< SatFwdLinkScheduler > fwdScheduler) |
Method to set forward link scheduler. More... | |
void | SetHandoverCallback (SatGwMac::HandoverCallback cb) |
Method to set handover callback. More... | |
void | SetLogonCallback (SatGwMac::LogonCallback cb) |
Method to set logon callback. More... | |
void | SetRemoveUtCallback (SatGwMac::RemoveUtCallback cb) |
Method to set callback for UT removing. More... | |
void | SetTxOpportunityCallback (SatGwMac::TxOpportunityCallback cb) |
Method to set Tx opportunity callback. More... | |
void | StartPeriodicTransmissions () |
Starts periodical transmissions. More... | |
void | TbtpSent (Ptr< SatTbtpMessage > tbtp) |
Function called when a TBTP has been sent by the SatBeamScheduler. More... | |
Public Member Functions inherited from ns3::SatMac | |
SatMac () | |
Construct a SatMac. More... | |
SatMac (uint32_t satId, uint32_t beamId) | |
Construct a SatMac. More... | |
~SatMac () | |
Destroy a SatMac. More... | |
virtual void | Disable () |
Disable the MAC layer, i.e. More... | |
virtual void | Enable () |
Enable the MAC layer, i.e. More... | |
Address | GetAddress () const |
Get MAC address. More... | |
uint32_t | GetBeamId () const |
Get beam ID of the object. More... | |
uint32_t | GetSatId () const |
Get sat ID of the object. More... | |
virtual void | ReceiveQueueEvent (SatQueue::QueueEvent_t event, uint8_t flowIndex) |
Receive a queue event: More... | |
uint32_t | ReserveIdAndStoreCtrlMsgToContainer (Ptr< SatControlMessage > msg) |
Reserve id and store the control message. More... | |
uint32_t | SendCtrlMsgFromContainer (uint32_t sendId) |
Send the control message from the container. More... | |
void | SetBeamId (uint32_t beamId) |
Set beam ID of the object. More... | |
void | SetBeamSchedulerCallback (SatMac::BeamSchedulerCallback cb) |
Set the beam scheduler callback. More... | |
void | SetHandoverModule (Ptr< SatHandoverModule > handoverModule) |
Set the handover module. More... | |
void | SetLoraReceiveCallback (SatMac::LoraReceiveCallback cb) |
Method to set receive callback. More... | |
virtual void | SetNodeInfo (Ptr< SatNodeInfo > nodeInfo) |
Set the node info. More... | |
void | SetReadCtrlCallback (SatMac::ReadCtrlMsgCallback cb) |
Method to set read control message callback. More... | |
void | SetReceiveCallback (SatMac::ReceiveCallback cb) |
Method to set receive callback. More... | |
void | SetReserveCtrlCallback (SatMac::ReserveCtrlMsgCallback cb) |
Method to set reserve control message id callback. More... | |
void | SetRoutingUpdateCallback (SatMac::RoutingUpdateCallback cb) |
Method to set the routing update callback. More... | |
virtual void | SetSatelliteAddress (Address satelliteAddress) |
Set the satellite MAC address on the other side of this link (if regenerative satellite). More... | |
void | SetSatId (uint32_t satId) |
Set sat ID of the object. More... | |
void | SetSendCtrlCallback (SatMac::SendCtrlMsgCallback cb) |
Method to set send control message callback. More... | |
void | SetTransmitCallback (SatMac::TransmitCallback cb) |
Method to set transmit callback. More... | |
void | SetUpdateIslCallback (SatMac::UpdateIslCallback cb) |
Method to set update ISL callback. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::SatMac | |
static TypeId | GetTypeId (void) |
Derived from Object. More... | |
Private Member Functions | |
SatGwMac (const SatGwMac &) | |
void | DoDispose (void) |
bool | HasPeer () |
Indicates if at least one device is connected in this beam. More... | |
SatGwMac & | operator= (const SatGwMac &) |
void | ReceiveSignalingPacket (Ptr< Packet > packet, uint32_t satId, uint32_t beamId) |
Signaling packet receiver, which handles all the signaling packet receptions. More... | |
void | RemoveTbtp (uint32_t superframeCounter) |
Function used to clear old TBTP. More... | |
void | SendCmtMessage (Address utId, Time burstDuration, Time satelliteReceptionTime, uint32_t satId, uint32_t beamId) |
void | SendLogonResponse (Address utId, uint32_t raChannel) |
void | SendNcrMessage () |
void | StartNcrTransmission () |
Send a NCR packet to the UTs. More... | |
void | StartTransmission (uint32_t carrierId) |
Start sending a Packet Down the Wire. More... | |
virtual void | StopPeriodicTransmissions () |
Stop periodic transmission, until a pacquet in enqued. More... | |
Static Private Member Functions | |
static void | SendLogonResponseHelper (SatGwMac *self, Address utId, uint32_t raChannel) |
Private Attributes | |
TracedCallback< Ptr< SatBbFrame > > | m_bbFrameTxTrace |
Trace for transmitted BB frames. More... | |
SatGwMac::PhyBeamCallback | m_beamCallback |
Callback to change phy-layer beam ID. More... | |
bool | m_broadcastNcr |
Broadcast NCR messages to all UTs. More... | |
SatGwMac::ClearQueuesCallback | m_clearQueuesCallback |
Callback to clear LLC queues. More... | |
Time | m_cmtPeriodMin |
Minimum interval between two CMT control messages for a same UT. More... | |
SatGwMac::ControlMessageReceivedCallback | m_controlMessageReceivedCallback |
Callback to indicate NCC a control burst has been received. More... | |
SatGwMac::CrReceiveCallback | m_crReceiveCallback |
Capacity request receive callback. More... | |
bool | m_disableSchedulingIfNoDeviceConnected |
If true, the periodic calls of StartTransmission are not called when no devices are connected to this MAC. More... | |
uint32_t | m_feederBeamId |
ID of beam linked to this GW. More... | |
uint32_t | m_feederSatId |
ID of satellite linked to this GW. More... | |
Ptr< SatFwdLinkScheduler > | m_fwdScheduler |
Scheduler for the forward link. More... | |
Time | m_guardTime |
Guard time for BB frames. More... | |
SatGwMac::HandoverCallback | m_handoverCallback |
Callback to query/apply handover on the terrestrial network. More... | |
std::map< Address, Time > | m_lastCmtSent |
Time of last CMT sending for each UT. More... | |
SatGwMac::LogonCallback | m_logonCallback |
Callback to log a terminal on. More... | |
Time | m_ncrInterval |
Interval between two broadcast of NCR dates. More... | |
Ptr< Node > | m_node |
Node containing this MAC. More... | |
std::set< Mac48Address > | m_peers |
List of UT MAC connected to this MAC. More... | |
bool | m_periodicTransmissionEnabled |
Indicated if periodic transmission is enabled. More... | |
SatGwMac::RemoveUtCallback | m_removeUtCallback |
Callback to indicate NCC a UT needs to be removed. More... | |
std::map< uint32_t, std::vector< Ptr< SatTbtpMessage > > > | m_tbtps |
List of TBTPs sent to UTs. More... | |
SatGwMac::TxOpportunityCallback | m_txOpportunityCallback |
Callback to notify the txOpportunity to upper layer Returns a packet Attributes: payload in bytes. More... | |
bool | m_useCmt |
Use CMT control messages to correct time on the UTs. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::SatMac | |
void | DoDispose (void) |
Dispose of SatMac. More... | |
void | RxTraces (SatPhy::PacketContainer_t packets) |
Invoke the Rx trace source for each received packet. More... | |
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. More... | |
void | SetTimeTag (SatPhy::PacketContainer_t packets) |
Set SatMacTimeTag of packets. More... | |
Protected Attributes inherited from ns3::SatMac | |
Time | m_beamEnabledTime |
Time of the last beam enable event. More... | |
uint32_t | m_beamId |
The ID of the beam where mac belongs. More... | |
SatMac::BeamSchedulerCallback | m_beamSchedulerCallback |
Callback to get the SatBeamScheduler linked to a beam ID. More... | |
TracedCallback< Time > | m_beamServiceTrace |
Traced callback for beam being disabled and including service time. More... | |
SatEnums::RegenerationMode_t | m_forwardLinkRegenerationMode |
Regeneration mode on forward link. More... | |
Ptr< SatHandoverModule > | m_handoverModule |
Module used to perform handovers. More... | |
bool | m_isRegenerative |
Indicate if satellite is regeneration (at least LINK level) for TX. More... | |
bool | m_isStatisticsTagsEnabled |
EnableStatisticsTags attribute. More... | |
Time | m_lastDelay |
Last delay measurement. More... | |
Time | m_lastLinkDelay |
Last delay measurement for link. More... | |
std::queue< Time > | m_lastSOF |
Store last 3 SOF date for Forward messages, to insert in NCR packets. More... | |
std::queue< Ptr< SatNcrMessage > > | m_ncrMessagesToSend |
List of NCR control messages created but not sent yet. More... | |
bool | m_ncrV2 |
Use of version 2 of NCR dates. More... | |
Ptr< SatNodeInfo > | m_nodeInfo |
Node info containing node related information, such as node type, node id and MAC address (of the SatNetDevice) More... | |
TracedCallback< Time, SatEnums::SatPacketEvent_t, SatEnums::SatNodeType_t, uint32_t, Mac48Address, SatEnums::SatLogLevel_t, SatEnums::SatLinkDir_t, std::string > | m_packetTrace |
Trace callback used for packet tracing. More... | |
SatMac::ReadCtrlMsgCallback | m_readCtrlCallback |
The read control message callback. More... | |
SatMac::ReserveCtrlMsgCallback | m_reserveCtrlCallback |
The reserve control message id callback. More... | |
SatEnums::RegenerationMode_t | m_returnLinkRegenerationMode |
Regeneration mode on return link. More... | |
SatMac::RoutingUpdateCallback | m_routingUpdateCallback |
Callback to update routing and ARP tables after a beam handover. More... | |
SatMac::ReceiveCallback | m_rxCallback |
The upper layer package receive callback. More... | |
TracedCallback< const Time &, const Address & > | m_rxDelayTrace |
Traced callback for all received packets, including delay information and the address of the senders. More... | |
TracedCallback< const Time &, const Address & > | m_rxJitterTrace |
Traced callback for all received packets, including jitter information and the address of the senders. More... | |
TracedCallback< const Time &, const Address & > | m_rxLinkDelayTrace |
Traced callback for all received packets, including link delay information and the address of the senders. More... | |
TracedCallback< const Time &, const Address & > | m_rxLinkJitterTrace |
Traced callback for all received packets, including link jitter information and the address of the senders. More... | |
SatMac::LoraReceiveCallback | m_rxLoraCallback |
The upper layer package receive callback. More... | |
TracedCallback< Ptr< const Packet >, const Address & > | m_rxTrace |
Traced callback for all received packets, including the address of the senders. More... | |
Address | m_satelliteAddress |
MAC address of satellite on other side of the link. More... | |
uint32_t | m_satId |
The ID of the sat where mac belongs. More... | |
SatMac::SendCtrlMsgCallback | m_sendCtrlCallback |
The send control message callback. More... | |
SatMac::TransmitCallback | m_txCallback |
The lower layer packet transmit callback. More... | |
bool | m_txEnabled |
Flag indicating whether the MAC is enabled, i.e. More... | |
SatMac::UpdateIslCallback | m_updateIslCallback |
The update ISL routes callback. More... | |
GW specific Mac class for Sat Net Devices.
This SatGwMac class specializes the Mac class with GW characteristics.
Definition at line 55 of file satellite-gw-mac.h.
typedef Callback<void> ns3::SatGwMac::ClearQueuesCallback |
Callback to clear LLC queues.
Definition at line 236 of file satellite-gw-mac.h.
typedef Callback<void, Address, uint32_t, uint32_t> ns3::SatGwMac::ControlMessageReceivedCallback |
Callback to inform NCC a control burst has been received.
Address | identification of the UT that sent the burst |
uint32_t | satellite ID where the UT is connected |
uint32_t | beam ID where the UT is connected |
Definition at line 211 of file satellite-gw-mac.h.
typedef Callback<void, uint32_t, uint32_t, Address, Ptr<SatCrMessage> > ns3::SatGwMac::CrReceiveCallback |
Callback to receive capacity request (CR) messages.
uint32_t | The satellite ID. |
uint32_t | The beam ID. |
Address | Address of the sender UT. |
Ptr<SatControlMessage> | Pointer to the received CR message. |
Definition at line 137 of file satellite-gw-mac.h.
typedef Callback<void, Address, uint32_t, uint32_t, uint32_t, uint32_t> ns3::SatGwMac::HandoverCallback |
Callback to query/apply handover on the terrestrial network.
Address | identification of the UT originating the request |
uint32_t | satellite ID |
uint32_t | source beam ID the UT is still in |
uint32_t | destination sat ID the UT would like to go in |
uint32_t | destination beam ID the UT would like to go in |
Definition at line 168 of file satellite-gw-mac.h.
typedef Callback<void, Address, uint32_t, uint32_t, Callback<void, uint32_t> > ns3::SatGwMac::LogonCallback |
Callback to register UT logon.
Address | identification of the UT originating the request |
uint32_t | sat ID the UT is requesting logon on |
uint32_t | beam ID the UT is requesting logon on |
Callback | setRaChannelCallback the callback to call when RA channel has been selected |
Definition at line 183 of file satellite-gw-mac.h.
typedef Callback<void, uint32_t, uint32_t> ns3::SatGwMac::PhyBeamCallback |
Callback to change phy-layer beam ID.
uint32_t | New satellite ID to use |
uint32_t | New beam ID to use |
Definition at line 197 of file satellite-gw-mac.h.
typedef Callback<void, Address, uint32_t, uint32_t> ns3::SatGwMac::RemoveUtCallback |
Callback to indicate NCC a UT needs to be removed.
Address | identification of the UT to remove |
uint32_t | satellite ID where the UT is connected |
uint32_t | beam ID where the UT is connected |
Definition at line 225 of file satellite-gw-mac.h.
typedef Callback<Ptr<Packet>, uint32_t, Mac48Address, uint32_t&> ns3::SatGwMac::TxOpportunityCallback |
Callback to notify upper layer about Tx opportunity.
uint32_t | payload size in bytes |
Mac48Address | address |
Definition at line 151 of file satellite-gw-mac.h.
ns3::SatGwMac::SatGwMac | ( | ) |
Default constructor, which is not used.
Definition at line 115 of file satellite-gw-mac.cc.
ns3::SatGwMac::SatGwMac | ( | Ptr< Node > | node, |
uint32_t | satId, | ||
uint32_t | beamId, | ||
uint32_t | feederSatId, | ||
uint32_t | feederBeamId | ||
) |
Construct a SatGwMac.
This is the constructor for the SatGwMac
node | Node containing this MAC |
satId | ID of sat for UT |
beamId | ID of beam for UT |
satId | ID of sat for GW |
beamId | ID of beam for GW |
Definition at line 132 of file satellite-gw-mac.cc.
ns3::SatGwMac::~SatGwMac | ( | ) |
Destroy a SatGwMac.
This is the destructor for the SatGwMac.
Definition at line 154 of file satellite-gw-mac.cc.
|
private |
void ns3::SatGwMac::ChangeBeam | ( | uint32_t | satId, |
uint32_t | beamId | ||
) |
Method handling beam handover.
satId | New satellite id |
beamId | New satellite beam id |
Definition at line 920 of file satellite-gw-mac.cc.
Referenced by ns3::SatGwHelperDvb::Install().
void ns3::SatGwMac::ConnectUt | ( | Mac48Address | utAddress | ) |
Connect a UT to this satellite.
utAddress | MAC address of the UT to connect |
Definition at line 926 of file satellite-gw-mac.cc.
References HasPeer(), ns3::SatMac::m_beamId, m_disableSchedulingIfNoDeviceConnected, m_peers, and StartPeriodicTransmissions().
void ns3::SatGwMac::DisconnectUt | ( | Mac48Address | utAddress | ) |
Disconnect a UT to this satellite.
utAddress | MAC address of the UT to disconnect |
Definition at line 945 of file satellite-gw-mac.cc.
References HasPeer(), ns3::SatMac::m_beamId, m_disableSchedulingIfNoDeviceConnected, m_peers, and StopPeriodicTransmissions().
|
private |
Definition at line 160 of file satellite-gw-mac.cc.
References ns3::SatMac::DoDispose(), m_controlMessageReceivedCallback, m_crReceiveCallback, m_handoverCallback, m_logonCallback, and m_txOpportunityCallback.
uint32_t ns3::SatGwMac::GetFeederBeamId | ( | ) |
Get ID of beam linked to this GW.
Definition at line 531 of file satellite-gw-mac.cc.
References m_feederBeamId.
uint32_t ns3::SatGwMac::GetFeederSatId | ( | ) |
Get ID of satellite linked to this GW.
Definition at line 523 of file satellite-gw-mac.cc.
References m_feederSatId.
TypeId ns3::SatGwMac::GetInstanceTypeId | ( | void | ) | const |
Derived from Object.
Definition at line 108 of file satellite-gw-mac.cc.
References GetTypeId().
|
static |
Get the type ID.
Definition at line 58 of file satellite-gw-mac.cc.
References m_bbFrameTxTrace, m_broadcastNcr, m_cmtPeriodMin, m_disableSchedulingIfNoDeviceConnected, m_fwdScheduler, m_guardTime, m_ncrInterval, and m_useCmt.
Referenced by GetInstanceTypeId().
|
private |
Indicates if at least one device is connected in this beam.
Definition at line 969 of file satellite-gw-mac.cc.
References m_peers.
Referenced by ConnectUt(), DisconnectUt(), and StartPeriodicTransmissions().
void ns3::SatGwMac::Receive | ( | SatPhy::PacketContainer_t | packets, |
Ptr< SatSignalParameters > | rxParams | ||
) |
Receive packet from lower layer.
packets | Pointers to packets received. |
Definition at line 216 of file satellite-gw-mac.cc.
References ns3::SatUplinkInfoTag::GetBeamId(), ns3::SatMacTag::GetDestAddress(), ns3::SatAddressE2ETag::GetE2EDestAddress(), ns3::SatAddressE2ETag::GetE2ESourceAddress(), ns3::SatControlMsgTag::GetMsgType(), ns3::SatUtils::GetPacketInfo(), ns3::SatUplinkInfoTag::GetSatelliteReceptionTime(), ns3::SatUplinkInfoTag::GetSatId(), ns3::SatMacTag::GetSourceAddress(), ns3::SatUplinkInfoTag::IsControl(), ns3::SatEnums::LD_RETURN, ns3::SatEnums::LL_MAC, m_controlMessageReceivedCallback, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, ns3::SatMac::m_returnLinkRegenerationMode, ns3::SatMac::m_rxCallback, m_useCmt, ns3::SatEnums::PACKET_RECV, ReceiveSignalingPacket(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatMac::RxTraces(), ns3::SatControlMsgTag::SAT_NON_CTRL_MSG, SendCmtMessage(), and ns3::SatEnums::TRANSPARENT.
Referenced by ns3::SatGwHelperDvb::Install().
|
private |
Signaling packet receiver, which handles all the signaling packet receptions.
packet | Received signaling packet |
beamId | ID of beam on UT |
Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInRtnLink attribute may be set to too short value or there are something wrong in the RTN link RRM.
Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInRtnLink attribute may be set to too short value or there are something wrong in the RTN link RRM.
Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInRtnLink attribute may be set to too short value or there are something wrong in the RTN link RRM.
Control message NOT found in container anymore! This means, that the SatBeamHelper::CtrlMsgStoreTimeInRtnLink attribute may be set to too short value or there are something wrong in the RTN link RRM.
Definition at line 558 of file satellite-gw-mac.cc.
References ns3::SatMacTag::GetDestAddress(), ns3::SatAddressE2ETag::GetE2ESourceAddress(), ns3::SatControlMsgTag::GetMsgId(), ns3::SatControlMsgTag::GetMsgType(), ns3::SatLog::LOG_WARNING, m_crReceiveCallback, ns3::SatMac::m_forwardLinkRegenerationMode, m_fwdScheduler, m_handoverCallback, m_logonCallback, ns3::SatMac::m_readCtrlCallback, ns3::SatMac::m_rxCallback, ns3::SatMac::m_satelliteAddress, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatControlMsgTag::SAT_ARQ_ACK, ns3::SatControlMsgTag::SAT_CMT_CTRL_MSG, ns3::SatControlMsgTag::SAT_CN0_REPORT, ns3::SatControlMsgTag::SAT_CR_CTRL_MSG, ns3::SatControlMsgTag::SAT_HR_CTRL_MSG, ns3::SatControlMsgTag::SAT_LOGON_CTRL_MSG, SendLogonResponseHelper(), and ns3::SatEnums::TRANSPARENT.
Referenced by Receive().
|
private |
Function used to clear old TBTP.
superframeCounter | The SuperFrame counter to erase. |
Definition at line 539 of file satellite-gw-mac.cc.
References m_tbtps.
Referenced by TbtpSent().
|
private |
Definition at line 742 of file satellite-gw-mac.cc.
References m_cmtPeriodMin, m_fwdScheduler, m_lastCmtSent, m_removeUtCallback, m_tbtps, ns3::SatTimeSlotConf::SLOT_TYPE_C, and ns3::SatConstVariables::SUPERFRAME_SEQUENCE.
Referenced by Receive().
|
private |
Definition at line 845 of file satellite-gw-mac.cc.
References m_fwdScheduler.
|
staticprivate |
Definition at line 854 of file satellite-gw-mac.cc.
Referenced by ReceiveSignalingPacket().
|
private |
Definition at line 732 of file satellite-gw-mac.cc.
References m_fwdScheduler, and ns3::SatMac::m_ncrMessagesToSend.
Referenced by StartNcrTransmission().
void ns3::SatGwMac::SetBeamCallback | ( | SatGwMac::PhyBeamCallback | cb | ) |
Method to set phy-layer beam handover callback.
cb | callback to invoke whenever a beam handover is considered |
Definition at line 902 of file satellite-gw-mac.cc.
References m_beamCallback.
void ns3::SatGwMac::SetClearQueuesCallback | ( | SatGwMac::ClearQueuesCallback | cb | ) |
Method to set callback for LLC queues clearing.
cb | callback to invoke whenever queues need to be cleared |
Definition at line 895 of file satellite-gw-mac.cc.
References m_clearQueuesCallback.
void ns3::SatGwMac::SetControlMessageReceivedCallback | ( | SatGwMac::ControlMessageReceivedCallback | cb | ) |
Method to set callback for control burst reception.
cb | callback to invoke whenever a control burst is received |
Definition at line 881 of file satellite-gw-mac.cc.
References m_controlMessageReceivedCallback.
void ns3::SatGwMac::SetCrReceiveCallback | ( | SatGwMac::CrReceiveCallback | cb | ) |
Method to set read control message callback.
cb | callback to invoke whenever a control message is wanted to read. |
Definition at line 860 of file satellite-gw-mac.cc.
References m_crReceiveCallback.
void ns3::SatGwMac::SetFwdScheduler | ( | Ptr< SatFwdLinkScheduler > | fwdScheduler | ) |
Method to set forward link scheduler.
The | scheduler to use |
Definition at line 909 of file satellite-gw-mac.cc.
References m_fwdScheduler, and ns3::SatMac::m_ncrV2.
void ns3::SatGwMac::SetHandoverCallback | ( | SatGwMac::HandoverCallback | cb | ) |
Method to set handover callback.
cb | callback to invoke whenever a handover recommendation is received |
Definition at line 867 of file satellite-gw-mac.cc.
References m_handoverCallback.
void ns3::SatGwMac::SetLogonCallback | ( | SatGwMac::LogonCallback | cb | ) |
Method to set logon callback.
cb | callback to invoke whenever a logon is received |
Definition at line 874 of file satellite-gw-mac.cc.
References m_logonCallback.
void ns3::SatGwMac::SetRemoveUtCallback | ( | SatGwMac::RemoveUtCallback | cb | ) |
Method to set callback for UT removing.
cb | callback to invoke whenever a UT needs to be removed |
Definition at line 888 of file satellite-gw-mac.cc.
References m_removeUtCallback.
void ns3::SatGwMac::SetTxOpportunityCallback | ( | SatGwMac::TxOpportunityCallback | cb | ) |
Method to set Tx opportunity callback.
cb | callback to invoke whenever a packet has been received and must be forwarded to the higher layers. |
|
private |
Send a NCR packet to the UTs.
This method periodically calls itself.
Definition at line 545 of file satellite-gw-mac.cc.
References m_ncrInterval, m_periodicTransmissionEnabled, and SendNcrMessage().
Referenced by StartPeriodicTransmissions().
void ns3::SatGwMac::StartPeriodicTransmissions | ( | ) |
Starts periodical transmissions.
Called when MAC is wanted to take care of periodic sending.
It is currently assumed that there is only one carrier in FWD link. This carrier has a default index of 0. TODO: When enabling multi-carrier support for FWD link, we need to modify the FWD link scheduler to schedule separately each FWD link carrier.
Definition at line 174 of file satellite-gw-mac.cc.
References HasPeer(), ns3::SatMac::m_beamId, m_broadcastNcr, m_clearQueuesCallback, m_disableSchedulingIfNoDeviceConnected, m_fwdScheduler, m_periodicTransmissionEnabled, StartNcrTransmission(), and StartTransmission().
Referenced by ConnectUt().
|
private |
Start sending a Packet Down the Wire.
The StartTransmission method is used internally in the SatGwMac to begin the process of sending a packet out on the PHY layer.
carrierId | id of the carrier. |
Decrease a guard time from BB frame duration.
GW MAC is disabled, thus get the duration of the default BB frame and try again then.
It is currently assumed that there is only one carrier in FWD link. This carrier has a default index of 0. TODO: When enabling multi-carrier support for FWD link, we need to modify the FWD link scheduler to schedule separately each FWD link carrier.
Definition at line 389 of file satellite-gw-mac.cc.
References ns3::SatSignalParameters::txInfo_s::frameType, ns3::SatUtils::GetPacketInfo(), ns3::SatEnums::LD_FORWARD, ns3::SatEnums::LL_MAC, m_bbFrameTxTrace, m_beamCallback, ns3::SatMac::m_beamId, ns3::SatMac::m_beamSchedulerCallback, m_disableSchedulingIfNoDeviceConnected, m_feederBeamId, m_feederSatId, m_fwdScheduler, m_guardTime, ns3::SatMac::m_handoverModule, ns3::SatMac::m_lastSOF, ns3::SatMac::m_ncrV2, m_node, ns3::SatMac::m_nodeInfo, ns3::SatMac::m_packetTrace, m_periodicTransmissionEnabled, ns3::SatMac::m_satId, ns3::SatMac::m_txEnabled, ns3::SatMac::m_updateIslCallback, ns3::SatSignalParameters::txInfo_s::modCod, ns3::SatEnums::NT_GW, ns3::SatEnums::PACKET_SENT, ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS, ns3::SatSignalParameters::txInfo_s::packetType, ns3::SatMac::SendPacket(), ns3::SatMac::SetSatelliteAddress(), ns3::SatSignalParameters::txInfo_s::sliceId, and ns3::SatSignalParameters::txInfo_s::waveformId.
Referenced by StartPeriodicTransmissions().
|
privatevirtual |
Stop periodic transmission, until a pacquet in enqued.
Definition at line 961 of file satellite-gw-mac.cc.
References m_periodicTransmissionEnabled.
Referenced by DisconnectUt().
void ns3::SatGwMac::TbtpSent | ( | Ptr< SatTbtpMessage > | tbtp | ) |
Function called when a TBTP has been sent by the SatBeamScheduler.
tbtp | The TBTP sent by the scheduler. |
Definition at line 507 of file satellite-gw-mac.cc.
References m_tbtps, and RemoveTbtp().
Referenced by ns3::SatBeamHelper::InstallFeeder().
|
private |
Trace for transmitted BB frames.
Definition at line 403 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and StartTransmission().
|
private |
Callback to change phy-layer beam ID.
Definition at line 430 of file satellite-gw-mac.h.
Referenced by SetBeamCallback(), and StartTransmission().
|
private |
Broadcast NCR messages to all UTs.
Definition at line 382 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and StartPeriodicTransmissions().
|
private |
Callback to clear LLC queues.
Definition at line 445 of file satellite-gw-mac.h.
Referenced by SetClearQueuesCallback(), and StartPeriodicTransmissions().
|
private |
Minimum interval between two CMT control messages for a same UT.
Definition at line 377 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and SendCmtMessage().
|
private |
Callback to indicate NCC a control burst has been received.
Definition at line 435 of file satellite-gw-mac.h.
Referenced by DoDispose(), Receive(), and SetControlMessageReceivedCallback().
|
private |
Capacity request receive callback.
Definition at line 408 of file satellite-gw-mac.h.
Referenced by DoDispose(), ReceiveSignalingPacket(), and SetCrReceiveCallback().
|
private |
If true, the periodic calls of StartTransmission are not called when no devices are connected to this MAC.
Definition at line 388 of file satellite-gw-mac.h.
Referenced by ConnectUt(), DisconnectUt(), GetTypeId(), StartPeriodicTransmissions(), and StartTransmission().
|
private |
ID of beam linked to this GW.
Definition at line 341 of file satellite-gw-mac.h.
Referenced by GetFeederBeamId(), and StartTransmission().
|
private |
ID of satellite linked to this GW.
Definition at line 336 of file satellite-gw-mac.h.
Referenced by GetFeederSatId(), and StartTransmission().
|
private |
Scheduler for the forward link.
Definition at line 351 of file satellite-gw-mac.h.
Referenced by GetTypeId(), ReceiveSignalingPacket(), SendCmtMessage(), SendLogonResponse(), SendNcrMessage(), SetFwdScheduler(), StartPeriodicTransmissions(), and StartTransmission().
|
private |
Guard time for BB frames.
The guard time is modeled by shortening the duration of a BB frame by a m_guardTime set by an attribute.
Definition at line 357 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and StartTransmission().
|
private |
Callback to query/apply handover on the terrestrial network.
Definition at line 420 of file satellite-gw-mac.h.
Referenced by DoDispose(), ReceiveSignalingPacket(), and SetHandoverCallback().
|
private |
Time of last CMT sending for each UT.
Definition at line 372 of file satellite-gw-mac.h.
Referenced by SendCmtMessage().
|
private |
Callback to log a terminal on.
Definition at line 425 of file satellite-gw-mac.h.
Referenced by DoDispose(), ReceiveSignalingPacket(), and SetLogonCallback().
|
private |
Interval between two broadcast of NCR dates.
Definition at line 362 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and StartNcrTransmission().
|
private |
Node containing this MAC.
Definition at line 331 of file satellite-gw-mac.h.
Referenced by StartTransmission().
|
private |
List of UT MAC connected to this MAC.
Definition at line 398 of file satellite-gw-mac.h.
Referenced by ConnectUt(), DisconnectUt(), and HasPeer().
|
private |
Indicated if periodic transmission is enabled.
Definition at line 393 of file satellite-gw-mac.h.
Referenced by StartNcrTransmission(), StartPeriodicTransmissions(), StartTransmission(), and StopPeriodicTransmissions().
|
private |
Callback to indicate NCC a UT needs to be removed.
Definition at line 440 of file satellite-gw-mac.h.
Referenced by SendCmtMessage(), and SetRemoveUtCallback().
|
private |
List of TBTPs sent to UTs.
Key is superframe counter, value is TBTP.
Definition at line 346 of file satellite-gw-mac.h.
Referenced by RemoveTbtp(), SendCmtMessage(), and TbtpSent().
|
private |
Callback to notify the txOpportunity to upper layer Returns a packet Attributes: payload in bytes.
Definition at line 415 of file satellite-gw-mac.h.
Referenced by DoDispose().
|
private |
Use CMT control messages to correct time on the UTs.
Definition at line 367 of file satellite-gw-mac.h.
Referenced by GetTypeId(), and Receive().