24 #include "ns3/mac48-address.h" |
24 #include "ns3/mac48-address.h" |
25 |
25 |
26 #include "wifi-phy.h" |
26 #include "wifi-phy.h" |
27 #include "wifi-remote-station-manager.h" |
27 #include "wifi-remote-station-manager.h" |
28 #include "ssid.h" |
28 #include "ssid.h" |
|
29 #include "qos-utils.h" |
29 |
30 |
30 namespace ns3 { |
31 namespace ns3 { |
|
32 |
|
33 class Dcf; |
31 |
34 |
32 /** |
35 /** |
33 * \brief base class for all MAC-level wifi objects. |
36 * \brief base class for all MAC-level wifi objects. |
34 * |
37 * |
35 * This class encapsulates all the low-level MAC functionality |
38 * This class encapsulates all the low-level MAC functionality |
207 */ |
210 */ |
208 void NotifyRxDrop (Ptr<const Packet> packet); |
211 void NotifyRxDrop (Ptr<const Packet> packet); |
209 /** |
212 /** |
210 * \param standard the wifi standard to be configured |
213 * \param standard the wifi standard to be configured |
211 */ |
214 */ |
212 void SetStandard (enum WifiPhyStandard standard); |
215 void ConfigureStandard (enum WifiPhyStandard standard); |
213 |
216 |
|
217 protected: |
|
218 void ConfigureDcf (Ptr<Dcf> dcf, uint32_t cwmin, uint32_t cwmax, enum AccessClass ac); |
214 private: |
219 private: |
215 static Time GetDefaultMaxPropagationDelay (void); |
220 static Time GetDefaultMaxPropagationDelay (void); |
216 static Time GetDefaultSlot (void); |
221 static Time GetDefaultSlot (void); |
217 static Time GetDefaultSifs (void); |
222 static Time GetDefaultSifs (void); |
218 static Time GetDefaultEifsNoDifs (void); |
223 static Time GetDefaultEifsNoDifs (void); |
219 static Time GetDefaultCtsAckDelay (void); |
224 static Time GetDefaultCtsAckDelay (void); |
220 static Time GetDefaultCtsAckTimeout (void); |
225 static Time GetDefaultCtsAckTimeout (void); |
|
226 /** |
|
227 * \param standard the phy standard to be used |
|
228 * |
|
229 * This method is called by ns3::WifiMac::ConfigureStandard to complete |
|
230 * the configuration process for a requested phy standard. Subclasses should |
|
231 * implement this method to configure their dcf queues according to the |
|
232 * requested standard. |
|
233 */ |
|
234 virtual void FinishConfigureStandard (enum WifiPhyStandard standard) = 0; |
221 |
235 |
222 Time m_maxPropagationDelay; |
236 Time m_maxPropagationDelay; |
223 uint32_t m_maxMsduSize; |
237 uint32_t m_maxMsduSize; |
224 WifiPhyStandard m_standard; |
|
225 |
238 |
226 void Configure80211a (void); |
239 void Configure80211a (void); |
227 void Configure80211b (void); |
240 void Configure80211b (void); |
228 void Configure80211_10Mhz (void); |
241 void Configure80211_10Mhz (void); |
229 void Configure80211_5Mhz (); |
242 void Configure80211_5Mhz (); |