A Discrete-Event Network Simulator
API
ns3::Ipv6InterfaceAddress Class Reference

IPv6 address associated with an interface. More...

#include "ipv6-interface-address.h"

+ Collaboration diagram for ns3::Ipv6InterfaceAddress:

Public Types

enum  Scope_e { HOST, LINKLOCAL, GLOBAL }
 Address scope. More...
 
enum  State_e {
  TENTATIVE, DEPRECATED, PREFERRED, PERMANENT,
  HOMEADDRESS, TENTATIVE_OPTIMISTIC, INVALID
}
 State of an address associated with an interface. More...
 

Public Member Functions

 Ipv6InterfaceAddress ()
 Default constructor. More...
 
 Ipv6InterfaceAddress (Ipv6Address address)
 Constructor. More...
 
 Ipv6InterfaceAddress (Ipv6Address address, Ipv6Prefix prefix)
 Constructor. More...
 
 Ipv6InterfaceAddress (const Ipv6InterfaceAddress &o)
 Copy constructor. More...
 
 ~Ipv6InterfaceAddress ()
 Destructor. More...
 
Ipv6Address GetAddress () const
 Get the IPv6 address. More...
 
uint32_t GetNsDadUid () const
 Get the latest DAD probe packet UID. More...
 
Ipv6Prefix GetPrefix () const
 Get the IPv6 prefix. More...
 
Ipv6InterfaceAddress::Scope_e GetScope () const
 Get address scope. More...
 
Ipv6InterfaceAddress::State_e GetState () const
 Get the address state. More...
 
bool IsInSameSubnet (Ipv6Address b) const
 Checks if the address is in the same subnet. More...
 
void SetAddress (Ipv6Address address)
 Set IPv6 address (and scope). More...
 
void SetNsDadUid (uint32_t uid)
 Set the latest DAD probe packet UID. More...
 
void SetScope (Ipv6InterfaceAddress::Scope_e scope)
 Set the scope. More...
 
void SetState (Ipv6InterfaceAddress::State_e state)
 Set the state. More...
 

Private Attributes

Ipv6Address m_address
 The IPv6 address. More...
 
uint32_t m_nsDadUid
 Last DAD probe packet UID. More...
 
Ipv6Prefix m_prefix
 The IPv6 prefix. More...
 
Scope_e m_scope
 Scope of the address. More...
 
State_e m_state
 State of the address. More...
 

Friends

bool operator!= (Ipv6InterfaceAddress const &a, Ipv6InterfaceAddress const &b)
 Not equal to operator. More...
 
bool operator== (Ipv6InterfaceAddress const &a, Ipv6InterfaceAddress const &b)
 Equal to operator. More...
 

Detailed Description

IPv6 address associated with an interface.

Definition at line 37 of file ipv6-interface-address.h.

Member Enumeration Documentation

◆ Scope_e

Address scope.

Enumerator
HOST 

Localhost (::1/128)

LINKLOCAL 

Link-local address (fe80::/64)

GLOBAL 

Global address (2000::/3)

Definition at line 59 of file ipv6-interface-address.h.

◆ State_e

State of an address associated with an interface.

Enumerator
TENTATIVE 

Address is tentative, no packet can be sent unless DAD finished.

DEPRECATED 

Address is deprecated and should not be used.

PREFERRED 

Preferred address.

PERMANENT 

Permanent address.

HOMEADDRESS 

Address is a HomeAddress.

TENTATIVE_OPTIMISTIC 

Address is tentative but we are optimistic so we can send packet even if DAD is not yet finished.

INVALID 

Invalid state (after a DAD failed)

Definition at line 44 of file ipv6-interface-address.h.

Constructor & Destructor Documentation

◆ Ipv6InterfaceAddress() [1/4]

ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress ( )

Default constructor.

Definition at line 33 of file ipv6-interface-address.cc.

References NS_LOG_FUNCTION.

◆ Ipv6InterfaceAddress() [2/4]

ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress ( Ipv6Address  address)

Constructor.

Prefix is 64 by default.

Parameters
addressthe IPv6 address to set

Definition at line 43 of file ipv6-interface-address.cc.

References first::address, m_nsDadUid, m_prefix, NS_LOG_FUNCTION, SetAddress(), SetState(), and TENTATIVE_OPTIMISTIC.

+ Here is the call graph for this function:

◆ Ipv6InterfaceAddress() [3/4]

ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress ( Ipv6Address  address,
Ipv6Prefix  prefix 
)

Constructor.

Parameters
addressIPv6 address to set
prefixIPv6 prefix

Definition at line 52 of file ipv6-interface-address.cc.

References first::address, m_nsDadUid, m_prefix, NS_LOG_FUNCTION, SetAddress(), SetState(), and TENTATIVE_OPTIMISTIC.

+ Here is the call graph for this function:

◆ Ipv6InterfaceAddress() [4/4]

ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress ( const Ipv6InterfaceAddress o)

Copy constructor.

Parameters
oobject to copy

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

◆ ~Ipv6InterfaceAddress()

ns3::Ipv6InterfaceAddress::~Ipv6InterfaceAddress ( )

Destructor.

Definition at line 70 of file ipv6-interface-address.cc.

References NS_LOG_FUNCTION_NOARGS.

Member Function Documentation

◆ GetAddress()

◆ GetNsDadUid()

uint32_t ns3::Ipv6InterfaceAddress::GetNsDadUid ( ) const

Get the latest DAD probe packet UID.

Returns
uid

Definition at line 184 of file ipv6-interface-address.cc.

References m_nsDadUid, and NS_LOG_FUNCTION_NOARGS.

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

+ Here is the caller graph for this function:

◆ GetPrefix()

Ipv6Prefix ns3::Ipv6InterfaceAddress::GetPrefix ( ) const

Get the IPv6 prefix.

Returns
IPv6 prefix

Definition at line 110 of file ipv6-interface-address.cc.

References m_prefix, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ipv6Interface::GetAddressMatchingDestination(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ GetScope()

Ipv6InterfaceAddress::Scope_e ns3::Ipv6InterfaceAddress::GetScope ( void  ) const

Get address scope.

Returns
scope

Definition at line 134 of file ipv6-interface-address.cc.

References m_scope, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::RipNg::DoSendRouteUpdate(), ns3::Ipv6InterfaceContainer::GetLinkLocalAddress(), ns3::RipNg::HandleRequests(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ GetState()

Ipv6InterfaceAddress::State_e ns3::Ipv6InterfaceAddress::GetState ( void  ) const

Get the address state.

Returns
address state

Definition at line 122 of file ipv6-interface-address.cc.

References m_state, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Icmpv6L4Protocol::FunctionDadTimeout(), and ns3::Icmpv6L4Protocol::HandleNA().

+ Here is the caller graph for this function:

◆ IsInSameSubnet()

bool ns3::Ipv6InterfaceAddress::IsInSameSubnet ( Ipv6Address  b) const

Checks if the address is in the same subnet.

Parameters
bthe address to check
Returns
true if the address is in the same subnet.

Definition at line 140 of file ipv6-interface-address.cc.

References ns3::Ipv6Address::CombinePrefix(), ns3::Ipv6Address::IsLinkLocal(), ns3::Ipv6Address::IsLinkLocalMulticast(), m_address, m_prefix, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ping6::Send().

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

◆ SetAddress()

void ns3::Ipv6InterfaceAddress::SetAddress ( Ipv6Address  address)

Set IPv6 address (and scope).

Parameters
addressIPv6 address to set

Definition at line 81 of file ipv6-interface-address.cc.

References first::address, GLOBAL, HOST, LINKLOCAL, m_address, m_prefix, m_scope, and NS_LOG_FUNCTION.

Referenced by Ipv6InterfaceAddress().

+ Here is the caller graph for this function:

◆ SetNsDadUid()

void ns3::Ipv6InterfaceAddress::SetNsDadUid ( uint32_t  uid)

Set the latest DAD probe packet UID.

Parameters
uidpacket uid

Definition at line 190 of file ipv6-interface-address.cc.

References m_nsDadUid, and NS_LOG_FUNCTION.

◆ SetScope()

void ns3::Ipv6InterfaceAddress::SetScope ( Ipv6InterfaceAddress::Scope_e  scope)

Set the scope.

Parameters
scopethe scope of address

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

References m_scope, and NS_LOG_FUNCTION.

◆ SetState()

void ns3::Ipv6InterfaceAddress::SetState ( Ipv6InterfaceAddress::State_e  state)

Set the state.

Parameters
statethe state

Definition at line 116 of file ipv6-interface-address.cc.

References m_state, and NS_LOG_FUNCTION.

Referenced by Ipv6InterfaceAddress().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( Ipv6InterfaceAddress const &  a,
Ipv6InterfaceAddress const &  b 
)
friend

Not equal to operator.

Parameters
athe first operand
bthe first operand
Returns
true if the operands are not equal

Definition at line 230 of file ipv6-interface-address.h.

◆ operator==

bool operator== ( Ipv6InterfaceAddress const &  a,
Ipv6InterfaceAddress const &  b 
)
friend

Equal to operator.

Parameters
athe first operand
bthe first operand
Returns
true if the operands are equal

Definition at line 224 of file ipv6-interface-address.h.

Member Data Documentation

◆ m_address

Ipv6Address ns3::Ipv6InterfaceAddress::m_address
private

The IPv6 address.

Definition at line 173 of file ipv6-interface-address.h.

Referenced by GetAddress(), IsInSameSubnet(), ns3::operator!=(), ns3::operator==(), and SetAddress().

◆ m_nsDadUid

uint32_t ns3::Ipv6InterfaceAddress::m_nsDadUid
private

Last DAD probe packet UID.

Definition at line 211 of file ipv6-interface-address.h.

Referenced by GetNsDadUid(), Ipv6InterfaceAddress(), and SetNsDadUid().

◆ m_prefix

Ipv6Prefix ns3::Ipv6InterfaceAddress::m_prefix
private

◆ m_scope

Scope_e ns3::Ipv6InterfaceAddress::m_scope
private

Scope of the address.

Definition at line 188 of file ipv6-interface-address.h.

Referenced by GetScope(), ns3::operator!=(), ns3::operator==(), SetAddress(), and SetScope().

◆ m_state

State_e ns3::Ipv6InterfaceAddress::m_state
private

State of the address.

Definition at line 183 of file ipv6-interface-address.h.

Referenced by GetState(), ns3::operator!=(), ns3::operator==(), and SetState().


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