A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::Ipv6Interface Class Reference

The IPv6 representation of a network interface. More...

#include "ipv6-interface.h"

+ Inheritance diagram for ns3::Ipv6Interface:
+ Collaboration diagram for ns3::Ipv6Interface:

Public Member Functions

 Ipv6Interface ()
 Constructs an Ipv6Interface.
 
 Ipv6Interface (const Ipv6Interface &)=delete
 
 ~Ipv6Interface () override
 Destructor.
 
bool AddAddress (Ipv6InterfaceAddress iface)
 Add an IPv6 address.
 
void AddAddressCallback (Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddress > addAddressCallback)
 This callback is set when an address is added from an interface with auto-generated Ndisc cache and it allow the neighbor cache helper to update neighbor's Ndisc cache.
 
Ipv6InterfaceAddress GetAddress (uint32_t index) const
 Get an address from IPv6 interface.
 
Ipv6InterfaceAddress GetAddressMatchingDestination (Ipv6Address dst)
 Get an address which is in the same network prefix as destination.
 
uint16_t GetBaseReachableTime () const
 Get the base reachable time.
 
uint8_t GetCurHopLimit () const
 Get the current hop limit value.
 
virtual Ptr< NetDeviceGetDevice () const
 Get the NetDevice.
 
Ipv6InterfaceAddress GetLinkLocalAddress () const
 Get link-local address from IPv6 interface.
 
uint16_t GetMetric () const
 Get the metric.
 
uint32_t GetNAddresses () const
 Get number of addresses on this IPv6 interface.
 
Ptr< NdiscCacheGetNdiscCache () const
 
uint16_t GetReachableTime () const
 Get the reachable time.
 
uint16_t GetRetransTimer () const
 Get the retransmission timer.
 
bool IsDown () const
 Is the interface DOWN ?
 
bool IsForwarding () const
 If the interface allows forwarding packets.
 
bool IsSolicitedMulticastAddress (Ipv6Address address) const
 Checks if the address is a Solicited Multicast address for this interface.
 
bool IsUp () const
 Is the interface UP ?
 
Ipv6Interfaceoperator= (const Ipv6Interface &)=delete
 
Ipv6InterfaceAddress RemoveAddress (Ipv6Address address)
 Remove the given Ipv6 address from the interface.
 
Ipv6InterfaceAddress RemoveAddress (uint32_t index)
 Remove an address from interface.
 
void RemoveAddressCallback (Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddress > removeAddressCallback)
 This callback is set when an address is removed from an interface with auto-generated Ndisc cache and it allow the neighbor cache helper to update neighbor's Ndisc cache.
 
void Send (Ptr< Packet > p, const Ipv6Header &hdr, Ipv6Address dest)
 Send a packet through this interface.
 
void SetBaseReachableTime (uint16_t baseReachableTime)
 Set the base reachable time.
 
void SetCurHopLimit (uint8_t curHopLimit)
 Set the current hop limit.
 
void SetDevice (Ptr< NetDevice > device)
 Set the NetDevice.
 
void SetDown ()
 Disable this interface.
 
void SetForwarding (bool forward)
 Set forwarding enabled or not.
 
void SetMetric (uint16_t metric)
 Set the metric.
 
void SetNode (Ptr< Node > node)
 Set node associated with interface.
 
void SetNsDadUid (Ipv6Address address, uint32_t uid)
 Update NS DAD packet UID of an interface address.
 
void SetReachableTime (uint16_t reachableTime)
 Set the reachable time.
 
void SetRetransTimer (uint16_t retransTimer)
 Set the retransmission timer.
 
void SetState (Ipv6Address address, Ipv6InterfaceAddress::State_e state)
 Update state of an interface address.
 
void SetTrafficControl (Ptr< TrafficControlLayer > tc)
 Set the TrafficControlLayer.
 
void SetUp ()
 Enable this interface.
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Protected Member Functions

void DoDispose () override
 Dispose this object.
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Private Types

typedef std::list< std::pair< Ipv6InterfaceAddress, Ipv6Address > > Ipv6InterfaceAddressList
 Container for the Ipv6InterfaceAddresses.
 
typedef std::list< std::pair< Ipv6InterfaceAddress, Ipv6Address > >::const_iterator Ipv6InterfaceAddressListCI
 Const Container Iterator for the Ipv6InterfaceAddresses.
 
typedef std::list< std::pair< Ipv6InterfaceAddress, Ipv6Address > >::iterator Ipv6InterfaceAddressListI
 Container Iterator for the Ipv6InterfaceAddresses.
 

Private Member Functions

void DoSetup ()
 Initialize interface.
 

Private Attributes

Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddressm_addAddressCallback
 add address callback
 
Ipv6InterfaceAddressList m_addresses
 The addresses assigned to this interface.
 
uint16_t m_baseReachableTime
 Base value used for computing the random reachable time value (in millisecond).
 
uint8_t m_curHopLimit
 Current hop limit.
 
Ptr< NetDevicem_device
 NetDevice associated with this interface.
 
bool m_forwarding
 Forwarding state.
 
bool m_ifup
 The state of this interface.
 
Ipv6InterfaceAddress m_linkLocalAddress
 The link-local addresses assigned to this interface.
 
uint16_t m_metric
 The metric.
 
Ptr< NdiscCachem_ndCache
 Neighbor cache.
 
Ptr< Nodem_node
 Node associated with this interface.
 
uint16_t m_reachableTime
 Reachable time (in millisecond).
 
Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddressm_removeAddressCallback
 remove address callback
 
uint16_t m_retransTimer
 Retransmission timer (in millisecond).
 
Ptr< TrafficControlLayerm_tc
 TrafficControlLayer associated with this interface.
 

Additional Inherited Members

Detailed Description

The IPv6 representation of a network interface.

By default IPv6 interfaces are created in the "down" state with IP "fe80::1" and a /64 prefix. Before becoming usable, the user must invoke SetUp on them once the final IPv6 address and mask has been set.

Config Paths

ns3::Ipv6Interface is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/$ns3::Ipv6L3Protocol/InterfaceList/[i]"

No Attributes are defined for this type.
No TraceSources are defined for this type.
Group: Internet

Size of this type is 192 bytes (on a 64-bit architecture).

Definition at line 41 of file ipv6-interface.h.

Member Typedef Documentation

◆ Ipv6InterfaceAddressList

Container for the Ipv6InterfaceAddresses.

Definition at line 298 of file ipv6-interface.h.

◆ Ipv6InterfaceAddressListCI

typedef std::list<std::pair<Ipv6InterfaceAddress,Ipv6Address>>::const_iterator ns3::Ipv6Interface::Ipv6InterfaceAddressListCI
private

Const Container Iterator for the Ipv6InterfaceAddresses.

Definition at line 310 of file ipv6-interface.h.

◆ Ipv6InterfaceAddressListI

typedef std::list<std::pair<Ipv6InterfaceAddress,Ipv6Address>>::iterator ns3::Ipv6Interface::Ipv6InterfaceAddressListI
private

Container Iterator for the Ipv6InterfaceAddresses.

Definition at line 304 of file ipv6-interface.h.

Constructor & Destructor Documentation

◆ Ipv6Interface() [1/2]

ns3::Ipv6Interface::Ipv6Interface ( )

Constructs an Ipv6Interface.

Definition at line 40 of file ipv6-interface.cc.

References NS_LOG_FUNCTION.

◆ ~Ipv6Interface()

ns3::Ipv6Interface::~Ipv6Interface ( )
override

Destructor.

Definition at line 56 of file ipv6-interface.cc.

◆ Ipv6Interface() [2/2]

ns3::Ipv6Interface::Ipv6Interface ( const Ipv6Interface & )
delete

Member Function Documentation

◆ AddAddress()

bool ns3::Ipv6Interface::AddAddress ( Ipv6InterfaceAddress iface)

Add an IPv6 address.

Parameters
ifaceaddress to add
Returns
true if address was added, false otherwise

Definition at line 199 of file ipv6-interface.cc.

References ns3::Icmpv6L4Protocol::DoDAD(), ns3::DynamicCast(), ns3::Icmpv6L4Protocol::FunctionDadTimeout(), ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Object::GetObject(), ns3::Ipv6::GetProtocol(), ns3::Icmpv6L4Protocol::GetStaticProtocolNumber(), ns3::Ipv6Address::IsAny(), ns3::Ipv6Address::IsLocalhost(), m_addAddressCallback, m_addresses, m_device, m_node, ns3::Ipv6Address::MakeSolicitedAddress(), NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by DoSetup().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddAddressCallback()

void ns3::Ipv6Interface::AddAddressCallback ( Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddress > addAddressCallback)

This callback is set when an address is added from an interface with auto-generated Ndisc cache and it allow the neighbor cache helper to update neighbor's Ndisc cache.

Parameters
addAddressCallbackCallback when remove an address.

Definition at line 595 of file ipv6-interface.cc.

References m_addAddressCallback, and NS_LOG_FUNCTION.

◆ DoDispose()

void ns3::Ipv6Interface::DoDispose ( )
overrideprotectedvirtual

Dispose this object.

Reimplemented from ns3::Object.

Definition at line 61 of file ipv6-interface.cc.

References ns3::Object::DoDispose(), m_device, m_ndCache, m_node, m_tc, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoSetup()

void ns3::Ipv6Interface::DoSetup ( )
private

Initialize interface.

Definition at line 72 of file ipv6-interface.cc.

References AddAddress(), ns3::DynamicCast(), GetDevice(), ns3::Object::GetObject(), ns3::Ipv6::GetProtocol(), ns3::Icmpv6L4Protocol::GetStaticProtocolNumber(), m_device, m_linkLocalAddress, m_ndCache, m_node, ns3::Ipv6Address::MakeAutoconfiguredLinkLocalAddress(), and NS_LOG_FUNCTION.

Referenced by SetUp().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetAddress()

Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddress ( uint32_t index) const

Get an address from IPv6 interface.

Parameters
indexindex
Returns
Ipv6InterfaceAddress address whose index is i

Definition at line 286 of file ipv6-interface.cc.

References m_addresses, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by ns3::Icmpv6L4Protocol::FunctionDadTimeout().

+ Here is the caller graph for this function:

◆ GetAddressMatchingDestination()

Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddressMatchingDestination ( Ipv6Address dst)

Get an address which is in the same network prefix as destination.

Parameters
dstdestination address
Returns
Corresponding Ipv6InterfaceAddress or assert if not found

Definition at line 376 of file ipv6-interface.cc.

References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Ipv6InterfaceAddress::GetPrefix(), ns3::Ipv6Prefix::IsMatch(), m_addresses, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ GetBaseReachableTime()

uint16_t ns3::Ipv6Interface::GetBaseReachableTime ( ) const

Get the base reachable time.

Returns
base reachable time

Definition at line 513 of file ipv6-interface.cc.

References m_baseReachableTime, and NS_LOG_FUNCTION.

◆ GetCurHopLimit()

uint8_t ns3::Ipv6Interface::GetCurHopLimit ( ) const

Get the current hop limit value.

Returns
current hop limit

Definition at line 499 of file ipv6-interface.cc.

References m_curHopLimit, and NS_LOG_FUNCTION.

◆ GetDevice()

Ptr< NetDevice > ns3::Ipv6Interface::GetDevice ( ) const
virtual

Get the NetDevice.

Returns
the NetDevice associated with this interface

Definition at line 128 of file ipv6-interface.cc.

References m_device, and NS_LOG_FUNCTION.

Referenced by ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), DoSetup(), ns3::Icmpv6L4Protocol::FunctionDadTimeout(), ns3::Ipv6L3Protocol::GetNetDevice(), and Send().

+ Here is the caller graph for this function:

◆ GetLinkLocalAddress()

Ipv6InterfaceAddress ns3::Ipv6Interface::GetLinkLocalAddress ( ) const

Get link-local address from IPv6 interface.

Returns
link-local Ipv6InterfaceAddress, assert if not found

Definition at line 260 of file ipv6-interface.cc.

References m_linkLocalAddress, and NS_LOG_FUNCTION.

Referenced by ns3::Ipv6L3Protocol::IpForward().

+ Here is the caller graph for this function:

◆ GetMetric()

uint16_t ns3::Ipv6Interface::GetMetric ( ) const

Get the metric.

Returns
the metric

Definition at line 142 of file ipv6-interface.cc.

References m_metric, and NS_LOG_FUNCTION.

◆ GetNAddresses()

uint32_t ns3::Ipv6Interface::GetNAddresses ( ) const

Get number of addresses on this IPv6 interface.

Returns
number of address

Definition at line 311 of file ipv6-interface.cc.

References m_addresses, and NS_LOG_FUNCTION.

Referenced by ns3::Icmpv6L4Protocol::FunctionDadTimeout().

+ Here is the caller graph for this function:

◆ GetNdiscCache()

Ptr< NdiscCache > ns3::Ipv6Interface::GetNdiscCache ( ) const
Returns
NDISC cache used by this interface

Definition at line 580 of file ipv6-interface.cc.

References m_ndCache, and NS_LOG_FUNCTION.

◆ GetReachableTime()

uint16_t ns3::Ipv6Interface::GetReachableTime ( ) const

Get the reachable time.

Returns
reachable time

Definition at line 527 of file ipv6-interface.cc.

References m_reachableTime, and NS_LOG_FUNCTION.

◆ GetRetransTimer()

uint16_t ns3::Ipv6Interface::GetRetransTimer ( ) const

Get the retransmission timer.

Returns
retransmission timer

Definition at line 541 of file ipv6-interface.cc.

References m_retransTimer, and NS_LOG_FUNCTION.

◆ GetTypeId()

TypeId ns3::Ipv6Interface::GetTypeId ( )
static

Get the type ID.

Returns
type ID

Definition at line 34 of file ipv6-interface.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ IsDown()

bool ns3::Ipv6Interface::IsDown ( ) const

Is the interface DOWN ?

Returns
true if interface is disabled, false otherwise.

Definition at line 156 of file ipv6-interface.cc.

References m_ifup, and NS_LOG_FUNCTION.

◆ IsForwarding()

bool ns3::Ipv6Interface::IsForwarding ( ) const

If the interface allows forwarding packets.

Returns
true if forwarding is enabled, false otherwise

Definition at line 185 of file ipv6-interface.cc.

References m_forwarding, and NS_LOG_FUNCTION.

◆ IsSolicitedMulticastAddress()

bool ns3::Ipv6Interface::IsSolicitedMulticastAddress ( Ipv6Address address) const

Checks if the address is a Solicited Multicast address for this interface.

Parameters
addressthe address to check.
Returns
true if it is a solicited multicast address.

Definition at line 269 of file ipv6-interface.cc.

References m_addresses, and NS_LOG_FUNCTION.

◆ IsUp()

bool ns3::Ipv6Interface::IsUp ( ) const

Is the interface UP ?

Returns
true if interface is enabled, false otherwise.

Definition at line 149 of file ipv6-interface.cc.

References m_ifup, and NS_LOG_FUNCTION.

Referenced by Send().

+ Here is the caller graph for this function:

◆ operator=()

Ipv6Interface & ns3::Ipv6Interface::operator= ( const Ipv6Interface & )
delete

◆ RemoveAddress() [1/2]

Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress ( Ipv6Address address)

Remove the given Ipv6 address from the interface.

Parameters
addressThe Ipv6 address to remove
Returns
The removed Ipv6 interface address
The null interface address if the interface did not contain the address or if loopback address was passed as argument

Definition at line 349 of file ipv6-interface.cc.

References ns3::Ipv6Address::GetLoopback(), m_addresses, m_removeAddressCallback, NS_LOG_FUNCTION, and NS_LOG_WARN.

+ Here is the call graph for this function:

◆ RemoveAddress() [2/2]

Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress ( uint32_t index)

Remove an address from interface.

Parameters
indexindex to remove
Returns
Ipv6InterfaceAddress address whose index is index

Definition at line 318 of file ipv6-interface.cc.

References m_addresses, m_removeAddressCallback, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

◆ RemoveAddressCallback()

void ns3::Ipv6Interface::RemoveAddressCallback ( Callback< void, Ptr< Ipv6Interface >, Ipv6InterfaceAddress > removeAddressCallback)

This callback is set when an address is removed from an interface with auto-generated Ndisc cache and it allow the neighbor cache helper to update neighbor's Ndisc cache.

Parameters
removeAddressCallbackCallback when remove an address.

Definition at line 587 of file ipv6-interface.cc.

References m_removeAddressCallback, and NS_LOG_FUNCTION.

◆ Send()

void ns3::Ipv6Interface::Send ( Ptr< Packet > p,
const Ipv6Header & hdr,
Ipv6Address dest )

Send a packet through this interface.

Parameters
ppacket to send
hdrIPv6 header
destnext hop address of packet.
Note
This method will eventually call the private SendTo method which must be implemented by subclasses.
Todo
additional checks needed here (such as whether multicast goes to loopback)?

Definition at line 396 of file ipv6-interface.cc.

References ns3::Create(), ns3::DynamicCast(), GetDevice(), ns3::Object::GetObject(), ns3::Ipv6::GetProtocol(), ns3::Icmpv6L4Protocol::GetStaticProtocolNumber(), ns3::Ipv6Address::IsMulticast(), IsUp(), m_addresses, m_device, m_ndCache, m_node, m_tc, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::NetDevice::PACKET_HOST, ns3::Ipv6L3Protocol::PROT_NUMBER, ns3::TrafficControlLayer::Receive(), and ns3::Simulator::ScheduleNow().

Referenced by ns3::Icmpv6L4Protocol::DoDAD().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetBaseReachableTime()

void ns3::Ipv6Interface::SetBaseReachableTime ( uint16_t baseReachableTime)

Set the base reachable time.

Parameters
baseReachableTimethe value to set

Definition at line 506 of file ipv6-interface.cc.

References m_baseReachableTime, and NS_LOG_FUNCTION.

◆ SetCurHopLimit()

void ns3::Ipv6Interface::SetCurHopLimit ( uint8_t curHopLimit)

Set the current hop limit.

Parameters
curHopLimitthe value to set

Definition at line 492 of file ipv6-interface.cc.

References m_curHopLimit, and NS_LOG_FUNCTION.

◆ SetDevice()

void ns3::Ipv6Interface::SetDevice ( Ptr< NetDevice > device)

Set the NetDevice.

Parameters
deviceNetDevice

Definition at line 114 of file ipv6-interface.cc.

References m_device, and NS_LOG_FUNCTION.

◆ SetDown()

void ns3::Ipv6Interface::SetDown ( )

Disable this interface.

Definition at line 176 of file ipv6-interface.cc.

References ns3::NdiscCache::Flush(), m_addresses, m_ifup, m_ndCache, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ SetForwarding()

void ns3::Ipv6Interface::SetForwarding ( bool forward)

Set forwarding enabled or not.

Parameters
forwardforwarding state

Definition at line 192 of file ipv6-interface.cc.

References m_forwarding, and NS_LOG_FUNCTION.

◆ SetMetric()

void ns3::Ipv6Interface::SetMetric ( uint16_t metric)

Set the metric.

Parameters
metricconfigured routing metric (cost) of this interface

Definition at line 135 of file ipv6-interface.cc.

References m_metric, and NS_LOG_FUNCTION.

◆ SetNode()

void ns3::Ipv6Interface::SetNode ( Ptr< Node > node)

Set node associated with interface.

Parameters
nodenode

Definition at line 107 of file ipv6-interface.cc.

References m_node, and NS_LOG_FUNCTION.

◆ SetNsDadUid()

void ns3::Ipv6Interface::SetNsDadUid ( Ipv6Address address,
uint32_t uid )

Update NS DAD packet UID of an interface address.

Parameters
addressIPv6 address
uidpacket UID

Definition at line 564 of file ipv6-interface.cc.

References m_addresses, and NS_LOG_FUNCTION.

◆ SetReachableTime()

void ns3::Ipv6Interface::SetReachableTime ( uint16_t reachableTime)

Set the reachable time.

Parameters
reachableTimevalue to set

Definition at line 520 of file ipv6-interface.cc.

References m_reachableTime, and NS_LOG_FUNCTION.

◆ SetRetransTimer()

void ns3::Ipv6Interface::SetRetransTimer ( uint16_t retransTimer)

Set the retransmission timer.

Parameters
retransTimervalue to set

Definition at line 534 of file ipv6-interface.cc.

References m_retransTimer, and NS_LOG_FUNCTION.

◆ SetState()

void ns3::Ipv6Interface::SetState ( Ipv6Address address,
Ipv6InterfaceAddress::State_e state )

Update state of an interface address.

Parameters
addressIPv6 address
statenew state

Definition at line 548 of file ipv6-interface.cc.

References m_addresses, and NS_LOG_FUNCTION.

Referenced by ns3::Icmpv6L4Protocol::FunctionDadTimeout().

+ Here is the caller graph for this function:

◆ SetTrafficControl()

void ns3::Ipv6Interface::SetTrafficControl ( Ptr< TrafficControlLayer > tc)

Set the TrafficControlLayer.

Parameters
tcTrafficControlLayer object

Definition at line 121 of file ipv6-interface.cc.

References m_tc, and NS_LOG_FUNCTION.

◆ SetUp()

void ns3::Ipv6Interface::SetUp ( )

Enable this interface.

Definition at line 163 of file ipv6-interface.cc.

References DoSetup(), m_ifup, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_addAddressCallback

Callback<void, Ptr<Ipv6Interface>, Ipv6InterfaceAddress> ns3::Ipv6Interface::m_addAddressCallback
private

add address callback

Definition at line 388 of file ipv6-interface.h.

Referenced by AddAddress(), and AddAddressCallback().

◆ m_addresses

Ipv6InterfaceAddressList ns3::Ipv6Interface::m_addresses
private

◆ m_baseReachableTime

uint16_t ns3::Ipv6Interface::m_baseReachableTime
private

Base value used for computing the random reachable time value (in millisecond).

Definition at line 370 of file ipv6-interface.h.

Referenced by GetBaseReachableTime(), and SetBaseReachableTime().

◆ m_curHopLimit

uint8_t ns3::Ipv6Interface::m_curHopLimit
private

Current hop limit.

Definition at line 365 of file ipv6-interface.h.

Referenced by GetCurHopLimit(), and SetCurHopLimit().

◆ m_device

Ptr<NetDevice> ns3::Ipv6Interface::m_device
private

NetDevice associated with this interface.

Definition at line 350 of file ipv6-interface.h.

Referenced by AddAddress(), DoDispose(), DoSetup(), GetDevice(), Send(), and SetDevice().

◆ m_forwarding

bool ns3::Ipv6Interface::m_forwarding
private

Forwarding state.

Definition at line 335 of file ipv6-interface.h.

Referenced by IsForwarding(), and SetForwarding().

◆ m_ifup

bool ns3::Ipv6Interface::m_ifup
private

The state of this interface.

Definition at line 330 of file ipv6-interface.h.

Referenced by IsDown(), IsUp(), SetDown(), and SetUp().

◆ m_linkLocalAddress

Ipv6InterfaceAddress ns3::Ipv6Interface::m_linkLocalAddress
private

The link-local addresses assigned to this interface.

Definition at line 325 of file ipv6-interface.h.

Referenced by DoSetup(), and GetLinkLocalAddress().

◆ m_metric

uint16_t ns3::Ipv6Interface::m_metric
private

The metric.

Definition at line 340 of file ipv6-interface.h.

Referenced by GetMetric(), and SetMetric().

◆ m_ndCache

Ptr<NdiscCache> ns3::Ipv6Interface::m_ndCache
private

Neighbor cache.

Definition at line 360 of file ipv6-interface.h.

Referenced by DoDispose(), DoSetup(), GetNdiscCache(), Send(), and SetDown().

◆ m_node

Ptr<Node> ns3::Ipv6Interface::m_node
private

Node associated with this interface.

Definition at line 345 of file ipv6-interface.h.

Referenced by AddAddress(), DoDispose(), DoSetup(), Send(), and SetNode().

◆ m_reachableTime

uint16_t ns3::Ipv6Interface::m_reachableTime
private

Reachable time (in millisecond).

The time a neighbor is considered reachable after receiving a reachability confirmation.

Definition at line 376 of file ipv6-interface.h.

Referenced by GetReachableTime(), and SetReachableTime().

◆ m_removeAddressCallback

Callback<void, Ptr<Ipv6Interface>, Ipv6InterfaceAddress> ns3::Ipv6Interface::m_removeAddressCallback
private

remove address callback

Definition at line 385 of file ipv6-interface.h.

Referenced by RemoveAddress(), RemoveAddress(), and RemoveAddressCallback().

◆ m_retransTimer

uint16_t ns3::Ipv6Interface::m_retransTimer
private

Retransmission timer (in millisecond).

Time between retransmission of NS.

Definition at line 382 of file ipv6-interface.h.

Referenced by GetRetransTimer(), and SetRetransTimer().

◆ m_tc

Ptr<TrafficControlLayer> ns3::Ipv6Interface::m_tc
private

TrafficControlLayer associated with this interface.

Definition at line 355 of file ipv6-interface.h.

Referenced by DoDispose(), Send(), and SetTrafficControl().


The documentation for this class was generated from the following files: