satellite-control-message.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Magister Solutions Ltd
4  * Copyright (c) 2018 CNES
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Author: Sami Rantanen <sami.rantanen@magister.fi>
20  * Author: Mathias Ettinger <mettinger@toulouse.viveris.com>
21  */
22 
23 #ifndef SATELLITE_CONTROL_MESSAGE_H
24 #define SATELLITE_CONTROL_MESSAGE_H
25 
26 #include "satellite-enums.h"
27 #include "satellite-frame-conf.h"
28 #include "satellite-mac-tag.h"
29 
30 #include <ns3/header.h>
31 #include <ns3/mac48-address.h>
32 #include <ns3/nstime.h>
33 #include <ns3/object.h>
34 #include <ns3/simulator.h>
35 
36 #include <map>
37 #include <set>
38 #include <vector>
39 
40 namespace ns3
41 {
42 
48 class SatControlMsgTag : public Tag
49 {
50  public:
54  typedef enum
55  {
71 
76 
81 
88 
93  SatControlMsgType_t GetMsgType(void) const;
94 
99  virtual void SetMsgId(uint32_t msgId);
100 
105  virtual uint32_t GetMsgId() const;
106 
110  static TypeId GetTypeId(void);
111 
116  virtual TypeId GetInstanceTypeId(void) const;
117 
122  virtual uint32_t GetSerializedSize(void) const;
123 
128  virtual void Serialize(TagBuffer i) const;
129 
134  virtual void Deserialize(TagBuffer i);
135 
140  virtual void Print(std::ostream& os) const;
141 
142  private:
144  uint32_t m_msgId;
145 };
146 
153 class SatControlMessage : public Object
154 {
155  public:
159  static TypeId GetTypeId(void);
160 
165  {
166  }
167 
172  {
173  }
174 
181  virtual uint32_t GetSizeInBytes() const = 0;
182 
189 
190  private:
191 };
192 
203 {
204  public:
208  typedef std::vector<Ptr<SatTimeSlotConf>> DaTimeSlotConfContainer_t;
209 
216  typedef std::pair<uint8_t, DaTimeSlotConfContainer_t> DaTimeSlotInfoItem_t;
217 
223  typedef std::set<uint8_t> RaChannelInfoContainer_t;
224 
237  static const uint32_t m_tbtpBodySizeInBytes = 6;
238 
248  static const uint32_t m_tbtpFrameBodySizeInBytes = 5;
249 
253  static TypeId GetTypeId(void);
254 
259  virtual TypeId GetInstanceTypeId(void) const;
260 
264  SatTbtpMessage();
265 
270  SatTbtpMessage(uint8_t seqId);
271 
275  ~SatTbtpMessage();
276 
283  {
285  }
286 
292  inline void SetSuperframeCounter(uint32_t counter)
293  {
294  m_superframeCounter = counter;
295  }
296 
302  inline uint8_t GetSuperframeSeqId()
303  {
304  return m_superframeSeqId;
305  }
306 
312  inline uint32_t GetSuperframeCounter()
313  {
314  return m_superframeCounter;
315  }
316 
322  inline uint32_t GetFrameInfoSize() const
323  {
325  }
326 
333  const DaTimeSlotInfoItem_t& GetDaTimeslots(Address utId);
334 
342  void SetDaTimeslot(Mac48Address utId, uint8_t frameId, Ptr<SatTimeSlotConf> conf);
343 
350 
358  void SetRaChannel(uint32_t raChannel, uint8_t frameId, uint16_t timeSlotCount);
359 
365  virtual uint32_t GetSizeInBytes() const;
366 
372  uint32_t GetTimeSlotInfoSizeInBytes() const;
373 
377  void Dump() const;
378 
379  private:
380  typedef std::map<uint8_t, uint16_t> RaChannelMap_t;
381  typedef std::map<Address, DaTimeSlotInfoItem_t> DaTimeSlotMap_t;
382 
388  std::set<uint8_t> m_frameIds;
389 
394 };
395 
405 {
406  public:
407  typedef enum
408  {
412 
416  SatCrMessage();
417 
421  ~SatCrMessage();
422 
426  static TypeId GetTypeId(void);
427 
432  virtual TypeId GetInstanceTypeId(void) const;
433 
437  typedef std::pair<uint8_t, SatEnums::SatCapacityAllocationCategory_t> RequestDescriptor_t;
438 
442  typedef std::map<RequestDescriptor_t, uint16_t> RequestContainer_t;
443 
449  {
451  }
452 
456  void AddControlElement(uint8_t rcIndex,
458  uint32_t value);
459 
465 
470  uint32_t GetNumCapacityRequestElements() const;
471 
476  double GetCnoEstimate() const;
477 
482  void SetCnoEstimate(double cno);
483 
488  virtual uint32_t GetSizeInBytes() const;
489 
494  bool IsNotEmpty() const;
495 
496  private:
498 
506 
511 
515  static const uint32_t CONTROL_MSG_TYPE_VALUE_SIZE_IN_BYTES = 1;
516 
522  static const uint32_t CONTROL_MSG_COMMON_HEADER_SIZE_IN_BYTES = 3;
523 };
524 
533 {
534  public:
539 
544 
548  static TypeId GetTypeId(void);
549 
554  virtual TypeId GetInstanceTypeId(void) const;
555 
561  {
563  }
564 
569  void SetSequenceNumber(uint8_t sn);
570 
575  uint8_t GetSequenceNumber() const;
576 
581  void SetFlowId(uint8_t sn);
582 
587  uint8_t GetFlowId() const;
588 
593  virtual uint32_t GetSizeInBytes() const;
594 
595  private:
597  uint8_t m_flowId;
598 };
599 
609 {
610  public:
615 
620 
624  static TypeId GetTypeId(void);
625 
630  virtual TypeId GetInstanceTypeId(void) const;
631 
638  {
640  }
641 
646  double GetCnoEstimate() const;
647 
652  void SetCnoEstimate(double cno);
653 
658  virtual uint32_t GetSizeInBytes() const;
659 
660  private:
664  double m_linkCNo;
665 };
666 
674 {
675  public:
679  SatRaMessage();
680 
684  ~SatRaMessage();
685 
689  static TypeId GetTypeId(void);
690 
695  virtual TypeId GetInstanceTypeId(void) const;
696 
703  {
705  }
706 
711  uint16_t GetBackoffProbability() const;
712 
717  void SetBackoffProbability(uint16_t backoffProbability);
718 
723  uint16_t GetBackoffTime() const;
724 
729  void SetBackoffTime(uint16_t backoffTime);
730 
735  uint8_t GetAllocationChannelId() const;
736 
741  void SetAllocationChannelId(uint8_t allocationChannel);
742 
747  virtual uint32_t GetSizeInBytes() const;
748 
749  private:
753  static const uint32_t RA_CONTROL_MSG_HEADER_SIZE_IN_BYTES = 5;
754 
759 
764 
768  uint16_t m_backoffTime;
769 };
770 
778 {
779  public:
783  SatTimuMessage();
784 
788  ~SatTimuMessage();
789 
793  static TypeId GetTypeId(void);
794 
799  virtual TypeId GetInstanceTypeId(void) const;
800 
807  {
809  }
810 
815  uint32_t GetAllocatedBeamId() const;
816 
821  void SetAllocatedBeamId(uint32_t beamId);
822 
823  Address GetGwAddress() const;
824 
825  void SetGwAddress(Address address);
826 
831  virtual uint32_t GetSizeInBytes() const;
832 
833  private:
837  uint32_t m_beamId;
838 
842  Address m_gwAddress;
843 };
844 
852 {
853  public:
858 
863 
867  static TypeId GetTypeId(void);
868 
873  virtual TypeId GetInstanceTypeId(void) const;
874 
881  {
883  }
884 
889  uint32_t GetRecommendedBeamId() const;
890 
895  void SetRecommendedBeamId(uint32_t beamId);
896 
901  virtual uint32_t GetSizeInBytes() const;
902 
903  private:
907  uint32_t m_beamId;
908 };
909 
916 {
917  public:
922 
927 
931  static TypeId GetTypeId(void);
932 
937  virtual TypeId GetInstanceTypeId(void) const;
938 
945  {
947  }
948 
953  uint32_t GetSliceId() const;
954 
959  void SetSliceId(uint8_t sliceId);
960 
965  Mac48Address GetAddress() const;
966 
971  void SetAddress(Mac48Address address);
972 
977  virtual uint32_t GetSizeInBytes() const;
978 
979  private:
983  uint8_t m_sliceId;
984 
988  Mac48Address m_address;
989 };
990 
997 {
998  public:
1002  SatLogonMessage();
1003 
1007  ~SatLogonMessage();
1008 
1012  static TypeId GetTypeId(void);
1013 
1018  virtual TypeId GetInstanceTypeId(void) const;
1019 
1026  {
1028  }
1029 
1034  virtual uint32_t GetSizeInBytes() const;
1035 
1036  private:
1037 };
1038 
1045 {
1046  public:
1051 
1056 
1060  static TypeId GetTypeId(void);
1061 
1066  virtual TypeId GetInstanceTypeId(void) const;
1067 
1074  {
1076  }
1077 
1082  uint32_t GetRaChannel() const;
1083 
1088  void SetRaChannel(uint32_t raChannel);
1089 
1094  virtual uint32_t GetSizeInBytes() const;
1095 
1096  private:
1097  Time m_delay;
1098  uint32_t m_raChannel;
1099 };
1100 
1107 {
1108  public:
1112  SatLogoffMessage();
1113 
1118 
1122  static TypeId GetTypeId(void);
1123 
1128  virtual TypeId GetInstanceTypeId(void) const;
1129 
1136  {
1138  }
1139 
1144  virtual uint32_t GetSizeInBytes() const;
1145 
1146  private:
1147 };
1148 
1154 {
1155  public:
1159  SatNcrMessage();
1160 
1164  ~SatNcrMessage();
1165 
1169  static TypeId GetTypeId(void);
1170 
1175  virtual TypeId GetInstanceTypeId(void) const;
1176 
1183  {
1185  }
1186 
1191  uint64_t GetNcrDate() const;
1192 
1197  void SetNcrDate(uint64_t ncr);
1198 
1203  virtual uint32_t GetSizeInBytes() const;
1204 
1205  private:
1206  uint64_t m_ncrDateBase;
1208 };
1209 
1216 {
1217  public:
1221  SatCmtMessage();
1222 
1226  ~SatCmtMessage();
1227 
1231  static TypeId GetTypeId(void);
1232 
1237  virtual TypeId GetInstanceTypeId(void) const;
1238 
1245  {
1247  }
1248 
1253  uint8_t GetGroupId() const;
1254 
1259  void SetGroupId(uint8_t groupId);
1260 
1265  uint8_t GetLogonId() const;
1266 
1271  void SetLogonId(uint8_t logonId);
1272 
1277  int16_t GetBurstTimeCorrection() const;
1278 
1283  void SetBurstTimeCorrection(int32_t burstTimeCorrection);
1284 
1291  uint8_t GetPowerCorrection() const;
1292 
1299  void SetPowerCorrection(uint8_t powerCorrection);
1300 
1305  int16_t GetFrequencyCorrection() const;
1306 
1311  void SetFrequencyCorrection(int16_t frequencyCorrection);
1312 
1317  virtual uint32_t GetSizeInBytes() const;
1318 
1319  private:
1320  uint8_t m_groupId;
1321  uint8_t m_logonId;
1326 };
1327 
1346 class SatControlMsgContainer : public SimpleRefCount<SatControlMsgContainer>
1347 {
1348  public:
1353 
1357  SatControlMsgContainer(Time m_storeTime, bool deleteOnRead);
1358 
1363 
1370  uint32_t ReserveIdAndStore(Ptr<SatControlMessage> controlMsg);
1371 
1378  uint32_t Send(uint32_t sendId);
1379 
1386  Ptr<SatControlMessage> Read(uint32_t recvId);
1387 
1388  private:
1393  void EraseFirst();
1394 
1400  void CleanUpIdMap(uint32_t recvId);
1401 
1402  typedef std::map<uint32_t, Ptr<SatControlMessage>> ReservedCtrlMsgMap_t;
1403  typedef std::map<uint32_t, uint32_t> CtrlIdMap_t;
1404  typedef std::pair<Time, Ptr<SatControlMessage>> CtrlMsgMapValue_t;
1405  typedef std::map<uint32_t, CtrlMsgMapValue_t> CtrlMsgMap_t;
1406 
1410  uint32_t m_sendId;
1411  uint32_t m_recvId;
1413 
1421 
1426 };
1427 
1428 } // namespace ns3
1429 
1430 #endif // SATELLITE_CONTROL_MESSAGE_H
The packet for the Automatic Repeat reQuest (ARQ) acknowledgment (ACK) messages.
uint8_t GetFlowId() const
Get the sequence number to be ACK'ed.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
SatCmtMessage()
Constructor for SatCmtMessage.
uint8_t GetGroupId() const
Get the group ID.
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.
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.
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
virtual uint32_t GetSizeInBytes() const
Get real size of the CR message, which can be used to e.g.
SatCnoReportMessage()
Constructor for SatCnoReportMessage.
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.
virtual uint32_t GetSizeInBytes() const =0
Get real size of the control message.
static TypeId GetTypeId(void)
methods derived from base classes
SatControlMessage()
Default constructor for SatControlMessage.
virtual SatControlMsgTag::SatControlMsgType_t GetMsgType() const =0
Get message specific type.
The container to store control messages.
Ptr< SatControlMessage > Read(uint32_t recvId)
Read a control message.
std::map< uint32_t, Ptr< SatControlMessage > > ReservedCtrlMsgMap_t
std::map< uint32_t, CtrlMsgMapValue_t > CtrlMsgMap_t
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
std::map< uint32_t, uint32_t > CtrlIdMap_t
SatControlMsgContainer()
Default constructor for SatControlMsgContainer.
Time m_storeTime
Time to store a message in container.
void EraseFirst()
Erase first item from container.
This class implements a tag that is used to identify control messages (packages).
~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.
@ SAT_LOGON_RESPONSE_CTRL_MSG
SAT_LOGON_RESPONSE_CTRL_MSG.
@ SAT_SLICE_CTRL_MSG
SAT_SLICE_CTRL_MSG.
@ SAT_TIMU_CTRL_MSG
SAT_TIMU_CTRL_MSG.
@ SAT_LOGOFF_CTRL_MSG
SAT_LOGOFF CTRL_MSG.
@ SAT_NON_CTRL_MSG
SAT_NON_CTRL_MSG.
@ SAT_LOGON_CTRL_MSG
SAT_LOGON_CTRL_MSG.
@ SAT_CMT_CTRL_MSG
SAT_CMT_CTRL_MSG.
@ SAT_TBTP_CTRL_MSG
SAT_TBTP_CTRL_MSG.
@ SAT_NCR_CTRL_MSG
SAT_NCR_CTRL_MSG.
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.
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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 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
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
This control message is used to inform the GW that a UT wants to connect (Tagged by SatControlMsgTag ...
~SatLogonMessage()
Destructor for SatLogonMessage.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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...
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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).
~SatNcrMessage()
Destructor for SatNcrMessage.
virtual uint32_t GetSizeInBytes() const
Get real size of the message.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type 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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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.
std::map< uint8_t, uint16_t > RaChannelMap_t
static const uint32_t m_tbtpFrameBodySizeInBytes
Size of the frame body.
~SatTbtpMessage()
Destructor for SatTbtpHeader.
void Dump() const
Dump all the contents of the TBTP.
void SetRaChannel(uint32_t raChannel, uint8_t frameId, uint16_t timeSlotCount)
Set a RA time slot information.
uint32_t GetFrameInfoSize() const
Get size of frame info size in this TBTP message.
uint32_t GetSuperframeCounter()
Get counter of the super frame in this TBTP message.
static TypeId GetTypeId(void)
methods derived from base classes
void SetSuperframeCounter(uint32_t counter)
Set counter of the super frame in this TBTP message.
std::vector< Ptr< SatTimeSlotConf > > DaTimeSlotConfContainer_t
Container for time slot configurations in time slot map item DaTimeSlotMapItem_t.
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 GetSuperframeSeqId()
Get sequence id of the super frame in this TBTP message.
uint32_t GetTimeSlotInfoSizeInBytes() const
Get size of the time slot in bytes.
std::map< Address, DaTimeSlotInfoItem_t > DaTimeSlotMap_t
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
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.
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.
SatControlMsgTag::SatControlMsgType_t GetMsgType() const
Get type of the message.
~SatTimuMessage()
Destructor for SatRaMessage.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.