20 #ifndef SIMPLE_NET_DEVICE_H
21 #define SIMPLE_NET_DEVICE_H
26 #include "ns3/traced-callback.h"
27 #include "ns3/net-device.h"
28 #include "ns3/data-rate.h"
29 #include "ns3/event-id.h"
35 template <
typename Item>
class Queue;
111 virtual void SetIfIndex (
const uint32_t index);
116 virtual bool SetMtu (
const uint16_t mtu);
117 virtual uint16_t
GetMtu (
void)
const;
a polymophic address class
Class for representing data rates.
An identifier for simulation events.
Ipv4 addresses are stored in host order in this class.
Describes an IPv6 address.
Network layer to device interface.
This device assumes 48-bit mac addressing; there is also the possibility to add an ErrorModel if you ...
virtual bool IsMulticast(void) const
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
virtual bool IsBroadcast(void) const
virtual bool IsLinkUp(void) const
virtual Ptr< Node > GetNode(void) const
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
The trace source fired when the phy layer drops a packet it has received due to the error model being...
TracedCallback m_linkChangeCallbacks
List of callbacks to fire if the link changes state (up or down).
virtual Address GetAddress(void) const
virtual bool NeedsArp(void) const
virtual Ptr< Channel > GetChannel(void) const
void SetQueue(Ptr< Queue< Packet > > queue)
Attach a queue to the SimpleNetDevice.
NetDevice::ReceiveCallback m_rxCallback
Receive callback.
Ptr< Queue< Packet > > GetQueue(void) const
Get a copy of the attached Queue.
DataRate m_bps
The device nominal Data rate.
virtual bool IsBridge(void) const
Return true if the net device is acting as a bridge.
Ptr< Queue< Packet > > m_queue
The Queue for outgoing packets.
static TypeId GetTypeId(void)
Get the type ID.
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
virtual void SetNode(Ptr< Node > node)
virtual bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
virtual Address GetBroadcast(void) const
virtual void AddLinkChangeCallback(Callback< void > callback)
void SetReceiveErrorModel(Ptr< ErrorModel > em)
Attach a receive ErrorModel to the SimpleNetDevice.
void StartTransmission(void)
The StartTransmission method is used internally to start the process of sending a packet out on the c...
virtual void SetPromiscReceiveCallback(PromiscReceiveCallback cb)
EventId FinishTransmissionEvent
the Tx Complete event
bool m_linkUp
Flag indicating whether or not the link is up.
virtual void SetAddress(Address address)
Set the address of this interface.
bool m_pointToPointMode
Flag indicating whether or not the NetDevice is a Point to Point model.
void FinishTransmission(Ptr< Packet > packet)
The FinishTransmission method is used internally to finish the process of sending a packet out on the...
Ptr< ErrorModel > m_receiveErrorModel
Receive error model.
Ptr< SimpleChannel > m_channel
the channel the device is connected to
virtual bool SetMtu(const uint16_t mtu)
Ptr< Node > m_node
Node this netDevice is associated to.
virtual void SetIfIndex(const uint32_t index)
uint32_t m_ifIndex
Interface index.
Mac48Address m_address
MAC address.
NetDevice::PromiscReceiveCallback m_promiscCallback
Promiscuous receive callback.
virtual bool IsPointToPoint(void) const
Return true if the net device is on a point-to-point link.
virtual void DoDispose(void)
Destructor implementation.
virtual bool SupportsSendFrom(void) const
virtual uint16_t GetMtu(void) const
virtual Address GetMulticast(Ipv4Address multicastGroup) const
Make and return a MAC multicast address using the provided multicast group.
virtual uint32_t GetIfIndex(void) const
void Receive(Ptr< Packet > packet, uint16_t protocol, Mac48Address to, Mac48Address from)
Receive a packet from a connected SimpleChannel.
void SetChannel(Ptr< SimpleChannel > channel)
Attach a channel to this net device.
Forward calls to a chain of Callback.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.