OLD | NEW |
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) 2006 INRIA | 3 * Copyright (c) 2006 INRIA |
4 * Copyright (c) 2009 MIRKO BANCHI | 4 * Copyright (c) 2009 MIRKO BANCHI |
5 * | 5 * |
6 * This program is free software; you can redistribute it and/or modify | 6 * This program is free software; you can redistribute it and/or modify |
7 * it under the terms of the GNU General Public License version 2 as· | 7 * it under the terms of the GNU General Public License version 2 as· |
8 * published by the Free Software Foundation; | 8 * published by the Free Software Foundation; |
9 * | 9 * |
10 * This program is distributed in the hope that it will be useful, | 10 * This program is distributed in the hope that it will be useful, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 MgtProbeRequestHeader::GetSupportedRates (void) const | 54 MgtProbeRequestHeader::GetSupportedRates (void) const |
55 { | 55 { |
56 return m_rates; | 56 return m_rates; |
57 } | 57 } |
58 uint32_t | 58 uint32_t |
59 MgtProbeRequestHeader::GetSerializedSize (void) const | 59 MgtProbeRequestHeader::GetSerializedSize (void) const |
60 { | 60 { |
61 uint32_t size = 0; | 61 uint32_t size = 0; |
62 size += m_ssid.GetSerializedSize (); | 62 size += m_ssid.GetSerializedSize (); |
63 size += m_rates.GetSerializedSize (); | 63 size += m_rates.GetSerializedSize (); |
| 64 size += m_rates.extended.GetSerializedSize (); |
64 return size; | 65 return size; |
65 } | 66 } |
66 TypeId· | 67 TypeId· |
67 MgtProbeRequestHeader::GetTypeId (void) | 68 MgtProbeRequestHeader::GetTypeId (void) |
68 { | 69 { |
69 static TypeId tid = TypeId ("ns3::MgtProbeRequestHeader") | 70 static TypeId tid = TypeId ("ns3::MgtProbeRequestHeader") |
70 .SetParent<Header> () | 71 .SetParent<Header> () |
71 .AddConstructor<MgtProbeRequestHeader> () | 72 .AddConstructor<MgtProbeRequestHeader> () |
72 ; | 73 ; |
73 return tid; | 74 return tid; |
74 } | 75 } |
75 TypeId· | 76 TypeId· |
76 MgtProbeRequestHeader::GetInstanceTypeId (void) const | 77 MgtProbeRequestHeader::GetInstanceTypeId (void) const |
77 { | 78 { |
78 return GetTypeId (); | 79 return GetTypeId (); |
79 } | 80 } |
80 void· | 81 void· |
81 MgtProbeRequestHeader::Print (std::ostream &os) const | 82 MgtProbeRequestHeader::Print (std::ostream &os) const |
82 { | 83 { |
83 os << "ssid="<<m_ssid<<", " | 84 os << "ssid="<<m_ssid<<", " |
84 << "rates="<<m_rates; | 85 << "rates="<<m_rates; |
85 } | 86 } |
86 void | 87 void |
87 MgtProbeRequestHeader::Serialize (Buffer::Iterator start) const | 88 MgtProbeRequestHeader::Serialize (Buffer::Iterator start) const |
88 {·· | 89 {·· |
89 Buffer::Iterator i = start; | 90 Buffer::Iterator i = start; |
90 i = m_ssid.Serialize (i); | 91 i = m_ssid.Serialize (i); |
91 i = m_rates.Serialize (i); | 92 i = m_rates.Serialize (i); |
| 93 i = m_rates.extended.Serialize (i); |
92 } | 94 } |
93 uint32_t | 95 uint32_t |
94 MgtProbeRequestHeader::Deserialize (Buffer::Iterator start) | 96 MgtProbeRequestHeader::Deserialize (Buffer::Iterator start) |
95 { | 97 { |
96 Buffer::Iterator i = start; | 98 Buffer::Iterator i = start; |
97 i = m_ssid.Deserialize (i); | 99 i = m_ssid.Deserialize (i); |
98 i = m_rates.Deserialize (i); | 100 i = m_rates.Deserialize (i); |
| 101 i = m_rates.extended.DeserializeIfPresent (i); |
99 return i.GetDistanceFrom (start); | 102 return i.GetDistanceFrom (start); |
100 } | 103 } |
101 | 104 |
102 | 105 |
103 /*********************************************************** | 106 /*********************************************************** |
104 * Probe Response | 107 * Probe Response |
105 ***********************************************************/ | 108 ***********************************************************/ |
106 | 109 |
107 NS_OBJECT_ENSURE_REGISTERED (MgtProbeResponseHeader); | 110 NS_OBJECT_ENSURE_REGISTERED (MgtProbeResponseHeader); |
108 | 111 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 uint32_t | 166 uint32_t |
164 MgtProbeResponseHeader::GetSerializedSize (void) const | 167 MgtProbeResponseHeader::GetSerializedSize (void) const |
165 { | 168 { |
166 uint32_t size = 0; | 169 uint32_t size = 0; |
167 size += 8; // timestamp | 170 size += 8; // timestamp |
168 size += 2; // beacon interval | 171 size += 2; // beacon interval |
169 size += m_capability.GetSerializedSize (); | 172 size += m_capability.GetSerializedSize (); |
170 size += m_ssid.GetSerializedSize (); | 173 size += m_ssid.GetSerializedSize (); |
171 size += m_rates.GetSerializedSize (); | 174 size += m_rates.GetSerializedSize (); |
172 //size += 3; // ds parameter set | 175 //size += 3; // ds parameter set |
| 176 size += m_rates.extended.GetSerializedSize (); |
173 // xxx | 177 // xxx |
174 return size; | 178 return size; |
175 } | 179 } |
176 void· | 180 void· |
177 MgtProbeResponseHeader::Print (std::ostream &os) const | 181 MgtProbeResponseHeader::Print (std::ostream &os) const |
178 { | 182 { |
179 os << "ssid="<<m_ssid<<", " | 183 os << "ssid="<<m_ssid<<", " |
180 << "rates="<<m_rates; | 184 << "rates="<<m_rates; |
181 } | 185 } |
182 void· | 186 void· |
183 MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const | 187 MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const |
184 { | 188 { |
185 // timestamp | 189 // timestamp |
186 // beacon interval | 190 // beacon interval |
187 // capability information | 191 // capability information |
188 // ssid | 192 // ssid |
189 // supported rates | 193 // supported rates |
190 // fh parameter set | 194 // fh parameter set |
191 // ds parameter set | 195 // ds parameter set |
192 // cf parameter set | 196 // cf parameter set |
193 // ibss parameter set | 197 // ibss parameter set |
194 //XXX | 198 //XXX |
195 Buffer::Iterator i = start; | 199 Buffer::Iterator i = start; |
196 i.WriteHtonU64 (Simulator::Now ().GetMicroSeconds ()); | 200 i.WriteHtonU64 (Simulator::Now ().GetMicroSeconds ()); |
197 i.WriteHtonU16 (m_beaconInterval / 1024); | 201 i.WriteHtonU16 (m_beaconInterval / 1024); |
198 i = m_capability.Serialize (i); | 202 i = m_capability.Serialize (i); |
199 i = m_ssid.Serialize (i); | 203 i = m_ssid.Serialize (i); |
200 i = m_rates.Serialize (i); | 204 i = m_rates.Serialize (i); |
201 //i.WriteU8 (0, 3); // ds parameter set. | 205 //i.WriteU8 (0, 3); // ds parameter set. |
| 206 i = m_rates.extended.Serialize (i); |
202 } | 207 } |
203 uint32_t | 208 uint32_t |
204 MgtProbeResponseHeader::Deserialize (Buffer::Iterator start) | 209 MgtProbeResponseHeader::Deserialize (Buffer::Iterator start) |
205 { | 210 { |
206 Buffer::Iterator i = start; | 211 Buffer::Iterator i = start; |
207 m_timestamp = i.ReadNtohU64(); | 212 m_timestamp = i.ReadNtohU64(); |
208 m_beaconInterval = i.ReadNtohU16 (); | 213 m_beaconInterval = i.ReadNtohU16 (); |
209 m_beaconInterval *= 1024; | 214 m_beaconInterval *= 1024; |
210 i = m_capability.Deserialize (i); | 215 i = m_capability.Deserialize (i); |
211 i = m_ssid.Deserialize (i); | 216 i = m_ssid.Deserialize (i); |
212 i = m_rates.Deserialize (i); | 217 i = m_rates.Deserialize (i); |
213 //i.Next (3); // ds parameter set | 218 //i.Next (3); // ds parameter set |
| 219 i = m_rates.extended.DeserializeIfPresent (i); |
214 return i.GetDistanceFrom (start); | 220 return i.GetDistanceFrom (start); |
215 } | 221 } |
216 | 222 |
217 /*********************************************************** | 223 /*********************************************************** |
218 * Assoc Request | 224 * Assoc Request |
219 ***********************************************************/ | 225 ***********************************************************/ |
220 | 226 |
221 NS_OBJECT_ENSURE_REGISTERED (MgtAssocRequestHeader); | 227 NS_OBJECT_ENSURE_REGISTERED (MgtAssocRequestHeader); |
222 | 228 |
223 MgtAssocRequestHeader::MgtAssocRequestHeader () | 229 MgtAssocRequestHeader::MgtAssocRequestHeader () |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 return GetTypeId (); | 278 return GetTypeId (); |
273 } | 279 } |
274 uint32_t· | 280 uint32_t· |
275 MgtAssocRequestHeader::GetSerializedSize (void) const | 281 MgtAssocRequestHeader::GetSerializedSize (void) const |
276 { | 282 { |
277 uint32_t size = 0; | 283 uint32_t size = 0; |
278 size += m_capability.GetSerializedSize (); | 284 size += m_capability.GetSerializedSize (); |
279 size += 2; | 285 size += 2; |
280 size += m_ssid.GetSerializedSize (); | 286 size += m_ssid.GetSerializedSize (); |
281 size += m_rates.GetSerializedSize (); | 287 size += m_rates.GetSerializedSize (); |
| 288 size += m_rates.extended.GetSerializedSize (); |
282 return size; | 289 return size; |
283 } | 290 } |
284 void· | 291 void· |
285 MgtAssocRequestHeader::Print (std::ostream &os) const | 292 MgtAssocRequestHeader::Print (std::ostream &os) const |
286 { | 293 { |
287 os << "ssid="<<m_ssid<<", " | 294 os << "ssid="<<m_ssid<<", " |
288 << "rates="<<m_rates; | 295 << "rates="<<m_rates; |
289 } | 296 } |
290 void· | 297 void· |
291 MgtAssocRequestHeader::Serialize (Buffer::Iterator start) const | 298 MgtAssocRequestHeader::Serialize (Buffer::Iterator start) const |
292 { | 299 { |
293 Buffer::Iterator i = start; | 300 Buffer::Iterator i = start; |
294 i = m_capability.Serialize (i); | 301 i = m_capability.Serialize (i); |
295 i.WriteHtonU16 (m_listenInterval); | 302 i.WriteHtonU16 (m_listenInterval); |
296 i = m_ssid.Serialize (i); | 303 i = m_ssid.Serialize (i); |
297 i = m_rates.Serialize (i); | 304 i = m_rates.Serialize (i); |
| 305 i = m_rates.extended.Serialize (i); |
298 } | 306 } |
299 uint32_t | 307 uint32_t |
300 MgtAssocRequestHeader::Deserialize (Buffer::Iterator start) | 308 MgtAssocRequestHeader::Deserialize (Buffer::Iterator start) |
301 { | 309 { |
302 Buffer::Iterator i = start; | 310 Buffer::Iterator i = start; |
303 i = m_capability.Deserialize (i); | 311 i = m_capability.Deserialize (i); |
304 m_listenInterval = i.ReadNtohU16 (); | 312 m_listenInterval = i.ReadNtohU16 (); |
305 i = m_ssid.Deserialize (i); | 313 i = m_ssid.Deserialize (i); |
306 i = m_rates.Deserialize (i); | 314 i = m_rates.Deserialize (i); |
| 315 i = m_rates.extended.DeserializeIfPresent (i); |
307 return i.GetDistanceFrom (start); | 316 return i.GetDistanceFrom (start); |
308 } | 317 } |
309 | 318 |
310 /*********************************************************** | 319 /*********************************************************** |
311 * Assoc Response | 320 * Assoc Response |
312 ***********************************************************/ | 321 ***********************************************************/ |
313 | 322 |
314 NS_OBJECT_ENSURE_REGISTERED (MgtAssocResponseHeader); | 323 NS_OBJECT_ENSURE_REGISTERED (MgtAssocResponseHeader); |
315 | 324 |
316 MgtAssocResponseHeader::MgtAssocResponseHeader () | 325 MgtAssocResponseHeader::MgtAssocResponseHeader () |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 return GetTypeId (); | 364 return GetTypeId (); |
356 } | 365 } |
357 uint32_t | 366 uint32_t |
358 MgtAssocResponseHeader::GetSerializedSize (void) const | 367 MgtAssocResponseHeader::GetSerializedSize (void) const |
359 { | 368 { |
360 uint32_t size = 0; | 369 uint32_t size = 0; |
361 size += m_capability.GetSerializedSize (); | 370 size += m_capability.GetSerializedSize (); |
362 size += m_code.GetSerializedSize (); | 371 size += m_code.GetSerializedSize (); |
363 size += 2; // aid | 372 size += 2; // aid |
364 size += m_rates.GetSerializedSize (); | 373 size += m_rates.GetSerializedSize (); |
| 374 size += m_rates.extended.GetSerializedSize (); |
365 return size; | 375 return size; |
366 } | 376 } |
367 | 377 |
368 void· | 378 void· |
369 MgtAssocResponseHeader::Print (std::ostream &os) const | 379 MgtAssocResponseHeader::Print (std::ostream &os) const |
370 { | 380 { |
371 os << "status code="<<m_code<<", " | 381 os << "status code="<<m_code<<", " |
372 << "rates="<<m_rates; | 382 << "rates="<<m_rates; |
373 } | 383 } |
374 void· | 384 void· |
375 MgtAssocResponseHeader::Serialize (Buffer::Iterator start) const | 385 MgtAssocResponseHeader::Serialize (Buffer::Iterator start) const |
376 { | 386 { |
377 Buffer::Iterator i = start; | 387 Buffer::Iterator i = start; |
378 i = m_capability.Serialize (i); | 388 i = m_capability.Serialize (i); |
379 i = m_code.Serialize (i); | 389 i = m_code.Serialize (i); |
380 i.WriteHtonU16 (m_aid); | 390 i.WriteHtonU16 (m_aid); |
381 i = m_rates.Serialize (i); | 391 i = m_rates.Serialize (i); |
| 392 i = m_rates.extended.Serialize (i); |
382 } | 393 } |
383 uint32_t | 394 uint32_t |
384 MgtAssocResponseHeader::Deserialize (Buffer::Iterator start) | 395 MgtAssocResponseHeader::Deserialize (Buffer::Iterator start) |
385 { | 396 { |
386 Buffer::Iterator i = start; | 397 Buffer::Iterator i = start; |
387 i = m_capability.Deserialize (i); | 398 i = m_capability.Deserialize (i); |
388 i = m_code.Deserialize (i); | 399 i = m_code.Deserialize (i); |
389 m_aid = i.ReadNtohU16 (); | 400 m_aid = i.ReadNtohU16 (); |
390 i = m_rates.Deserialize (i); | 401 i = m_rates.Deserialize (i); |
| 402 i = m_rates.extended.DeserializeIfPresent (i); |
391 return i.GetDistanceFrom (start); | 403 return i.GetDistanceFrom (start); |
392 } | 404 } |
393 /********************************************************** | 405 /********************************************************** |
394 * ActionFrame | 406 * ActionFrame |
395 **********************************************************/ | 407 **********************************************************/ |
396 WifiActionHeader::WifiActionHeader () | 408 WifiActionHeader::WifiActionHeader () |
397 { | 409 { |
398 } | 410 } |
399 WifiActionHeader::~WifiActionHeader () | 411 WifiActionHeader::~WifiActionHeader () |
400 { | 412 { |
(...skipping 588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 } | 1001 } |
990 | 1002 |
991 void | 1003 void |
992 MgtDelBaHeader::SetParameterSet (uint16_t params) | 1004 MgtDelBaHeader::SetParameterSet (uint16_t params) |
993 { | 1005 { |
994 m_initiator = (params >> 11) & 0x01; | 1006 m_initiator = (params >> 11) & 0x01; |
995 m_tid = (params >> 12) & 0x0f; | 1007 m_tid = (params >> 12) & 0x0f; |
996 } | 1008 } |
997 | 1009 |
998 } // namespace ns3 | 1010 } // namespace ns3 |
OLD | NEW |