A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 NS_LOG_COMPONENT_DEFINE ("MACMESSAGES");
30 namespace ns3 {
31 
32 NS_OBJECT_ENSURE_REGISTERED (ManagementMessageType)
33  ;
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").SetParent<Header> ().AddConstructor<ManagementMessageType> ();
72  return tid;
73 }
74 
75 TypeId
77 {
78  return GetTypeId ();
79 }
80 
81 void
82 ManagementMessageType::Print (std::ostream &os) const
83 {
84  os << " management message type = " << (uint32_t) m_type;
85 }
86 
87 uint32_t
89 {
90  return 1;
91 }
92 
93 void
95 {
97  i.WriteU8 (m_type);
98 }
99 
100 uint32_t
102 {
104  m_type = i.ReadU8 ();
105  return i.GetDistanceFrom (start);
106 }
107 
108 // ----------------------------------------------------------------------------------------------------------
109 
111  ;
112 
114  : m_reserved (0),
115  m_reqDlBurstProfile (0),
116  m_macAddress (Mac48Address ("00:00:00:00:00:00")),
117  m_rangingAnomalies (0)
118 {
119 }
120 
122 {
123 }
124 
125 void
126 RngReq::SetReqDlBurstProfile (uint8_t reqDlBurstProfile)
127 {
128  m_reqDlBurstProfile = reqDlBurstProfile;
129 }
130 
131 void
133 {
134  m_macAddress = macAddress;
135 }
136 
137 void
138 RngReq::SetRangingAnomalies (uint8_t rangingAnomalies)
139 {
140  m_rangingAnomalies = rangingAnomalies;
141 }
142 
143 uint8_t
145 {
146  return m_reqDlBurstProfile;
147 }
148 
151 {
152  return m_macAddress;
153 }
154 
155 uint8_t
157 {
158  return m_rangingAnomalies;
159 }
160 
161 std::string
162 RngReq::GetName (void) const
163 {
164  return "RNG-REQ";
165 }
166 
167 TypeId
169 {
170  static TypeId tid = TypeId ("ns3::RngReq").SetParent<Header> ().AddConstructor<RngReq> ();
171  return tid;
172 }
173 
174 TypeId
176 {
177  return GetTypeId ();
178 }
179 
180 void
181 RngReq::Print (std::ostream &os) const
182 {
183  os << " requested dl burst profile = " << (uint32_t) m_reqDlBurstProfile << ", mac address = " << m_macAddress
184  << ", ranging anomalies = " << (uint32_t) m_rangingAnomalies;
185 }
186 
187 void
188 RngReq::PrintDebug (void) const
189 {
190  NS_LOG_DEBUG (" requested dl burst profile = " << (uint32_t) m_reqDlBurstProfile << ", mac address = "
191  << m_macAddress << ", ranging anomalies = "
192  << (uint32_t) m_rangingAnomalies);
193 }
194 
195 uint32_t
197 {
198  return 1 + 1 + 6 + 1;
199 }
200 
201 void
203 {
205  i.WriteU8 (m_reserved);
207  WriteTo (i, m_macAddress);
209 }
210 
211 uint32_t
213 {
215  m_reserved = i.ReadU8 ();
217  ReadFrom (i, m_macAddress);
218  m_rangingAnomalies = i.ReadU8 ();
219 
220  return i.GetDistanceFrom (start);
221 }
222 
223 // ----------------------------------------------------------------------------------------------------------
224 
226  ;
227 
229  : m_reserved (0),
230  m_timingAdjust (0),
231  m_powerLevelAdjust (0),
232  m_offsetFreqAdjust (0),
233  m_rangStatus (0),
234  m_dlFreqOverride (0),
235  m_ulChnlIdOverride (0),
236  m_dlOperBurstProfile (0),
237  m_macAddress (Mac48Address ("00:00:00:00:00:00")),
238  m_basicCid (),
239  m_primaryCid (),
240  m_aasBdcastPermission (0),
241  m_frameNumber (0),
242  m_initRangOppNumber (0),
243  m_rangSubchnl (0)
244 {
245 }
246 
248 {
249 }
250 
251 void
252 RngRsp::SetTimingAdjust (uint32_t timingAdjust)
253 {
254  m_timingAdjust = timingAdjust;
255 }
256 
257 void
258 RngRsp::SetPowerLevelAdjust (uint8_t powerLevelAdjust)
259 {
260  m_powerLevelAdjust = powerLevelAdjust;
261 }
262 
263 void
264 RngRsp::SetOffsetFreqAdjust (uint32_t offsetFreqAdjust)
265 {
266  m_offsetFreqAdjust = offsetFreqAdjust;
267 }
268 
269 void
270 RngRsp::SetRangStatus (uint8_t rangStatus)
271 {
272  m_rangStatus = rangStatus;
273 }
274 
275 void
276 RngRsp::SetDlFreqOverride (uint32_t dlFreqOverride)
277 {
278  m_dlFreqOverride = dlFreqOverride;
279 }
280 
281 void
282 RngRsp::SetUlChnlIdOverride (uint8_t ulChnlIdOverride)
283 {
284  m_ulChnlIdOverride = ulChnlIdOverride;
285 }
286 
287 void
288 RngRsp::SetDlOperBurstProfile (uint16_t dlOperBurstProfile)
289 {
290  m_dlOperBurstProfile = dlOperBurstProfile;
291 }
292 
293 void
295 {
296  m_macAddress = macAddress;
297 }
298 
299 void
301 {
302  m_basicCid = basicCid;
303 }
304 
305 void
307 {
308  m_primaryCid = primaryCid;
309 }
310 
311 void
312 RngRsp::SetAasBdcastPermission (uint8_t aasBdcastPermission)
313 {
314  m_aasBdcastPermission = aasBdcastPermission;
315 }
316 
317 void
318 RngRsp::SetFrameNumber (uint32_t frameNumber)
319 {
320  m_frameNumber = frameNumber;
321 }
322 
323 void
324 RngRsp::SetInitRangOppNumber (uint8_t initRangOppNumber)
325 {
326  m_initRangOppNumber = initRangOppNumber;
327 }
328 
329 void
330 RngRsp::SetRangSubchnl (uint8_t rangSubchnl)
331 {
332  m_rangSubchnl = rangSubchnl;
333 }
334 
335 uint32_t
337 {
338  return m_timingAdjust;
339 }
340 
341 uint8_t
343 {
344  return m_powerLevelAdjust;
345 }
346 
347 uint32_t
349 {
350  return m_offsetFreqAdjust;
351 }
352 
353 uint8_t
355 {
356  return m_rangStatus;
357 }
358 
359 uint32_t
361 {
362  return m_dlFreqOverride;
363 }
364 
365 uint8_t
367 {
368  return m_ulChnlIdOverride;
369 }
370 
371 uint16_t
373 {
374  return m_dlOperBurstProfile;
375 }
376 
379 {
380  return m_macAddress;
381 }
382 
383 Cid
385 {
386  return m_basicCid;
387 }
388 
389 Cid
391 {
392  return m_primaryCid;
393 }
394 
395 uint8_t
397 {
398  return m_aasBdcastPermission;
399 }
400 
401 uint32_t
403 {
404  return m_frameNumber;
405 }
406 
407 uint8_t
409 {
410  return m_initRangOppNumber;
411 }
412 
413 uint8_t
415 {
416  return m_rangSubchnl;
417 }
418 
419 std::string
420 RngRsp::GetName (void) const
421 {
422  return "RNG-RSP";
423 }
424 
425 TypeId
427 {
428  static TypeId tid = TypeId ("ns3::RngRsp").SetParent<Header> ().AddConstructor<RngRsp> ();
429  return tid;
430 }
431 
432 TypeId
434 {
435  return GetTypeId ();
436 }
437 
438 void
439 RngRsp::Print (std::ostream &os) const
440 {
441  os << " timing adjust = " << m_timingAdjust << ", power level adjust = " << (uint32_t) m_powerLevelAdjust
442  << ", offset freq adjust = " << m_offsetFreqAdjust << ", ranging status = " << (uint32_t) m_rangStatus
443  << ", dl freq override = " << m_dlFreqOverride << ", ul channel id override = " << (uint32_t) m_ulChnlIdOverride
444  << ", dl operational burst profile = " << (uint32_t) m_dlOperBurstProfile << ", mac address = " << m_macAddress
445  << ", basic cid = " << m_basicCid << ", primary management cid = " << m_primaryCid
446  << ", aas broadcast permission = " << (uint32_t) m_aasBdcastPermission << ", frame number = " << m_frameNumber
447  << ", initial ranging opportunity number = " << (uint32_t) m_initRangOppNumber << ", ranging subchannel = "
448  << (uint32_t) m_rangSubchnl;
449 }
450 
451 uint32_t
453 {
454  return 1 + 4 + 1 + 4 + 1 + 4 + 1 + 2 + 6 + 2 + 2 + 1 + 4 + 1 + 1;
455 }
456 
457 void
459 {
461  i.WriteU8 (m_reserved);
465  i.WriteU8 (m_rangStatus);
469  WriteTo (i, m_macAddress);
476 }
477 
478 uint32_t
480 {
482  m_reserved = i.ReadU8 ();
483  m_timingAdjust = i.ReadU32 ();
484  m_powerLevelAdjust = i.ReadU8 ();
486  m_rangStatus = i.ReadU8 ();
487  m_dlFreqOverride = i.ReadU32 ();
488  m_ulChnlIdOverride = i.ReadU8 ();
490  ReadFrom (i, m_macAddress); // length (6) shall also be written in packet instead of hard coded, see ARP example
491  m_basicCid = i.ReadU16 ();
492  m_primaryCid = i.ReadU16 ();
494  m_frameNumber = i.ReadU32 ();
496  m_rangSubchnl = i.ReadU8 ();
497 
498  return i.GetDistanceFrom (start);
499 }
500 
501 // ----------------------------------------------------------------------------------------------------------------------
502 
504  ;
505 
507  : m_transactionId (0),
508  m_sfid (0),
509  m_cid (),
510  m_serviceFlow (ServiceFlow::SF_DIRECTION_DOWN)
511 {
512 }
513 
515 {
516  m_transactionId = 0;
517  m_serviceFlow = sf;
518 }
519 
521 {
522 }
523 
524 void
525 DsaReq::SetTransactionId (uint16_t transactionId)
526 {
527  m_transactionId = transactionId;
528 }
529 
530 uint16_t
532 {
533  return m_transactionId;
534 }
535 
536 void
537 DsaReq::SetSfid (uint32_t sfid)
538 {
539  m_sfid = sfid;
540 }
541 
542 uint32_t
543 DsaReq::GetSfid (void) const
544 {
545  return m_sfid;
546 }
547 
548 void
550 {
551  m_cid = cid;
552 }
553 
554 Cid
555 DsaReq::GetCid (void) const
556 {
557  return m_cid;
558 }
559 
560 
561 std::string
562 DsaReq::GetName (void) const
563 {
564  return "DSA-REQ";
565 }
566 
567 TypeId
569 {
570  static TypeId tid = TypeId ("ns3::DsaReq").SetParent<Header> ().AddConstructor<DsaReq> ();
571  return tid;
572 }
573 
574 TypeId
576 {
577  return GetTypeId ();
578 }
579 
580 void
581 DsaReq::Print (std::ostream &os) const
582 {
583  os << " transaction id = " << (uint32_t) m_transactionId << ", m_sfid = " << m_sfid << ", cid = " << m_cid;
584 }
585 
586 /*
587  * 0 7 15 23
588  * +-------------+-------------+-------------+
589  * |Mngt msg type| Transaction ID |
590  * +-------------+-------------+-------------+
591  * | Service Flow TLV |
592  * +~~~~~~~~~~~~~+~~~~~~~~~~~~~+~~~~~~~~~~~~~+
593  *
594  */
595 
596 uint32_t
598 {
599  Tlv t = m_serviceFlow.ToTlv ();
600  uint32_t size = 2 + t.GetSerializedSize ();
601  return size;
602 }
603 
604 void
606 {
609  Tlv t = m_serviceFlow.ToTlv ();
610  t.Serialize (i);
611 }
612 
613 uint32_t
615 {
617  m_transactionId = i.ReadU16 ();
618  Tlv tlv;
619  uint32_t size = tlv.Deserialize (i);
620  m_serviceFlow = ServiceFlow (tlv);
621  return size + 2;
622 }
623 
626 {
627  return m_serviceFlow;
628 }
629 
630 void
632 {
633  m_serviceFlow = sf;
634 }
635 
636 // ----------------------------------------------------------------------------------------------------------------------
637 
639  ;
640 
642  : m_transactionId (0),
643  m_confirmationCode (0),
644  m_sfid (0),
645  m_cid ()
646 {
647 }
648 
650 {
651 }
652 
653 void
654 DsaRsp::SetTransactionId (uint16_t transactionId)
655 {
656  m_transactionId = transactionId;
657 }
658 
659 uint16_t
661 {
662  return m_transactionId;
663 }
664 
667 {
668  return m_serviceFlow;
669 }
670 
671 void
673 {
674  m_serviceFlow = sf;
675 }
676 
677 void
678 DsaRsp::SetConfirmationCode (uint16_t confirmationCode)
679 {
680  m_confirmationCode = confirmationCode;
681 }
682 
683 uint16_t
685 {
686  return m_confirmationCode;
687 }
688 
689 void
690 DsaRsp::SetSfid (uint32_t sfid)
691 {
692  m_sfid = sfid;
693 }
694 
695 uint32_t
696 DsaRsp::GetSfid (void) const
697 {
698  return m_sfid;
699 }
700 
701 void
703 {
704  m_cid = cid;
705 }
706 
707 Cid
708 DsaRsp::GetCid (void) const
709 {
710  return m_cid;
711 }
712 
713 std::string
714 DsaRsp::GetName (void) const
715 {
716  return "DSA-RSP";
717 }
718 
719 TypeId
721 {
722  static TypeId tid = TypeId ("ns3::DsaRsp").SetParent<Header> ().AddConstructor<DsaRsp> ();
723  return tid;
724 }
725 
726 TypeId
728 {
729  return GetTypeId ();
730 }
731 
732 void
733 DsaRsp::Print (std::ostream &os) const
734 {
735  os << " transaction id = " << (uint32_t) m_transactionId << ", confirmation code = " << (uint32_t) m_confirmationCode
736  << ", m_sfid = " << m_sfid << ", cid = " << m_cid;
737 }
738 
739 uint32_t
741 {
742  return 2 + 1 + m_serviceFlow.ToTlv ().GetSerializedSize ();
743 }
744 
745 /*
746  * 0 7 15 23
747  * +-------------+-------------+-------------+
748  * |Mngt msg type| Transaction ID |
749  * +-------------+-------------+-------------+
750  * | Conf Code | Service Flow TLV |
751  * +~~~~~~~~~~~~~+~~~~~~~~~~~~~+~~~~~~~~~~~~~+
752  *
753  */
754 void
756 {
758 
762 }
763 
764 uint32_t
766 {
768 
769  m_transactionId = i.ReadU16 ();
770  m_confirmationCode = i.ReadU8 ();
771  Tlv tlv;
772  uint32_t size = tlv.Deserialize (i);
773  m_serviceFlow = ServiceFlow (tlv);
774  return size + 3;
775 }
776 
777 // ----------------------------------------------------------------------------------------------------------
778 
780  ;
781 
783  : m_transactionId (0),
784  m_confirmationCode (0)
785 {
786 }
787 
789 {
790 }
791 
792 void
793 DsaAck::SetTransactionId (uint16_t transactionId)
794 {
795  m_transactionId = transactionId;
796 }
797 
798 uint16_t
800 {
801  return m_transactionId;
802 }
803 
804 void
805 DsaAck::SetConfirmationCode (uint16_t confirmationCode)
806 {
807  m_confirmationCode = confirmationCode;
808 }
809 
810 uint16_t
812 {
813  return m_confirmationCode;
814 }
815 
816 std::string
817 DsaAck::GetName (void) const
818 {
819  return "DSA-ACK";
820 }
821 
822 TypeId
824 {
825  static TypeId tid = TypeId ("ns3::DsaAck").SetParent<Header> ().AddConstructor<DsaAck> ();
826  return tid;
827 }
828 
829 TypeId
831 {
832  return GetTypeId ();
833 }
834 
835 void
836 DsaAck::Print (std::ostream &os) const
837 {
838  os << " transaction id = " << (uint32_t) m_transactionId << ", confirmation code = " << (uint32_t) m_confirmationCode;
839 }
840 
841 uint32_t
843 {
844  return 2 + 1;
845 }
846 
847 void
849 {
853 }
854 
855 uint32_t
857 {
859  m_transactionId = i.ReadU16 ();
860  m_confirmationCode = i.ReadU8 ();
861 
862  return i.GetDistanceFrom (start);
863 }
864 
865 } // namespace ns3
uint16_t ReadU16(void)
Definition: buffer.h:845
Protocol header serialization and deserialization.
Definition: header.h:42
uint32_t GetSerializedSize(void) const
Doxygen introspection did not find any typical Config paths.
Definition: mac-messages.h:335
void SetMacAddress(Mac48Address macAddress)
Mac48Address m_macAddress
Definition: mac-messages.h:227
static TypeId GetTypeId(void)
uint8_t GetRangingAnomalies(void) const
uint32_t ReadU32(void)
Definition: buffer.cc:997
Cid GetCid(void) const
void SetReqDlBurstProfile(uint8_t reqDlBurstProfile)
void Print(std::ostream &os) const
void SetPowerLevelAdjust(uint8_t powerLevelAdjust)
set the relative change in transmission power level that the SS should make in order that transmissio...
Doxygen introspection did not find any typical Config paths.
Definition: mac-messages.h:412
uint8_t GetRangSubchnl(void) const
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
Doxygen introspection did not find any typical Config paths.
Definition: mac-messages.h:97
uint8_t m_reserved
Definition: mac-messages.h:196
uint8_t m_confirmationCode
Definition: mac-messages.h:439
virtual TypeId GetInstanceTypeId(void) const
uint8_t GetReqDlBurstProfile(void) const
void SetMacAddress(Mac48Address macAddress)
void SetServiceFlow(ServiceFlow sf)
specify a service flow to be requested by this message
uint16_t m_transactionId
Definition: mac-messages.h:438
Mac48Address m_macAddress
Definition: mac-messages.h:491
virtual TypeId GetInstanceTypeId(void) const
Definition: mac-messages.cc:76
ServiceFlow GetServiceFlow(void) const
ServiceFlow m_serviceFlow
Definition: mac-messages.h:316
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.
uint32_t GetSfid(void) const
uint16_t GetConfirmationCode(void) const
Doxygen introspection did not find any typical Config paths.
Definition: mac-messages.h:458
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: wimax-tlv.cc:135
ServiceFlow GetServiceFlow(void) const
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
std::string GetName(void) const
Definition: mac-messages.cc:62
#define NS_LOG_COMPONENT_DEFINE(name)
Definition: log.h:171
Mac48Address GetMacAddress(void) const
uint8_t m_confirmationCode
Definition: mac-messages.h:389
uint32_t GetSfid(void) const
virtual ~RngReq(void)
Cid GetCid(void) const
uint8_t m_powerLevelAdjust
Definition: mac-messages.h:208
std::string GetName(void) const
uint32_t GetDlFreqOverride(void) const
uint32_t GetSerializedSize(void) const
void SetDlOperBurstProfile(uint16_t dlOperBurstProfile)
uint32_t Deserialize(Buffer::Iterator start)
uint8_t GetType(void) const
Definition: mac-messages.cc:56
uint8_t GetInitRangOppNumber(void) const
This class implements the Type-Len-Value structure channel encodings as described by &quot;IEEE Standard f...
Definition: wimax-tlv.h:64
uint8_t m_reserved
Definition: mac-messages.h:487
uint32_t Deserialize(Buffer::Iterator start)
uint32_t GetDistanceFrom(Iterator const &o) const
Definition: buffer.cc:807
uint32_t GetTimingAdjust(void) const
DsaReq()
This class implements the ranging request message described by &quot;IEEE Standard for Local and metropoli...
iterator in a Buffer instance
Definition: buffer.h:98
uint32_t m_sfid
Definition: mac-messages.h:314
uint16_t GetConfirmationCode(void) const
virtual TypeId GetInstanceTypeId(void) const
uint16_t m_transactionId
Definition: mac-messages.h:312
static TypeId GetTypeId(void)
virtual void Serialize(Buffer::Iterator start) const
Definition: wimax-tlv.cc:115
void SetTransactionId(uint16_t transactionId)
void SetRangStatus(uint8_t rangStatus)
std::string GetName(void) const
uint8_t m_initRangOppNumber
Definition: mac-messages.h:238
void Serialize(Buffer::Iterator start) const
void SetAasBdcastPermission(uint8_t aasBdcastPermission)
uint8_t m_rangingAnomalies
Definition: mac-messages.h:492
uint32_t Deserialize(Buffer::Iterator start)
uint16_t GetDlOperBurstProfile(void) const
void WriteU16(uint16_t data)
Definition: buffer.cc:895
uint32_t Deserialize(Buffer::Iterator start)
uint32_t Deserialize(Buffer::Iterator start)
Cid GetBasicCid(void) const
void SetTimingAdjust(uint32_t timingAdjust)
set the Tx timing offset adjustment (signed 32-bit).
void Print(std::ostream &os) const
virtual ~RngRsp(void)
void PrintDebug(void) const
virtual TypeId GetInstanceTypeId(void) const
uint32_t m_timingAdjust
Definition: mac-messages.h:202
uint32_t m_frameNumber
Definition: mac-messages.h:234
uint32_t GetSerializedSize(void) const
void Print(std::ostream &os) const
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)
uint8_t m_rangSubchnl
Definition: mac-messages.h:242
void SetCid(Cid cid)
set the connection identifier
uint8_t GetRangStatus(void) const
uint8_t m_rangStatus
Definition: mac-messages.h:213
uint8_t GetAasBdcastPermission(void) const
uint32_t GetFrameNumber(void) const
void Serialize(Buffer::Iterator start) const
uint16_t m_dlOperBurstProfile
Definition: mac-messages.h:225
Definition: cid.h:35
void SetDlFreqOverride(uint32_t dlFreqOverride)
set the Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging...
static TypeId GetTypeId(void)
Definition: mac-messages.cc:68
virtual uint32_t GetSerializedSize(void) const
Definition: wimax-tlv.cc:91
Mac48Address GetMacAddress(void) const
void Serialize(Buffer::Iterator start) const
an EUI-48 address
Definition: mac48-address.h:41
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:39
void SetInitRangOppNumber(uint8_t initRangOppNumber)
std::string GetName(void) const
virtual ~ManagementMessageType(void)
Definition: mac-messages.cc:45
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)
void SetConfirmationCode(uint16_t confirmationCode)
uint8_t GetPowerLevelAdjust(void) const
void Print(std::ostream &os) const
uint8_t m_aasBdcastPermission
Definition: mac-messages.h:230
void Print(std::ostream &os) const
uint32_t m_sfid
Definition: mac-messages.h:392
uint32_t GetSerializedSize(void) const
Definition: mac-messages.cc:88
std::string GetName(void) const
uint16_t m_transactionId
Definition: mac-messages.h:388
void SetRangSubchnl(uint8_t rangSubchnl)
RngReq(void)
This class implements the DSA-REQ message described by &quot;IEEE Standard for Local and metropolitan area...
void SetFrameNumber(uint32_t frameNumber)
void SetSfid(uint32_t sfid)
set the service flow identifier
void SetTransactionId(uint16_t transactionId)
void WriteU8(uint8_t data)
Definition: buffer.h:690
void SetPrimaryCid(Cid primaryCid)
uint8_t m_ulChnlIdOverride
Definition: mac-messages.h:220
void SetBasicCid(Cid basicCid)
uint16_t GetTransactionId(void) const
uint32_t GetSerializedSize(void) const
#define NS_LOG_DEBUG(msg)
Definition: log.h:289
uint8_t m_reqDlBurstProfile
Definition: mac-messages.h:490
uint16_t GetTransactionId(void) const
static TypeId GetTypeId(void)
uint32_t GetSerializedSize(void) const
uint8_t ReadU8(void)
Definition: buffer.h:819
Cid GetPrimaryCid(void) const
void SetSfid(uint32_t sfid)
set the service flow identifier
uint32_t GetOffsetFreqAdjust(void) const
uint8_t GetUlChnlIdOverride(void) const
uint32_t Deserialize(Buffer::Iterator start)
virtual TypeId GetInstanceTypeId(void) const
void SetType(uint8_t type)
Definition: mac-messages.cc:50
static TypeId GetTypeId(void)
uint16_t GetIdentifier(void) const
Definition: cid.cc:45
uint32_t m_dlFreqOverride
Definition: mac-messages.h:216
Tlv ToTlv(void) const
creates a TLV from this service flow
DsaRsp(void)
This class implements the DSA-RSP message described by &quot;IEEE Standard for Local and metropolitan area...
void SetCid(Cid cid)
set the connection identifier
RngRsp(void)
This class implements the ranging response message described by &quot;IEEE Standard for Local and metropol...
Doxygen introspection did not find any typical Config paths.
Definition: mac-messages.h:262
void WriteU32(uint32_t data)
Definition: buffer.cc:903
void Serialize(Buffer::Iterator start) const
uint32_t m_offsetFreqAdjust
Definition: mac-messages.h:212
a unique identifier for an interface.
Definition: type-id.h:49
ServiceFlow m_serviceFlow
Definition: mac-messages.h:391
TypeId SetParent(TypeId tid)
Definition: type-id.cc:611
std::string GetName(void) const
void Serialize(Buffer::Iterator start) const
Definition: mac-messages.cc:94
uint16_t GetTransactionId(void) const
void Print(std::ostream &os) const
Definition: mac-messages.cc:82
virtual TypeId GetInstanceTypeId(void) const
void SetRangingAnomalies(uint8_t rangingAnomalies)
void SetConfirmationCode(uint16_t confirmationCode)
DsaAck(void)
This class implements the DSA-ACK message described by &quot;IEEE Standard for Local and metropolitan area...
void Serialize(Buffer::Iterator start) const