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) 2005, 2006 INRIA | 3 * Copyright (c) 2005, 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, |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 * GNU General Public License for more details. | 13 * GNU General Public License for more details. |
14 * | 14 * |
15 * You should have received a copy of the GNU General Public License | 15 * You should have received a copy of the GNU General Public License |
16 * along with this program; if not, write to the Free Software | 16 * along with this program; if not, write to the Free Software |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 * | 18 * |
19 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> | 19 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
20 * Mirko Banchi <mk.banchi@gmail.com> | 20 * Mirko Banchi <mk.banchi@gmail.com> |
21 */ | 21 */ |
22 | 22 |
23 #ifndef MAC_LOW_H | 23 #ifndef MAC_LOW_H |
24 #define MAC_LOW_H | 24 #define MAC_LOW_H |
25 | 25 |
26 #include "wifi-phy.h" | 26 #include "ns3/object.h" |
27 #include "dcf-manager.h" | 27 #include "ns3/nstime.h" |
28 #include "wifi-remote-station-manager.h" | 28 #include "mac-low-transmission-parameters.h" |
29 #include "block-ack-agreement.h" | |
30 #include "qos-utils.h" | 29 #include "qos-utils.h" |
31 #include "block-ack-cache.h" | 30 #include "wifi-mpdu-type.h" |
32 #include "mpdu-aggregator.h" | 31 #include "wifi-mac-header.h" |
33 #include "msdu-aggregator.h" | 32 #include "wifi-tx-vector.h" |
34 #include "mac-low-transmission-parameters.h" | 33 #include "block-ack-type.h" |
35 | 34 |
36 class TwoLevelAggregationTest; | 35 class TwoLevelAggregationTest; |
37 class AmpduAggregationTest; | 36 class AmpduAggregationTest; |
38 | 37 |
39 namespace ns3 { | 38 namespace ns3 { |
40 | 39 |
| 40 class WifiPhy; |
41 class DcaTxop; | 41 class DcaTxop; |
42 class EdcaTxopN; | 42 class EdcaTxopN; |
43 class DcfManager; | 43 class DcfManager; |
44 class WifiMacQueueItem; | 44 class WifiMacQueueItem; |
45 class WifiMacQueue; | 45 class WifiMacQueue; |
| 46 class BlockAckAgreement; |
| 47 class BlockAckCache; |
| 48 class MgtAddBaResponseHeader; |
| 49 class WifiRemoteStationManager; |
| 50 class CtrlBAckRequestHeader; |
| 51 class CtrlBAckResponseHeader; |
46 | 52 |
47 /** | 53 /** |
48 * \ingroup wifi | 54 * \ingroup wifi |
49 * \brief handle RTS/CTS/DATA/ACK transactions. | 55 * \brief handle RTS/CTS/DATA/ACK transactions. |
50 */ | 56 */ |
51 class MacLow : public Object | 57 class MacLow : public Object |
52 { | 58 { |
53 public: | 59 public: |
54 /// Allow test cases to access private members | 60 /// Allow test cases to access private members |
55 friend class ::TwoLevelAggregationTest; | 61 friend class ::TwoLevelAggregationTest; |
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
895 | 901 |
896 bool m_ctsToSelfSupported; //!< Flag whether CTS-to-self is suppor
ted | 902 bool m_ctsToSelfSupported; //!< Flag whether CTS-to-self is suppor
ted |
897 Ptr<WifiMacQueue> m_aggregateQueue[8]; //!< Queues per TID used for MPDU aggre
gation | 903 Ptr<WifiMacQueue> m_aggregateQueue[8]; //!< Queues per TID used for MPDU aggre
gation |
898 std::vector<Item> m_txPackets[8]; //!< Contain temporary items to be sent
with the next A-MPDU transmission for a given TID, once RTS/CTS exchange has su
cceeded. | 904 std::vector<Item> m_txPackets[8]; //!< Contain temporary items to be sent
with the next A-MPDU transmission for a given TID, once RTS/CTS exchange has su
cceeded. |
899 WifiTxVector m_currentTxVector; //!< TXVECTOR used for the current pack
et transmission | 905 WifiTxVector m_currentTxVector; //!< TXVECTOR used for the current pack
et transmission |
900 }; | 906 }; |
901 | 907 |
902 } //namespace ns3 | 908 } //namespace ns3 |
903 | 909 |
904 #endif /* MAC_LOW_H */ | 910 #endif /* MAC_LOW_H */ |
OLD | NEW |