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) 2008 INRIA | 3 * Copyright (c) 2008 INRIA |
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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 * \param linkDown the callback to invoke when the link becomes down. | 231 * \param linkDown the callback to invoke when the link becomes down. |
232 */ | 232 */ |
233 virtual void SetLinkDownCallback (Callback<void> linkDown); | 233 virtual void SetLinkDownCallback (Callback<void> linkDown); |
234 /* Next functions are not pure virtual so non Qos WifiMacs are not | 234 /* Next functions are not pure virtual so non Qos WifiMacs are not |
235 * forced to implement them. | 235 * forced to implement them. |
236 */ | 236 */ |
237 virtual void SetBasicBlockAckTimeout (Time blockAckTimeout); | 237 virtual void SetBasicBlockAckTimeout (Time blockAckTimeout); |
238 virtual Time GetBasicBlockAckTimeout (void) const; | 238 virtual Time GetBasicBlockAckTimeout (void) const; |
239 virtual void SetCompressedBlockAckTimeout (Time blockAckTimeout); | 239 virtual void SetCompressedBlockAckTimeout (Time blockAckTimeout); |
240 virtual Time GetCompressedBlockAckTimeout (void) const; | 240 virtual Time GetCompressedBlockAckTimeout (void) const; |
| 241 |
| 242 virtual void SetWakeCallback (WakeCallback cb); |
241 | 243 |
242 protected: | 244 protected: |
243 virtual void DoInitialize (); | 245 virtual void DoInitialize (); |
244 virtual void DoDispose (); | 246 virtual void DoDispose (); |
245 | 247 |
246 MacRxMiddle *m_rxMiddle; //!< RX middle (de-fragmentation etc.) | 248 MacRxMiddle *m_rxMiddle; //!< RX middle (de-fragmentation etc.) |
247 MacTxMiddle *m_txMiddle; //!< TX middle (aggregation etc.) | 249 MacTxMiddle *m_txMiddle; //!< TX middle (aggregation etc.) |
248 Ptr<MacLow> m_low; //!< MacLow (RTS, CTS, DATA, ACK etc.) | 250 Ptr<MacLow> m_low; //!< MacLow (RTS, CTS, DATA, ACK etc.) |
249 DcfManager *m_dcfManager; //!< DCF manager (access to channel) | 251 DcfManager *m_dcfManager; //!< DCF manager (access to channel) |
250 Ptr<WifiPhy> m_phy; //!< Wifi PHY | 252 Ptr<WifiPhy> m_phy; //!< Wifi PHY |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 * Return whether the device supports QoS. | 436 * Return whether the device supports QoS. |
435 * | 437 * |
436 * \return true if HT is supported, false otherwise | 438 * \return true if HT is supported, false otherwise |
437 */ | 439 */ |
438 bool GetHtSupported () const; | 440 bool GetHtSupported () const; |
439 | 441 |
440 virtual bool IsFull () const; | 442 virtual bool IsFull () const; |
441 | 443 |
442 virtual bool IsFull (AcIndex); | 444 virtual bool IsFull (AcIndex); |
443 | 445 |
| 446 WakeCallback m_wakeCallback; |
| 447 |
| 448 void CallWake (const WifiMacHeader &hdr); |
| 449 |
444 private: | 450 private: |
445 RegularWifiMac (const RegularWifiMac &); | 451 RegularWifiMac (const RegularWifiMac &); |
446 RegularWifiMac & operator= (const RegularWifiMac &); | 452 RegularWifiMac & operator= (const RegularWifiMac &); |
447 | 453 |
448 /** | 454 /** |
449 * This method is a private utility invoked to configure the channel | 455 * This method is a private utility invoked to configure the channel |
450 * access function for the specified Access Category. | 456 * access function for the specified Access Category. |
451 * | 457 * |
452 * \param ac the Access Category index of the queue to initialise. | 458 * \param ac the Access Category index of the queue to initialise. |
453 */ | 459 */ |
454 void SetupEdcaQueue (enum AcIndex ac); | 460 void SetupEdcaQueue (enum AcIndex ac); |
455 | 461 |
456 TracedCallback<const WifiMacHeader &> m_txOkCallback; | 462 TracedCallback<const WifiMacHeader &> m_txOkCallback; |
457 TracedCallback<const WifiMacHeader &> m_txErrCallback; | 463 TracedCallback<const WifiMacHeader &> m_txErrCallback; |
458 }; | 464 }; |
459 | 465 |
460 } // namespace ns3 | 466 } // namespace ns3 |
461 | 467 |
462 #endif /* REGULAR_WIFI_MAC_H */ | 468 #endif /* REGULAR_WIFI_MAC_H */ |
LEFT | RIGHT |