ns-3
|
The IPv4 representation of a network interface. More...
#include <ipv4-interface.h>
Public Member Functions | |
Ipv4Interface () | |
void | SetNode (Ptr< Node > node) |
void | SetDevice (Ptr< NetDevice > device) |
void | SetArpCache (Ptr< ArpCache >) |
Ptr< NetDevice > | GetDevice (void) const |
Ptr< ArpCache > | GetArpCache () const |
void | SetMetric (uint16_t metric) |
uint16_t | GetMetric (void) const |
bool | IsUp (void) const |
bool | IsDown (void) const |
void | SetUp (void) |
void | SetDown (void) |
bool | IsForwarding (void) const |
void | SetForwarding (bool val) |
void | Send (Ptr< Packet > p, Ipv4Address dest) |
bool | AddAddress (Ipv4InterfaceAddress address) |
Ipv4InterfaceAddress | GetAddress (uint32_t index) const |
uint32_t | GetNAddresses (void) const |
Ipv4InterfaceAddress | RemoveAddress (uint32_t index) |
![]() | |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Dispose (void) |
void | AggregateObject (Ptr< Object > other) |
AggregateIterator | GetAggregateIterator (void) const |
void | Start (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
uint32_t | GetReferenceCount (void) const |
![]() | |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::Ipv4Interface. |
Protected Member Functions | |
virtual void | DoDispose (void) |
![]() | |
virtual void | NotifyNewAggregate (void) |
virtual void | DoStart (void) |
Object (const Object &o) |
The IPv4 representation of a network interface.
This class roughly corresponds to the struct in_device of Linux; the main purpose is to provide address-family specific information (addresses) about an interface.
By default, Ipv4 interface are created in the "down" state no IP addresses. Before becoming useable, the user must add an address of some type and invoke Setup on them.
ns3::Ipv4Interface::Ipv4Interface | ( | ) |
By default, Ipv4 interface are created in the "down" state with no IP addresses. Before becoming useable, the user must invoke SetUp on them once an Ipv4 address and mask have been set.
References NS_LOG_FUNCTION.
bool ns3::Ipv4Interface::AddAddress | ( | Ipv4InterfaceAddress | address | ) |
address | The Ipv4InterfaceAddress to add to the interface |
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::AddAddress().
|
protectedvirtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::Object.
References NS_LOG_FUNCTION_NOARGS.
Ipv4InterfaceAddress ns3::Ipv4Interface::GetAddress | ( | uint32_t | index | ) | const |
index | Index of Ipv4InterfaceAddress to return |
References NS_ASSERT, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::GetAddress().
Referenced by ns3::dsr::DsrRouting::DoDispose(), and GetTypeId().
Referenced by ns3::Ipv4L3Protocol::GetMtu(), ns3::Ipv4L3Protocol::GetNetDevice(), ns3::Ipv4L3Protocol::Receive(), and ns3::Ipv4L3Protocol::Send().
uint16_t ns3::Ipv4Interface::GetMetric | ( | void | ) | const |
Note: This is synonymous to the Metric value that ifconfig prints out. It is used by ns-3 global routing, but other routing daemons may choose to ignore it.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::GetMetric().
uint32_t ns3::Ipv4Interface::GetNAddresses | ( | void | ) | const |
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::GetNAddresses().
|
static |
This method returns the TypeId associated to ns3::Ipv4Interface.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::Object.
References GetArpCache(), and ns3::TypeId::SetParent().
bool ns3::Ipv4Interface::IsDown | ( | void | ) | const |
References NS_LOG_FUNCTION_NOARGS.
bool ns3::Ipv4Interface::IsForwarding | ( | void | ) | const |
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::IsForwarding().
bool ns3::Ipv4Interface::IsUp | ( | void | ) | const |
These are IP interface states and may be distinct from NetDevice states, such as found in real implementations (where the device may be down but IP interface state is still up).
These are IP interface states and may be distinct from NetDevice states, such as found in real implementations (where the device may be down but IP interface state is still up).
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::IsUp(), ns3::Ipv4L3Protocol::Receive(), and Send().
Ipv4InterfaceAddress ns3::Ipv4Interface::RemoveAddress | ( | uint32_t | index | ) |
index | Index of Ipv4InterfaceAddress to remove |
References NS_ASSERT_MSG, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::RemoveAddress().
void ns3::Ipv4Interface::Send | ( | Ptr< Packet > | p, |
Ipv4Address | dest | ||
) |
p | packet to send |
dest | next hop address of packet. |
This method will eventually call the private SendTo method which must be implemented by subclasses.
References ns3::NetDevice::GetBroadcast(), ns3::NetDevice::GetMulticast(), ns3::Object::GetObject(), ns3::Ipv4Address::IsBroadcast(), ns3::Ipv4Address::IsMulticast(), ns3::NetDevice::IsMulticast(), ns3::Ipv4Address::IsSubnetDirectedBroadcast(), IsUp(), ns3::NetDevice::NeedsArp(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::NetDevice::PACKET_HOST, ns3::Ipv4L3Protocol::Receive(), and ns3::NetDevice::Send().
Referenced by ns3::Ipv4L3Protocol::Send().
void ns3::Ipv4Interface::SetDown | ( | void | ) |
Disable this interface
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::SetDown().
void ns3::Ipv4Interface::SetForwarding | ( | bool | val | ) |
val | Whether to enable or disable IP forwarding for input datagrams |
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::SetForwarding().
void ns3::Ipv4Interface::SetMetric | ( | uint16_t | metric | ) |
metric | configured routing metric (cost) of this interface |
Note: This is synonymous to the Metric value that ifconfig prints out. It is used by ns-3 global routing, but other routing daemons choose to ignore it.
References NS_LOG_FUNCTION.
Referenced by ns3::Ipv4L3Protocol::SetMetric().
void ns3::Ipv4Interface::SetUp | ( | void | ) |
Enable this interface
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4L3Protocol::SetUp().