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
NS_LOG_COMPONENT_DEFINE("MACMESSAGES")
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
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 "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 "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 "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 "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 "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 "IEEE Standard for Local and metropolitan area...
void Serialize(Buffer::Iterator start) const