--- a/src/devices/wifi/adhoc-wifi-mac.cc Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/adhoc-wifi-mac.cc Tue Sep 02 13:16:34 2008 -0700
@@ -199,11 +199,16 @@
void
AdhocWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
{
- NS_LOG_FUNCTION (packet->GetSize () << to << from);
+ NS_FATAL_ERROR ("Adhoc does not support a from != m_low->GetAddress ()");
+}
+void
+AdhocWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
+{
+ NS_LOG_FUNCTION (packet->GetSize () << to);
WifiMacHeader hdr;
hdr.SetType (WIFI_MAC_DATA);
hdr.SetAddr1 (to);
- hdr.SetAddr2 (from);
+ hdr.SetAddr2 (m_low->GetAddress ());
hdr.SetAddr3 (GetBssid ());
hdr.SetDsNotFrom ();
hdr.SetDsNotTo ();
--- a/src/devices/wifi/adhoc-wifi-mac.h Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/adhoc-wifi-mac.h Tue Sep 02 13:16:34 2008 -0700
@@ -68,6 +68,7 @@
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 void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
virtual void SetLinkUpCallback (Callback<void> linkUp);
virtual void SetLinkDownCallback (Callback<void> linkDown);
--- a/src/devices/wifi/nqap-wifi-mac.cc Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/nqap-wifi-mac.cc Tue Sep 02 13:16:34 2008 -0700
@@ -290,6 +290,12 @@
NS_LOG_FUNCTION (this << packet << to << from);
ForwardDown (packet, from, to);
}
+void
+NqapWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
+{
+ NS_LOG_FUNCTION (this << packet << to);
+ ForwardDown (packet, to, m_low->GetAddress ());
+}
SupportedRates
NqapWifiMac::GetSupportedRates (void) const
{
--- a/src/devices/wifi/nqap-wifi-mac.h Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/nqap-wifi-mac.h Tue Sep 02 13:16:34 2008 -0700
@@ -74,6 +74,7 @@
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 void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
virtual void SetLinkUpCallback (Callback<void> linkUp);
virtual void SetLinkDownCallback (Callback<void> linkDown);
--- a/src/devices/wifi/nqsta-wifi-mac.cc Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/nqsta-wifi-mac.cc Tue Sep 02 13:16:34 2008 -0700
@@ -440,6 +440,11 @@
void
NqstaWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
{
+ NS_FATAL_ERROR ("Qsta does not support enqueue");
+}
+void
+NqstaWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
+{
NS_LOG_FUNCTION (this << packet << to);
if (!IsAssociated ())
{
@@ -450,12 +455,14 @@
WifiMacHeader hdr;
hdr.SetTypeData ();
hdr.SetAddr1 (GetBssid ());
- hdr.SetAddr2 (from);
+ hdr.SetAddr2 (m_low->GetAddress ());
hdr.SetAddr3 (to);
hdr.SetDsNotFrom ();
hdr.SetDsTo ();
m_dca->Queue (packet, hdr);
}
+
+
void
NqstaWifiMac::Receive (Ptr<Packet> packet, WifiMacHeader const *hdr)
--- a/src/devices/wifi/nqsta-wifi-mac.h Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/nqsta-wifi-mac.h Tue Sep 02 13:16:34 2008 -0700
@@ -74,6 +74,7 @@
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 void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
virtual void SetLinkUpCallback (Callback<void> linkUp);
virtual void SetLinkDownCallback (Callback<void> linkDown);
--- a/src/devices/wifi/wifi-mac.h Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/wifi-mac.h Tue Sep 02 13:16:34 2008 -0700
@@ -141,6 +141,7 @@
* access it granted to this MAC.
*/
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from) = 0;
+ virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to) = 0;
/**
* \param phy the physical layer attached to this MAC.
*/
--- a/src/devices/wifi/wifi-net-device.cc Tue Sep 02 13:16:14 2008 -0700
+++ b/src/devices/wifi/wifi-net-device.cc Tue Sep 02 13:16:34 2008 -0700
@@ -280,7 +280,7 @@
m_txLogger (packet, realTo);
- m_mac->Enqueue (packet, realTo, m_mac->GetAddress ());
+ m_mac->Enqueue (packet, realTo);
return true;
}
Ptr<Node>