A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
mac-messages.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008,2009 INRIA, UDcast
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
18 * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
19 * <amine.ismail@UDcast.com>
20 */
21
22#include "mac-messages.h"
23
24#include "wimax-tlv.h"
25
26#include "ns3/address-utils.h"
27#include "ns3/log.h"
28#include "ns3/uinteger.h"
29
30namespace ns3
31{
32
33NS_LOG_COMPONENT_DEFINE("MACMESSAGES");
34
35NS_OBJECT_ENSURE_REGISTERED(ManagementMessageType);
36
38 : m_type(~0)
39{
40}
41
43 : m_type(type)
44{
45}
46
48{
49}
50
51void
53{
54 m_type = type;
55}
56
57uint8_t
59{
60 return m_type;
61}
62
63std::string
65{
66 return "Management Message Type";
67}
68
71{
72 static TypeId tid = TypeId("ns3::ManagementMessageType")
74 .SetGroupName("Wimax")
75 .AddConstructor<ManagementMessageType>();
76 return tid;
77}
78
81{
82 return GetTypeId();
83}
84
85void
86ManagementMessageType::Print(std::ostream& os) const
87{
88 os << " management message type = " << (uint32_t)m_type;
89}
90
93{
94 return 1;
95}
96
97void
99{
100 Buffer::Iterator i = start;
101 i.WriteU8(m_type);
102}
103
106{
107 Buffer::Iterator i = start;
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
128void
129RngReq::SetReqDlBurstProfile(uint8_t reqDlBurstProfile)
130{
131 m_reqDlBurstProfile = reqDlBurstProfile;
132}
133
134void
136{
137 m_macAddress = macAddress;
138}
139
140void
141RngReq::SetRangingAnomalies(uint8_t rangingAnomalies)
142{
143 m_rangingAnomalies = rangingAnomalies;
144}
145
146uint8_t
148{
149 return m_reqDlBurstProfile;
150}
151
154{
155 return m_macAddress;
156}
157
158uint8_t
160{
161 return m_rangingAnomalies;
162}
163
164std::string
166{
167 return "RNG-REQ";
168}
169
170TypeId
172{
173 static TypeId tid =
174 TypeId("ns3::RngReq").SetParent<Header>().SetGroupName("Wimax").AddConstructor<RngReq>();
175 return tid;
176}
177
178TypeId
180{
181 return GetTypeId();
182}
183
184void
185RngReq::Print(std::ostream& os) const
186{
187 os << " requested dl burst profile = " << (uint32_t)m_reqDlBurstProfile
188 << ", mac address = " << m_macAddress
189 << ", ranging anomalies = " << (uint32_t)m_rangingAnomalies;
190}
191
192void
194{
195 NS_LOG_DEBUG(" requested dl burst profile = "
196 << (uint32_t)m_reqDlBurstProfile << ", mac address = " << m_macAddress
197 << ", ranging anomalies = " << (uint32_t)m_rangingAnomalies);
198}
199
202{
203 return 1 + 1 + 6 + 1;
204}
205
206void
208{
209 Buffer::Iterator i = start;
214}
215
218{
219 Buffer::Iterator i = start;
220 m_reserved = i.ReadU8();
224
225 return i.GetDistanceFrom(start);
226}
227
228// ---------------------------------------------------------------------
229
231
233 : m_reserved(0),
234 m_timingAdjust(0),
235 m_powerLevelAdjust(0),
236 m_offsetFreqAdjust(0),
237 m_rangStatus(0),
238 m_dlFreqOverride(0),
239 m_ulChnlIdOverride(0),
240 m_dlOperBurstProfile(0),
241 m_macAddress(Mac48Address("00:00:00:00:00:00")),
242 m_basicCid(),
243 m_primaryCid(),
244 m_aasBdcastPermission(0),
245 m_frameNumber(0),
246 m_initRangOppNumber(0),
247 m_rangSubchnl(0)
248{
249}
250
252{
253}
254
255void
257{
258 m_timingAdjust = timingAdjust;
259}
260
261void
262RngRsp::SetPowerLevelAdjust(uint8_t powerLevelAdjust)
263{
264 m_powerLevelAdjust = powerLevelAdjust;
265}
266
267void
269{
270 m_offsetFreqAdjust = offsetFreqAdjust;
271}
272
273void
274RngRsp::SetRangStatus(uint8_t rangStatus)
275{
276 m_rangStatus = rangStatus;
277}
278
279void
281{
282 m_dlFreqOverride = dlFreqOverride;
283}
284
285void
286RngRsp::SetUlChnlIdOverride(uint8_t ulChnlIdOverride)
287{
288 m_ulChnlIdOverride = ulChnlIdOverride;
289}
290
291void
292RngRsp::SetDlOperBurstProfile(uint16_t dlOperBurstProfile)
293{
294 m_dlOperBurstProfile = dlOperBurstProfile;
295}
296
297void
299{
300 m_macAddress = macAddress;
301}
302
303void
305{
306 m_basicCid = basicCid;
307}
308
309void
311{
312 m_primaryCid = primaryCid;
313}
314
315void
316RngRsp::SetAasBdcastPermission(uint8_t aasBdcastPermission)
317{
318 m_aasBdcastPermission = aasBdcastPermission;
319}
320
321void
323{
324 m_frameNumber = frameNumber;
325}
326
327void
328RngRsp::SetInitRangOppNumber(uint8_t initRangOppNumber)
329{
330 m_initRangOppNumber = initRangOppNumber;
331}
332
333void
334RngRsp::SetRangSubchnl(uint8_t rangSubchnl)
335{
336 m_rangSubchnl = rangSubchnl;
337}
338
341{
342 return m_timingAdjust;
343}
344
345uint8_t
347{
348 return m_powerLevelAdjust;
349}
350
353{
354 return m_offsetFreqAdjust;
355}
356
357uint8_t
359{
360 return m_rangStatus;
361}
362
365{
366 return m_dlFreqOverride;
367}
368
369uint8_t
371{
372 return m_ulChnlIdOverride;
373}
374
375uint16_t
377{
379}
380
383{
384 return m_macAddress;
385}
386
387Cid
389{
390 return m_basicCid;
391}
392
393Cid
395{
396 return m_primaryCid;
397}
398
399uint8_t
401{
403}
404
407{
408 return m_frameNumber;
409}
410
411uint8_t
413{
414 return m_initRangOppNumber;
415}
416
417uint8_t
419{
420 return m_rangSubchnl;
421}
422
423std::string
425{
426 return "RNG-RSP";
427}
428
429TypeId
431{
432 static TypeId tid =
433 TypeId("ns3::RngRsp").SetParent<Header>().SetGroupName("Wimax").AddConstructor<RngRsp>();
434 return tid;
435}
436
437TypeId
439{
440 return GetTypeId();
441}
442
443void
444RngRsp::Print(std::ostream& os) const
445{
446 os << " timing adjust = " << m_timingAdjust
447 << ", power level adjust = " << (uint32_t)m_powerLevelAdjust
448 << ", offset freq adjust = " << m_offsetFreqAdjust
449 << ", ranging status = " << (uint32_t)m_rangStatus
450 << ", dl freq override = " << m_dlFreqOverride
451 << ", ul channel id override = " << (uint32_t)m_ulChnlIdOverride
452 << ", dl operational burst profile = " << (uint32_t)m_dlOperBurstProfile
453 << ", mac address = " << m_macAddress << ", basic cid = " << m_basicCid
454 << ", primary management cid = " << m_primaryCid
455 << ", aas broadcast permission = " << (uint32_t)m_aasBdcastPermission
456 << ", frame number = " << m_frameNumber
457 << ", initial ranging opportunity number = " << (uint32_t)m_initRangOppNumber
458 << ", ranging subchannel = " << (uint32_t)m_rangSubchnl;
459}
460
463{
464 return 1 + 4 + 1 + 4 + 1 + 4 + 1 + 2 + 6 + 2 + 2 + 1 + 4 + 1 + 1;
465}
466
467void
469{
470 Buffer::Iterator i = start;
486}
487
490{
491 Buffer::Iterator i = start;
492 m_reserved = i.ReadU8();
496 m_rangStatus = i.ReadU8();
500 ReadFrom(i, m_macAddress); // length (6) shall also be written in packet instead of hard coded,
501 // see ARP example
502 m_basicCid = i.ReadU16();
503 m_primaryCid = i.ReadU16();
507 m_rangSubchnl = i.ReadU8();
508
509 return i.GetDistanceFrom(start);
510}
511
512// ---------------------------------------------------------------------
513
515
517 : m_transactionId(0),
518 m_sfid(0),
519 m_cid(),
520 m_serviceFlow(ServiceFlow::SF_DIRECTION_DOWN)
521{
522}
523
525{
526 m_transactionId = 0;
527 m_serviceFlow = sf;
528}
529
531{
532}
533
534void
535DsaReq::SetTransactionId(uint16_t transactionId)
536{
537 m_transactionId = transactionId;
538}
539
540uint16_t
542{
543 return m_transactionId;
544}
545
546void
548{
549 m_sfid = sfid;
550}
551
554{
555 return m_sfid;
556}
557
558void
560{
561 m_cid = cid;
562}
563
564Cid
566{
567 return m_cid;
568}
569
570std::string
572{
573 return "DSA-REQ";
574}
575
576TypeId
578{
579 static TypeId tid =
580 TypeId("ns3::DsaReq").SetParent<Header>().SetGroupName("Wimax").AddConstructor<DsaReq>();
581 return tid;
582}
583
584TypeId
586{
587 return GetTypeId();
588}
589
590void
591DsaReq::Print(std::ostream& os) const
592{
593 os << " transaction id = " << (uint32_t)m_transactionId << ", m_sfid = " << m_sfid
594 << ", cid = " << m_cid;
595}
596
599{
600 Tlv t = m_serviceFlow.ToTlv();
601 uint32_t size = 2 + t.GetSerializedSize();
602 return size;
603}
604
605void
607{
608 Buffer::Iterator i = start;
610 Tlv t = m_serviceFlow.ToTlv();
611 t.Serialize(i);
612}
613
616{
617 Buffer::Iterator i = start;
619 Tlv tlv;
620 uint32_t size = tlv.Deserialize(i);
622 return size + 2;
623}
624
627{
628 return m_serviceFlow;
629}
630
631void
633{
634 m_serviceFlow = sf;
635}
636
637// ---------------------------------------------------------------------
638
640
642 : m_transactionId(0),
643 m_confirmationCode(0),
644 m_sfid(0),
645 m_cid()
646{
647}
648
650{
651}
652
653void
654DsaRsp::SetTransactionId(uint16_t transactionId)
655{
656 m_transactionId = transactionId;
657}
658
659uint16_t
661{
662 return m_transactionId;
663}
664
667{
668 return m_serviceFlow;
669}
670
671void
673{
674 m_serviceFlow = sf;
675}
676
677void
678DsaRsp::SetConfirmationCode(uint16_t confirmationCode)
679{
680 m_confirmationCode = confirmationCode;
681}
682
683uint16_t
685{
686 return m_confirmationCode;
687}
688
689void
691{
692 m_sfid = sfid;
693}
694
697{
698 return m_sfid;
699}
700
701void
703{
704 m_cid = cid;
705}
706
707Cid
709{
710 return m_cid;
711}
712
713std::string
715{
716 return "DSA-RSP";
717}
718
719TypeId
721{
722 static TypeId tid =
723 TypeId("ns3::DsaRsp").SetParent<Header>().SetGroupName("Wimax").AddConstructor<DsaRsp>();
724 return tid;
725}
726
727TypeId
729{
730 return GetTypeId();
731}
732
733void
734DsaRsp::Print(std::ostream& os) const
735{
736 os << " transaction id = " << (uint32_t)m_transactionId
737 << ", confirmation code = " << (uint32_t)m_confirmationCode << ", m_sfid = " << m_sfid
738 << ", cid = " << m_cid;
739}
740
743{
744 return 2 + 1 + m_serviceFlow.ToTlv().GetSerializedSize();
745}
746
747void
749{
750 Buffer::Iterator i = start;
751
755}
756
759{
760 Buffer::Iterator i = start;
761
764 Tlv tlv;
765 uint32_t size = tlv.Deserialize(i);
767 return size + 3;
768}
769
770// ---------------------------------------------------------------------
771
773
775 : m_transactionId(0),
776 m_confirmationCode(0)
777{
778}
779
781{
782}
783
784void
785DsaAck::SetTransactionId(uint16_t transactionId)
786{
787 m_transactionId = transactionId;
788}
789
790uint16_t
792{
793 return m_transactionId;
794}
795
796void
797DsaAck::SetConfirmationCode(uint16_t confirmationCode)
798{
799 m_confirmationCode = confirmationCode;
800}
801
802uint16_t
804{
805 return m_confirmationCode;
806}
807
808std::string
810{
811 return "DSA-ACK";
812}
813
814TypeId
816{
817 static TypeId tid =
818 TypeId("ns3::DsaAck").SetParent<Header>().SetGroupName("Wimax").AddConstructor<DsaAck>();
819 return tid;
820}
821
822TypeId
824{
825 return GetTypeId();
826}
827
828void
829DsaAck::Print(std::ostream& os) const
830{
831 os << " transaction id = " << (uint32_t)m_transactionId
832 << ", confirmation code = " << (uint32_t)m_confirmationCode;
833}
834
837{
838 return 2 + 1;
839}
840
841void
843{
844 Buffer::Iterator i = start;
847}
848
851{
852 Buffer::Iterator i = start;
855
856 return i.GetDistanceFrom(start);
857}
858
859} // namespace ns3
iterator in a Buffer instance
Definition: buffer.h:100
void WriteU32(uint32_t data)
Definition: buffer.cc:868
uint8_t ReadU8()
Definition: buffer.h:1027
void WriteU8(uint8_t data)
Definition: buffer.h:881
void WriteU16(uint16_t data)
Definition: buffer.cc:859
uint32_t ReadU32()
Definition: buffer.cc:966
uint32_t GetDistanceFrom(const Iterator &o) const
Definition: buffer.cc:780
uint16_t ReadU16()
Definition: buffer.h:1035
Cid class.
Definition: cid.h:37
uint16_t GetIdentifier() 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:590
uint32_t Deserialize(Buffer::Iterator start) override
void SetConfirmationCode(uint16_t confirmationCode)
Set confirmation code field.
void SetTransactionId(uint16_t transactionId)
Set transaction ID field.
static TypeId GetTypeId()
Get the type ID.
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:634
void Serialize(Buffer::Iterator start) const override
uint32_t GetSerializedSize() const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t GetTransactionId() const
Get transaction ID field.
uint16_t GetConfirmationCode() const
Get confirmation code field.
void Print(std::ostream &os) const override
~DsaAck() override
std::string GetName() const
Get name field.
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:635
This class implements the DSA-REQ message described by "IEEE Standard for Local and metropolitan area...
Definition: mac-messages.h:386
Cid GetCid() const
~DsaReq() override
uint32_t Deserialize(Buffer::Iterator start) override
uint32_t GetSfid() const
void SetTransactionId(uint16_t transactionId)
set the transaction ID
ServiceFlow GetServiceFlow() const
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Cid m_cid
CID.
Definition: mac-messages.h:451
std::string GetName() const
void Print(std::ostream &os) const override
uint16_t GetTransactionId() const
static TypeId GetTypeId()
Get the type ID.
uint32_t GetSerializedSize() const override
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:452
void Serialize(Buffer::Iterator start) const override
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint32_t m_sfid
SFID.
Definition: mac-messages.h:450
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:448
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ar...
Definition: mac-messages.h:490
void SetConfirmationCode(uint16_t confirmationCode)
set the confirmation code
static TypeId GetTypeId()
Get the type ID.
uint32_t m_sfid
SFID.
Definition: mac-messages.h:562
uint32_t GetSerializedSize() const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
~DsaRsp() override
Cid GetCid() const
ServiceFlow m_serviceFlow
service flow
Definition: mac-messages.h:561
ServiceFlow GetServiceFlow() const
std::string GetName() const
void Serialize(Buffer::Iterator start) const override
void SetSfid(uint32_t sfid)
set the service flow identifier
uint16_t GetTransactionId() const
uint16_t m_transactionId
transaction ID
Definition: mac-messages.h:558
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint32_t GetSfid() const
void SetTransactionId(uint16_t transactionId)
set the transaction ID
Cid m_cid
CID.
Definition: mac-messages.h:563
uint16_t GetConfirmationCode() const
uint8_t m_confirmationCode
confirmation code
Definition: mac-messages.h:559
uint32_t Deserialize(Buffer::Iterator start) override
void Print(std::ostream &os) const override
void SetCid(Cid cid)
set the connection identifier
Protocol header serialization and deserialization.
Definition: header.h:44
an EUI-48 address
Definition: mac48-address.h:46
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43.
Definition: mac-messages.h:44
static TypeId GetTypeId()
Get the type ID.
Definition: mac-messages.cc:70
uint32_t GetSerializedSize() const override
Definition: mac-messages.cc:92
uint32_t Deserialize(Buffer::Iterator start) override
void Print(std::ostream &os) const override
Definition: mac-messages.cc:86
std::string GetName() const
Definition: mac-messages.cc:64
void Serialize(Buffer::Iterator start) const override
Definition: mac-messages.cc:98
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mac-messages.cc:80
uint8_t GetType() const
Get type field.
Definition: mac-messages.cc:58
void SetType(uint8_t type)
Set type field.
Definition: mac-messages.cc:52
This class implements the ranging request message described by "IEEE Standard for Local and metropoli...
Definition: mac-messages.h:664
uint8_t m_rangingAnomalies
ranging anomalies
Definition: mac-messages.h:725
~RngReq() override
void SetReqDlBurstProfile(uint8_t reqDlBurstProfile)
Set request DL burst profile field.
uint32_t Deserialize(Buffer::Iterator start) override
void Serialize(Buffer::Iterator start) const override
uint8_t GetReqDlBurstProfile() const
Get request DL burst profile field.
void SetRangingAnomalies(uint8_t rangingAnomalies)
Set ranging anomalies field.
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:720
void SetMacAddress(Mac48Address macAddress)
Set MAC address field.
uint32_t GetSerializedSize() const override
uint8_t GetRangingAnomalies() const
Get ranging anomalies field.
std::string GetName() const
Get name field.
uint8_t m_reqDlBurstProfile
request DL burst profile
Definition: mac-messages.h:723
void PrintDebug() const
Print debug function.
void Print(std::ostream &os) const override
Mac48Address GetMacAddress() const
Get MAC address field.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
static TypeId GetTypeId()
Get the type ID.
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:724
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
Definition: mac-messages.h:125
uint32_t Deserialize(Buffer::Iterator start) override
void SetMacAddress(Mac48Address macAddress)
set the MAC address
Mac48Address m_macAddress
MAC address.
Definition: mac-messages.h:336
uint16_t m_dlOperBurstProfile
This parameter is sent in response to the RNG-REQ Requested Downlink Burst Profile parameter.
Definition: mac-messages.h:334
Mac48Address GetMacAddress() const
uint32_t GetTimingAdjust() const
Cid m_primaryCid
primary CID
Definition: mac-messages.h:338
void SetUlChnlIdOverride(uint8_t ulChnlIdOverride)
set the identifier of the uplink channel with which the SS is to redo initial ranging
Cid GetPrimaryCid() const
uint8_t GetRangSubchnl() const
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
uint8_t m_aasBdcastPermission
AAS broadcast permission.
Definition: mac-messages.h:339
uint8_t m_rangStatus
range status.
Definition: mac-messages.h:317
void SetBasicCid(Cid basicCid)
set basic CID.
uint8_t GetPowerLevelAdjust() const
uint32_t m_dlFreqOverride
Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging.
Definition: mac-messages.h:320
uint8_t GetRangStatus() const
uint32_t GetOffsetFreqAdjust() const
void Serialize(Buffer::Iterator start) const override
void SetAasBdcastPermission(uint8_t aasBdcastPermission)
set AAS broadcast permission.
void SetDlOperBurstProfile(uint16_t dlOperBurstProfile)
set the DL oper burst profile
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t GetDlOperBurstProfile() 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:351
uint8_t GetUlChnlIdOverride() const
void SetRangSubchnl(uint8_t rangSubchnl)
set range sub channel.
~RngRsp() override
uint8_t m_rangSubchnl
Used to indicate the OFDM subchannel reference that was used to transmit the initial ranging message ...
Definition: mac-messages.h:357
uint32_t GetDlFreqOverride() const
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:326
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:305
void SetFrameNumber(uint32_t frameNumber)
set frame number.
Cid GetBasicCid() const
void SetDlFreqOverride(uint32_t dlFreqOverride)
set the Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging.
std::string GetName() const
void SetOffsetFreqAdjust(uint32_t offsetFreqAdjust)
set the relative change in transmission frequency that the SS should take in order to better match th...
uint32_t GetFrameNumber() const
uint8_t m_reserved
changed as per the amendment 802.16e-2005
Definition: mac-messages.h:289
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:312
Cid m_basicCid
basic CID
Definition: mac-messages.h:337
void SetRangStatus(uint8_t rangStatus)
set the range status.
uint32_t m_timingAdjust
Tx timing offset adjustment (signed 32-bit).
Definition: mac-messages.h:297
uint8_t GetInitRangOppNumber() const
uint32_t m_frameNumber
Frame number where the associated RNG_REQ message was detected by the BS.
Definition: mac-messages.h:345
uint8_t GetAasBdcastPermission() const
static TypeId GetTypeId()
Register this type.
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:43
Tlv ToTlv() 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:87
uint32_t GetSerializedSize() const override
Definition: wimax-tlv.cc:102
void Serialize(Buffer::Iterator start) const override
Definition: wimax-tlv.cc:126
uint32_t Deserialize(Buffer::Iterator start) override
Definition: wimax-tlv.cc:146
a unique identifier for an interface.
Definition: type-id.h:59
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:932
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:202
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
Definition: log.h:268
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:46
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.