diff --git a/src/devices/csma/csma-net-device.cc b/src/devices/csma/csma-net-device.cc index 809bbb3c6..5cf20ac52 100644 --- a/src/devices/csma/csma-net-device.cc +++ b/src/devices/csma/csma-net-device.cc @@ -833,10 +833,4 @@ CsmaNetDevice::SetPromiscuousReceiveCallback (NetDevice::PromiscuousReceiveCallb m_promiscRxCallback = cb; } -bool -CsmaNetDevice::SupportsPromiscuousReceiveCallback (void) const -{ - return true; -} - } // namespace ns3 diff --git a/src/devices/csma/csma-net-device.h b/src/devices/csma/csma-net-device.h index a8733adad..bc7a205b3 100644 --- a/src/devices/csma/csma-net-device.h +++ b/src/devices/csma/csma-net-device.h @@ -286,7 +286,6 @@ public: */ virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb); virtual void SetPromiscuousReceiveCallback (PromiscuousReceiveCallback cb); - virtual bool SupportsPromiscuousReceiveCallback (void) const; protected: /** diff --git a/src/node/net-device.cc b/src/node/net-device.cc index 8d9c43209..410cc3f49 100644 --- a/src/node/net-device.cc +++ b/src/node/net-device.cc @@ -21,7 +21,6 @@ #include "ns3/object.h" #include "ns3/log.h" #include "net-device.h" -#include "ns3/packet.h" NS_LOG_COMPONENT_DEFINE ("NetDevice"); @@ -39,24 +38,4 @@ TypeId NetDevice::GetTypeId (void) NetDevice::~NetDevice () {} -bool -NetDevice::SupportsPromiscuousReceiveCallback (void) const -{ - return false; -} - -void -NetDevice::SetPromiscuousReceiveCallback (PromiscuousReceiveCallback cb) -{ - NS_FATAL_ERROR ("promiscuous receive callback not supported for this device"); -} - -bool -NetDevice::SendFrom(Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber) -{ - NS_FATAL_ERROR ("NetDevice " << GetInstanceTypeId ().GetName () << " does not support SendFrom."); - return false; -} - - } // namespace ns3 diff --git a/src/node/net-device.h b/src/node/net-device.h index c6eb8dfc8..66b91de45 100644 --- a/src/node/net-device.h +++ b/src/node/net-device.h @@ -228,7 +228,7 @@ public: * * \return whether the Send operation succeeded */ - virtual bool SendFrom(Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber); + virtual bool SendFrom(Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber) = 0; /** * \returns the node base class which contains this network * interface. @@ -297,12 +297,7 @@ public: * it. In that sense, it receives a superset of packets * received by the normal ReceivedCallback. */ - virtual void SetPromiscuousReceiveCallback (PromiscuousReceiveCallback cb); - - /** - * \returns true if device supports promiscuous receive callback - */ - virtual bool SupportsPromiscuousReceiveCallback (void) const; + virtual void SetPromiscuousReceiveCallback (PromiscuousReceiveCallback cb) = 0; }; diff --git a/src/node/node.cc b/src/node/node.cc index 9209f8653..3646c8edb 100644 --- a/src/node/node.cc +++ b/src/node/node.cc @@ -96,10 +96,7 @@ Node::AddDevice (Ptr device) device->SetNode (this); device->SetIfIndex(index); device->SetReceiveCallback (MakeCallback (&Node::ReceiveFromDevice, this)); - if (device->SupportsPromiscuousReceiveCallback ()) - { - device->SetPromiscuousReceiveCallback (MakeCallback (&Node::PromiscuousReceiveFromDevice, this)); - } + device->SetPromiscuousReceiveCallback (MakeCallback (&Node::PromiscuousReceiveFromDevice, this)); NotifyDeviceAdded (device); return index; } @@ -194,10 +191,6 @@ Node::RegisterPromiscuousProtocolHandler (PromiscuousProtocolHandler handler, entry.handler = handler; entry.protocol = protocolType; entry.device = device; - if (device) - { - NS_ASSERT (device->SupportsPromiscuousReceiveCallback ()); - } m_promiscuousHandlers.push_back (entry); }