IPv6 address associated with an interface. More...
#include "ipv6-interface-address.h"
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 (const Ipv6InterfaceAddress &o) | |
Copy constructor. More... | |
Ipv6InterfaceAddress (Ipv6Address address) | |
Constructor. More... | |
Ipv6InterfaceAddress (Ipv6Address address, Ipv6Prefix prefix) | |
Constructor. More... | |
Ipv6InterfaceAddress (Ipv6Address address, Ipv6Prefix prefix, bool onLink) | |
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... | |
bool | GetOnLink () const |
Get the on-link property. 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 | SetOnLink (bool onLink) |
Get the on-link property. 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... | |
bool | m_onLink |
The address belongs to an on-link network. 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!= (const Ipv6InterfaceAddress &a, const Ipv6InterfaceAddress &b) |
Not equal to operator. More... | |
bool | operator== (const Ipv6InterfaceAddress &a, const Ipv6InterfaceAddress &b) |
Equal to operator. More... | |
IPv6 address associated with an interface.
Definition at line 36 of file ipv6-interface-address.h.
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 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 43 of file ipv6-interface-address.h.
ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress | ( | ) |
Default constructor.
Definition at line 32 of file ipv6-interface-address.cc.
References NS_LOG_FUNCTION.
ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress | ( | Ipv6Address | address | ) |
Constructor.
Prefix is 64 by default.
address | the IPv6 address to set |
Definition at line 43 of file ipv6-interface-address.cc.
References first::address, m_nsDadUid, m_onLink, m_prefix, NS_LOG_FUNCTION, SetAddress(), SetState(), and TENTATIVE_OPTIMISTIC.
ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress | ( | Ipv6Address | address, |
Ipv6Prefix | prefix | ||
) |
Constructor.
address | IPv6 address to set |
prefix | IPv6 prefix |
Definition at line 53 of file ipv6-interface-address.cc.
References first::address, m_nsDadUid, m_onLink, m_prefix, NS_LOG_FUNCTION, SetAddress(), SetState(), and TENTATIVE_OPTIMISTIC.
ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress | ( | Ipv6Address | address, |
Ipv6Prefix | prefix, | ||
bool | onLink | ||
) |
Constructor.
address | IPv6 address to set |
prefix | IPv6 prefix |
onLink | on-link property |
Definition at line 63 of file ipv6-interface-address.cc.
References first::address, m_nsDadUid, m_onLink, m_prefix, NS_LOG_FUNCTION, SetAddress(), SetState(), and TENTATIVE_OPTIMISTIC.
ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress | ( | const Ipv6InterfaceAddress & | o | ) |
Copy constructor.
o | object to copy |
Definition at line 73 of file ipv6-interface-address.cc.
ns3::Ipv6InterfaceAddress::~Ipv6InterfaceAddress | ( | ) |
Ipv6Address ns3::Ipv6InterfaceAddress::GetAddress | ( | ) | const |
Get the IPv6 address.
Definition at line 89 of file ipv6-interface-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6Interface::AddAddress(), IpAddressHelperTestCasev6::DoRun(), Ipv6PacketInfoTagTest::DoRun(), Ipv6L3ProtocolTestCase::DoRun(), ns3::Icmpv6L4Protocol::FunctionDadTimeout(), ns3::Ipv6Interface::GetAddressMatchingDestination(), ns3::AnimationInterface::GetIpv6Address(), ns3::AnimationInterface::GetIpv6Addresses(), ns3::Ipv6InterfaceContainer::GetLinkLocalAddress(), ns3::Icmpv6L4Protocol::HandleEchoRequest(), ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Ipv6L3Protocol::IpForward(), ns3::Icmpv6L4Protocol::Lookup(), ns3::Ipv6StaticRouting::NotifyInterfaceUp(), ns3::operator<<(), ns3::NeighborCacheHelper::PopulateNeighborEntriesIpv6(), ns3::Ipv6L3Protocol::Receive(), ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress(), UanExperiment::SendPackets(), ns3::Ipv6L3Protocol::SendRealOut(), ns3::NeighborCacheHelper::UpdateCacheByIpv6AddressAdded(), and ns3::NeighborCacheHelper::UpdateCacheByIpv6AddressRemoved().
uint32_t ns3::Ipv6InterfaceAddress::GetNsDadUid | ( | ) | const |
Get the latest DAD probe packet UID.
Definition at line 207 of file ipv6-interface-address.cc.
References m_nsDadUid, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNS().
bool ns3::Ipv6InterfaceAddress::GetOnLink | ( | ) | const |
Get the on-link property.
Definition at line 221 of file ipv6-interface-address.cc.
References m_onLink, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6StaticRouting::NotifyInterfaceUp().
Ipv6Prefix ns3::Ipv6InterfaceAddress::GetPrefix | ( | ) | const |
Get the IPv6 prefix.
Definition at line 126 of file ipv6-interface-address.cc.
References m_prefix, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6Interface::GetAddressMatchingDestination(), ns3::Ipv6StaticRouting::NotifyInterfaceUp(), and ns3::operator<<().
Ipv6InterfaceAddress::Scope_e ns3::Ipv6InterfaceAddress::GetScope | ( | ) | const |
Get address scope.
Definition at line 154 of file ipv6-interface-address.cc.
References m_scope, and NS_LOG_FUNCTION.
Referenced by ns3::RipNg::DoSendRouteUpdate(), ns3::Ipv6InterfaceContainer::GetLinkLocalAddress(), ns3::RipNg::HandleRequests(), ns3::operator<<(), and ns3::NeighborCacheHelper::PopulateNeighborEntriesIpv6().
Ipv6InterfaceAddress::State_e ns3::Ipv6InterfaceAddress::GetState | ( | ) | const |
Get the address state.
Definition at line 140 of file ipv6-interface-address.cc.
References m_state, and NS_LOG_FUNCTION.
Referenced by Ipv6DadTest::DoRun(), ns3::Icmpv6L4Protocol::FunctionDadTimeout(), and ns3::Icmpv6L4Protocol::HandleNA().
bool ns3::Ipv6InterfaceAddress::IsInSameSubnet | ( | Ipv6Address | b | ) | const |
Checks if the address is in the same subnet.
b | the address to check |
Definition at line 161 of file ipv6-interface-address.cc.
References ns3::Ipv6Address::CombinePrefix(), ns3::Ipv6Address::IsLinkLocal(), ns3::Ipv6Address::IsLinkLocalMulticast(), m_address, m_prefix, and NS_LOG_FUNCTION.
Referenced by ns3::NeighborCacheHelper::PopulateNeighborEntriesIpv6(), and ns3::NeighborCacheHelper::UpdateCacheByIpv6AddressAdded().
void ns3::Ipv6InterfaceAddress::SetAddress | ( | Ipv6Address | address | ) |
Set IPv6 address (and scope).
address | IPv6 address to set |
Definition at line 96 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().
void ns3::Ipv6InterfaceAddress::SetNsDadUid | ( | uint32_t | uid | ) |
Set the latest DAD probe packet UID.
uid | packet uid |
Definition at line 214 of file ipv6-interface-address.cc.
References m_nsDadUid, and NS_LOG_FUNCTION.
void ns3::Ipv6InterfaceAddress::SetOnLink | ( | bool | onLink | ) |
Get the on-link property.
onLink | the on-link property |
Definition at line 228 of file ipv6-interface-address.cc.
References m_onLink, and NS_LOG_FUNCTION.
void ns3::Ipv6InterfaceAddress::SetScope | ( | Ipv6InterfaceAddress::Scope_e | scope | ) |
Set the scope.
scope | the scope of address |
Definition at line 147 of file ipv6-interface-address.cc.
References m_scope, and NS_LOG_FUNCTION.
void ns3::Ipv6InterfaceAddress::SetState | ( | Ipv6InterfaceAddress::State_e | state | ) |
Set the state.
state | the state |
Definition at line 133 of file ipv6-interface-address.cc.
References m_state, and NS_LOG_FUNCTION.
Referenced by Ipv6InterfaceAddress().
|
friend |
Not equal to operator.
a | the first operand |
b | the first operand |
Definition at line 257 of file ipv6-interface-address.h.
|
friend |
Equal to operator.
a | the first operand |
b | the first operand |
Definition at line 250 of file ipv6-interface-address.h.
|
private |
The IPv6 address.
Definition at line 193 of file ipv6-interface-address.h.
Referenced by GetAddress(), IsInSameSubnet(), and SetAddress().
|
private |
Last DAD probe packet UID.
Definition at line 236 of file ipv6-interface-address.h.
Referenced by Ipv6InterfaceAddress(), GetNsDadUid(), and SetNsDadUid().
|
private |
The address belongs to an on-link network.
Definition at line 213 of file ipv6-interface-address.h.
Referenced by Ipv6InterfaceAddress(), GetOnLink(), and SetOnLink().
|
private |
The IPv6 prefix.
Definition at line 198 of file ipv6-interface-address.h.
Referenced by Ipv6InterfaceAddress(), GetPrefix(), IsInSameSubnet(), and SetAddress().
|
private |
Scope of the address.
Definition at line 208 of file ipv6-interface-address.h.
Referenced by GetScope(), SetAddress(), and SetScope().
|
private |
State of the address.
Definition at line 203 of file ipv6-interface-address.h.
Referenced by GetState(), and SetState().