--- a/src/devices/wifi/adhoc-wifi-mac.cc Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/adhoc-wifi-mac.cc Tue Sep 02 12:36:37 2008 -0700
@@ -80,7 +80,7 @@
AdhocWifiMac::SetSlot (Time slotTime)
{
m_dcfManager->SetSlot (slotTime);
- m_slot = slotTime;
+ m_low->SetSlotTime (slotTime);
}
void
AdhocWifiMac::SetSifs (Time sifs)
@@ -104,10 +104,15 @@
{
m_low->SetCtsTimeout (ctsTimeout);
}
+void
+AdhocWifiMac::SetPifs (Time pifs)
+{
+ m_low->SetPifs (pifs);
+}
Time
AdhocWifiMac::GetSlot (void) const
{
- return m_slot;
+ return m_low->GetSlotTime ();
}
Time
AdhocWifiMac::GetSifs (void) const
@@ -129,6 +134,11 @@
{
return m_low->GetCtsTimeout ();
}
+Time
+AdhocWifiMac::GetPifs (void) const
+{
+ return m_low->GetPifs ();
+}
void
AdhocWifiMac::SetWifiPhy (Ptr<WifiPhy> phy)
{
--- a/src/devices/wifi/adhoc-wifi-mac.h Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/adhoc-wifi-mac.h Tue Sep 02 12:36:37 2008 -0700
@@ -58,11 +58,13 @@
virtual void SetEifsNoDifs (Time eifsNoDifs);
virtual void SetAckTimeout (Time ackTimeout);
virtual void SetCtsTimeout (Time ctsTimeout);
+ virtual void SetPifs (Time pifs);
virtual Time GetSlot (void) const;
virtual Time GetSifs (void) const;
virtual Time GetEifsNoDifs (void) const;
virtual Time GetAckTimeout (void) const;
virtual Time GetCtsTimeout (void) const;
+ virtual Time GetPifs (void) const;
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
@@ -91,7 +93,6 @@
MacRxMiddle *m_rxMiddle;
Ptr<MacLow> m_low;
Ssid m_ssid;
- Time m_slot;
Time m_eifsNoDifs;
};
--- a/src/devices/wifi/mac-low.cc Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/mac-low.cc Tue Sep 02 12:36:37 2008 -0700
@@ -377,6 +377,16 @@
{
m_sifs = sifs;
}
+void
+MacLow::SetSlotTime (Time slotTime)
+{
+ m_slotTime = slotTime;
+}
+void
+MacLow::SetPifs (Time pifs)
+{
+ m_pifs = pifs;
+}
Mac48Address
MacLow::GetAddress (void) const
{
@@ -397,6 +407,16 @@
{
return m_sifs;
}
+Time
+MacLow::GetSlotTime (void) const
+{
+ return m_slotTime;
+}
+Time
+MacLow::GetPifs (void) const
+{
+ return m_pifs;
+}
void
MacLow::SetRxCallback (Callback<void,Ptr<Packet>,const WifiMacHeader *> callback)
@@ -651,16 +671,6 @@
cts.SetType (WIFI_MAC_CTL_CTS);
return cts.GetSize () + 4;
}
-Time
-MacLow::GetSlotTime (void) const
-{
- return m_mac->GetSlot ();
-}
-Time
-MacLow::GetPifs (void) const
-{
- return m_mac->GetPifs ();
-}
uint32_t
MacLow::GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const
{
--- a/src/devices/wifi/mac-low.h Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/mac-low.h Tue Sep 02 12:36:37 2008 -0700
@@ -288,10 +288,14 @@
void SetAckTimeout (Time ackTimeout);
void SetCtsTimeout (Time ctsTimeout);
void SetSifs (Time sifs);
+ void SetSlotTime (Time slotTime);
+ void SetPifs (Time pifs);
Mac48Address GetAddress (void) const;
Time GetAckTimeout (void) const;
Time GetCtsTimeout (void) const;
Time GetSifs (void) const;
+ Time GetSlotTime (void) const;
+ Time GetPifs (void) const;
/**
* \param callback the callback which receives every incoming packet.
@@ -355,8 +359,6 @@
uint32_t GetAckSize (void) const;
uint32_t GetRtsSize (void) const;
uint32_t GetCtsSize (void) const;
- Time GetPifs (void) const;
- Time GetSlotTime (void) const;
uint32_t GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const;
Time NowUs (void) const;
WifiRemoteStation *GetStation (Mac48Address to) const;
@@ -421,6 +423,8 @@
Time m_ackTimeout;
Time m_ctsTimeout;
Time m_sifs;
+ Time m_slotTime;
+ Time m_pifs;
Time m_lastNavStart;
Time m_lastNavDuration;
--- a/src/devices/wifi/nqap-wifi-mac.cc Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/nqap-wifi-mac.cc Tue Sep 02 12:36:37 2008 -0700
@@ -131,7 +131,7 @@
{
NS_LOG_FUNCTION (this << slotTime);
m_dcfManager->SetSlot (slotTime);
- m_slot = slotTime;
+ m_low->SetSlotTime (slotTime);
}
void
NqapWifiMac::SetSifs (Time sifs)
@@ -157,10 +157,15 @@
{
m_low->SetCtsTimeout (ctsTimeout);
}
+void
+NqapWifiMac::SetPifs (Time pifs)
+{
+ m_low->SetPifs (pifs);
+}
Time
NqapWifiMac::GetSlot (void) const
{
- return m_slot;
+ return m_low->GetSlotTime ();
}
Time
NqapWifiMac::GetSifs (void) const
@@ -182,6 +187,11 @@
{
return m_low->GetCtsTimeout ();
}
+Time
+NqapWifiMac::GetPifs (void) const
+{
+ return m_low->GetPifs ();
+}
void
NqapWifiMac::SetWifiPhy (Ptr<WifiPhy> phy)
{
--- a/src/devices/wifi/nqap-wifi-mac.h Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/nqap-wifi-mac.h Tue Sep 02 12:36:37 2008 -0700
@@ -64,11 +64,13 @@
virtual void SetEifsNoDifs (Time eifsNoDifs);
virtual void SetAckTimeout (Time ackTimeout);
virtual void SetCtsTimeout (Time ctsTimeout);
+ virtual void SetPifs (Time pifs);
virtual Time GetSlot (void) const;
virtual Time GetSifs (void) const;
virtual Time GetEifsNoDifs (void) const;
virtual Time GetAckTimeout (void) const;
virtual Time GetCtsTimeout (void) const;
+ virtual Time GetPifs (void) const;
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
@@ -123,7 +125,6 @@
Mac48Address m_address;
Ssid m_ssid;
EventId m_beaconEvent;
- Time m_slot;
Time m_eifsNoDifs;
};
--- a/src/devices/wifi/nqsta-wifi-mac.cc Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/nqsta-wifi-mac.cc Tue Sep 02 12:36:37 2008 -0700
@@ -131,7 +131,7 @@
{
NS_LOG_FUNCTION (this << slotTime);
m_dcfManager->SetSlot (slotTime);
- m_slot = slotTime;
+ m_low->SetSlotTime (slotTime);
}
void
NqstaWifiMac::SetSifs (Time sifs)
@@ -157,10 +157,15 @@
{
m_low->SetCtsTimeout (ctsTimeout);
}
+void
+NqstaWifiMac::SetPifs (Time pifs)
+{
+ m_low->SetPifs (pifs);
+}
Time
NqstaWifiMac::GetSlot (void) const
{
- return m_slot;
+ return m_low->GetSlotTime ();
}
Time
NqstaWifiMac::GetSifs (void) const
@@ -182,6 +187,12 @@
{
return m_low->GetCtsTimeout ();
}
+Time
+NqstaWifiMac::GetPifs (void) const
+{
+ return m_low->GetPifs ();
+}
+
void
NqstaWifiMac::SetWifiPhy (Ptr<WifiPhy> phy)
{
--- a/src/devices/wifi/nqsta-wifi-mac.h Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/nqsta-wifi-mac.h Tue Sep 02 12:36:37 2008 -0700
@@ -64,11 +64,13 @@
virtual void SetEifsNoDifs (Time eifsNoDifs);
virtual void SetAckTimeout (Time ackTimeout);
virtual void SetCtsTimeout (Time ctsTimeout);
+ virtual void SetPifs (Time pifs);
virtual Time GetSlot (void) const;
virtual Time GetSifs (void) const;
virtual Time GetEifsNoDifs (void) const;
virtual Time GetAckTimeout (void) const;
virtual Time GetCtsTimeout (void) const;
+ virtual Time GetPifs (void) const;
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
@@ -153,7 +155,6 @@
Ptr<MacLow> m_low;
Mac48Address m_address;
Ssid m_ssid;
- Time m_slot;
Time m_eifsNoDifs;
};
--- a/src/devices/wifi/wifi-mac.cc Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/wifi-mac.cc Tue Sep 02 12:36:37 2008 -0700
@@ -99,7 +99,8 @@
MakeTimeChecker ())
.AddAttribute ("Pifs", "The value of the PIFS constant.",
TimeValue (GetDefaultSifs () + GetDefaultSlot ()),
- MakeTimeAccessor (&WifiMac::m_pifs),
+ MakeTimeAccessor (&WifiMac::SetPifs,
+ &WifiMac::GetPifs),
MakeTimeChecker ())
.AddAttribute ("MaxPropagationDelay", "The maximum propagation delay. Unused for now.",
TimeValue (GetDefaultMaxPropagationDelay ()),
--- a/src/devices/wifi/wifi-mac.h Tue Sep 02 12:13:24 2008 -0700
+++ b/src/devices/wifi/wifi-mac.h Tue Sep 02 12:36:37 2008 -0700
@@ -60,7 +60,7 @@
/**
* \param pifs the pifs duration.
*/
- void SetPifs (Time pifs);
+ virtual void SetPifs (Time pifs) = 0;
/**
* \param ctsTimeout the duration of a CTS timeout.
*/
@@ -79,7 +79,7 @@
/**
* \returns the current PIFS duration.
*/
- Time GetPifs (void) const;
+ virtual Time GetPifs (void) const = 0;
/**
* \returns the current SIFS duration.
*/