implement WifiNetDevice::SendFrom
This commit is contained in:
@@ -168,13 +168,13 @@ AdhocWifiMac::SetSsid (Ssid ssid)
|
||||
}
|
||||
|
||||
void
|
||||
AdhocWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
|
||||
AdhocWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
|
||||
{
|
||||
NS_LOG_DEBUG ("enqueue size="<<packet->GetSize ()<<", to="<<to);
|
||||
NS_LOG_FUNCTION (packet->GetSize () << to << from);
|
||||
WifiMacHeader hdr;
|
||||
hdr.SetType (WIFI_MAC_DATA);
|
||||
hdr.SetAddr1 (to);
|
||||
hdr.SetAddr2 (GetAddress ());
|
||||
hdr.SetAddr2 (from);
|
||||
hdr.SetAddr3 (GetBssid ());
|
||||
hdr.SetDsNotFrom ();
|
||||
hdr.SetDsNotTo ();
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
virtual Time GetEifsNoDifs (void) const;
|
||||
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
|
||||
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
|
||||
virtual void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
|
||||
virtual void SetLinkUpCallback (Callback<void> linkUp);
|
||||
virtual void SetLinkDownCallback (Callback<void> linkDown);
|
||||
|
||||
@@ -262,10 +262,10 @@ NqapWifiMac::ForwardDown (Ptr<const Packet> packet, Mac48Address from, Mac48Addr
|
||||
m_dca->Queue (packet, hdr);
|
||||
}
|
||||
void
|
||||
NqapWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
|
||||
NqapWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << packet << to);
|
||||
ForwardDown (packet, GetAddress (), to);
|
||||
NS_LOG_FUNCTION (this << packet << to << from);
|
||||
ForwardDown (packet, from, to);
|
||||
}
|
||||
SupportedRates
|
||||
NqapWifiMac::GetSupportedRates (void) const
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
virtual Time GetEifsNoDifs (void) const;
|
||||
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
|
||||
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
|
||||
virtual void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
|
||||
virtual void SetLinkUpCallback (Callback<void> linkUp);
|
||||
virtual void SetLinkDownCallback (Callback<void> linkDown);
|
||||
|
||||
@@ -409,7 +409,7 @@ NqstaWifiMac::IsAssociated (void)
|
||||
}
|
||||
|
||||
void
|
||||
NqstaWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
|
||||
NqstaWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << packet << to);
|
||||
if (!IsAssociated ())
|
||||
@@ -421,7 +421,7 @@ NqstaWifiMac::Enqueue (Ptr<const Packet> packet, Mac48Address to)
|
||||
WifiMacHeader hdr;
|
||||
hdr.SetTypeData ();
|
||||
hdr.SetAddr1 (GetBssid ());
|
||||
hdr.SetAddr2 (GetAddress ());
|
||||
hdr.SetAddr2 (from);
|
||||
hdr.SetAddr3 (to);
|
||||
hdr.SetDsNotFrom ();
|
||||
hdr.SetDsTo ();
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
virtual Time GetEifsNoDifs (void) const;
|
||||
virtual void SetWifiPhy (Ptr<WifiPhy> phy);
|
||||
virtual void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> stationManager);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to);
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from);
|
||||
virtual void SetForwardUpCallback (Callback<void,Ptr<Packet>, const Mac48Address &> upCallback);
|
||||
virtual void SetLinkUpCallback (Callback<void> linkUp);
|
||||
virtual void SetLinkDownCallback (Callback<void> linkDown);
|
||||
|
||||
@@ -148,7 +148,7 @@ private:
|
||||
* dequeued as soon as the DCF function determines that
|
||||
* access it granted to this MAC.
|
||||
*/
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to) = 0;
|
||||
virtual void Enqueue (Ptr<const Packet> packet, Mac48Address to, Mac48Address from) = 0;
|
||||
/**
|
||||
* \param phy the physical layer attached to this MAC.
|
||||
*/
|
||||
|
||||
@@ -280,7 +280,7 @@ WifiNetDevice::Send(Ptr<Packet> packet, const Address& dest, uint16_t protocolNu
|
||||
|
||||
m_txLogger (packet, realTo);
|
||||
|
||||
m_mac->Enqueue (packet, realTo);
|
||||
m_mac->Enqueue (packet, realTo, m_mac->GetAddress ());
|
||||
return true;
|
||||
}
|
||||
Ptr<Node>
|
||||
@@ -335,8 +335,21 @@ WifiNetDevice::LinkDown (void)
|
||||
bool
|
||||
WifiNetDevice::SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest, uint16_t protocolNumber)
|
||||
{
|
||||
NS_FATAL_ERROR ("TODO");
|
||||
return false;
|
||||
NS_ASSERT (Mac48Address::IsMatchingType (dest));
|
||||
NS_ASSERT (Mac48Address::IsMatchingType (source));
|
||||
|
||||
Mac48Address realTo = Mac48Address::ConvertFrom (dest);
|
||||
Mac48Address realFrom = Mac48Address::ConvertFrom (source);
|
||||
|
||||
LlcSnapHeader llc;
|
||||
llc.SetType (protocolNumber);
|
||||
packet->AddHeader (llc);
|
||||
|
||||
m_txLogger (packet, realTo);
|
||||
|
||||
m_mac->Enqueue (packet, realTo, realFrom);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user