22 #ifndef FD_NET_DEVICE_H
23 #define FD_NET_DEVICE_H
25 #include "ns3/address.h"
26 #include "ns3/callback.h"
27 #include "ns3/data-rate.h"
28 #include "ns3/event-id.h"
29 #include "ns3/mac48-address.h"
30 #include "ns3/net-device.h"
32 #include "ns3/packet.h"
34 #include "ns3/system-condition.h"
35 #include "ns3/traced-callback.h"
36 #include "ns3/unix-fd-reader.h"
37 #include "ns3/system-mutex.h"
60 uint32_t m_bufferSize;
85 static TypeId GetTypeId (
void);
148 virtual void SetIfIndex (
const uint32_t index);
153 virtual bool SetMtu (
const uint16_t mtu);
154 virtual uint16_t
GetMtu (
void)
const;
173 virtual void SetIsBroadcast (
bool broadcast);
174 virtual void SetIsMulticast (
bool multicast);
210 void ForwardUp (uint8_t *buf, ssize_t len);
219 void NotifyLinkUp (
void);
virtual bool IsPointToPoint(void) const
Return true if the net device is on a point-to-point link.
A structure representing data read.
smart pointer class similar to boost::intrusive_ptr
void ForwardUp(uint8_t *buf, ssize_t len)
void SetFileDescriptor(int fd)
virtual void AddLinkChangeCallback(Callback< void > callback)
virtual bool SupportsSendFrom() const
EncapsulationMode m_encapMode
virtual bool NeedsArp(void) const
TracedCallback< Ptr< const Packet > > m_macRxTrace
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
virtual bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
NetDevice::ReceiveCallback m_rxCallback
TracedCallback< Ptr< const Packet > > m_macTxDropTrace
virtual bool IsMulticast(void) const
Ptr< FdNetDeviceFdReader > m_fdReader
virtual uint32_t GetIfIndex(void) const
virtual void SetIfIndex(const uint32_t index)
a polymophic address class
A class that asynchronously reads from a file descriptor.
virtual Ptr< Node > GetNode(void) const
TracedCallback< Ptr< const Packet > > m_macTxTrace
virtual Ptr< Channel > GetChannel(void) const
bool TransmitStart(Ptr< Packet > p)
virtual bool IsBridge(void) const
Return true if the net device is acting as a bridge.
uint32_t m_maxPendingReads
virtual Address GetBroadcast(void) const
void ReceiveCallback(uint8_t *buf, ssize_t len)
TracedCallback< Ptr< const Packet > > m_macRxDropTrace
virtual Address GetMulticast(Ipv4Address multicastGroup) const
Make and return a MAC multicast address using the provided multicast group.
virtual bool IsLinkUp(void) const
void SetEncapsulationMode(FdNetDevice::EncapsulationMode mode)
virtual void SetPromiscReceiveCallback(NetDevice::PromiscReceiveCallback cb)
TracedCallback m_linkChangeCallbacks
TracedCallback< Ptr< const Packet > > m_promiscSnifferTrace
virtual bool IsBroadcast(void) const
virtual void SetNode(Ptr< Node > node)
A class which provides a relatively platform-independent Mutual Exclusion thread synchronization prim...
TracedCallback< Ptr< const Packet > > m_snifferTrace
FdReader::Data DoRead(void)
The read implementation.
FdNetDevice::EncapsulationMode GetEncapsulationMode(void) const
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
uint32_t m_pendingReadCount
virtual bool SetMtu(const uint16_t mtu)
Describes an IPv6 address.
Ipv4 addresses are stored in host order in this class.
an identifier for simulation events.
virtual Address GetAddress(void) const
Network layer to device interface.
TracedCallback< Ptr< const Packet > > m_phyTxDropTrace
virtual void SetAddress(Address address)
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
NetDevice::PromiscReceiveCallback m_promiscRxCallback
TracedCallback< Ptr< const Packet > > m_macPromiscRxTrace
void SetBufferSize(uint32_t bufferSize)
a NetDevice to read/write network traffic from/into a file descriptor.
virtual uint16_t GetMtu(void) const
virtual void DoDispose(void)
a unique identifier for an interface.
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
SystemMutex m_pendingReadMutex