27 #include <ns3/address-utils.h>
30 #include <ns3/uinteger.h>
37 NS_LOG_COMPONENT_DEFINE(
"SatCtrlMessage");
42 NS_OBJECT_ENSURE_REGISTERED(SatControlMsgTag);
45 : m_msgType(SAT_NON_CTRL_MSG),
48 NS_LOG_FUNCTION(
this);
53 NS_LOG_FUNCTION(
this);
60 TypeId(
"ns3::SatControlMsgTag").SetParent<Tag>().AddConstructor<SatControlMsgTag>();
67 NS_LOG_FUNCTION(
this);
75 NS_LOG_FUNCTION(
this << type);
82 NS_LOG_FUNCTION(
this);
89 NS_LOG_FUNCTION(
this);
97 NS_LOG_FUNCTION(
this << &i);
105 NS_LOG_FUNCTION(
this << &i);
113 NS_LOG_FUNCTION(
this << &os);
120 NS_LOG_FUNCTION(
this <<
m_msgId);
127 NS_LOG_FUNCTION(
this);
139 static TypeId tid = TypeId(
"ns3::SatControlMessage").SetParent<Object>();
148 : m_superframeCounter(0),
149 m_superframeSeqId(0),
150 m_assignmentFormat(0)
152 NS_LOG_FUNCTION(
this);
156 : m_superframeCounter(0),
157 m_superframeSeqId(seqId),
158 m_assignmentFormat(0)
160 NS_LOG_FUNCTION(
this << (uint32_t)seqId);
165 NS_LOG_FUNCTION(
this);
174 static TypeId tid = TypeId(
"ns3::SatTbtpMessage")
176 .AddConstructor<SatTbtpMessage>()
177 .AddAttribute(
"AssigmentFormat",
178 "Assignment format of assignment IDs in TBTP.)",
181 MakeUintegerChecker<uint8_t>());
188 NS_LOG_FUNCTION(
this);
196 NS_LOG_FUNCTION(
this << utId);
198 DaTimeSlotMap_t::const_iterator it =
m_daTimeSlots.find(utId);
211 NS_LOG_FUNCTION(
this << utId << frameId << conf);
220 std::pair<DaTimeSlotMap_t::iterator, bool> result =
230 NS_FATAL_ERROR(
"Cannot insert slot to container!!!");
235 it->second.first = frameId;
236 it->second.second.push_back(conf);
245 NS_LOG_FUNCTION(
this);
251 channels.insert(it->second);
260 NS_LOG_FUNCTION(
this << raChannel << (uint32_t)frameId << timeSlotCount);
263 RaChannelMap_t::iterator it =
m_raChannels.find(raChannel);
269 std::pair<RaChannelMap_t::iterator, bool> result =
270 m_raChannels.insert(std::make_pair(raChannel, timeSlotCount));
272 if (result.second ==
false)
274 NS_FATAL_ERROR(
"RA channel insertion failed!!!");
279 NS_FATAL_ERROR(
"RA channel already exists in the container!!!");
289 uint32_t assignmentIdSizeInBytes = 0;
295 assignmentIdSizeInBytes = 6;
300 assignmentIdSizeInBytes = 1;
305 assignmentIdSizeInBytes = 2;
310 assignmentIdSizeInBytes = 3;
315 assignmentIdSizeInBytes = 2;
320 assignmentIdSizeInBytes = 3;
325 assignmentIdSizeInBytes = 4;
333 return assignmentIdSizeInBytes;
339 NS_LOG_FUNCTION(
this);
350 sizeInBytes += (it->second.second.size() * assignmentIdSizeInBytes);
356 sizeInBytes += (it->second * assignmentIdSizeInBytes);
372 std::cout <<
"UT: " << mit->first <<
": ";
373 std::cout <<
"Frame ID: " << mit->second.first <<
": ";
374 std::cout << mit->second.second.size() <<
" ";
375 std::cout << std::endl;
384 static TypeId tid = TypeId(
"ns3::SatCrMessage")
386 .AddConstructor<SatCrMessage>()
387 .AddAttribute(
"CrBlockType",
388 "Capacity request control block size type",
390 MakeEnumAccessor<SatCrMessage::SatCrBlockSize_t>(
402 NS_LOG_FUNCTION(
this);
409 m_forwardLinkCNo(NAN)
411 NS_LOG_FUNCTION(
this);
416 NS_LOG_FUNCTION(
this);
424 NS_LOG_FUNCTION(
this << (uint32_t)rcIndex << cac << value);
445 NS_LOG_FUNCTION(
this);
452 NS_LOG_FUNCTION(
this << cno);
459 NS_LOG_FUNCTION(
this);
483 static TypeId tid = TypeId(
"ns3::SatCnoReportMessage")
485 .AddConstructor<SatCnoReportMessage>();
492 NS_LOG_FUNCTION(
this);
500 NS_LOG_FUNCTION(
this);
505 NS_LOG_FUNCTION(
this);
511 NS_LOG_FUNCTION(
this);
518 NS_LOG_FUNCTION(
this << cno);
525 NS_LOG_FUNCTION(
this);
535 TypeId(
"ns3::SatRaMessage").SetParent<
SatControlMessage>().AddConstructor<SatRaMessage>();
542 NS_LOG_FUNCTION(
this);
548 : m_allocationChannelId(0),
549 m_backoffProbability(0),
552 NS_LOG_FUNCTION(
this);
557 NS_LOG_FUNCTION(
this);
563 NS_LOG_FUNCTION(
this << (uint32_t)allocationChannelId);
577 NS_LOG_FUNCTION(
this << backoffProbability);
585 NS_LOG_FUNCTION(
this << backoffTime);
605 NS_LOG_FUNCTION(
this);
617 static TypeId tid = TypeId(
"ns3::SatArqAckMessage")
619 .AddConstructor<SatArqAckMessage>();
626 NS_LOG_FUNCTION(
this);
632 : m_sequenceNumber(0),
635 NS_LOG_FUNCTION(
this);
640 NS_LOG_FUNCTION(
this);
646 NS_LOG_FUNCTION(
this);
659 NS_LOG_FUNCTION(
this);
672 NS_LOG_FUNCTION(
this);
674 uint32_t size = 2 *
sizeof(uint8_t);
683 static TypeId tid = TypeId(
"ns3::SatTimuMessage")
685 .AddConstructor<SatTimuMessage>();
692 NS_LOG_FUNCTION(
this);
700 NS_LOG_FUNCTION(
this);
705 NS_LOG_FUNCTION(
this);
711 NS_LOG_FUNCTION(
this);
718 NS_LOG_FUNCTION(
this);
725 NS_LOG_FUNCTION(
this);
732 NS_LOG_FUNCTION(
this);
739 NS_LOG_FUNCTION(
this);
746 NS_LOG_FUNCTION(
this);
753 NS_LOG_FUNCTION(
this);
760 NS_LOG_FUNCTION(
this);
767 NS_LOG_FUNCTION(
this);
769 uint32_t size =
sizeof(uint32_t) + 2 *
sizeof(Address);
778 static TypeId tid = TypeId(
"ns3::SatHandoverRecommendationMessage")
780 .AddConstructor<SatHandoverRecommendationMessage>();
787 NS_LOG_FUNCTION(
this);
796 NS_LOG_FUNCTION(
this);
801 NS_LOG_FUNCTION(
this);
807 NS_LOG_FUNCTION(
this << beamId);
820 NS_LOG_FUNCTION(
this << satId);
833 NS_LOG_FUNCTION(
this);
835 uint32_t size = 2 *
sizeof(uint32_t);
844 static TypeId tid = TypeId(
"ns3::SatSliceSubscriptionMessage")
846 .AddConstructor<SatSliceSubscriptionMessage>();
853 NS_LOG_FUNCTION(
this);
861 NS_LOG_FUNCTION(
this);
866 NS_LOG_FUNCTION(
this);
872 NS_LOG_FUNCTION(
this);
897 NS_LOG_FUNCTION(
this);
899 uint32_t size = 1 *
sizeof(uint8_t);
908 static TypeId tid = TypeId(
"ns3::SatLogonMessage")
910 .AddConstructor<SatLogonMessage>();
917 NS_LOG_FUNCTION(
this);
924 NS_LOG_FUNCTION(
this);
929 NS_LOG_FUNCTION(
this);
935 NS_LOG_FUNCTION(
this);
937 uint32_t size = 1 *
sizeof(uint8_t);
946 static TypeId tid = TypeId(
"ns3::SatLogonResponseMessage")
948 .AddConstructor<SatLogonResponseMessage>();
955 NS_LOG_FUNCTION(
this);
962 NS_LOG_FUNCTION(
this);
967 NS_LOG_FUNCTION(
this);
973 NS_LOG_FUNCTION(
this << raChannel);
980 NS_LOG_FUNCTION(
this);
987 NS_LOG_FUNCTION(
this);
989 uint32_t size = 1 *
sizeof(uint8_t);
998 static TypeId tid = TypeId(
"ns3::SatLogoffMessage")
1000 .AddConstructor<SatLogoffMessage>();
1007 NS_LOG_FUNCTION(
this);
1014 NS_LOG_FUNCTION(
this);
1019 NS_LOG_FUNCTION(
this);
1025 NS_LOG_FUNCTION(
this);
1027 uint32_t size = 1 *
sizeof(uint8_t);
1037 TypeId(
"ns3::SatNcrMessage").SetParent<
SatControlMessage>().AddConstructor<SatNcrMessage>();
1044 NS_LOG_FUNCTION(
this);
1051 NS_LOG_FUNCTION(
this);
1056 NS_LOG_FUNCTION(
this);
1062 NS_LOG_FUNCTION(
this << ncr);
1070 NS_LOG_FUNCTION(
this);
1077 NS_LOG_FUNCTION(
this);
1090 TypeId(
"ns3::SatCmtMessage").SetParent<
SatControlMessage>().AddConstructor<SatCmtMessage>();
1097 NS_LOG_FUNCTION(
this);
1105 m_burstTimeScaling(0),
1106 m_burstTimeCorrection(0),
1107 m_powerCorrection(0),
1108 m_frequencyCorrection(0)
1110 NS_LOG_FUNCTION(
this);
1115 NS_LOG_FUNCTION(
this);
1151 if (burstTimeCorrection > 16256)
1153 NS_FATAL_ERROR(
"Burst Time Correction too high, should be at most 16256, but got "
1154 << burstTimeCorrection);
1156 if (burstTimeCorrection < -16256)
1158 NS_FATAL_ERROR(
"Burst Time Correction too low, should be at least -16256, but got "
1159 << burstTimeCorrection);
1162 if (burstTimeCorrection > 0)
1164 for (uint8_t i = 0; i < 8; i++)
1166 if (burstTimeCorrection > 127)
1168 burstTimeCorrection >>= 1;
1175 for (uint8_t i = 0; i < 8; i++)
1177 if (-1 * burstTimeCorrection > 127)
1179 burstTimeCorrection /= 2;
1215 NS_LOG_FUNCTION(
this);
1234 NS_LOG_COMPONENT_DEFINE(
"SatControlMsgContainer");
1239 m_storeTime(MilliSeconds(300)),
1240 m_deleteOnRead(false)
1242 NS_LOG_FUNCTION(
this);
1248 m_storeTime(storeTime),
1249 m_deleteOnRead(deleteOnRead)
1252 NS_LOG_FUNCTION(
this);
1257 NS_LOG_FUNCTION(
this);
1263 NS_LOG_FUNCTION(
this << ctrlMsg);
1265 NS_LOG_INFO(
"Reserve id (send id): " <<
m_sendId);
1278 NS_LOG_FUNCTION(
this << sendId);
1287 Time now = Simulator::Now();
1289 NS_LOG_INFO(
"Send id: " << sendId <<
", recv id: " <<
m_recvId);
1292 std::pair<CtrlMsgMap_t::iterator, bool> cResult =
1293 m_ctrlMsgs.insert(std::make_pair(recvId, mapValue));
1295 if (cResult.second ==
false)
1297 NS_FATAL_ERROR(
"Control message cannot be added.");
1301 std::pair<CtrlIdMap_t::iterator, bool> idResult =
1302 m_ctrlIdMap.insert(std::make_pair(sendId, recvId));
1303 if (idResult.second ==
false)
1305 NS_FATAL_ERROR(
"ID map entry cannot be added!");
1324 CtrlIdMap_t::iterator idIter =
m_ctrlIdMap.find(sendId);
1327 recvId = idIter->second;
1331 NS_FATAL_ERROR(
"The id: "
1333 <<
" not found from either reserved control messages nor ID map!");
1340 Ptr<SatControlMessage>
1343 NS_LOG_FUNCTION(
this << recvId);
1345 Ptr<SatControlMessage> msg = NULL;
1347 CtrlMsgMap_t::iterator it =
m_ctrlMsgs.find(recvId);
1349 NS_LOG_INFO(
"Receive id: " << recvId);
1353 msg = it->second.second;
1368 NS_LOG_INFO(
"Remove id: " << recvId);
1376 NS_FATAL_ERROR(
"Receive side control message id: "
1377 << recvId <<
" not found from SatControlMsgContainer (m_ctrlMsgs)!");
1386 NS_LOG_FUNCTION(
this);
1388 CtrlMsgMap_t::iterator it =
m_ctrlMsgs.begin();
1396 Time storedMoment = it->second.first;
1397 Time elapsedTime = Simulator::Now() - storedMoment;
1408 NS_LOG_FUNCTION(
this << recvId);
1413 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_satId
Recommended sat ID.
uint32_t m_beamId
Recommended beam ID.
uint32_t GetRecommendedBeamId() const
Get the recommended beam ID.
uint32_t GetRecommendedSatId() const
Get the recommended sat ID.
void SetRecommendedBeamId(uint32_t beamId)
Set recommended beam ID.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetRecommendedSatId(uint32_t beamId)
Set recommended sat ID.
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)
Address GetSatAddress() const
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
Address m_satAddress
Satellite mac address of the new gateway.
uint32_t m_beamId
Allocated beam ID.
SatTimuMessage()
Constructor for SatRaMessage.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
void SetAllocatedSatId(uint32_t beamId)
Set allocated sat ID.
void SetAllocatedBeamId(uint32_t beamId)
Set allocated beam ID.
Address m_gwAddress
Mac address of the new gateway.
uint32_t GetAllocatedSatId() const
Get the allocated sat ID.
uint32_t GetAllocatedBeamId() const
Get the allocated beam ID.
uint32_t m_satId
Allocated sat ID.
void SetSatAddress(Address address)
~SatTimuMessage()
Destructor for SatRaMessage.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.