27 #include "ns3/net-device.h" 
   29 #include "ns3/packet.h" 
   31 #include "ns3/pointer.h" 
   32 #include "ns3/traffic-control-layer.h" 
   46     .SetGroupName (
"Internet")
 
   47     .AddAttribute (
"ArpCache",
 
   48                    "The arp cache for this ipv4 interface",
 
   52                    MakePointerChecker<ArpCache> ())
 
  223   if (DynamicCast<LoopbackNetDevice> (
m_device))
 
  237       if (dest == (*i).GetLocal ())
 
  256           hardwareDestination = 
m_device->GetBroadcast ();
 
  263                          "ArpIpv4Interface::SendTo (): Sending multicast packet over " 
  264                          "non-multicast device");
 
  266           hardwareDestination = 
m_device->GetMulticast (dest);
 
  276                   hardwareDestination = 
m_device->GetBroadcast ();
 
  284               found = arp->Lookup (p, hdr, dest, 
m_device, 
m_cache, &hardwareDestination);
 
  379       if((*it).GetLocal() == 
address)
 
void SetDown(void)
Disable this interface. 
 
void SetForwarding(bool val)
 
Ipv4Interface()
By default, Ipv4 interface are created in the "down" state with no IP addresses. 
 
void Send(Ptr< Packet > p, const Ipv4Header &hdr, Ipv4Address dest)
 
#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. 
 
Ptr< T > GetObject(void) const 
Get a pointer to the requested aggregated Object. 
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
Ptr< ArpCache > GetArpCache() const 
 
bool IsMulticast(void) const 
 
Ipv4InterfaceAddress RemoveAddress(uint32_t index)
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
virtual void DoDispose(void)
Destructor implementation. 
 
bool AddAddress(Ipv4InterfaceAddress address)
 
Ptr< NetDevice > m_device
The associated NetDevice. 
 
Ptr< ArpCache > m_cache
ARP cache. 
 
void SetNode(Ptr< Node > node)
Set node associated with interface. 
 
a polymophic address class 
 
std::list< Ipv4InterfaceAddress >::const_iterator Ipv4InterfaceAddressListCI
Container Iterator for the Ipv4InterfaceAddresses. 
 
bool m_forwarding
Forwarding state. 
 
bool IsSubnetDirectedBroadcast(Ipv4Mask const &mask) const 
Generate subnet-directed broadcast address corresponding to mask. 
 
NS_ASSERT_MSG(false,"Ipv4AddressGenerator::MaskToIndex(): Impossible")
 
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
static TypeId GetTypeId(void)
Get the type ID. 
 
void SetTrafficControl(Ptr< TrafficControlLayer > tc)
Set the TrafficControlLayer. 
 
bool IsBroadcast(void) const 
 
Ptr< TrafficControlLayer > m_tc
The associated TrafficControlLayer. 
 
void SetDevice(Ptr< NetDevice > device)
Set the NetDevice. 
 
Ipv4InterfaceAddressList m_ifaddrs
Address list. 
 
Ipv4InterfaceAddress GetAddress(uint32_t index) const 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
Hold objects of type Ptr. 
 
std::list< Ipv4InterfaceAddress >::iterator Ipv4InterfaceAddressListI
Const Container Iterator for the Ipv4InterfaceAddresses. 
 
static Ipv4Address GetLoopback(void)
 
Ptr< Node > m_node
The associated node. 
 
NS_LOG_LOGIC("Net device "<< nd<< " is not bridged")
 
uint16_t GetMetric(void) const 
 
uint16_t m_metric
Interface metric. 
 
Ipv4 addresses are stored in host order in this class. 
 
void SetArpCache(Ptr< ArpCache > arpCache)
Set ARP cache used by this interface. 
 
a class to store IPv4 address information on an interface 
 
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN. 
 
Ptr< NetDevice > GetDevice(void) const 
 
bool m_ifup
The state of this interface. 
 
An implementation of the ARP protocol. 
 
void SetMetric(uint16_t metric)
 
A base class which provides memory management and object aggregation. 
 
void DoSetup(void)
Initialize interface. 
 
virtual void DoDispose(void)
Destructor implementation. 
 
uint32_t GetNAddresses(void) const 
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
bool IsForwarding(void) const 
 
void AddHeader(const Header &header)
Add header to this packet. 
 
static const uint16_t PROT_NUMBER
Protocol number (0x0800) 
 
bool IsUp(void) const 
These are IP interface states and may be distinct from NetDevice states, such as found in real implem...
 
void SetUp(void)
Enable this interface.