src/devices/mesh/mesh-wifi-interface-mac.h
changeset 6673 ec22aa763e2d
parent 6331 eee2eab36748
--- a/src/devices/mesh/mesh-wifi-interface-mac.h	Wed Dec 01 08:01:24 2010 -0800
+++ b/src/devices/mesh/mesh-wifi-interface-mac.h	Thu Dec 02 07:51:34 2010 +0000
@@ -30,7 +30,7 @@
 #include "ns3/packet.h"
 #include "ns3/nstime.h"
 #include "ns3/wifi-remote-station-manager.h"
-#include "ns3/wifi-mac.h"
+#include "ns3/regular-wifi-mac.h"
 #include "ns3/mesh-wifi-interface-mac-plugin.h"
 #include "ns3/event-id.h"
 #include "qos-utils.h"
@@ -38,10 +38,6 @@
 
 class WifiMacHeader;
 class DcaTxop;
-class WifiPhy;
-class DcfManager;
-class MacRxMiddle;
-class MacLow;
 /**
  * \ingroup mesh
  *
@@ -53,7 +49,7 @@
  *  - management and priority traffic.
  *
  */
-class MeshWifiInterfaceMac : public WifiMac
+class MeshWifiInterfaceMac : public RegularWifiMac
 {
 public:
   /// Never forget to support typeid
@@ -65,34 +61,11 @@
 
   ///\name Inherited from WifiMac
   //\{
-  virtual void  SetSlot (Time slotTime);
-  virtual void  SetSifs (Time sifs);
-  virtual void  SetPifs (Time pifs);
-  virtual void  SetCtsTimeout (Time ctsTimeout);
-  virtual void  SetAckTimeout (Time ackTimeout);
-  virtual void  SetEifsNoDifs (Time eifsNoDifs);
-  virtual Time  GetSlot () const;
-  virtual Time  GetSifs () const;
-  virtual Time  GetPifs () const;
-  virtual Time  GetCtsTimeout () const;
-  virtual Time  GetAckTimeout () const;
-  virtual Time  GetEifsNoDifs () const;
-  virtual void  SetWifiPhy (Ptr<WifiPhy> phy);
-  virtual void  SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
   virtual void  Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
   virtual void  Enqueue (Ptr<const Packet> packet, Mac48Address to);
   virtual bool  SupportsSendFrom () const;
-  virtual void  SetForwardUpCallback (Callback<void,Ptr<Packet>, Mac48Address, Mac48Address> upCallback);
   virtual void  SetLinkUpCallback (Callback<void> linkUp);
-  virtual void  SetLinkDownCallback (Callback<void> linkDown);
-  virtual Mac48Address GetAddress () const;
-  virtual Mac48Address GetBssid () const;
-  virtual Ssid  GetSsid () const;
-  virtual void  SetAddress (Mac48Address address);
-  virtual void  SetSsid (Ssid ssid);
   //\}
-  ///Needed to obtain phy to calculate TX-duration
-  Ptr<WifiPhy> GetWifiPhy () const;
   ///\name Each mesh point interfaces must know the mesh point address
   //\{
   void SetMeshPointAddress (Mac48Address);
@@ -152,26 +125,19 @@
   ///\{
   void SetLinkMetricCallback (Callback<uint32_t, Mac48Address, Ptr<MeshWifiInterfaceMac> > cb);
   uint32_t GetLinkMetric (Mac48Address peerAddress);
-  Ptr<WifiRemoteStationManager> GetStationManager ();
   ///\}
   ///\brief Statistics:
   void Report (std::ostream &) const;
   void ResetStats ();
   /// Enable/disable beacons
   void SetBeaconGeneration (bool enable);
-  void SetQueue (AcIndex ac);
   WifiPhyStandard GetPhyStandard () const;
   virtual void FinishConfigureStandard (enum WifiPhyStandard standard);
 private:
   /// Frame receive handler
   void  Receive (Ptr<Packet> packet, WifiMacHeader const *hdr);
-  /// Forward frame to mesh point
-  virtual void ForwardUp (Ptr<Packet> packet, Mac48Address src, Mac48Address dst);
   /// Send frame. Frame is supposed to be tagged by routing information. TODO: clarify this point
   void  ForwardDown (Ptr<const Packet> packet, Mac48Address from, Mac48Address to);
-  // Notify about tx OK/Error frames:
-  void TxOk (WifiMacHeader const &hdr);
-  void TxFailed (WifiMacHeader const &hdr);
   /// Send beacon
   void SendBeacon ();
   /// Schedule next beacon
@@ -180,30 +146,9 @@
   bool GetBeaconGeneration () const;
   /// Real d-tor
   virtual void DoDispose ();
-  ///Initiator at t=0
-  void DoStart ();
 
 private:
-  typedef std::map<AcIndex, Ptr<DcaTxop> > Queues;
   typedef std::vector<Ptr<MeshWifiInterfaceMacPlugin> > PluginList;
-  ///\name Wifi MAC internals
-  //\{
-  Queues m_queues;
-  Ptr<DcaTxop> m_beaconDca;
-  Ptr<WifiRemoteStationManager> m_stationManager;
-  Ptr<WifiPhy> m_phy;
-  Callback<void, Ptr<Packet> , Mac48Address, Mac48Address> m_upCallback;
-  //\}
-
-  ///\name Wifi timing intervals
-  //\{
-  Time m_slot;
-  Time m_sifs;
-  Time m_pifs;
-  Time m_ackTimeout;
-  Time m_ctsTimeout;
-  Time m_eifsNoDifs;
-  //\}
 
   ///\name Mesh timing intervals
   //\{
@@ -215,18 +160,8 @@
   Time m_tbtt;
   //\}
 
-  /// DCF implementation
-  DcfManager* m_dcfManager;
-  /// Middle MAC sublayer
-  MacRxMiddle* m_rxMiddle;
-  /// Low MAC sublayer
-  Ptr<MacLow> m_low;
-  /// My address
-  Mac48Address m_address;
   /// Mesh point address
   Mac48Address m_mpAddress;
-  /// SSID
-  Ssid m_meshId;
 
   /// "Timer" for the next beacon
   EventId m_beaconSendEvent;
@@ -248,8 +183,6 @@
   };
   Statistics m_stats;
   ///\}
-  TracedCallback<WifiMacHeader const &> m_txOkCallback;
-  TracedCallback<WifiMacHeader const &> m_txErrCallback;
   /// Current PHY standard: needed to configure metric
   WifiPhyStandard m_standard;
 };