27 #include <ns3/address-utils.h>
30 #include <ns3/uinteger.h>
34 NS_LOG_COMPONENT_DEFINE(
"SatCtrlMessage");
39 NS_OBJECT_ENSURE_REGISTERED(SatControlMsgTag);
42 : m_msgType(SAT_NON_CTRL_MSG),
45 NS_LOG_FUNCTION(
this);
50 NS_LOG_FUNCTION(
this);
57 TypeId(
"ns3::SatControlMsgTag").SetParent<Tag>().AddConstructor<SatControlMsgTag>();
64 NS_LOG_FUNCTION(
this);
72 NS_LOG_FUNCTION(
this << type);
79 NS_LOG_FUNCTION(
this);
86 NS_LOG_FUNCTION(
this);
94 NS_LOG_FUNCTION(
this << &i);
102 NS_LOG_FUNCTION(
this << &i);
110 NS_LOG_FUNCTION(
this << &os);
117 NS_LOG_FUNCTION(
this <<
m_msgId);
124 NS_LOG_FUNCTION(
this);
136 static TypeId tid = TypeId(
"ns3::SatControlMessage").SetParent<Object>();
145 : m_superframeCounter(0),
146 m_superframeSeqId(0),
147 m_assignmentFormat(0)
149 NS_LOG_FUNCTION(
this);
153 : m_superframeCounter(0),
154 m_superframeSeqId(seqId),
155 m_assignmentFormat(0)
157 NS_LOG_FUNCTION(
this << (uint32_t)seqId);
162 NS_LOG_FUNCTION(
this);
171 static TypeId tid = TypeId(
"ns3::SatTbtpMessage")
173 .AddConstructor<SatTbtpMessage>()
174 .AddAttribute(
"AssigmentFormat",
175 "Assignment format of assignment IDs in TBTP.)",
178 MakeUintegerChecker<uint8_t>());
185 NS_LOG_FUNCTION(
this);
193 NS_LOG_FUNCTION(
this << utId);
195 DaTimeSlotMap_t::const_iterator it =
m_daTimeSlots.find(utId);
208 NS_LOG_FUNCTION(
this << utId << frameId << conf);
217 std::pair<DaTimeSlotMap_t::iterator, bool> result =
227 NS_FATAL_ERROR(
"Cannot insert slot to container!!!");
232 it->second.first = frameId;
233 it->second.second.push_back(conf);
242 NS_LOG_FUNCTION(
this);
248 channels.insert(it->second);
257 NS_LOG_FUNCTION(
this << raChannel << (uint32_t)frameId << timeSlotCount);
260 RaChannelMap_t::iterator it =
m_raChannels.find(raChannel);
266 std::pair<RaChannelMap_t::iterator, bool> result =
267 m_raChannels.insert(std::make_pair(raChannel, timeSlotCount));
269 if (result.second ==
false)
271 NS_FATAL_ERROR(
"RA channel insertion failed!!!");
276 NS_FATAL_ERROR(
"RA channel already exists in the container!!!");
286 uint32_t assignmentIdSizeInBytes = 0;
292 assignmentIdSizeInBytes = 6;
297 assignmentIdSizeInBytes = 1;
302 assignmentIdSizeInBytes = 2;
307 assignmentIdSizeInBytes = 3;
312 assignmentIdSizeInBytes = 2;
317 assignmentIdSizeInBytes = 3;
322 assignmentIdSizeInBytes = 4;
330 return assignmentIdSizeInBytes;
336 NS_LOG_FUNCTION(
this);
347 sizeInBytes += (it->second.second.size() * assignmentIdSizeInBytes);
353 sizeInBytes += (it->second * assignmentIdSizeInBytes);
369 std::cout <<
"UT: " << mit->first <<
": ";
370 std::cout <<
"Frame ID: " << mit->second.first <<
": ";
371 std::cout << mit->second.second.size() <<
" ";
372 std::cout << std::endl;
381 static TypeId tid = TypeId(
"ns3::SatCrMessage")
383 .AddConstructor<SatCrMessage>()
384 .AddAttribute(
"CrBlockType",
385 "Capacity request control block size type",
398 NS_LOG_FUNCTION(
this);
405 m_forwardLinkCNo(NAN)
407 NS_LOG_FUNCTION(
this);
412 NS_LOG_FUNCTION(
this);
420 NS_LOG_FUNCTION(
this << (uint32_t)rcIndex << cac << value);
441 NS_LOG_FUNCTION(
this);
448 NS_LOG_FUNCTION(
this << cno);
455 NS_LOG_FUNCTION(
this);
479 static TypeId tid = TypeId(
"ns3::SatCnoReportMessage")
481 .AddConstructor<SatCnoReportMessage>();
488 NS_LOG_FUNCTION(
this);
496 NS_LOG_FUNCTION(
this);
501 NS_LOG_FUNCTION(
this);
507 NS_LOG_FUNCTION(
this);
514 NS_LOG_FUNCTION(
this << cno);
521 NS_LOG_FUNCTION(
this);
531 TypeId(
"ns3::SatRaMessage").SetParent<
SatControlMessage>().AddConstructor<SatRaMessage>();
538 NS_LOG_FUNCTION(
this);
544 : m_allocationChannelId(0),
545 m_backoffProbability(0),
548 NS_LOG_FUNCTION(
this);
553 NS_LOG_FUNCTION(
this);
559 NS_LOG_FUNCTION(
this << (uint32_t)allocationChannelId);
573 NS_LOG_FUNCTION(
this << backoffProbability);
581 NS_LOG_FUNCTION(
this << backoffTime);
601 NS_LOG_FUNCTION(
this);
613 static TypeId tid = TypeId(
"ns3::SatArqAckMessage")
615 .AddConstructor<SatArqAckMessage>();
622 NS_LOG_FUNCTION(
this);
628 : m_sequenceNumber(0),
631 NS_LOG_FUNCTION(
this);
636 NS_LOG_FUNCTION(
this);
642 NS_LOG_FUNCTION(
this);
655 NS_LOG_FUNCTION(
this);
668 NS_LOG_FUNCTION(
this);
670 uint32_t size = 2 *
sizeof(uint8_t);
679 static TypeId tid = TypeId(
"ns3::SatTimuMessage")
681 .AddConstructor<SatTimuMessage>();
688 NS_LOG_FUNCTION(
this);
696 NS_LOG_FUNCTION(
this);
701 NS_LOG_FUNCTION(
this);
707 NS_LOG_FUNCTION(
this);
714 NS_LOG_FUNCTION(
this);
721 NS_LOG_FUNCTION(
this);
728 NS_LOG_FUNCTION(
this);
735 NS_LOG_FUNCTION(
this);
737 uint32_t size =
sizeof(uint32_t) +
sizeof(Address);
746 static TypeId tid = TypeId(
"ns3::SatHandoverRecommendationMessage")
748 .AddConstructor<SatHandoverRecommendationMessage>();
755 NS_LOG_FUNCTION(
this);
763 NS_LOG_FUNCTION(
this);
768 NS_LOG_FUNCTION(
this);
774 NS_LOG_FUNCTION(
this);
787 NS_LOG_FUNCTION(
this);
789 uint32_t size = 1 *
sizeof(uint32_t);
798 static TypeId tid = TypeId(
"ns3::SatSliceSubscriptionMessage")
800 .AddConstructor<SatSliceSubscriptionMessage>();
807 NS_LOG_FUNCTION(
this);
815 NS_LOG_FUNCTION(
this);
820 NS_LOG_FUNCTION(
this);
826 NS_LOG_FUNCTION(
this);
851 NS_LOG_FUNCTION(
this);
853 uint32_t size = 1 *
sizeof(uint8_t);
862 static TypeId tid = TypeId(
"ns3::SatLogonMessage")
864 .AddConstructor<SatLogonMessage>();
871 NS_LOG_FUNCTION(
this);
878 NS_LOG_FUNCTION(
this);
883 NS_LOG_FUNCTION(
this);
889 NS_LOG_FUNCTION(
this);
891 uint32_t size = 1 *
sizeof(uint8_t);
900 static TypeId tid = TypeId(
"ns3::SatLogonResponseMessage")
902 .AddConstructor<SatLogonResponseMessage>();
909 NS_LOG_FUNCTION(
this);
916 NS_LOG_FUNCTION(
this);
921 NS_LOG_FUNCTION(
this);
927 NS_LOG_FUNCTION(
this << raChannel);
934 NS_LOG_FUNCTION(
this);
941 NS_LOG_FUNCTION(
this);
943 uint32_t size = 1 *
sizeof(uint8_t);
952 static TypeId tid = TypeId(
"ns3::SatLogoffMessage")
954 .AddConstructor<SatLogoffMessage>();
961 NS_LOG_FUNCTION(
this);
968 NS_LOG_FUNCTION(
this);
973 NS_LOG_FUNCTION(
this);
979 NS_LOG_FUNCTION(
this);
981 uint32_t size = 1 *
sizeof(uint8_t);
991 TypeId(
"ns3::SatNcrMessage").SetParent<
SatControlMessage>().AddConstructor<SatNcrMessage>();
998 NS_LOG_FUNCTION(
this);
1005 NS_LOG_FUNCTION(
this);
1010 NS_LOG_FUNCTION(
this);
1016 NS_LOG_FUNCTION(
this << ncr);
1024 NS_LOG_FUNCTION(
this);
1031 NS_LOG_FUNCTION(
this);
1044 TypeId(
"ns3::SatCmtMessage").SetParent<
SatControlMessage>().AddConstructor<SatCmtMessage>();
1051 NS_LOG_FUNCTION(
this);
1059 m_burstTimeScaling(0),
1060 m_burstTimeCorrection(0),
1061 m_powerCorrection(0),
1062 m_frequencyCorrection(0)
1064 NS_LOG_FUNCTION(
this);
1069 NS_LOG_FUNCTION(
this);
1105 if (burstTimeCorrection > 16256)
1107 NS_FATAL_ERROR(
"Burst Time Correction too high, should be at most 16256, but got "
1108 << burstTimeCorrection);
1110 if (burstTimeCorrection < -16256)
1112 NS_FATAL_ERROR(
"Burst Time Correction too low, should be at least -16256, but got "
1113 << burstTimeCorrection);
1116 if (burstTimeCorrection > 0)
1118 for (uint8_t i = 0; i < 8; i++)
1120 if (burstTimeCorrection > 127)
1122 burstTimeCorrection >>= 1;
1129 for (uint8_t i = 0; i < 8; i++)
1131 if (-1 * burstTimeCorrection > 127)
1133 burstTimeCorrection /= 2;
1169 NS_LOG_FUNCTION(
this);
1188 NS_LOG_COMPONENT_DEFINE(
"SatControlMsgContainer");
1193 m_storeTime(MilliSeconds(300)),
1194 m_deleteOnRead(false)
1196 NS_LOG_FUNCTION(
this);
1202 m_storeTime(storeTime),
1203 m_deleteOnRead(deleteOnRead)
1206 NS_LOG_FUNCTION(
this);
1211 NS_LOG_FUNCTION(
this);
1217 NS_LOG_FUNCTION(
this << ctrlMsg);
1219 NS_LOG_INFO(
"Reserve id (send id): " <<
m_sendId);
1232 NS_LOG_FUNCTION(
this << sendId);
1241 Time now = Simulator::Now();
1243 NS_LOG_INFO(
"Send id: " << sendId <<
", recv id: " <<
m_recvId);
1246 std::pair<CtrlMsgMap_t::iterator, bool> cResult =
1247 m_ctrlMsgs.insert(std::make_pair(recvId, mapValue));
1249 if (cResult.second ==
false)
1251 NS_FATAL_ERROR(
"Control message cannot be added.");
1255 std::pair<CtrlIdMap_t::iterator, bool> idResult =
1256 m_ctrlIdMap.insert(std::make_pair(sendId, recvId));
1257 if (idResult.second ==
false)
1259 NS_FATAL_ERROR(
"ID map entry cannot be added!");
1278 CtrlIdMap_t::iterator idIter =
m_ctrlIdMap.find(sendId);
1281 recvId = idIter->second;
1285 NS_FATAL_ERROR(
"The id: "
1287 <<
" not found from either reserved control messages nor ID map!");
1294 Ptr<SatControlMessage>
1297 NS_LOG_FUNCTION(
this << recvId);
1299 Ptr<SatControlMessage> msg = NULL;
1301 CtrlMsgMap_t::iterator it =
m_ctrlMsgs.find(recvId);
1303 NS_LOG_INFO(
"Receive id: " << recvId);
1307 msg = it->second.second;
1322 NS_LOG_INFO(
"Remove id: " << recvId);
1330 NS_FATAL_ERROR(
"Receive side control message id: "
1331 << recvId <<
" not found from SatControlMsgContainer (m_ctrlMsgs)!");
1340 NS_LOG_FUNCTION(
this);
1342 CtrlMsgMap_t::iterator it =
m_ctrlMsgs.begin();
1350 Time storedMoment = it->second.first;
1351 Time elapsedTime = Simulator::Now() - storedMoment;
1362 NS_LOG_FUNCTION(
this << recvId);
1367 if (it->second == recvId)
The packet for the Automatic Repeat reQuest (ARQ) acknowledgment (ACK) messages.
uint8_t GetFlowId() const
Get the sequence number to be ACK'ed.
virtual uint32_t GetSizeInBytes() const
Get real size of the ACK message, which can be used to e.g.
void SetSequenceNumber(uint8_t sn)
Set the sequence number to be ACK'ed.
void SetFlowId(uint8_t sn)
Set the flow id to be ACK'ed.
static TypeId GetTypeId(void)
methods derived from base classes
uint8_t GetSequenceNumber() const
Get the sequence number to be ACK'ed.
SatArqAckMessage()
Constructor for SatArqAckMessage.
~SatArqAckMessage()
Destructor for SatArqAckMessage.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
This control message is used to give time, power and frequency correction to UTs.
int16_t GetFrequencyCorrection() const
Get the frequency correction.
SatCmtMessage()
Constructor for SatCmtMessage.
uint8_t GetGroupId() const
Get the group ID.
uint8_t m_burstTimeScaling
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetPowerCorrection(uint8_t powerCorrection)
Set the power correction.
~SatCmtMessage()
Destructor for SatCmtMessage.
void SetGroupId(uint8_t groupId)
Set the group ID.
void SetLogonId(uint8_t logonId)
Set the logon ID.
int16_t m_frequencyCorrection
static TypeId GetTypeId(void)
methods derived from base classes
uint8_t GetLogonId() const
Get the logon ID.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
uint8_t m_powerCorrection
int8_t m_burstTimeCorrection
void SetBurstTimeCorrection(int32_t burstTimeCorrection)
Set the burst time correction.
void SetFrequencyCorrection(int16_t frequencyCorrection)
Set the frequency correction.
uint8_t GetPowerCorrection() const
Get the powercorrection.
int16_t GetBurstTimeCorrection() const
Get the burst time correction.
C/N0 (CNI) estimation report message.
void SetCnoEstimate(double cno)
Set C/N0 estimate.
double GetCnoEstimate() const
Get C/N0 estimate.
virtual uint32_t GetSizeInBytes() const
Get real size of the CR message, which can be used to e.g.
SatCnoReportMessage()
Constructor for SatCnoReportMessage.
double m_linkCNo
C/N0 estimate.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
~SatCnoReportMessage()
Destructor for SatCnoReportMessage.
static TypeId GetTypeId(void)
methods derived from base classes
Abstract satellite control message class.
static TypeId GetTypeId(void)
methods derived from base classes
Ptr< SatControlMessage > Read(uint32_t recvId)
Read a control message.
bool m_deleteOnRead
Flag to tell, if message is deleted from container when read (get).
uint32_t Send(uint32_t sendId)
Add a control message.
void CleanUpIdMap(uint32_t recvId)
Do clean up for the Ctrl msg id map.
uint32_t ReserveIdAndStore(Ptr< SatControlMessage > controlMsg)
Reserve an id and store a control message.
~SatControlMsgContainer()
Destructor for SatControlMsgContainer.
std::pair< Time, Ptr< SatControlMessage > > CtrlMsgMapValue_t
SatControlMsgContainer()
Default constructor for SatControlMsgContainer.
Time m_storeTime
Time to store a message in container.
ReservedCtrlMsgMap_t m_reservedCtrlMsgs
void EraseFirst()
Erase first item from container.
~SatControlMsgTag()
Destructor for SatControlMsgTag.
virtual void Serialize(TagBuffer i) const
Serializes information to buffer from this instance of methods.
virtual uint32_t GetSerializedSize(void) const
Get serialized size of methods.
virtual void Print(std::ostream &os) const
Print time stamp of this instance of methods.
static TypeId GetTypeId(void)
methods derived from base classes
SatControlMsgType_t
Definition for different types of control messages.
virtual uint32_t GetMsgId() const
Get message type specific identifier.
void SetMsgType(SatControlMsgType_t type)
Set type of the control message.
SatControlMsgType_t GetMsgType(void) const
Get type of the control message.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
virtual void SetMsgId(uint32_t msgId)
Set message type specific identifier.
virtual void Deserialize(TagBuffer i)
Deserializes information from buffer to this instance of methods.
SatControlMsgTag()
Constructor for SatControlMsgTag.
SatControlMsgType_t m_msgType
The packet for the Capacity Request (CR) messages.
static TypeId GetTypeId(void)
methods derived from base classes
virtual uint32_t GetSizeInBytes() const
Get real size of the CR message, which can be used to e.g.
RequestContainer_t m_requestData
std::map< RequestDescriptor_t, uint16_t > RequestContainer_t
Define type RequestContainer_t.
SatCrMessage()
Constructor for SatCrMessage.
static const uint32_t CONTROL_MSG_COMMON_HEADER_SIZE_IN_BYTES
RCST_status + power headroom = 1 Byte CNI = 1 Byte Least margin transmission mode request = 1 Byte.
uint32_t GetNumCapacityRequestElements() const
The number of capacity request elements.
static const uint32_t CONTROL_MSG_TYPE_VALUE_SIZE_IN_BYTES
Type field of the CR control element.
void SetCnoEstimate(double cno)
Set C/N0 estimate.
const RequestContainer_t GetCapacityRequestContent() const
Get the capacity request content.
std::pair< uint8_t, SatEnums::SatCapacityAllocationCategory_t > RequestDescriptor_t
Define type RequestDescriptor_t.
~SatCrMessage()
Destructor for SatCrMessage.
void AddControlElement(uint8_t rcIndex, SatEnums::SatCapacityAllocationCategory_t cac, uint32_t value)
Add a control element to capacity request.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
bool IsNotEmpty() const
Has the CR non-zero content.
SatCrBlockSize_t m_crBlockSizeType
Control element size is defined by attribute.
double GetCnoEstimate() const
Get C/N0 estimate.
double m_forwardLinkCNo
C/N0 estimate.
SatCapacityAllocationCategory_t
Definition for different types of Capacity Request (CR) messages.
Handover recommendation control message (Tagged by SatControlMsgTag with type value SAT_HR_CTRL_MSG)
~SatHandoverRecommendationMessage()
Destructor for SatRaMessage.
uint32_t m_beamId
Recommended beam ID.
uint32_t GetRecommendedBeamId() const
Get the recommended beam ID.
void SetRecommendedBeamId(uint32_t beamId)
Set recommended beam ID.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
virtual uint32_t GetSizeInBytes() const
Get real size of the random access message, which can be used to e.g.
SatHandoverRecommendationMessage()
Constructor for SatRaMessage.
static TypeId GetTypeId(void)
methods derived from base classes
This control message is used to inform the UT that it has been deconnected by GW (Tagged by SatContro...
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
SatLogoffMessage()
Constructor for SatLogoffMessage.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
~SatLogoffMessage()
Destructor for SatLogoffMessage.
static TypeId GetTypeId(void)
methods derived from base classes
This control message is used to inform the GW that a UT wants to connect (Tagged by SatControlMsgTag ...
~SatLogonMessage()
Destructor for SatLogonMessage.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
static TypeId GetTypeId(void)
methods derived from base classes
SatLogonMessage()
Constructor for SatLogonMessage.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
This control message is used to inform the UT of a connection success (Tagged by SatControlMsgTag wit...
uint32_t GetRaChannel() const
Get the RA channel to talk into.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetRaChannel(uint32_t raChannel)
Set the RA channel to talk into.
~SatLogonResponseMessage()
Destructor for SatLogonResponseMessage.
static TypeId GetTypeId(void)
methods derived from base classes
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
SatLogonResponseMessage()
Constructor for SatLogonResponseMessage.
This control message is used to broadcast NCR date to UTs.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetNcrDate(uint64_t ncr)
Set the NCR date (ticks 27MHz).
uint16_t m_ncrDateExtension
~SatNcrMessage()
Destructor for SatNcrMessage.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
SatNcrMessage()
Constructor for SatNcrMessage.
static TypeId GetTypeId(void)
methods derived from base classes
uint64_t GetNcrDate() const
Get the NCR date (ticks 27MHz).
Random access load control message (Tagged by SatControlMsgTag with type value SAT_RA_CTRL_MSG)
uint8_t GetAllocationChannelId() const
Get allocation chanel ID.
void SetBackoffProbability(uint16_t backoffProbability)
Set backoff probability.
uint16_t m_backoffProbability
Backoff probability.
static TypeId GetTypeId(void)
methods derived from base classes
SatRaMessage()
Constructor for SatRaMessage.
uint16_t GetBackoffProbability() const
Get backoff probability.
void SetAllocationChannelId(uint8_t allocationChannel)
Set allocation channel ID.
uint16_t GetBackoffTime() const
Get backoff time.
uint8_t m_allocationChannelId
Allocation channel ID.
static const uint32_t RA_CONTROL_MSG_HEADER_SIZE_IN_BYTES
Common header of the random access element.
virtual uint32_t GetSizeInBytes() const
Get real size of the random access message, which can be used to e.g.
void SetBackoffTime(uint16_t backoffTime)
Set backoff time.
uint16_t m_backoffTime
Backoff time.
~SatRaMessage()
Destructor for SatRaMessage.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
This control message is used to inform the UT it has to subscribe to a new slice.
static TypeId GetTypeId(void)
methods derived from base classes
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
Mac48Address m_address
Address associated to this slice.
uint32_t GetSliceId() const
Get the new slice to subscribe.
void SetAddress(Mac48Address address)
Set the address associated to this slice.
Mac48Address GetAddress() const
Get the ddress associated to this slice.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
uint8_t m_sliceId
New slice to subscribe.
~SatSliceSubscriptionMessage()
Destructor for SatRaMessage.
SatSliceSubscriptionMessage()
Constructor for SatRaMessage.
void SetSliceId(uint8_t sliceId)
Set the new slice to subscribe.
The packet for the Terminal Burst Time Plan (TBTP) messages.
SatTbtpMessage()
Default constructor for SatTbtpHeader.
static const uint32_t m_tbtpFrameBodySizeInBytes
Size of the frame body.
uint32_t m_superframeCounter
~SatTbtpMessage()
Destructor for SatTbtpHeader.
void Dump() const
Dump all the contents of the TBTP.
RaChannelMap_t m_raChannels
void SetRaChannel(uint32_t raChannel, uint8_t frameId, uint16_t timeSlotCount)
Set a RA time slot information.
DaTimeSlotMap_t m_daTimeSlots
static TypeId GetTypeId(void)
methods derived from base classes
uint8_t m_assignmentFormat
const DaTimeSlotInfoItem_t & GetDaTimeslots(Address utId)
Get the information of the DA time slots.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
std::pair< uint8_t, DaTimeSlotConfContainer_t > DaTimeSlotInfoItem_t
Item for DA time slot information.
std::set< uint8_t > m_frameIds
static const uint32_t m_tbtpBodySizeInBytes
Size of message body without frame info and slot assignment info.
uint8_t m_superframeSeqId
uint32_t GetTimeSlotInfoSizeInBytes() const
Get size of the time slot in bytes.
const RaChannelInfoContainer_t GetRaChannels() const
Get the information of the RA channels.
virtual uint32_t GetSizeInBytes() const
Get real size of the TBTP message, which can be used to e.g.
std::set< uint8_t > RaChannelInfoContainer_t
Container for RA channel information.
const DaTimeSlotInfoItem_t m_emptyDaSlotContainer
Empty DA slot container to be returned if there are not DA time slots.
void SetDaTimeslot(Mac48Address utId, uint8_t frameId, Ptr< SatTimeSlotConf > conf)
Set a DA time slot information.
TIM unicast control message (Tagged by SatControlMsgTag with type value SAT_TIMU_CTRL_MSG)
void SetGwAddress(Address address)
virtual uint32_t GetSizeInBytes() const
Get real size of the random access message, which can be used to e.g.
Address GetGwAddress() const
static TypeId GetTypeId(void)
methods derived from base classes
uint32_t m_beamId
Allocated beam ID.
SatTimuMessage()
Constructor for SatRaMessage.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetAllocatedBeamId(uint32_t beamId)
Set allocated beam ID.
Address m_gwAddress
Mac address of the new gateway.
uint32_t GetAllocatedBeamId() const
Get the allocated beam ID.
~SatTimuMessage()
Destructor for SatRaMessage.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.