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
iterator in a Buffer instance
Definition: buffer.h:99
void WriteU32(uint32_t data)
Definition: buffer.cc:879
void WriteU8(uint8_t data)
Definition: buffer.h:869
void WriteU16(uint16_t data)
Definition: buffer.cc:871
uint16_t ReadU16(void)
Definition: buffer.h:1029
uint8_t ReadU8(void)
Definition: buffer.h:1021
uint32_t GetDistanceFrom(Iterator const &o) const
Definition: buffer.cc:788
uint32_t ReadU32(void)
Definition: buffer.cc:973
Cid class.
Definition: cid.h:38
uint16_t GetIdentifier(void) const
Definition: cid.cc:45
This class implements the DSA-ACK message described by "IEEE Standard for Local and metropolitan area...
Definition: mac-messages.h:573
uint16_t GetConfirmationCode(void) const
Get confirmation code field.
void SetConfirmationCode(uint16_t confirmationCode)
Set confirmation code field.
void Serialize(Buffer::Iterator start) const
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetTransactionId(uint16_t transactionId)
Set transaction ID field.
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:617
uint32_t GetSerializedSize(void) const
static TypeId GetTypeId(void)
Get the type ID.
uint16_t GetTransactionId(void) const
Get transaction ID field.
void Print(std::ostream &os) const
std::string GetName(void) const
Get name field.
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:618
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
Definition: mac-messages.h:374
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetTransactionId(uint16_t transactionId)
set the transaction ID
void Print(std::ostream &os) const
static TypeId GetTypeId(void)
Get the type ID.
Cid m_cid
CID.
Definition: mac-messages.h:439
uint16_t GetTransactionId(void) const
ServiceFlow GetServiceFlow(void) const
std::string GetName(void) const
uint32_t GetSfid(void) const
uint32_t GetSerializedSize(void) const
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:440
void Serialize(Buffer::Iterator start) const
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint32_t m_sfid
SFID.
Definition: mac-messages.h:438
void SetSfid(uint32_t sfid)
set the service flow identifier
void SetCid(Cid cid)
set the connection identifier
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:436
Cid GetCid(void) const
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ar...
Definition: mac-messages.h:475
void SetConfirmationCode(uint16_t confirmationCode)
set the confirmation code
uint32_t m_sfid
SFID.
Definition: mac-messages.h:546
uint16_t GetTransactionId(void) const
void Print(std::ostream &os) const
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:545
uint32_t GetSfid(void) const
void SetSfid(uint32_t sfid)
set the service flow identifier
static TypeId GetTypeId(void)
Get the type ID.
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:542
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint16_t GetConfirmationCode(void) const
ServiceFlow GetServiceFlow(void) const
uint32_t GetSerializedSize(void) const
void SetTransactionId(uint16_t transactionId)
set the transaction ID
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const
Cid m_cid
CID.
Definition: mac-messages.h:547
std::string GetName(void) const
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:543
Cid GetCid(void) const
void SetCid(Cid cid)
set the connection identifier
Protocol header serialization and deserialization.
Definition: header.h:43
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
an EUI-48 address
Definition: mac48-address.h:44
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43.
Definition: mac-messages.h:44
void Serialize(Buffer::Iterator start) const
Definition: mac-messages.cc:98
virtual ~ManagementMessageType(void)
Definition: mac-messages.cc:45
void Print(std::ostream &os) const
Definition: mac-messages.cc:86
uint8_t GetType(void) const
Get type field.
Definition: mac-messages.cc:56
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mac-messages.cc:80
std::string GetName(void) const
Definition: mac-messages.cc:62
static TypeId GetTypeId(void)
Get the type ID.
Definition: mac-messages.cc:68
void SetType(uint8_t type)
Set type field.
Definition: mac-messages.cc:50
uint32_t GetSerializedSize(void) const
Definition: mac-messages.cc:92
This class implements the ranging request message described by "IEEE Standard for Local and metropoli...
Definition: mac-messages.h:643
uint8_t m_rangingAnomalies
ranging anomalies
Definition: mac-messages.h:703
Mac48Address GetMacAddress(void) const
Get MAC address field.
void SetReqDlBurstProfile(uint8_t reqDlBurstProfile)
Set request DL burst profile field.
uint8_t GetRangingAnomalies(void) const
Get ranging anomalies field.
static TypeId GetTypeId(void)
Get the type ID.
uint8_t GetReqDlBurstProfile(void) const
Get request DL burst profile field.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetRangingAnomalies(uint8_t rangingAnomalies)
Set ranging anomalies field.
void Serialize(Buffer::Iterator start) const
virtual ~RngReq(void)
void PrintDebug(void) const
Print debug function.
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:698
void SetMacAddress(Mac48Address macAddress)
Set MAC address field.
void Print(std::ostream &os) const
uint8_t m_reqDlBurstProfile
request DL burst profile
Definition: mac-messages.h:701
std::string GetName(void) const
Get name field.
uint32_t GetSerializedSize(void) const
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:702
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
Definition: mac-messages.h:122
void Serialize(Buffer::Iterator start) const
Mac48Address GetMacAddress(void) const
void SetMacAddress(Mac48Address macAddress)
set the MAC address
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:325
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t m_dlOperBurstProfile
This parameter is sent in response to the RNG-REQ Requested Downlink Burst Profile parameter.
Definition: mac-messages.h:323
uint8_t GetRangStatus(void) const
Cid m_primaryCid
primary CID
Definition: mac-messages.h:327
void SetUlChnlIdOverride(uint8_t ulChnlIdOverride)
set the identifier of the uplink channel with which the SS is to redo initial ranging
uint8_t m_aasBdcastPermission
AAS broadcast permission.
Definition: mac-messages.h:328
uint32_t GetSerializedSize(void) const
uint8_t m_rangStatus
range status.
Definition: mac-messages.h:307
void SetBasicCid(Cid basicCid)
set basic CID.
Cid GetBasicCid(void) const
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 Print(std::ostream &os) const
static TypeId GetTypeId(void)
Register this type.
uint32_t GetTimingAdjust(void) const
void SetAasBdcastPermission(uint8_t aasBdcastPermission)
set AAS broadcast permission.
void SetDlOperBurstProfile(uint16_t dlOperBurstProfile)
set the DL oper burst profile
Cid GetPrimaryCid(void) const
uint32_t GetDlFreqOverride(void) const
void SetPrimaryCid(Cid primaryCid)
set primary CID.
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 SetRangSubchnl(uint8_t rangSubchnl)
set range sub channel.
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
void SetPowerLevelAdjust(uint8_t powerLevelAdjust)
set the relative change in transmission power level that the SS should make in order that transmissio...
void SetInitRangOppNumber(uint8_t initRangOppNumber)
set initial range opp number.
void SetTimingAdjust(uint32_t timingAdjust)
set the Tx timing offset adjustment (signed 32-bit).
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
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
void SetFrameNumber(uint32_t frameNumber)
set frame number.
uint8_t GetInitRangOppNumber(void) const
uint8_t GetAasBdcastPermission(void) const
void SetDlFreqOverride(uint32_t dlFreqOverride)
set the Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging.
void SetOffsetFreqAdjust(uint32_t offsetFreqAdjust)
set the relative change in transmission frequency that the SS should take in order to better match th...
uint8_t GetRangSubchnl(void) const
std::string GetName(void) const
uint16_t GetDlOperBurstProfile(void) const
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:280
uint32_t GetOffsetFreqAdjust(void) const
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
uint32_t GetFrameNumber(void) const
Cid m_basicCid
basic CID
Definition: mac-messages.h:326
void SetRangStatus(uint8_t rangStatus)
set the range status.
uint32_t m_timingAdjust
Tx timing offset adjustment (signed 32-bit).
Definition: mac-messages.h:288
uint8_t GetUlChnlIdOverride(void) const
uint32_t m_frameNumber
Frame number where the associated RNG_REQ message was detected by the BS.
Definition: mac-messages.h:334
virtual ~RngRsp(void)
uint8_t GetPowerLevelAdjust(void) const
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:40
Tlv ToTlv(void) const
creates a TLV from this service flow
This class implements the Type-Len-Value structure channel encodings as described by "IEEE Standard f...
Definition: wimax-tlv.h:84
virtual void Serialize(Buffer::Iterator start) const
Definition: wimax-tlv.cc:127
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: wimax-tlv.cc:147
virtual uint32_t GetSerializedSize(void) const
Definition: wimax-tlv.cc:103
a unique identifier for an interface.
Definition: type-id.h:59
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:922
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:205
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
Definition: log.h:273
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:45
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.
def start()
Definition: core.py:1853