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