A Discrete-Event Network Simulator
API
mac-messages.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008,2009 INRIA, UDcast
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
20  * <amine.ismail@UDcast.com>
21  */
22 
23 #include "mac-messages.h"
24 #include "ns3/address-utils.h"
25 #include "ns3/uinteger.h"
26 #include "ns3/log.h"
27 #include "wimax-tlv.h"
28 
29 namespace ns3 {
30 
31 NS_LOG_COMPONENT_DEFINE ("MACMESSAGES");
32 
33 NS_OBJECT_ENSURE_REGISTERED (ManagementMessageType);
34 
36  : m_type (~0)
37 {
38 }
39 
41  : m_type (type)
42 {
43 }
44 
46 {
47 }
48 
49 void
51 {
52  m_type = type;
53 }
54 
55 uint8_t
57 {
58  return m_type;
59 }
60 
61 std::string
63 {
64  return "Management Message Type";
65 }
66 
67 TypeId
69 {
70  static TypeId tid =
71  TypeId ("ns3::ManagementMessageType")
72  .SetParent<Header> ()
73  .SetGroupName("Wimax")
74  .AddConstructor<ManagementMessageType> ()
75  ;
76  return tid;
77 }
78 
79 TypeId
81 {
82  return GetTypeId ();
83 }
84 
85 void
86 ManagementMessageType::Print (std::ostream &os) const
87 {
88  os << " management message type = " << (uint32_t) m_type;
89 }
90 
91 uint32_t
93 {
94  return 1;
95 }
96 
97 void
99 {
101  i.WriteU8 (m_type);
102 }
103 
104 uint32_t
106 {
108  m_type = i.ReadU8 ();
109  return i.GetDistanceFrom (start);
110 }
111 
112 // ---------------------------------------------------------------------
113 
115 
117  : m_reserved (0),
118  m_reqDlBurstProfile (0),
119  m_macAddress (Mac48Address ("00:00:00:00:00:00")),
120  m_rangingAnomalies (0)
121 {
122 }
123 
125 {
126 }
127 
128 void
129 RngReq::SetReqDlBurstProfile (uint8_t reqDlBurstProfile)
130 {
131  m_reqDlBurstProfile = reqDlBurstProfile;
132 }
133 
134 void
136 {
137  m_macAddress = macAddress;
138 }
139 
140 void
141 RngReq::SetRangingAnomalies (uint8_t rangingAnomalies)
142 {
143  m_rangingAnomalies = rangingAnomalies;
144 }
145 
146 uint8_t
148 {
149  return m_reqDlBurstProfile;
150 }
151 
154 {
155  return m_macAddress;
156 }
157 
158 uint8_t
160 {
161  return m_rangingAnomalies;
162 }
163 
164 std::string
165 RngReq::GetName (void) const
166 {
167  return "RNG-REQ";
168 }
169 
170 TypeId
172 {
173  static TypeId tid = TypeId ("ns3::RngReq")
174  .SetParent<Header> ()
175  .SetGroupName("Wimax")
176  .AddConstructor<RngReq> ()
177  ;
178  return tid;
179 }
180 
181 TypeId
183 {
184  return GetTypeId ();
185 }
186 
187 void
188 RngReq::Print (std::ostream &os) const
189 {
190  os << " requested dl burst profile = " << (uint32_t) m_reqDlBurstProfile << ", mac address = " << m_macAddress
191  << ", ranging anomalies = " << (uint32_t) m_rangingAnomalies;
192 }
193 
194 void
195 RngReq::PrintDebug (void) const
196 {
197  NS_LOG_DEBUG (" requested dl burst profile = " << (uint32_t) m_reqDlBurstProfile << ", mac address = "
198  << m_macAddress << ", ranging anomalies = "
199  << (uint32_t) m_rangingAnomalies);
200 }
201 
202 uint32_t
204 {
205  return 1 + 1 + 6 + 1;
206 }
207 
208 void
210 {
212  i.WriteU8 (m_reserved);
214  WriteTo (i, m_macAddress);
216 }
217 
218 uint32_t
220 {
222  m_reserved = i.ReadU8 ();
224  ReadFrom (i, m_macAddress);
225  m_rangingAnomalies = i.ReadU8 ();
226 
227  return i.GetDistanceFrom (start);
228 }
229 
230 // ---------------------------------------------------------------------
231 
233 
235  : m_reserved (0),
236  m_timingAdjust (0),
237  m_powerLevelAdjust (0),
238  m_offsetFreqAdjust (0),
239  m_rangStatus (0),
240  m_dlFreqOverride (0),
241  m_ulChnlIdOverride (0),
242  m_dlOperBurstProfile (0),
243  m_macAddress (Mac48Address ("00:00:00:00:00:00")),
244  m_basicCid (),
245  m_primaryCid (),
246  m_aasBdcastPermission (0),
247  m_frameNumber (0),
248  m_initRangOppNumber (0),
249  m_rangSubchnl (0)
250 {
251 }
252 
254 {
255 }
256 
257 void
258 RngRsp::SetTimingAdjust (uint32_t timingAdjust)
259 {
260  m_timingAdjust = timingAdjust;
261 }
262 
263 void
264 RngRsp::SetPowerLevelAdjust (uint8_t powerLevelAdjust)
265 {
266  m_powerLevelAdjust = powerLevelAdjust;
267 }
268 
269 void
270 RngRsp::SetOffsetFreqAdjust (uint32_t offsetFreqAdjust)
271 {
272  m_offsetFreqAdjust = offsetFreqAdjust;
273 }
274 
275 void
276 RngRsp::SetRangStatus (uint8_t rangStatus)
277 {
278  m_rangStatus = rangStatus;
279 }
280 
281 void
282 RngRsp::SetDlFreqOverride (uint32_t dlFreqOverride)
283 {
284  m_dlFreqOverride = dlFreqOverride;
285 }
286 
287 void
288 RngRsp::SetUlChnlIdOverride (uint8_t ulChnlIdOverride)
289 {
290  m_ulChnlIdOverride = ulChnlIdOverride;
291 }
292 
293 void
294 RngRsp::SetDlOperBurstProfile (uint16_t dlOperBurstProfile)
295 {
296  m_dlOperBurstProfile = dlOperBurstProfile;
297 }
298 
299 void
301 {
302  m_macAddress = macAddress;
303 }
304 
305 void
307 {
308  m_basicCid = basicCid;
309 }
310 
311 void
313 {
314  m_primaryCid = primaryCid;
315 }
316 
317 void
318 RngRsp::SetAasBdcastPermission (uint8_t aasBdcastPermission)
319 {
320  m_aasBdcastPermission = aasBdcastPermission;
321 }
322 
323 void
324 RngRsp::SetFrameNumber (uint32_t frameNumber)
325 {
326  m_frameNumber = frameNumber;
327 }
328 
329 void
330 RngRsp::SetInitRangOppNumber (uint8_t initRangOppNumber)
331 {
332  m_initRangOppNumber = initRangOppNumber;
333 }
334 
335 void
336 RngRsp::SetRangSubchnl (uint8_t rangSubchnl)
337 {
338  m_rangSubchnl = rangSubchnl;
339 }
340 
341 uint32_t
343 {
344  return m_timingAdjust;
345 }
346 
347 uint8_t
349 {
350  return m_powerLevelAdjust;
351 }
352 
353 uint32_t
355 {
356  return m_offsetFreqAdjust;
357 }
358 
359 uint8_t
361 {
362  return m_rangStatus;
363 }
364 
365 uint32_t
367 {
368  return m_dlFreqOverride;
369 }
370 
371 uint8_t
373 {
374  return m_ulChnlIdOverride;
375 }
376 
377 uint16_t
379 {
380  return m_dlOperBurstProfile;
381 }
382 
385 {
386  return m_macAddress;
387 }
388 
389 Cid
391 {
392  return m_basicCid;
393 }
394 
395 Cid
397 {
398  return m_primaryCid;
399 }
400 
401 uint8_t
403 {
404  return m_aasBdcastPermission;
405 }
406 
407 uint32_t
409 {
410  return m_frameNumber;
411 }
412 
413 uint8_t
415 {
416  return m_initRangOppNumber;
417 }
418 
419 uint8_t
421 {
422  return m_rangSubchnl;
423 }
424 
425 std::string
426 RngRsp::GetName (void) const
427 {
428  return "RNG-RSP";
429 }
430 
431 TypeId
433 {
434  static TypeId tid = TypeId ("ns3::RngRsp")
435  .SetParent<Header> ()
436  .SetGroupName("Wimax")
437  .AddConstructor<RngRsp> ()
438  ;
439  return tid;
440 }
441 
442 TypeId
444 {
445  return GetTypeId ();
446 }
447 
448 void
449 RngRsp::Print (std::ostream &os) const
450 {
451  os << " timing adjust = " << m_timingAdjust << ", power level adjust = " << (uint32_t) m_powerLevelAdjust
452  << ", offset freq adjust = " << m_offsetFreqAdjust << ", ranging status = " << (uint32_t) m_rangStatus
453  << ", dl freq override = " << m_dlFreqOverride << ", ul channel id override = " << (uint32_t) m_ulChnlIdOverride
454  << ", dl operational burst profile = " << (uint32_t) m_dlOperBurstProfile << ", mac address = " << m_macAddress
455  << ", basic cid = " << m_basicCid << ", primary management cid = " << m_primaryCid
456  << ", aas broadcast permission = " << (uint32_t) m_aasBdcastPermission << ", frame number = " << m_frameNumber
457  << ", initial ranging opportunity number = " << (uint32_t) m_initRangOppNumber << ", ranging subchannel = "
458  << (uint32_t) m_rangSubchnl;
459 }
460 
461 uint32_t
463 {
464  return 1 + 4 + 1 + 4 + 1 + 4 + 1 + 2 + 6 + 2 + 2 + 1 + 4 + 1 + 1;
465 }
466 
467 void
469 {
471  i.WriteU8 (m_reserved);
475  i.WriteU8 (m_rangStatus);
479  WriteTo (i, m_macAddress);
486 }
487 
488 uint32_t
490 {
492  m_reserved = i.ReadU8 ();
493  m_timingAdjust = i.ReadU32 ();
494  m_powerLevelAdjust = i.ReadU8 ();
496  m_rangStatus = i.ReadU8 ();
497  m_dlFreqOverride = i.ReadU32 ();
498  m_ulChnlIdOverride = i.ReadU8 ();
500  ReadFrom (i, m_macAddress); // length (6) shall also be written in packet instead of hard coded, see ARP example
501  m_basicCid = i.ReadU16 ();
502  m_primaryCid = i.ReadU16 ();
504  m_frameNumber = i.ReadU32 ();
506  m_rangSubchnl = i.ReadU8 ();
507 
508  return i.GetDistanceFrom (start);
509 }
510 
511 // ---------------------------------------------------------------------
512 
514 
516  : m_transactionId (0),
517  m_sfid (0),
518  m_cid (),
519  m_serviceFlow (ServiceFlow::SF_DIRECTION_DOWN)
520 {
521 }
522 
524 {
525  m_transactionId = 0;
526  m_serviceFlow = sf;
527 }
528 
530 {
531 }
532 
533 void
534 DsaReq::SetTransactionId (uint16_t transactionId)
535 {
536  m_transactionId = transactionId;
537 }
538 
539 uint16_t
541 {
542  return m_transactionId;
543 }
544 
545 void
546 DsaReq::SetSfid (uint32_t sfid)
547 {
548  m_sfid = sfid;
549 }
550 
551 uint32_t
552 DsaReq::GetSfid (void) const
553 {
554  return m_sfid;
555 }
556 
557 void
559 {
560  m_cid = cid;
561 }
562 
563 Cid
564 DsaReq::GetCid (void) const
565 {
566  return m_cid;
567 }
568 
569 
570 std::string
571 DsaReq::GetName (void) const
572 {
573  return "DSA-REQ";
574 }
575 
576 TypeId
578 {
579  static TypeId tid = TypeId ("ns3::DsaReq")
580  .SetParent<Header> ()
581  .SetGroupName("Wimax")
582  .AddConstructor<DsaReq> ()
583  ;
584  return tid;
585 }
586 
587 TypeId
589 {
590  return GetTypeId ();
591 }
592 
593 void
594 DsaReq::Print (std::ostream &os) const
595 {
596  os << " transaction id = " << (uint32_t) m_transactionId << ", m_sfid = " << m_sfid << ", cid = " << m_cid;
597 }
598 
599 uint32_t
601 {
602  Tlv t = m_serviceFlow.ToTlv ();
603  uint32_t size = 2 + t.GetSerializedSize ();
604  return size;
605 }
606 
607 void
609 {
612  Tlv t = m_serviceFlow.ToTlv ();
613  t.Serialize (i);
614 }
615 
616 uint32_t
618 {
620  m_transactionId = i.ReadU16 ();
621  Tlv tlv;
622  uint32_t size = tlv.Deserialize (i);
623  m_serviceFlow = ServiceFlow (tlv);
624  return size + 2;
625 }
626 
629 {
630  return m_serviceFlow;
631 }
632 
633 void
635 {
636  m_serviceFlow = sf;
637 }
638 
639 // ---------------------------------------------------------------------
640 
642 
644  : m_transactionId (0),
645  m_confirmationCode (0),
646  m_sfid (0),
647  m_cid ()
648 {
649 }
650 
652 {
653 }
654 
655 void
656 DsaRsp::SetTransactionId (uint16_t transactionId)
657 {
658  m_transactionId = transactionId;
659 }
660 
661 uint16_t
663 {
664  return m_transactionId;
665 }
666 
669 {
670  return m_serviceFlow;
671 }
672 
673 void
675 {
676  m_serviceFlow = sf;
677 }
678 
679 void
680 DsaRsp::SetConfirmationCode (uint16_t confirmationCode)
681 {
682  m_confirmationCode = confirmationCode;
683 }
684 
685 uint16_t
687 {
688  return m_confirmationCode;
689 }
690 
691 void
692 DsaRsp::SetSfid (uint32_t sfid)
693 {
694  m_sfid = sfid;
695 }
696 
697 uint32_t
698 DsaRsp::GetSfid (void) const
699 {
700  return m_sfid;
701 }
702 
703 void
705 {
706  m_cid = cid;
707 }
708 
709 Cid
710 DsaRsp::GetCid (void) const
711 {
712  return m_cid;
713 }
714 
715 std::string
716 DsaRsp::GetName (void) const
717 {
718  return "DSA-RSP";
719 }
720 
721 TypeId
723 {
724  static TypeId tid = TypeId ("ns3::DsaRsp")
725  .SetParent<Header> ()
726  .SetGroupName("Wimax")
727  .AddConstructor<DsaRsp> ()
728  ;
729  return tid;
730 }
731 
732 TypeId
734 {
735  return GetTypeId ();
736 }
737 
738 void
739 DsaRsp::Print (std::ostream &os) const
740 {
741  os << " transaction id = " << (uint32_t) m_transactionId << ", confirmation code = " << (uint32_t) m_confirmationCode
742  << ", m_sfid = " << m_sfid << ", cid = " << m_cid;
743 }
744 
745 uint32_t
747 {
748  return 2 + 1 + m_serviceFlow.ToTlv ().GetSerializedSize ();
749 }
750 
751 
752 void
754 {
756 
760 }
761 
762 uint32_t
764 {
766 
767  m_transactionId = i.ReadU16 ();
768  m_confirmationCode = i.ReadU8 ();
769  Tlv tlv;
770  uint32_t size = tlv.Deserialize (i);
771  m_serviceFlow = ServiceFlow (tlv);
772  return size + 3;
773 }
774 
775 // ---------------------------------------------------------------------
776 
778 
780  : m_transactionId (0),
781  m_confirmationCode (0)
782 {
783 }
784 
786 {
787 }
788 
789 void
790 DsaAck::SetTransactionId (uint16_t transactionId)
791 {
792  m_transactionId = transactionId;
793 }
794 
795 uint16_t
797 {
798  return m_transactionId;
799 }
800 
801 void
802 DsaAck::SetConfirmationCode (uint16_t confirmationCode)
803 {
804  m_confirmationCode = confirmationCode;
805 }
806 
807 uint16_t
809 {
810  return m_confirmationCode;
811 }
812 
813 std::string
814 DsaAck::GetName (void) const
815 {
816  return "DSA-ACK";
817 }
818 
819 TypeId
821 {
822  static TypeId tid = TypeId ("ns3::DsaAck")
823  .SetParent<Header> ()
824  .SetGroupName("Wimax")
825  .AddConstructor<DsaAck> ()
826  ;
827  return tid;
828 }
829 
830 TypeId
832 {
833  return GetTypeId ();
834 }
835 
836 void
837 DsaAck::Print (std::ostream &os) const
838 {
839  os << " transaction id = " << (uint32_t) m_transactionId << ", confirmation code = " << (uint32_t) m_confirmationCode;
840 }
841 
842 uint32_t
844 {
845  return 2 + 1;
846 }
847 
848 void
850 {
854 }
855 
856 uint32_t
858 {
860  m_transactionId = i.ReadU16 ();
861  m_confirmationCode = i.ReadU8 ();
862 
863  return i.GetDistanceFrom (start);
864 }
865 
866 } // namespace ns3
uint8_t GetAasBdcastPermission(void) const
uint16_t ReadU16(void)
Definition: buffer.h:1029
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Protocol header serialization and deserialization.
Definition: header.h:42
uint8_t GetReqDlBurstProfile(void) const
Get request DL burst profile field.
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ...
Definition: mac-messages.h:474
uint32_t GetSerializedSize(void) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetMacAddress(Mac48Address macAddress)
Set MAC address field.
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:325
static TypeId GetTypeId(void)
Get the type ID.
Tlv ToTlv(void) const
creates a TLV from this service flow
Cid GetCid(void) const
uint32_t ReadU32(void)
Definition: buffer.cc:972
void SetReqDlBurstProfile(uint8_t reqDlBurstProfile)
Set request DL burst profile field.
void SetPowerLevelAdjust(uint8_t powerLevelAdjust)
set the relative change in transmission power level that the SS should make in order that transmissio...
This class implements the DSA-ACK message described by "IEEE Standard for Local and metropolitan area...
Definition: mac-messages.h:572
virtual uint32_t GetSerializedSize(void) const
Definition: wimax-tlv.cc:103
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
Definition: mac-messages.h:121
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:280
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:45
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:618
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43...
Definition: mac-messages.h:43
void Serialize(Buffer::Iterator start) const
void Print(std::ostream &os) const
Definition: mac-messages.cc:86
void SetMacAddress(Mac48Address macAddress)
set the MAC address
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:617
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:702
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:440
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.
def start()
Definition: core.py:1855
uint16_t GetTransactionId(void) const
std::string GetName(void) const
ServiceFlow GetServiceFlow(void) const
This class implements the ranging request message described by "IEEE Standard for Local and metropoli...
Definition: mac-messages.h:642
Mac48Address GetMacAddress(void) const
Get MAC address field.
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: wimax-tlv.cc:147
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:204
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:543
virtual ~RngReq(void)
uint32_t GetTimingAdjust(void) const
uint8_t m_powerLevelAdjust
Specifies the relative change in transmission power level that the SS is to make in order that transm...
Definition: mac-messages.h:296
uint32_t GetSerializedSize(void) const
void SetDlOperBurstProfile(uint16_t dlOperBurstProfile)
set the DL oper burst profile
uint32_t Deserialize(Buffer::Iterator start)
uint32_t GetSerializedSize(void) const
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
Definition: wimax-tlv.h:83
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:698
Cid GetPrimaryCid(void) const
uint32_t Deserialize(Buffer::Iterator start)
uint8_t GetRangSubchnl(void) const
iterator in a Buffer instance
Definition: buffer.h:98
uint32_t m_sfid
SFID.
Definition: mac-messages.h:438
uint8_t GetUlChnlIdOverride(void) const
Cid GetBasicCid(void) const
uint32_t GetDistanceFrom(Iterator const &o) const
Definition: buffer.cc:783
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:436
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
static TypeId GetTypeId(void)
Get the type ID.
std::string GetName(void) const
Get name field.
void SetTransactionId(uint16_t transactionId)
set the transaction ID
void SetRangStatus(uint8_t rangStatus)
set the range status.
Cid m_cid
CID.
Definition: mac-messages.h:547
void Print(std::ostream &os) const
uint8_t m_initRangOppNumber
Initial Ranging opportunity (1–255) in which the associated RNG_REQ message was detected by the BS...
Definition: mac-messages.h:340
void PrintDebug(void) const
Print debug function.
void SetAasBdcastPermission(uint8_t aasBdcastPermission)
set AAS broadcast permission.
uint32_t GetSerializedSize(void) const
uint8_t m_rangingAnomalies
ranging anomalies
Definition: mac-messages.h:703
uint32_t GetDlFreqOverride(void) const
uint32_t Deserialize(Buffer::Iterator start)
void WriteU16(uint16_t data)
Definition: buffer.cc:870
uint32_t Deserialize(Buffer::Iterator start)
uint32_t Deserialize(Buffer::Iterator start)
void SetTimingAdjust(uint32_t timingAdjust)
set the Tx timing offset adjustment (signed 32-bit).
virtual ~RngRsp(void)
uint16_t GetConfirmationCode(void) const
uint16_t GetTransactionId(void) const
uint32_t m_timingAdjust
Tx timing offset adjustment (signed 32-bit).
Definition: mac-messages.h:288
uint32_t m_frameNumber
Frame number where the associated RNG_REQ message was detected by the BS.
Definition: mac-messages.h:334
std::string GetName(void) const
Get name field.
void SetUlChnlIdOverride(uint8_t ulChnlIdOverride)
set the identifier of the uplink channel with which the SS is to redo initial ranging ...
static TypeId GetTypeId(void)
Get the type ID.
uint8_t m_rangSubchnl
Used to indicate the OFDM subchannel reference that was used to transmit the initial ranging message ...
Definition: mac-messages.h:346
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mac-messages.cc:80
void SetCid(Cid cid)
set the connection identifier
uint8_t m_rangStatus
range status.
Definition: mac-messages.h:307
uint8_t GetType(void) const
Get type field.
Definition: mac-messages.cc:56
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint16_t m_dlOperBurstProfile
This parameter is sent in response to the RNG-REQ Requested Downlink Burst Profile parameter...
Definition: mac-messages.h:323
void Serialize(Buffer::Iterator start) const
Cid class.
Definition: cid.h:37
void SetDlFreqOverride(uint32_t dlFreqOverride)
set the Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging...
uint32_t GetOffsetFreqAdjust(void) const
static TypeId GetTypeId(void)
Get the type ID.
Definition: mac-messages.cc:68
uint32_t GetFrameNumber(void) const
an EUI-48 address
Definition: mac48-address.h:43
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:39
uint8_t GetInitRangOppNumber(void) const
uint32_t GetSfid(void) const
uint32_t GetSerializedSize(void) const
Definition: mac-messages.cc:92
uint16_t GetTransactionId(void) const
Get transaction ID field.
void SetInitRangOppNumber(uint8_t initRangOppNumber)
set initial range opp number.
virtual ~ManagementMessageType(void)
Definition: mac-messages.cc:45
std::string GetName(void) const
void SetOffsetFreqAdjust(uint32_t offsetFreqAdjust)
set the relative change in transmission frequency that the SS should take in order to better match th...
void SetTransactionId(uint16_t transactionId)
set the transaction ID
void SetConfirmationCode(uint16_t confirmationCode)
set the confirmation code
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Cid m_cid
CID.
Definition: mac-messages.h:439
std::string GetName(void) const
uint8_t m_aasBdcastPermission
AAS broadcast permission.
Definition: mac-messages.h:328
uint32_t m_sfid
SFID.
Definition: mac-messages.h:546
Mac48Address GetMacAddress(void) const
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:542
void SetRangSubchnl(uint8_t rangSubchnl)
set range sub channel.
void SetFrameNumber(uint32_t frameNumber)
set frame number.
void SetSfid(uint32_t sfid)
set the service flow identifier
ServiceFlow GetServiceFlow(void) const
void SetTransactionId(uint16_t transactionId)
Set transaction ID field.
void WriteU8(uint8_t data)
Definition: buffer.h:869
void Print(std::ostream &os) const
void SetPrimaryCid(Cid primaryCid)
set primary CID.
uint16_t GetDlOperBurstProfile(void) const
uint8_t m_ulChnlIdOverride
Licensed bands: The identifier of the uplink channel with which the SS is to redo initial ranging (no...
Definition: mac-messages.h:316
void SetBasicCid(Cid basicCid)
set basic CID.
void Serialize(Buffer::Iterator start) const
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
Definition: log.h:272
uint8_t m_reqDlBurstProfile
request DL burst profile
Definition: mac-messages.h:701
void Print(std::ostream &os) const
static TypeId GetTypeId(void)
Get the type ID.
virtual void Serialize(Buffer::Iterator start) const
Definition: wimax-tlv.cc:127
uint8_t ReadU8(void)
Definition: buffer.h:1021
void SetSfid(uint32_t sfid)
set the service flow identifier
std::string GetName(void) const
Definition: mac-messages.cc:62
uint32_t Deserialize(Buffer::Iterator start)
Cid m_basicCid
basic CID
Definition: mac-messages.h:326
void SetType(uint8_t type)
Set type field.
Definition: mac-messages.cc:50
static TypeId GetTypeId(void)
Register this type.
uint16_t GetIdentifier(void) const
Definition: cid.cc:45
uint32_t m_dlFreqOverride
Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging...
Definition: mac-messages.h:310
void Serialize(Buffer::Iterator start) const
Definition: mac-messages.cc:98
void SetCid(Cid cid)
set the connection identifier
void Serialize(Buffer::Iterator start) const
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
Definition: mac-messages.h:373
void WriteU32(uint32_t data)
Definition: buffer.cc:878
Cid m_primaryCid
primary CID
Definition: mac-messages.h:327
void Print(std::ostream &os) const
uint32_t GetSfid(void) const
uint8_t GetRangingAnomalies(void) const
Get ranging anomalies field.
uint32_t m_offsetFreqAdjust
Specifies the relative change in transmission frequency that the SS is to make in order to better mat...
Definition: mac-messages.h:302
a unique identifier for an interface.
Definition: type-id.h:58
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:545
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:915
Cid GetCid(void) const
void Serialize(Buffer::Iterator start) const
uint8_t GetRangStatus(void) const
void Print(std::ostream &os) const
uint16_t GetConfirmationCode(void) const
Get confirmation code field.
void SetRangingAnomalies(uint8_t rangingAnomalies)
Set ranging anomalies field.
void SetConfirmationCode(uint16_t confirmationCode)
Set confirmation code field.
uint8_t GetPowerLevelAdjust(void) const
uint32_t GetSerializedSize(void) const