src/devices/wifi/mac-high-nqsta.h
changeset 2009 afed751cc0b5
parent 1964 041240a915f8
child 2054 ba8e810bae4c
equal deleted inserted replaced
2008:93ccf1f2a38a 2009:afed751cc0b5
    33 namespace ns3 {
    33 namespace ns3 {
    34 
    34 
    35 class WifiMacHeader;
    35 class WifiMacHeader;
    36 class WifiNetDevice;
    36 class WifiNetDevice;
    37 class DcaTxop;
    37 class DcaTxop;
    38 class Watchdog;
    38 class WifiPhy;
       
    39 class MacStations;
    39 
    40 
    40 class MacHighNqsta {
    41 class MacHighNqsta {
    41 public:
    42 public:
    42   typedef Callback<void, Packet, const Mac48Address &> ForwardCallback;
    43   typedef Callback<void, Packet, const Mac48Address &> ForwardCallback;
    43   typedef Callback<void> AssociatedCallback;
    44   typedef Callback<void> AssociatedCallback;
    49   void SetDcaTxop (DcaTxop *dca);
    50   void SetDcaTxop (DcaTxop *dca);
    50   void SetDevice (WifiNetDevice *device);
    51   void SetDevice (WifiNetDevice *device);
    51   void SetForwardCallback (ForwardCallback callback);
    52   void SetForwardCallback (ForwardCallback callback);
    52   void SetAssociatedCallback (AssociatedCallback callback);
    53   void SetAssociatedCallback (AssociatedCallback callback);
    53   void SetDisAssociatedCallback (DisAssociatedCallback callback);
    54   void SetDisAssociatedCallback (DisAssociatedCallback callback);
    54   void SetSupportedRates (SupportedRates rates);
    55   void SetPhy (WifiPhy *phy);
       
    56   void SetStations (MacStations *stations);
    55 
    57 
    56   void SetMaxMissedBeacons (uint32_t missed);
    58   void SetMaxMissedBeacons (uint32_t missed);
    57   void SetProbeRequestTimeout (Time timeout);
    59   void SetProbeRequestTimeout (Time timeout);
    58   void SetAssocRequestTimeout (Time timeout);
    60   void SetAssocRequestTimeout (Time timeout);
    59 
    61 
    66   void Receive (Packet packet, WifiMacHeader const *hdr);
    68   void Receive (Packet packet, WifiMacHeader const *hdr);
    67 private:
    69 private:
    68   void SetBssid (Mac48Address bssid);
    70   void SetBssid (Mac48Address bssid);
    69   Mac48Address GetBroadcastBssid (void);
    71   Mac48Address GetBroadcastBssid (void);
    70   void SendProbeRequest (void);
    72   void SendProbeRequest (void);
    71   void SendAssociationRequest ();
    73   void SendAssociationRequest (void);
    72   void TryToEnsureAssociated (void);
    74   void TryToEnsureAssociated (void);
    73   void AssocRequestTimeout (void);
    75   void AssocRequestTimeout (void);
    74   void ProbeRequestTimeout (void);
    76   void ProbeRequestTimeout (void);
    75   bool IsAssociated (void);
    77   bool IsAssociated (void);
    76   SupportedRates GetSupportedRates (void);
       
    77   void MissedBeacons (void);
    78   void MissedBeacons (void);
    78   void RestartBeaconWatchdog (Time delay);
    79   void RestartBeaconWatchdog (Time delay);
       
    80   SupportedRates GetSupportedRates (void) const;
    79   enum {
    81   enum {
    80     ASSOCIATED,
    82     ASSOCIATED,
    81     WAIT_PROBE_RESP,
    83     WAIT_PROBE_RESP,
    82     WAIT_ASSOC_RESP,
    84     WAIT_ASSOC_RESP,
    83     BEACON_MISSED,
    85     BEACON_MISSED,
    89   EventId m_assocRequestEvent;
    91   EventId m_assocRequestEvent;
    90   WifiNetDevice *m_device;
    92   WifiNetDevice *m_device;
    91   ForwardCallback m_forward;
    93   ForwardCallback m_forward;
    92   AssociatedCallback m_associatedCallback;
    94   AssociatedCallback m_associatedCallback;
    93   DisAssociatedCallback m_disAssociatedCallback;
    95   DisAssociatedCallback m_disAssociatedCallback;
    94   SupportedRates m_rates;
       
    95   DcaTxop *m_dca;
    96   DcaTxop *m_dca;
    96   EventId m_beaconWatchdog;
    97   EventId m_beaconWatchdog;
    97   Time m_beaconWatchdogEnd;
    98   Time m_beaconWatchdogEnd;
    98   Mac48Address m_bssid;
    99   Mac48Address m_bssid;
    99   uint32_t m_maxMissedBeacons;
   100   uint32_t m_maxMissedBeacons;
       
   101   WifiPhy *m_phy;
       
   102   MacStations *m_stations;
   100 };
   103 };
   101 
   104 
   102 } // namespace ns3
   105 } // namespace ns3
   103 
   106 
   104 
   107