src/devices/wifi/wifi-mac.h
changeset 4720 15221757964f
parent 4680 a52c39181dd4
child 5747 a171e73c4dae
equal deleted inserted replaced
4716:055af17f7225 4720:15221757964f
    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 ();