|
|
| 24 |
#include "ns3/log.h" |
24 |
#include "ns3/log.h" |
| 25 |
#include "ns3/node.h" |
25 |
#include "ns3/node.h" |
| 26 |
#include "ns3/uinteger.h" |
26 |
#include "ns3/uinteger.h" |
|
|
27 |
#include "ns3/trace-source-accessor.h" |
| 27 |
|
28 |
|
| 28 |
#include "nqsta-wifi-mac.h" |
29 |
#include "nqsta-wifi-mac.h" |
| 29 |
#include "wifi-mac-header.h" |
30 |
#include "wifi-mac-header.h" |
|
Lines 80-85
NqstaWifiMac::GetTypeId (void)
|
Link Here
|
|---|
|
| 80 |
BooleanValue (false), |
81 |
BooleanValue (false), |
| 81 |
MakeBooleanAccessor (&NqstaWifiMac::SetActiveProbing), |
82 |
MakeBooleanAccessor (&NqstaWifiMac::SetActiveProbing), |
| 82 |
MakeBooleanChecker ()) |
83 |
MakeBooleanChecker ()) |
|
|
84 |
.AddTraceSource ("Assoc", "Associated with an access point.", |
| 85 |
MakeTraceSourceAccessor (&NqstaWifiMac::m_assocLogger)) |
| 86 |
.AddTraceSource ("DeAssoc", "Association with an access point lost.", |
| 87 |
MakeTraceSourceAccessor (&NqstaWifiMac::m_deAssocLogger)) |
| 83 |
; |
88 |
; |
| 84 |
return tid; |
89 |
return tid; |
| 85 |
} |
90 |
} |
|
Lines 371-377
NqstaWifiMac::TryToEnsureAssociated (voi
|
Link Here
|
|---|
|
| 371 |
* We try to initiate a probe request now. |
376 |
* We try to initiate a probe request now. |
| 372 |
*/ |
377 |
*/ |
| 373 |
m_linkDown (); |
378 |
m_linkDown (); |
| 374 |
m_state = WAIT_PROBE_RESP; |
379 |
setState(WAIT_PROBE_RESP); |
| 375 |
SendProbeRequest (); |
380 |
SendProbeRequest (); |
| 376 |
break; |
381 |
break; |
| 377 |
case WAIT_ASSOC_RESP: |
382 |
case WAIT_ASSOC_RESP: |
|
|
| 394 |
NqstaWifiMac::AssocRequestTimeout (void) |
399 |
NqstaWifiMac::AssocRequestTimeout (void) |
| 395 |
{ |
400 |
{ |
| 396 |
NS_LOG_FUNCTION (this); |
401 |
NS_LOG_FUNCTION (this); |
| 397 |
m_state = WAIT_ASSOC_RESP; |
402 |
setState(WAIT_ASSOC_RESP); |
| 398 |
SendAssociationRequest (); |
403 |
SendAssociationRequest (); |
| 399 |
} |
404 |
} |
| 400 |
void |
405 |
void |
| 401 |
NqstaWifiMac::ProbeRequestTimeout (void) |
406 |
NqstaWifiMac::ProbeRequestTimeout (void) |
| 402 |
{ |
407 |
{ |
| 403 |
NS_LOG_FUNCTION (this); |
408 |
NS_LOG_FUNCTION (this); |
| 404 |
m_state = WAIT_PROBE_RESP; |
409 |
setState(WAIT_PROBE_RESP); |
| 405 |
SendProbeRequest (); |
410 |
SendProbeRequest (); |
| 406 |
} |
411 |
} |
| 407 |
void |
412 |
void |
|
Lines 415-421
NqstaWifiMac::MissedBeacons (void)
|
Link Here
|
|---|
|
| 415 |
return; |
420 |
return; |
| 416 |
} |
421 |
} |
| 417 |
NS_LOG_DEBUG ("beacon missed"); |
422 |
NS_LOG_DEBUG ("beacon missed"); |
| 418 |
m_state = BEACON_MISSED; |
423 |
setState(BEACON_MISSED); |
| 419 |
TryToEnsureAssociated (); |
424 |
TryToEnsureAssociated (); |
| 420 |
} |
425 |
} |
| 421 |
void |
426 |
void |
|
Lines 528-534
NqstaWifiMac::Receive (Ptr<Packet> packe
|
Link Here
|
|---|
|
| 528 |
} |
533 |
} |
| 529 |
if (goodBeacon && m_state == BEACON_MISSED) |
534 |
if (goodBeacon && m_state == BEACON_MISSED) |
| 530 |
{ |
535 |
{ |
| 531 |
m_state = WAIT_ASSOC_RESP; |
536 |
setState(WAIT_ASSOC_RESP); |
| 532 |
SendAssociationRequest (); |
537 |
SendAssociationRequest (); |
| 533 |
} |
538 |
} |
| 534 |
} |
539 |
} |
|
Lines 550-556
NqstaWifiMac::Receive (Ptr<Packet> packe
|
Link Here
|
|---|
|
| 550 |
{ |
555 |
{ |
| 551 |
m_probeRequestEvent.Cancel (); |
556 |
m_probeRequestEvent.Cancel (); |
| 552 |
} |
557 |
} |
| 553 |
m_state = WAIT_ASSOC_RESP; |
558 |
setState(WAIT_ASSOC_RESP); |
| 554 |
SendAssociationRequest (); |
559 |
SendAssociationRequest (); |
| 555 |
} |
560 |
} |
| 556 |
} |
561 |
} |
|
Lines 566-572
NqstaWifiMac::Receive (Ptr<Packet> packe
|
Link Here
|
|---|
|
| 566 |
} |
571 |
} |
| 567 |
if (assocResp.GetStatusCode ().IsSuccess ()) |
572 |
if (assocResp.GetStatusCode ().IsSuccess ()) |
| 568 |
{ |
573 |
{ |
| 569 |
m_state = ASSOCIATED; |
574 |
setState(ASSOCIATED); |
| 570 |
NS_LOG_DEBUG ("assoc completed"); |
575 |
NS_LOG_DEBUG ("assoc completed"); |
| 571 |
SupportedRates rates = assocResp.GetSupportedRates (); |
576 |
SupportedRates rates = assocResp.GetSupportedRates (); |
| 572 |
WifiRemoteStation *ap = m_stationManager->Lookup (hdr->GetAddr2 ()); |
577 |
WifiRemoteStation *ap = m_stationManager->Lookup (hdr->GetAddr2 ()); |
|
Lines 590-596
NqstaWifiMac::Receive (Ptr<Packet> packe
|
Link Here
|
|---|
|
| 590 |
else |
595 |
else |
| 591 |
{ |
596 |
{ |
| 592 |
NS_LOG_DEBUG ("assoc refused"); |
597 |
NS_LOG_DEBUG ("assoc refused"); |
| 593 |
m_state = REFUSED; |
598 |
setState(REFUSED); |
| 594 |
} |
599 |
} |
| 595 |
} |
600 |
} |
| 596 |
} |
601 |
} |
|
Lines 608-611
NqstaWifiMac::GetSupportedRates (void) c
|
Link Here
|
|---|
|
| 608 |
return rates; |
613 |
return rates; |
| 609 |
} |
614 |
} |
| 610 |
|
615 |
|
|
|
616 |
void |
| 617 |
NqstaWifiMac::setState(MacState value){ |
| 618 |
if(value==ASSOCIATED && m_state!=ASSOCIATED) m_assocLogger(GetBssid()); |
| 619 |
else if(value!=ASSOCIATED && m_state==ASSOCIATED) m_deAssocLogger(GetBssid()); |
| 620 |
m_state=value; |
| 621 |
} |
| 622 |
|
| 611 |
} // namespace ns3 |
623 |
} // namespace ns3 |