LEFT | RIGHT |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2007,2008,2009 INRIA, UDcast | 3 * Copyright (c) 2007,2008,2009 INRIA, UDcast |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 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 | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 13 matching lines...) Expand all Loading... |
24 #define DCD_CHANNEL_ENCODINGS_H | 24 #define DCD_CHANNEL_ENCODINGS_H |
25 | 25 |
26 #include <stdint.h> | 26 #include <stdint.h> |
27 #include "ns3/buffer.h" | 27 #include "ns3/buffer.h" |
28 #include <list> | 28 #include <list> |
29 | 29 |
30 namespace ns3 { | 30 namespace ns3 { |
31 | 31 |
32 /** | 32 /** |
33 * \ingroup wimax | 33 * \ingroup wimax |
34 * \brief This class implements the DCD channel encodings as described by "IEEE
Standard for | 34 * This class implements the DCD channel encodings as described by "IEEE Standar
d for |
35 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" | 35 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
36 * 11.4.1 DCD channel encodings, page 659 | 36 * 11.4.1 DCD channel encodings, page 659 |
37 * | 37 */ |
38 */ | |
39 class DcdChannelEncodings | 38 class DcdChannelEncodings |
40 { | 39 { |
41 public: | 40 public: |
42 DcdChannelEncodings (void); | 41 DcdChannelEncodings (void); |
43 virtual ~DcdChannelEncodings (void); | 42 virtual ~DcdChannelEncodings (void); |
44 | 43 |
45 /** | 44 /** |
46 * Set BS EIRP function | 45 * Set BS EIRP field |
47 * \param bs_eirp the BS EIRP | 46 * \param bs_eirp the BS EIRP |
48 */ | 47 */ |
49 void SetBsEirp (uint16_t bs_eirp); | 48 void SetBsEirp (uint16_t bs_eirp); |
50 /** | 49 /** |
51 * Set EIRX IR MAX function | 50 * Set EIRX IR MAX field |
52 * \param rss_ir_max the EIRRX IR MAX | 51 * \param rss_ir_max the EIRRX IR MAX |
53 */ | 52 */ |
54 void SetEirxPIrMax (uint16_t rss_ir_max); | 53 void SetEirxPIrMax (uint16_t rss_ir_max); |
55 /** | 54 /** |
56 * Set frequency function | 55 * Set frequency field |
57 * \param frequency the frequency | 56 * \param frequency the frequency |
58 */ | 57 */ |
59 void SetFrequency (uint32_t frequency); | 58 void SetFrequency (uint32_t frequency); |
60 | 59 |
61 /** | 60 /** |
62 * Get BS EIRP function | 61 * Get BS EIRP field |
63 * \returns the BS EIRP | 62 * \returns the BS EIRP |
64 */ | 63 */ |
65 uint16_t GetBsEirp (void) const; | 64 uint16_t GetBsEirp (void) const; |
66 /** | 65 /** |
67 * Get EIRX IR MAX function | 66 * Get EIRX IR MAX field |
68 * \returns the EIRX IR MAX | 67 * \returns the EIRX IR MAX |
69 */ | 68 */ |
70 uint16_t GetEirxPIrMax (void) const; | 69 uint16_t GetEirxPIrMax (void) const; |
71 /** | 70 /** |
72 * Get frequency functon | 71 * Get frequency functon |
73 * \returns the frequency | 72 * \returns the frequency |
74 */ | 73 */ |
75 uint32_t GetFrequency (void) const; | 74 uint32_t GetFrequency (void) const; |
76 | 75 |
77 /** | 76 /** |
78 * Get size function | 77 * Get size field |
79 * \returns the size | 78 * \returns the size |
80 */ | 79 */ |
81 uint16_t GetSize (void) const; | 80 uint16_t GetSize (void) const; |
82 | 81 |
83 /** | 82 /** |
84 * Write item | 83 * Write item |
85 * \param start the iterator | 84 * \param start the iterator |
86 * \returns the updated iterator | 85 * \returns the updated iterator |
87 */ | 86 */ |
88 Buffer::Iterator Write (Buffer::Iterator start) const; | 87 Buffer::Iterator Write (Buffer::Iterator start) const; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 | 119 |
121 #ifndef OFDM_DCD_CHANNEL_ENCODINGS_H | 120 #ifndef OFDM_DCD_CHANNEL_ENCODINGS_H |
122 #define OFDM_DCD_CHANNEL_ENCODINGS_H | 121 #define OFDM_DCD_CHANNEL_ENCODINGS_H |
123 | 122 |
124 #include <stdint.h> | 123 #include <stdint.h> |
125 #include "ns3/mac48-address.h" | 124 #include "ns3/mac48-address.h" |
126 | 125 |
127 namespace ns3 { | 126 namespace ns3 { |
128 | 127 |
129 /** | 128 /** |
130 * OfdmDcdChannelEncodings | 129 * This class implements the OFDM DCD channel encodings as described by "IEEE St
andard for |
| 130 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
131 */ | 131 */ |
132 class OfdmDcdChannelEncodings : public DcdChannelEncodings | 132 class OfdmDcdChannelEncodings : public DcdChannelEncodings |
133 { | 133 { |
134 /** | |
135 * \brief This class implements the DCD channel encodings as described by "IEE
E Standard for | |
136 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broad
band Wireless Access Systems" | |
137 * 11.4.1 DCD channel encodings, page 659 | |
138 * | |
139 */ | |
140 | |
141 public: | 134 public: |
142 OfdmDcdChannelEncodings (void); | 135 OfdmDcdChannelEncodings (void); |
143 ~OfdmDcdChannelEncodings (void); | 136 ~OfdmDcdChannelEncodings (void); |
144 | 137 |
145 /** | 138 /** |
146 * Set channel number function | 139 * Set channel number field |
147 * \param channelNr the channel number | 140 * \param channelNr the channel number |
148 */ | 141 */ |
149 void SetChannelNr (uint8_t channelNr); | 142 void SetChannelNr (uint8_t channelNr); |
150 /** | 143 /** |
151 * Set TTG function | 144 * Set TTG field |
152 * \param ttg the TTG | 145 * \param ttg the TTG |
153 */ | 146 */ |
154 void SetTtg (uint8_t ttg); | 147 void SetTtg (uint8_t ttg); |
155 /** | 148 /** |
156 * Set RTG function | 149 * Set RTG field |
157 * \param rtg the RTG | 150 * \param rtg the RTG |
158 */ | 151 */ |
159 void SetRtg (uint8_t rtg); | 152 void SetRtg (uint8_t rtg); |
160 | 153 |
161 /** | 154 /** |
162 * Set base station ID function | 155 * Set base station ID field |
163 * \param baseStationId the base station ID | 156 * \param baseStationId the base station ID |
164 */ | 157 */ |
165 void SetBaseStationId (Mac48Address baseStationId); | 158 void SetBaseStationId (Mac48Address baseStationId); |
166 /** | 159 /** |
167 * Set frame duration code function | 160 * Set frame duration code field |
168 * \param frameDurationCode the frame duration code | 161 * \param frameDurationCode the frame duration code |
169 */ | 162 */ |
170 void SetFrameDurationCode (uint8_t frameDurationCode); | 163 void SetFrameDurationCode (uint8_t frameDurationCode); |
171 /** | 164 /** |
172 * Set frame number function | 165 * Set frame number field |
173 * \param frameNumber the frame number | 166 * \param frameNumber the frame number |
174 */ | 167 */ |
175 void SetFrameNumber (uint32_t frameNumber); | 168 void SetFrameNumber (uint32_t frameNumber); |
176 | 169 |
177 /** | 170 /** |
178 * Get channel number function | 171 * Get channel number field |
179 * \returns the channel number | 172 * \returns the channel number |
180 */ | 173 */ |
181 uint8_t GetChannelNr (void) const; | 174 uint8_t GetChannelNr (void) const; |
182 /** | 175 /** |
183 * Get TTG function | 176 * Get TTG field |
184 * \returns the TTG | 177 * \returns the TTG |
185 */ | 178 */ |
186 uint8_t GetTtg (void) const; | 179 uint8_t GetTtg (void) const; |
187 /** | 180 /** |
188 * Get RTG function | 181 * Get RTG field |
189 * \returns the RTG | 182 * \returns the RTG |
190 */ | 183 */ |
191 uint8_t GetRtg (void) const; | 184 uint8_t GetRtg (void) const; |
192 | 185 |
193 /** | 186 /** |
194 * Get base station ID function | 187 * Get base station ID field |
195 * \returns the base station MAC address | 188 * \returns the base station MAC address |
196 */ | 189 */ |
197 Mac48Address GetBaseStationId (void) const; | 190 Mac48Address GetBaseStationId (void) const; |
198 /** | 191 /** |
199 * Get frame duration code function | 192 * Get frame duration code field |
200 * \returns the frame duration code | 193 * \returns the frame duration code |
201 */ | 194 */ |
202 uint8_t GetFrameDurationCode (void) const; | 195 uint8_t GetFrameDurationCode (void) const; |
203 /** | 196 /** |
204 * Get frame number function | 197 * Get frame number field |
205 * \returns the frame number | 198 * \returns the frame number |
206 */ | 199 */ |
207 uint32_t GetFrameNumber (void) const; | 200 uint32_t GetFrameNumber (void) const; |
208 | 201 |
209 /** | 202 /** |
210 * Get size function | 203 * Get size field |
211 * \returns the size function | 204 * \returns the size |
212 */ | 205 */ |
213 uint16_t GetSize (void) const; | 206 uint16_t GetSize (void) const; |
214 private: | 207 private: |
215 /** | 208 /** |
216 * Write item function | 209 * Write item |
217 * \param start the iterator | 210 * \param start the iterator |
218 * \returns the updated iterator | 211 * \returns the updated iterator |
219 */ | 212 */ |
220 virtual Buffer::Iterator DoWrite (Buffer::Iterator start) const; | 213 virtual Buffer::Iterator DoWrite (Buffer::Iterator start) const; |
221 /** | 214 /** |
222 * Read item function | 215 * Read item |
223 * \param start the iterator | 216 * \param start the iterator |
224 * \returns the updated iterator | 217 * \returns the updated iterator |
225 */ | 218 */ |
226 virtual Buffer::Iterator DoRead (Buffer::Iterator start); | 219 virtual Buffer::Iterator DoRead (Buffer::Iterator start); |
227 | 220 |
228 uint8_t m_channelNr; ///< channel number | 221 uint8_t m_channelNr; ///< channel number |
229 uint8_t m_ttg; ///< TTG | 222 uint8_t m_ttg; ///< TTG |
230 uint8_t m_rtg; ///< RTG | 223 uint8_t m_rtg; ///< RTG |
231 | 224 |
232 uint32_t m_chnlSwitchFrameNr; ///< channel switch frame number | 225 uint32_t m_chnlSwitchFrameNr; ///< channel switch frame number |
(...skipping 10 matching lines...) Expand all Loading... |
243 | 236 |
244 #ifndef OFDM_DL_BURST_PROFILE_H | 237 #ifndef OFDM_DL_BURST_PROFILE_H |
245 #define OFDM_DL_BURST_PROFILE_H | 238 #define OFDM_DL_BURST_PROFILE_H |
246 | 239 |
247 #include <stdint.h> | 240 #include <stdint.h> |
248 #include "ns3/buffer.h" | 241 #include "ns3/buffer.h" |
249 | 242 |
250 namespace ns3 { | 243 namespace ns3 { |
251 | 244 |
252 /** | 245 /** |
253 * OfdmDlBurstProfile | 246 * This class implements the OFDM Downlink burst profile descriptor as described
by "IEEE Standard for |
| 247 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
| 248 * 8.2.1.10 Burst profile formats page 416 |
| 249 * |
254 */ | 250 */ |
255 class OfdmDlBurstProfile | 251 class OfdmDlBurstProfile |
256 { | 252 { |
257 /** | |
258 * \brief This class implements the OFDM Downlink burst profile descriptor as
described by "IEEE Standard for | |
259 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broad
band Wireless Access Systems" | |
260 * 8.2.1.10 Burst profile formats page 416 | |
261 * | |
262 */ | |
263 public: | 253 public: |
264 /// DIUC enumeration | 254 /// DIUC enumeration |
265 enum Diuc | 255 enum Diuc |
266 { | 256 { |
267 DIUC_STC_ZONE = 0, | 257 DIUC_STC_ZONE = 0, |
268 DIUC_BURST_PROFILE_1, | 258 DIUC_BURST_PROFILE_1, |
269 DIUC_BURST_PROFILE_2, | 259 DIUC_BURST_PROFILE_2, |
270 DIUC_BURST_PROFILE_3, | 260 DIUC_BURST_PROFILE_3, |
271 DIUC_BURST_PROFILE_4, | 261 DIUC_BURST_PROFILE_4, |
272 DIUC_BURST_PROFILE_5, | 262 DIUC_BURST_PROFILE_5, |
273 DIUC_BURST_PROFILE_6, | 263 DIUC_BURST_PROFILE_6, |
274 DIUC_BURST_PROFILE_7, | 264 DIUC_BURST_PROFILE_7, |
275 DIUC_BURST_PROFILE_8, | 265 DIUC_BURST_PROFILE_8, |
276 DIUC_BURST_PROFILE_9, | 266 DIUC_BURST_PROFILE_9, |
277 DIUC_BURST_PROFILE_10, | 267 DIUC_BURST_PROFILE_10, |
278 DIUC_BURST_PROFILE_11, | 268 DIUC_BURST_PROFILE_11, |
279 // 12 is reserved | 269 // 12 is reserved |
280 DIUC_GAP = 13, | 270 DIUC_GAP = 13, |
281 DIUC_END_OF_MAP | 271 DIUC_END_OF_MAP |
282 }; | 272 }; |
283 | 273 |
284 OfdmDlBurstProfile (void); | 274 OfdmDlBurstProfile (void); |
285 ~OfdmDlBurstProfile (void); | 275 ~OfdmDlBurstProfile (void); |
286 | 276 |
287 /** | 277 /** |
288 * Set type function | 278 * Set type field |
289 * \param type the type to set | 279 * \param type the type to set |
290 */ | 280 */ |
291 void SetType (uint8_t type); | 281 void SetType (uint8_t type); |
292 /** | 282 /** |
293 * Set length function | 283 * Set length field |
294 * \param length the length to set | 284 * \param length the length to set |
295 */ | 285 */ |
296 void SetLength (uint8_t length); | 286 void SetLength (uint8_t length); |
297 /** | 287 /** |
298 * Set DIUC function | 288 * Set DIUC field |
299 * \param diuc the DIUC | 289 * \param diuc the DIUC |
300 */ | 290 */ |
301 void SetDiuc (uint8_t diuc); | 291 void SetDiuc (uint8_t diuc); |
302 | 292 |
303 /** | 293 /** |
304 * Set FEC code type | 294 * Set FEC code type |
305 * \param fecCodeType the FEC code type | 295 * \param fecCodeType the FEC code type |
306 */ | 296 */ |
307 void SetFecCodeType (uint8_t fecCodeType); | 297 void SetFecCodeType (uint8_t fecCodeType); |
308 | 298 |
309 /** | 299 /** |
310 * Get type functon | 300 * Get type functon |
311 * \returns the type | 301 * \returns the type |
312 */ | 302 */ |
313 uint8_t GetType (void) const; | 303 uint8_t GetType (void) const; |
314 /// Get length function | 304 /** \returns the length field */ |
315 uint8_t GetLength (void) const; | 305 uint8_t GetLength (void) const; |
316 /// Get DIUC function | 306 /** \returns the DIUC field */ |
317 uint8_t GetDiuc (void) const; | 307 uint8_t GetDiuc (void) const; |
318 | 308 |
319 /// Get FEC code type functon | 309 /** \returns the FEC code type */ |
320 uint8_t GetFecCodeType (void) const; | 310 uint8_t GetFecCodeType (void) const; |
321 | 311 |
322 /// Get size function | 312 /** \returns the size */ |
323 uint16_t GetSize (void) const; | 313 uint16_t GetSize (void) const; |
324 | 314 |
325 /// Write item function | 315 /** |
| 316 * Write item |
| 317 * \param start the starting item iterator |
| 318 * \returns the iterator |
| 319 */ |
326 Buffer::Iterator Write (Buffer::Iterator start) const; | 320 Buffer::Iterator Write (Buffer::Iterator start) const; |
327 /// Read item function | 321 /** |
| 322 * Read item |
| 323 * \param start the starting item iterator |
| 324 * \returns the iterator |
| 325 */ |
328 Buffer::Iterator Read (Buffer::Iterator start); | 326 Buffer::Iterator Read (Buffer::Iterator start); |
329 private: | 327 private: |
330 uint8_t m_type; ///< type | 328 uint8_t m_type; ///< type |
331 uint8_t m_length; ///< length | 329 uint8_t m_length; ///< length |
332 uint8_t m_diuc; ///< diuc | 330 uint8_t m_diuc; ///< diuc |
333 | 331 |
334 // TLV Encoded information | 332 // TLV Encoded information |
335 uint8_t m_fecCodeType; ///< FEC code type | 333 uint8_t m_fecCodeType; ///< FEC code type |
336 }; | 334 }; |
337 | 335 |
338 } // namespace ns3 | 336 } // namespace ns3 |
339 | 337 |
340 #endif /* OFDM_DL_BURST_PROFILE_H */ | 338 #endif /* OFDM_DL_BURST_PROFILE_H */ |
341 | 339 |
342 // -----------------------------------------------------------------------------
----------------------------- | 340 // -----------------------------------------------------------------------------
----------------------------- |
343 | 341 |
344 #ifndef DCD_H | 342 #ifndef DCD_H |
345 #define DCD_H | 343 #define DCD_H |
346 | 344 |
347 #include <stdint.h> | 345 #include <stdint.h> |
348 #include "ns3/header.h" | 346 #include "ns3/header.h" |
349 #include <vector> | 347 #include <vector> |
350 | 348 |
351 namespace ns3 { | 349 namespace ns3 { |
352 | 350 |
353 /** | 351 /** |
354 * DCD class | 352 * This class implements Downlink channel descriptor as described by "IEEE Stand
ard for |
| 353 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
| 354 * 6.3.2.3.1 Downlink Channel Descriptor (DCD) message, page 45 |
355 */ | 355 */ |
356 class Dcd : public Header | 356 class Dcd : public Header |
357 { | 357 { |
358 /** | |
359 * \brief This class implements Downlink channel descriptor as described by "
IEEE Standard for | |
360 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broa
dband Wireless Access Systems" | |
361 * 6.3.2.3.1 Downlink Channel Descriptor (DCD) message, page 45 | |
362 * | |
363 */ | |
364 public: | 358 public: |
365 Dcd (void); | 359 Dcd (void); |
366 virtual ~Dcd (void); | 360 virtual ~Dcd (void); |
367 | 361 |
368 /** | 362 /** |
369 * Set configuration change count function | 363 * Set configuration change count field |
370 * \param configurationChangeCount the configuration change count | 364 * \param configurationChangeCount the configuration change count |
371 */ | 365 */ |
372 void SetConfigurationChangeCount (uint8_t configurationChangeCount); | 366 void SetConfigurationChangeCount (uint8_t configurationChangeCount); |
373 /** | 367 /** |
374 * Set channel encodings function | 368 * Set channel encodings field |
375 * \param channelEncodings the channel encodings | 369 * \param channelEncodings the channel encodings |
376 */ | 370 */ |
377 void SetChannelEncodings (OfdmDcdChannelEncodings channelEncodings); | 371 void SetChannelEncodings (OfdmDcdChannelEncodings channelEncodings); |
378 /** | 372 /** |
379 * Add DL burst profile function | 373 * Add DL burst profile field |
380 * \param dlBurstProfile the DL burst profile | 374 * \param dlBurstProfile the DL burst profile |
381 */ | 375 */ |
382 void AddDlBurstProfile (OfdmDlBurstProfile dlBurstProfile); | 376 void AddDlBurstProfile (OfdmDlBurstProfile dlBurstProfile); |
383 /** | 377 /** |
384 * Set number DL burst profile function | 378 * Set number DL burst profile field |
385 * \param nrDlBurstProfiles the number of DL burst profiles | 379 * \param nrDlBurstProfiles the number of DL burst profiles |
386 */ | 380 */ |
387 void SetNrDlBurstProfiles (uint8_t nrDlBurstProfiles); | 381 void SetNrDlBurstProfiles (uint8_t nrDlBurstProfiles); |
388 | 382 |
389 /** | 383 /** |
390 * Get configuration change count function | 384 * Get configuration change count field |
391 * \returns the configuration change count | 385 * \returns the configuration change count |
392 */ | 386 */ |
393 uint8_t GetConfigurationChangeCount (void) const; | 387 uint8_t GetConfigurationChangeCount (void) const; |
394 /** | 388 /** |
395 * Get channel encodings function | 389 * Get channel encodings field |
396 * \returns the channel encodings | 390 * \returns the channel encodings |
397 */ | 391 */ |
398 OfdmDcdChannelEncodings GetChannelEncodings (void) const; | 392 OfdmDcdChannelEncodings GetChannelEncodings (void) const; |
399 /** | 393 /** |
400 * Get DL burst profile function | 394 * Get DL burst profile field |
401 * \returns the DL burst profiles | 395 * \returns the DL burst profiles |
402 */ | 396 */ |
403 std::vector<OfdmDlBurstProfile> GetDlBurstProfiles (void) const; | 397 std::vector<OfdmDlBurstProfile> GetDlBurstProfiles (void) const; |
404 /** | 398 /** |
405 * Get number DL burst profiles function | 399 * Get number DL burst profiles field |
406 * \returns the number of DL burst profiles | 400 * \returns the number of DL burst profiles |
407 */ | 401 */ |
408 uint8_t GetNrDlBurstProfiles (void) const; | 402 uint8_t GetNrDlBurstProfiles (void) const; |
409 | 403 |
410 /** | 404 /** |
411 * Get name function | 405 * Get name field |
412 * \returns the name string | 406 * \returns the name string |
413 */ | 407 */ |
414 std::string GetName (void) const; | 408 std::string GetName (void) const; |
415 /** | 409 /** |
416 * \brief Get the type ID. | 410 * \brief Get the type ID. |
417 * \return the object TypeId | 411 * \return the object TypeId |
418 */ | 412 */ |
419 static TypeId GetTypeId (void); | 413 static TypeId GetTypeId (void); |
420 virtual TypeId GetInstanceTypeId (void) const; | 414 virtual TypeId GetInstanceTypeId (void) const; |
421 void Print (std::ostream &os) const; | 415 void Print (std::ostream &os) const; |
(...skipping 17 matching lines...) Expand all Loading... |
439 | 433 |
440 #ifndef OFDM_DL_MAP_IE_H | 434 #ifndef OFDM_DL_MAP_IE_H |
441 #define OFDM_DL_MAP_IE_H | 435 #define OFDM_DL_MAP_IE_H |
442 | 436 |
443 #include <stdint.h> | 437 #include <stdint.h> |
444 #include "cid.h" | 438 #include "cid.h" |
445 | 439 |
446 namespace ns3 { | 440 namespace ns3 { |
447 | 441 |
448 /** | 442 /** |
449 * OfdmDlMapIe | 443 * This class implements the OFDM DL-MAP information element as described by "IE
EE Standard for |
| 444 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
| 445 * 6.3.2.3.43.6 Compact DL-MAP IE page 109 |
450 */ | 446 */ |
451 class OfdmDlMapIe | 447 class OfdmDlMapIe |
452 { | 448 { |
453 /** | |
454 * \brief This class implements DL-map ie as described by "IEEE Standard for | |
455 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broa
dband Wireless Access Systems" | |
456 * 6.3.2.3.43.6 Compact DL-MAP IE page 109 | |
457 * | |
458 */ | |
459 public: | 449 public: |
460 OfdmDlMapIe (void); | 450 OfdmDlMapIe (void); |
461 ~OfdmDlMapIe (void); | 451 ~OfdmDlMapIe (void); |
462 | 452 |
463 /** | 453 /** |
464 * Set CID functon | 454 * Set CID functon |
465 * \param cid the CID | 455 * \param cid the CID |
466 */ | 456 */ |
467 void SetCid (Cid cid); | 457 void SetCid (Cid cid); |
468 /** | 458 /** |
469 * Set DIUC function | 459 * Set DIUC field |
470 * \param diuc the DIUC | 460 * \param diuc the DIUC |
471 */ | 461 */ |
472 void SetDiuc (uint8_t diuc); | 462 void SetDiuc (uint8_t diuc); |
473 /** | 463 /** |
474 * Set preamble present function | 464 * Set preamble present field |
475 * \param preamblePresent the preamble present | 465 * \param preamblePresent the preamble present |
476 */ | 466 */ |
477 void SetPreamblePresent (uint8_t preamblePresent); | 467 void SetPreamblePresent (uint8_t preamblePresent); |
478 /** | 468 /** |
479 * Set start time function | 469 * Set start time field |
480 * \param startTime the start time value | 470 * \param startTime the start time value |
481 */ | 471 */ |
482 void SetStartTime (uint16_t startTime); | 472 void SetStartTime (uint16_t startTime); |
483 | 473 |
484 /** | 474 /** |
485 * Set CID function | 475 * Set CID field |
486 * \returns the CID | 476 * \returns the CID |
487 */ | 477 */ |
488 Cid GetCid (void) const; | 478 Cid GetCid (void) const; |
489 /** | 479 /** |
490 * Get DIUC function | 480 * Get DIUC field |
491 * \returns the DIUC | 481 * \returns the DIUC |
492 */ | 482 */ |
493 uint8_t GetDiuc (void) const; | 483 uint8_t GetDiuc (void) const; |
494 /** | 484 /** |
495 * Get preamble present function | 485 * Get preamble present field |
496 * \returns the preamble present indicator | 486 * \returns the preamble present indicator |
497 */ | 487 */ |
498 uint8_t GetPreamblePresent (void) const; | 488 uint8_t GetPreamblePresent (void) const; |
499 /** | 489 /** |
500 * Get start time function | 490 * Get start time field |
501 * \returns the start time | 491 * \returns the start time |
502 */ | 492 */ |
503 uint16_t GetStartTime (void) const; | 493 uint16_t GetStartTime (void) const; |
504 | 494 |
505 /** | 495 /** |
506 * Get size function | 496 * Get size |
507 * \returns the size | 497 * \returns the size |
508 */ | 498 */ |
509 uint16_t GetSize (void) const; | 499 uint16_t GetSize (void) const; |
510 | 500 |
511 /** | 501 /** |
512 * Wrtie item function | 502 * Wrtie item |
513 * \param start the iterator | 503 * \param start the iterator |
514 * \returns the updated iterator | 504 * \returns the updated iterator |
515 */ | 505 */ |
516 Buffer::Iterator Write (Buffer::Iterator start) const; | 506 Buffer::Iterator Write (Buffer::Iterator start) const; |
517 /** | 507 /** |
518 * Read item function | 508 * Read item |
519 * \param start the iterator | 509 * \param start the iterator |
520 * \returns the updated iterator | 510 * \returns the updated iterator |
521 */ | 511 */ |
522 Buffer::Iterator Read (Buffer::Iterator start); | 512 Buffer::Iterator Read (Buffer::Iterator start); |
523 private: | 513 private: |
524 Cid m_cid; ///< CID | 514 Cid m_cid; ///< CID |
525 uint8_t m_diuc; ///< DIUC | 515 uint8_t m_diuc; ///< DIUC |
526 uint8_t m_preamblePresent; ///< preamble present | 516 uint8_t m_preamblePresent; ///< preamble present |
527 uint16_t m_startTime; ///< start time | 517 uint16_t m_startTime; ///< start time |
528 | 518 |
529 }; | 519 }; |
530 | 520 |
531 } // namespace ns3 | 521 } // namespace ns3 |
532 | 522 |
533 #endif /* OFDM_DL_MAP_IE_H */ | 523 #endif /* OFDM_DL_MAP_IE_H */ |
534 | 524 |
535 // -----------------------------------------------------------------------------
----------------------------- | 525 // -----------------------------------------------------------------------------
----------------------------- |
536 | 526 |
537 #ifndef DL_MAP_H | 527 #ifndef DL_MAP_H |
538 #define DL_MAP_H | 528 #define DL_MAP_H |
539 | 529 |
540 #include <stdint.h> | 530 #include <stdint.h> |
541 #include <vector> | 531 #include <vector> |
542 #include "ns3/header.h" | 532 #include "ns3/header.h" |
543 #include "ns3/mac48-address.h" | 533 #include "ns3/mac48-address.h" |
544 | 534 |
545 namespace ns3 { | 535 namespace ns3 { |
546 | 536 |
547 /** | 537 /** |
548 * DLMap class | 538 * This class implements DL-MAP as described by "IEEE Standard for |
| 539 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broadba
nd Wireless Access Systems" |
| 540 * 8.2.1.8.1 Compressed DL-MAP, page 402 |
549 */ | 541 */ |
550 class DlMap : public Header | 542 class DlMap : public Header |
551 { | 543 { |
552 /** | |
553 * \brief This class implements DL-map ie as described by "IEEE Standard for | |
554 * Local and metropolitan area networks Part 16: Air Interface for Fixed Broa
dband Wireless Access Systems" | |
555 * 8.2.1.8.1 Compressed DL-MAP, page 402 | |
556 * | |
557 */ | |
558 | |
559 public: | 544 public: |
560 DlMap (void); | 545 DlMap (void); |
561 virtual ~DlMap (void); | 546 virtual ~DlMap (void); |
562 | 547 |
563 /** | 548 /** |
564 * Set DCD count function | 549 * Set DCD count field |
565 * \param dcdCount the DCD count | 550 * \param dcdCount the DCD count |
566 */ | 551 */ |
567 void SetDcdCount (uint8_t dcdCount); | 552 void SetDcdCount (uint8_t dcdCount); |
568 /** | 553 /** |
569 * Set base station ID function | 554 * Set base station ID field |
570 * \param baseStationID the base station ID | 555 * \param baseStationID the base station ID |
571 */ | 556 */ |
572 void SetBaseStationId (Mac48Address baseStationID); | 557 void SetBaseStationId (Mac48Address baseStationID); |
573 /** | 558 /** |
574 * Add DL Map element function | 559 * Add DL Map element field |
575 * \param dlMapElement the DL map element | 560 * \param dlMapElement the DL map element |
576 */ | 561 */ |
577 void AddDlMapElement (OfdmDlMapIe dlMapElement); | 562 void AddDlMapElement (OfdmDlMapIe dlMapElement); |
578 | 563 |
579 /** | 564 /** |
580 * Get DCD count function | 565 * Get DCD count field |
581 * \returns the DCD count | 566 * \returns the DCD count |
582 */ | 567 */ |
583 uint8_t GetDcdCount (void) const; | 568 uint8_t GetDcdCount (void) const; |
584 /** | 569 /** |
585 * Get base station ID function | 570 * Get base station ID field |
586 * \returns the MAC address | 571 * \returns the MAC address |
587 */ | 572 */ |
588 Mac48Address GetBaseStationId (void) const; | 573 Mac48Address GetBaseStationId (void) const; |
589 /** | 574 /** |
590 * Get DL Map elements function | 575 * Get DL Map elements field |
591 * \returns the DL map elements | 576 * \returns the DL map elements |
592 */ | 577 */ |
593 std::list<OfdmDlMapIe> GetDlMapElements (void) const; | 578 std::list<OfdmDlMapIe> GetDlMapElements (void) const; |
594 | 579 |
595 /** | 580 /** |
596 * Get name function | 581 * Get name field |
597 * \returns the name string | 582 * \returns the name string |
598 */ | 583 */ |
599 std::string GetName (void) const; | 584 std::string GetName (void) const; |
600 /** | 585 /** |
601 * \brief Get the type ID. | 586 * \brief Get the type ID. |
602 * \return the object TypeId | 587 * \return the object TypeId |
603 */ | 588 */ |
604 static TypeId GetTypeId (void); | 589 static TypeId GetTypeId (void); |
605 virtual TypeId GetInstanceTypeId (void) const; | 590 virtual TypeId GetInstanceTypeId (void) const; |
606 void Print (std::ostream &os) const; | 591 void Print (std::ostream &os) const; |
607 uint32_t GetSerializedSize (void) const; | 592 uint32_t GetSerializedSize (void) const; |
608 void Serialize (Buffer::Iterator start) const; | 593 void Serialize (Buffer::Iterator start) const; |
609 uint32_t Deserialize (Buffer::Iterator start); | 594 uint32_t Deserialize (Buffer::Iterator start); |
610 private: | 595 private: |
611 uint8_t m_dcdCount; ///< DCD count | 596 uint8_t m_dcdCount; ///< DCD count |
612 Mac48Address m_baseStationId; ///< base station ID | 597 Mac48Address m_baseStationId; ///< base station ID |
613 std::list<OfdmDlMapIe> m_dlMapElements; ///< DL Map elements | 598 std::list<OfdmDlMapIe> m_dlMapElements; ///< DL Map elements |
614 // m_paddingNibble; //fields to be implemented later on: | 599 // m_paddingNibble; //fields to be implemented later on: |
615 }; | 600 }; |
616 | 601 |
617 } // namespace ns3 | 602 } // namespace ns3 |
618 | 603 |
619 #endif /* DL_MAP_H */ | 604 #endif /* DL_MAP_H */ |
LEFT | RIGHT |