22 #include "ns3/packet.h"
24 #include "ns3/pointer.h"
25 #include "ns3/trace-source-accessor.h"
26 #include "ns3/boolean.h"
27 #include "ns3/simulator.h"
28 #include "ns3/channel.h"
29 #include "ns3/mac64-address.h"
30 #include "ns3/mac48-address.h"
31 #include "ns3/mac16-address.h"
32 #include "ns3/mac8-address.h"
44 .SetGroupName(
"Network")
46 .AddAttribute (
"PointToPointMode",
47 "The device is configured in Point to Point mode",
a polymophic address class
AttributeValue implementation for Boolean.
bool IsNull(void) const
Check for null implementation.
void Nullify(void)
Discard the implementation, set it to null.
Ipv4 addresses are stored in host order in this class.
Describes an IPv6 address.
static Ipv6Address MakeIpv4MappedAddress(Ipv4Address addr)
Make the Ipv4-mapped IPv6 address.
static Mac16Address GetMulticast(Ipv6Address address)
Returns the multicast address associated with an IPv6 address according to RFC 4944 Section 9.
static bool IsMatchingType(const Address &address)
static Mac16Address GetBroadcast(void)
static Mac48Address GetMulticast(Ipv4Address address)
static Mac48Address GetBroadcast(void)
static bool IsMatchingType(const Address &address)
static bool IsMatchingType(const Address &address)
static bool IsMatchingType(const Address &address)
Check that a generic Address is compatible with Mac8Address.
This device assumes 48-bit mac addressing; there is also the possibility to add an ErrorModel if you ...
Ptr< Node > m_node
Node this netDevice is associated to.
virtual void SetPromiscReceiveCallback(PromiscReceiveCallback cb)
uint32_t m_ifIndex
Interface index.
virtual bool NeedsArp(void) const
virtual void SetAddress(Address address)
Set the address of this interface.
void SetSendCallback(PromiscReceiveCallback cb)
Add a callback to be invoked when the MockNetDevice has a packet to "send".
virtual bool SendFrom(Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
virtual bool SupportsSendFrom(void) const
virtual Address GetMulticast(Ipv4Address multicastGroup) const
Make and return a MAC multicast address using the provided multicast group.
void Receive(Ptr< Packet > packet, uint16_t protocol, Address to, Address from, NetDevice::PacketType packetType)
Pretend that a packet has been received from a connected Channel.
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
virtual void SetIfIndex(const uint32_t index)
virtual bool IsPointToPoint(void) const
Return true if the net device is on a point-to-point link.
virtual Ptr< Channel > GetChannel(void) const
virtual uint32_t GetIfIndex(void) const
virtual bool IsMulticast(void) const
NetDevice::PromiscReceiveCallback m_sendCallback
Send callback.
virtual uint16_t GetMtu(void) const
virtual Address GetBroadcast(void) const
virtual Address GetAddress(void) const
virtual void DoDispose(void)
Destructor implementation.
virtual bool IsBroadcast(void) const
static TypeId GetTypeId(void)
Get the type ID.
TracedCallback m_linkChangeCallbacks
List of callbacks to fire if the link changes state (up or down).
bool m_pointToPointMode
Enabling this will disable Broadcast and Arp.
virtual void SetReceiveCallback(NetDevice::ReceiveCallback cb)
Address m_address
MAC address.
bool m_linkUp
Flag indicating whether or not the link is up.
virtual bool SetMtu(const uint16_t mtu)
virtual void SetNode(Ptr< Node > node)
NetDevice::PromiscReceiveCallback m_promiscCallback
Promiscuous receive callback.
virtual bool IsBridge(void) const
Return true if the net device is acting as a bridge.
virtual void AddLinkChangeCallback(Callback< void > callback)
virtual bool IsLinkUp(void) const
NetDevice::ReceiveCallback m_rxCallback
Receive callback.
virtual Ptr< Node > GetNode(void) const
Network layer to device interface.
PacketType
Packet types are used as they are in Linux.
@ PACKET_HOST
Packet addressed oo us.
@ PACKET_OTHERHOST
Packet addressed to someone else.
virtual void DoDispose(void)
Destructor implementation.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
void ConnectWithoutContext(const CallbackBase &callback)
Append a Callback to the chain (without a context).
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Ptr< const AttributeChecker > MakeBooleanChecker(void)
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.