Describes an IPv6 address. More...
#include "ipv6-address.h"
Public Member Functions | |
| Ipv6Address () | |
| Default constructor. | |
| Ipv6Address (const char *address) | |
| Constructs an Ipv6Address by parsing the input C-string. | |
| Ipv6Address (const Ipv6Address &addr) | |
| Copy constructor. | |
| Ipv6Address (const Ipv6Address *addr) | |
| Copy constructor. | |
| Ipv6Address (uint8_t address[16]) | |
| Constructs an Ipv6Address by using the input 16 bytes. | |
| ~Ipv6Address () | |
| Destructor. | |
| Ipv6Address | CombinePrefix (const Ipv6Prefix &prefix) const |
| Combine this address with a prefix. | |
| Address | ConvertTo () const |
| convert the IPv6Address object to an Address object. | |
| void | GetBytes (uint8_t buf[16]) const |
| Get the bytes corresponding to the address. | |
| Ipv4Address | GetIpv4MappedAddress () const |
| Return the Ipv4 address. | |
| bool | HasPrefix (const Ipv6Prefix &prefix) const |
| Compares an address and a prefix. | |
| bool | IsAllNodesMulticast () const |
| If the IPv6 address is "all nodes multicast" (ff02::1/8). | |
| bool | IsAllRoutersMulticast () const |
| If the IPv6 address is "all routers multicast" (ff02::2/8). | |
| bool | IsAny () const |
| If the IPv6 address is the "Any" address. | |
| bool | IsDocumentation () const |
| If the IPv6 address is a documentation address (2001:DB8::/32). | |
| bool | IsInitialized () const |
| bool | IsIpv4MappedAddress () const |
| If the address is an IPv4-mapped address. | |
| bool | IsLinkLocal () const |
| If the IPv6 address is a link-local address (fe80::/64). | |
| bool | IsLinkLocalMulticast () const |
| If the IPv6 address is link-local multicast (ff02::/16). | |
| bool | IsLocalhost () const |
| If the IPv6 address is localhost (::1). | |
| bool | IsMulticast () const |
| If the IPv6 address is multicast (ff00::/8). | |
| bool | IsSolicitedMulticast () const |
| If the IPv6 address is a Solicited multicast address. | |
| operator Address () const | |
| Convert to Address object. | |
| void | Print (std::ostream &os) const |
| Print this address to the given output stream. | |
| void | Serialize (uint8_t buf[16]) const |
| Serialize this address to a 16-byte buffer. | |
| void | Set (const char *address) |
| Sets an Ipv6Address by parsing the input C-string. | |
| void | Set (uint8_t address[16]) |
| Set an Ipv6Address by using the input 16 bytes. | |
Static Public Member Functions | |
| static bool | CheckCompatible (const std::string &addressStr) |
| Checks if the string contains an Ipv6Address. | |
| static Ipv6Address | ConvertFrom (const Address &address) |
| Convert the Address object into an Ipv6Address ones. | |
| static Ipv6Address | Deserialize (const uint8_t buf[16]) |
| Deserialize this address. | |
| static Ipv6Address | GetAllHostsMulticast () |
| Get the "all hosts multicast" address. | |
| static Ipv6Address | GetAllNodesMulticast () |
| Get the "all nodes multicast" address. | |
| static Ipv6Address | GetAllRoutersMulticast () |
| Get the "all routers multicast" address. | |
| static Ipv6Address | GetAny () |
| Get the "any" (::) Ipv6Address. | |
| static Ipv6Address | GetLoopback () |
| Get the loopback address. | |
| static Ipv6Address | GetOnes () |
| Get the "all-1" IPv6 address (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff). | |
| static Ipv6Address | GetZero () |
| Get the 0 (::) Ipv6Address. | |
| static bool | IsMatchingType (const Address &address) |
| If the Address matches the type. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Address addr, Ipv6Address prefix) |
| Make the autoconfigured IPv6 address from a Mac address. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Address addr, Ipv6Prefix prefix) |
| Make the autoconfigured IPv6 address from a Mac address. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Mac16Address addr, Ipv6Address prefix) |
| Make the autoconfigured IPv6 address with Mac16Address. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Mac48Address addr, Ipv6Address prefix) |
| Make the autoconfigured IPv6 address with Mac48Address. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Mac64Address addr, Ipv6Address prefix) |
| Make the autoconfigured IPv6 address with Mac64Address. | |
| static Ipv6Address | MakeAutoconfiguredAddress (Mac8Address addr, Ipv6Address prefix) |
| Make the autoconfigured IPv6 address with Mac8Address. | |
| static Ipv6Address | MakeAutoconfiguredLinkLocalAddress (Address mac) |
| Make the autoconfigured link-local IPv6 address from a Mac address. | |
| static Ipv6Address | MakeAutoconfiguredLinkLocalAddress (Mac16Address mac) |
| Make the autoconfigured link-local IPv6 address with Mac16Address. | |
| static Ipv6Address | MakeAutoconfiguredLinkLocalAddress (Mac48Address mac) |
| Make the autoconfigured link-local IPv6 address with Mac48Address. | |
| static Ipv6Address | MakeAutoconfiguredLinkLocalAddress (Mac64Address mac) |
| Make the autoconfigured link-local IPv6 address with Mac64Address. | |
| static Ipv6Address | MakeAutoconfiguredLinkLocalAddress (Mac8Address mac) |
| Make the autoconfigured link-local IPv6 address with Mac8Address. | |
| static Ipv6Address | MakeIpv4MappedAddress (Ipv4Address addr) |
| Make the Ipv4-mapped IPv6 address. | |
| static Ipv6Address | MakeSolicitedAddress (Ipv6Address addr) |
| Make the solicited IPv6 address. | |
Static Private Member Functions | |
| static uint8_t | GetType () |
| Return the Type of address. | |
Private Attributes | |
| uint8_t | m_address [16] |
| The address representation on 128 bits (16 bytes). | |
Friends | |
| bool | operator!= (const Ipv6Address &a, const Ipv6Address &b) |
| Not equal to operator. | |
| bool | operator< (const Ipv6Address &a, const Ipv6Address &b) |
| Less than to operator. | |
| bool | operator== (const Ipv6Address &a, const Ipv6Address &b) |
| Equal to operator. | |
Describes an IPv6 address.
Definition at line 38 of file ipv6-address.h.
| ns3::Ipv6Address::Ipv6Address | ( | ) |
Default constructor.
Definition at line 147 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by Ipv6Address(), Ipv6Address(), CombinePrefix(), Deserialize(), GetAllHostsMulticast(), GetAllNodesMulticast(), GetAllRoutersMulticast(), GetAny(), GetLoopback(), GetOnes(), GetZero(), HasPrefix(), IsAllNodesMulticast(), IsAllRoutersMulticast(), IsAny(), IsDocumentation(), IsLinkLocal(), IsLocalhost(), IsSolicitedMulticast(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeIpv4MappedAddress(), MakeSolicitedAddress(), operator!=, operator<, and operator==.
| ns3::Ipv6Address::Ipv6Address | ( | const char * | address | ) |
Constructs an Ipv6Address by parsing the input C-string.
| address | the C-string containing the IPv6 address (e.g. 2001:db8:f00d:cafe::1). |
Definition at line 165 of file ipv6-address.cc.
References m_address, NS_ABORT_MSG, and NS_LOG_FUNCTION.
| ns3::Ipv6Address::Ipv6Address | ( | uint8_t | address[16] | ) |
Constructs an Ipv6Address by using the input 16 bytes.
| address | the 128-bit address |
Definition at line 191 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
| ns3::Ipv6Address::Ipv6Address | ( | const Ipv6Address & | addr | ) |
Copy constructor.
| addr | Ipv6Address object |
Definition at line 153 of file ipv6-address.cc.
References Ipv6Address(), and m_address.
| ns3::Ipv6Address::Ipv6Address | ( | const Ipv6Address * | addr | ) |
Copy constructor.
| addr | Ipv6Address pointer |
Definition at line 159 of file ipv6-address.cc.
References Ipv6Address(), and m_address.
| ns3::Ipv6Address::~Ipv6Address | ( | ) |
|
static |
Checks if the string contains an Ipv6Address.
Input address is in format: 2001:db8:f00d:cafe::1
Note: the function uses inet_pton internally.
| addressStr | string containing the address as described above |
Definition at line 177 of file ipv6-address.cc.
References NS_LOG_FUNCTION, and NS_LOG_WARN.
| Ipv6Address ns3::Ipv6Address::CombinePrefix | ( | const Ipv6Prefix & | prefix | ) | const |
Combine this address with a prefix.
| prefix | a IPv6 prefix |
Definition at line 574 of file ipv6-address.cc.
References Ipv6Address(), GetBytes(), m_address, NS_LOG_FUNCTION, and Set().
Referenced by ns3::Ipv6AddressHelper::Ipv6AddressHelper(), ns3::RipNg::HandleRequests(), ns3::RipNg::HandleResponses(), HasPrefix(), IsDocumentation(), ns3::Ipv6InterfaceAddress::IsInSameSubnet(), IsLinkLocal(), ns3::Ipv6AddressGeneratorImpl::IsNetworkAllocated(), IsSolicitedMulticast(), MakeAutoconfiguredAddress(), ns3::Ipv6StaticRouting::NotifyInterfaceUp(), and ns3::Ipv6AddressHelper::SetBase().
|
static |
Convert the Address object into an Ipv6Address ones.
| address | address to convert |
Definition at line 675 of file ipv6-address.cc.
References Deserialize(), GetType(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::addressUtils::ConvertToSocketAddress(), PingTestCase::DoRun(), ns3::UdpSocketImpl::DoSend(), ns3::UdpSocketImpl::GetPeerName(), ns3::addressUtils::IsMulticast(), ns3::PbbAddressBlockIpv6::PrintAddress(), ns3::PbbMessageIpv6::PrintOriginatorAddress(), ns3::Ping::PrintReport(), ns3::Ping::Send(), ns3::TcpL4Protocol::SendPacket(), UanExperiment::SendSinglePacket(), ns3::PbbAddressBlockIpv6::SerializeAddress(), ns3::PbbMessageIpv6::SerializeOriginatorAddress(), and ns3::Ping::StartApplication().
| Address ns3::Ipv6Address::ConvertTo | ( | ) | const |
convert the IPv6Address object to an Address object.
Definition at line 666 of file ipv6-address.cc.
References GetType(), NS_LOG_FUNCTION, and Serialize().
Referenced by operator Address().
|
static |
Deserialize this address.
| buf | buffer to read address from |
Definition at line 232 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION.
Referenced by ns3::SixLowPanNetDevice::CleanPrefix(), ns3::Inet6SocketAddress::ConvertFrom(), ConvertFrom(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::Ipv6PacketInfoTag::Deserialize(), ns3::PbbAddressBlockIpv6::DeserializeAddress(), and ns3::PbbMessageIpv6::DeserializeOriginatorAddress().
|
static |
Get the "all hosts multicast" address.
Definition at line 709 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
|
static |
Get the "all nodes multicast" address.
Definition at line 693 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by PingTestSuite::PingTestSuite(), ns3::Dhcp6Client::Boot(), ns3::Dhcp6Client::InterfaceConfig::DeclineOffer(), LrWpanAckTestCase::DoRun(), ns3::Radvd::HandleRead(), ns3::Radvd::Send(), ns3::Icmpv6L4Protocol::SendNS(), ns3::Dhcp6Client::SendRebind(), ns3::Dhcp6Client::SendRelease(), ns3::Dhcp6Client::SendRenew(), ns3::Dhcp6Client::SendRequest(), ns3::Dhcp6Server::StartApplication(), and ns3::Radvd::StartApplication().
|
static |
Get the "all routers multicast" address.
Definition at line 701 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::FunctionDadTimeout(), ns3::Ipv6EndPointDemux::Lookup(), and ns3::Radvd::StartApplication().
|
static |
Get the "any" (::) Ipv6Address.
Definition at line 733 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv6RawSocketImpl::Ipv6RawSocketImpl(), ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::Ipv6EndPointDemux::Allocate(), ns3::Ipv6EndPointDemux::Allocate(), ns3::Ipv6RawSocketImpl::Bind(), ns3::TcpSocketBase::Bind(), ns3::UdpSocketImpl::Bind(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), DualStackTestCase::DoRun(), IcmpV6EchoReplyTestCase::DoRun(), IcmpV6TimeExceedTestCase::DoRun(), Ipv6PacketInfoTagTest::DoRun(), Ipv6RawFragmentationTest::DoRun(), Ipv6RawSocketImplTest::DoRun(), SixlowpanIphcStatefulImplTest::DoRun(), TcpEndPointBug2211Test::DoRun(), Udp6SocketLoopbackTest::DoRun(), ns3::RipNg::DoSendRouteUpdate(), ns3::UdpSocketImpl::DoSendTo(), ns3::PacketSink::DoStartApplication(), ns3::UdpEchoServer::DoStartApplication(), ns3::UdpServer::DoStartApplication(), ns3::Icmpv6L4Protocol::ForgeNA(), ns3::Ipv6RawSocketImpl::ForwardUp(), ns3::Ipv6InterfaceContainer::GetLinkLocalAddress(), ns3::Ipv6InterfaceContainer::GetLinkLocalAddress(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::RipNg::HandleRequests(), ns3::RipNg::HandleResponses(), ns3::Icmpv6L4Protocol::HandleRS(), ns3::Ipv6L3Protocol::IpMulticastForward(), ns3::Socket::Ipv6LeaveGroup(), ns3::Ipv6EndPointDemux::Lookup(), MakeAutoconfiguredAddress(), MakeAutoconfiguredLinkLocalAddress(), ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress(), NeighborCacheExample::Run(), ns3::Icmpv6L4Protocol::SendNA(), ns3::Icmpv6L4Protocol::SendNS(), ns3::Ipv6L3Protocol::SendRealOut(), ns3::RipNg::SendRouteRequest(), ns3::Ipv6InterfaceContainer::SetDefaultRoute(), ns3::Ipv6InterfaceContainer::SetDefaultRouteInAllNodes(), UanExperiment::SetupApplications(), TcpTestCase::SetupDefaultSim6(), ns3::Ipv6EndPointDemux::SimpleLookup(), Ipv6FragmentationTest::StartClient(), and SixlowpanFragmentationTest::StartClient().
| void ns3::Ipv6Address::GetBytes | ( | uint8_t | buf[16] | ) | const |
Get the bytes corresponding to the address.
| buf | buffer to store the data |
Definition at line 749 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by CombinePrefix(), ns3::SixLowPanNetDevice::CompressLowPanHc1(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::Ipv6AddressGeneratorImpl::Init(), ns3::Ipv6AddressGeneratorImpl::InitAddress(), ns3::Ipv6Prefix::IsMatch(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), ns3::Dhcp6Server::SendAdvertise(), ns3::Dhcp6Server::SendReply(), and ns3::WriteTo().
| Ipv4Address ns3::Ipv6Address::GetIpv4MappedAddress | ( | ) | const |
Return the Ipv4 address.
Definition at line 266 of file ipv6-address.cc.
References ns3::Ipv4Address::Deserialize(), NS_LOG_FUNCTION, and Serialize().
Referenced by ns3::TcpSocketBase::Connect(), ns3::UdpSocketImpl::DoSendTo(), and ns3::TcpL4Protocol::SendPacketV6().
|
static |
Get the loopback address.
Definition at line 717 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by Ipv6L3ProtocolTestCase::DoRun(), TcpEndPointBug2211Test::DoRun(), ns3::Ipv6Interface::RemoveAddress(), ns3::Ipv6L3Protocol::RemoveAddress(), ns3::Ipv6L3Protocol::SetupLoopback(), and ns3::Ipv6L3Protocol::SourceAddressSelection().
|
static |
Get the "all-1" IPv6 address (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff).
Definition at line 741 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::SixLowPanNetDevice::AddContext(), ns3::SixLowPanNetDevice::FindMulticastCompressionContext(), ns3::SixLowPanNetDevice::FindUnicastCompressionContext(), HasPrefix(), and MakeAutoconfiguredAddress().
|
staticprivate |
Return the Type of address.
Definition at line 685 of file ipv6-address.cc.
References NS_LOG_FUNCTION_NOARGS, and ns3::Address::Register().
Referenced by ConvertFrom(), ConvertTo(), and IsMatchingType().
|
static |
Get the 0 (::) Ipv6Address.
Definition at line 725 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv6AddressHelper::Ipv6AddressHelper(), ns3::TapFdNetDeviceHelper::TapFdNetDeviceHelper(), ns3::Ipv6L3Protocol::AddAddress(), ns3::Ipv6RoutingTableEntry::CreateDefaultRoute(), ns3::TapFdNetDeviceHelper::CreateFileDescriptor(), ns3::Ipv6FlowClassifier::FindFlow(), ns3::Icmpv6L4Protocol::HandleRA(), ns3::Ipv6RoutingTableEntry::IsDefault(), ns3::Ipv6RoutingTableEntry::IsGateway(), ns3::RipNg::Lookup(), ns3::Ipv6StaticRouting::LookupStatic(), ns3::Ipv6AddressHelper::NewAddress(), ns3::Ipv6ARouting::NotifyAddRoute(), ns3::Ipv6BRouting::NotifyAddRoute(), ns3::Ipv6RoutingProtocol::NotifyAddRoute(), ns3::Ipv6StaticRouting::NotifyAddRoute(), ns3::Ipv6RoutingProtocol::NotifyRemoveRoute(), ns3::Ipv6StaticRouting::NotifyRemoveRoute(), ns3::Ipv6L3Protocol::operator=(), ns3::NixVectorRouting< T >::RouteOutput(), ns3::Ipv6L3Protocol::Send(), and ns3::Ipv6AddressHelper::SetBase().
| bool ns3::Ipv6Address::HasPrefix | ( | const Ipv6Prefix & | prefix | ) | const |
Compares an address and a prefix.
| prefix | the prefix to compare with |
Definition at line 642 of file ipv6-address.cc.
References Ipv6Address(), CombinePrefix(), GetOnes(), and NS_LOG_FUNCTION.
| bool ns3::Ipv6Address::IsAllNodesMulticast | ( | ) | const |
If the IPv6 address is "all nodes multicast" (ff02::1/8).
Definition at line 604 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::Receive().
| bool ns3::Ipv6Address::IsAllRoutersMulticast | ( | ) | const |
If the IPv6 address is "all routers multicast" (ff02::2/8).
Definition at line 614 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::Receive().
| bool ns3::Ipv6Address::IsAny | ( | ) | const |
If the IPv6 address is the "Any" address.
Definition at line 626 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6Interface::AddAddress(), ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::Icmpv6L4Protocol::ForgeRS(), ns3::NdiscCache::Entry::FunctionDelayTimeout(), ns3::NdiscCache::Entry::FunctionProbeTimeout(), ns3::NdiscCache::Entry::FunctionRetransmitTimeout(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Ipv6L3Protocol::IpForward(), ns3::RipNg::Lookup(), ns3::Ipv6StaticRouting::LookupStatic(), MakeAutoconfiguredAddress(), MakeAutoconfiguredLinkLocalAddress(), ns3::Icmpv6L4Protocol::SendRS(), and ns3::Ipv6L3Protocol::SourceAddressSelection().
| bool ns3::Ipv6Address::IsDocumentation | ( | ) | const |
If the IPv6 address is a documentation address (2001:DB8::/32).
Definition at line 634 of file ipv6-address.cc.
References Ipv6Address(), CombinePrefix(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::IpForward().
| bool ns3::Ipv6Address::IsInitialized | ( | ) | const |
Definition at line 764 of file ipv6-address.cc.
References NS_LOG_FUNCTION.
| bool ns3::Ipv6Address::IsIpv4MappedAddress | ( | ) | const |
If the address is an IPv4-mapped address.
Definition at line 565 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::TcpSocketBase::Connect(), ns3::UdpSocketImpl::DoSendTo(), ns3::UdpL4Protocol::Receive(), and ns3::TcpL4Protocol::SendPacketV6().
| bool ns3::Ipv6Address::IsLinkLocal | ( | ) | const |
If the IPv6 address is a link-local address (fe80::/64).
Definition at line 756 of file ipv6-address.cc.
References Ipv6Address(), CombinePrefix(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6StaticRouting::AddHostRouteTo(), ns3::Ipv6StaticRouting::AddNetworkRouteTo(), ns3::RipNg::AddNetworkRouteTo(), ns3::SixLowPanNetDevice::CompressLowPanHc1(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), Ipv6L3ProtocolTestCase::DoRun(), PingTestCase::DoRun(), ns3::Icmpv6L4Protocol::FunctionDadTimeout(), ns3::AnimationInterface::GetIpv6Address(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::RipNg::HandleRequests(), ns3::RipNg::HandleResponses(), ns3::Ipv6L3Protocol::IpForward(), ns3::Ipv6InterfaceAddress::IsInSameSubnet(), ns3::Icmpv6L4Protocol::Lookup(), ns3::RipNg::RouteInput(), ns3::Ipv6L3Protocol::Send(), and ns3::Ipv6L3Protocol::SourceAddressSelection().
| bool ns3::Ipv6Address::IsLinkLocalMulticast | ( | ) | const |
If the IPv6 address is link-local multicast (ff02::/16).
Definition at line 558 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by PingTestCase::DoRun(), ns3::Ipv6InterfaceAddress::IsInSameSubnet(), ns3::RipNg::Lookup(), ns3::Ipv6StaticRouting::LookupStatic(), ns3::Ipv6L3Protocol::Send(), and ns3::Ipv6L3Protocol::SourceAddressSelection().
| bool ns3::Ipv6Address::IsLocalhost | ( | ) | const |
If the IPv6 address is localhost (::1).
Definition at line 543 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6Interface::AddAddress(), and ns3::Ipv6L3Protocol::SourceAddressSelection().
|
static |
If the Address matches the type.
| address | other address |
Definition at line 653 of file ipv6-address.cc.
References GetType(), and NS_LOG_FUNCTION.
Referenced by ns3::UdpHeader::CalculateHeaderChecksum(), ns3::addressUtils::ConvertToSocketAddress(), ns3::UdpSocketImpl::DoSend(), ns3::UdpServer::DoStartApplication(), ns3::UdpSocketImpl::GetPeerName(), ns3::addressUtils::IsMulticast(), ns3::Ping::PrintReport(), ns3::TcpL4Protocol::SendPacket(), ns3::ThreeGppHttpClient::SetPort(), ns3::ThreeGppHttpServer::SetPort(), ns3::UdpClient::SetPort(), ns3::UdpEchoClient::SetPort(), ns3::UdpTraceClient::SetPort(), and ns3::Ping::StartApplication().
| bool ns3::Ipv6Address::IsMulticast | ( | ) | const |
If the IPv6 address is multicast (ff00::/8).
Definition at line 551 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::UdpSocketImpl::Bind(), ns3::Ipv6FlowClassifier::Classify(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::UdpSocketImpl::DoSendTo(), ns3::Icmpv6L4Protocol::HandleEchoRequest(), ns3::Ipv6L3Protocol::IpForward(), ns3::addressUtils::IsMulticast(), ns3::Ipv6L3Protocol::LocalDeliver(), ns3::Ipv6ExtensionLooseRouting::Process(), ns3::Ipv6Extension::ProcessOptions(), ns3::Ipv6L3Protocol::Receive(), ns3::Ipv6StaticRouting::RouteInput(), ns3::RipNg::RouteInput(), ns3::Ipv6L3Protocol::RouteInputError(), ns3::Ipv6StaticRouting::RouteOutput(), ns3::RipNg::RouteOutput(), ns3::Ipv6Interface::Send(), ns3::Icmpv6L4Protocol::SendNS(), ns3::Icmpv6L4Protocol::SendRS(), and ns3::Ping::StartApplication().
| bool ns3::Ipv6Address::IsSolicitedMulticast | ( | ) | const |
If the IPv6 address is a Solicited multicast address.
Definition at line 595 of file ipv6-address.cc.
References Ipv6Address(), CombinePrefix(), and NS_LOG_FUNCTION.
|
static |
Make the autoconfigured IPv6 address from a Mac address.
Actually the MAC supported are: Mac8, Mac16, Mac48, and Mac64.
| addr | the MAC address. |
| prefix | the IPv6 prefix |
Definition at line 278 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac16Address::ConvertFrom(), ns3::Mac48Address::ConvertFrom(), ns3::Mac64Address::ConvertFrom(), ns3::Mac8Address::ConvertFrom(), GetAny(), IsAny(), ns3::Mac16Address::IsMatchingType(), ns3::Mac48Address::IsMatchingType(), ns3::Mac64Address::IsMatchingType(), ns3::Mac8Address::IsMatchingType(), MakeAutoconfiguredAddress(), and NS_ABORT_MSG.
Referenced by ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), SixlowpanIphcStatefulImplTest::DoRun(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), ns3::Ipv6AddressHelper::NewAddress(), and ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress().
|
static |
Make the autoconfigured IPv6 address from a Mac address.
Actually the MAC supported are: Mac8, Mac16, Mac48, and Mac64.
| addr | the MAC address. |
| prefix | the IPv6 prefix |
Definition at line 307 of file ipv6-address.cc.
References Ipv6Address(), CombinePrefix(), GetOnes(), and MakeAutoconfiguredAddress().
|
static |
Make the autoconfigured IPv6 address with Mac16Address.
The EUI-64 scheme used is based on the RFC 4944.
| addr | the MAC address (16 bits). |
| prefix | the IPv6 prefix |
Definition at line 314 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac16Address::CopyTo(), GetBytes(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured IPv6 address with Mac48Address.
The EUI-64 scheme used is based on RFC 2464.
| addr | the MAC address (48 bits). |
| prefix | the IPv6 prefix |
Definition at line 334 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac48Address::CopyTo(), GetBytes(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured IPv6 address with Mac64Address.
| addr | the MAC address (64 bits). |
| prefix | the IPv6 prefix |
Definition at line 355 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac64Address::CopyTo(), GetBytes(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured IPv6 address with Mac8Address.
The EUI-64 scheme used is loosely based on the RFC 2464.
| addr | the Mac8Address address (8 bits). |
| prefix | the IPv6 prefix |
Definition at line 372 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac8Address::CopyTo(), GetBytes(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured link-local IPv6 address from a Mac address.
Actually the MAC supported are: Mac8, Mac16, Mac48, and Mac64.
| mac | the MAC address. |
Definition at line 393 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac16Address::ConvertFrom(), ns3::Mac48Address::ConvertFrom(), ns3::Mac64Address::ConvertFrom(), ns3::Mac8Address::ConvertFrom(), GetAny(), IsAny(), ns3::Mac16Address::IsMatchingType(), ns3::Mac48Address::IsMatchingType(), ns3::Mac64Address::IsMatchingType(), ns3::Mac8Address::IsMatchingType(), MakeAutoconfiguredLinkLocalAddress(), and NS_ABORT_MSG.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::Ipv6Interface::DoSetup(), and MakeAutoconfiguredLinkLocalAddress().
|
static |
Make the autoconfigured link-local IPv6 address with Mac16Address.
The EUI-64 scheme used is based on the RFC 4944.
| mac | the MAC address (16 bits). |
Definition at line 422 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac16Address::CopyTo(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured link-local IPv6 address with Mac48Address.
The EUI-64 scheme used is based on RFC 2464.
| mac | the MAC address (48 bits). |
Definition at line 443 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac48Address::CopyTo(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured link-local IPv6 address with Mac64Address.
| mac | the MAC address (64 bits). |
Definition at line 466 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac64Address::CopyTo(), NS_LOG_FUNCTION, and Set().
|
static |
Make the autoconfigured link-local IPv6 address with Mac8Address.
The EUI-64 scheme used is loosely based on the RFC 2464.
| mac | the MAC address (8 bits). |
Definition at line 485 of file ipv6-address.cc.
References Ipv6Address(), ns3::Mac8Address::CopyTo(), NS_LOG_FUNCTION, and Set().
|
static |
Make the Ipv4-mapped IPv6 address.
| addr | the IPv4 address |
Definition at line 240 of file ipv6-address.cc.
References Ipv6Address(), NS_LOG_FUNCTION, and ns3::Ipv4Address::Serialize().
Referenced by EpcTftClassifierTestCase::EpcTftClassifierTestCase(), EpcTftClassifierTestCase::BuildNameString(), ns3::MockNetDevice::GetMulticast(), ns3::TcpL4Protocol::Receive(), and ns3::UdpL4Protocol::Receive().
|
static |
Make the solicited IPv6 address.
| addr | the IPv6 address |
Definition at line 507 of file ipv6-address.cc.
References Ipv6Address(), NS_LOG_FUNCTION, Serialize(), and Set().
Referenced by ns3::Ipv6Interface::AddAddress(), ns3::Icmpv6L4Protocol::DoDAD(), ns3::NdiscCache::Entry::FunctionRetransmitTimeout(), and ns3::Icmpv6L4Protocol::Lookup().
| ns3::Ipv6Address::operator Address | ( | ) | const |
Convert to Address object.
Definition at line 659 of file ipv6-address.cc.
References ConvertTo().
| void ns3::Ipv6Address::Print | ( | std::ostream & | os | ) | const |
Print this address to the given output stream.
The print format is in the typical "2001:660:4701::1".
| os | the output stream to which this Ipv6Address is printed |
Definition at line 530 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressBlockIpv6::PrintAddress(), and ns3::PbbMessageIpv6::PrintOriginatorAddress().
| void ns3::Ipv6Address::Serialize | ( | uint8_t | buf[16] | ) | const |
Serialize this address to a 16-byte buffer.
| buf | the output buffer to which this address gets overwritten with this Ipv6Address |
Definition at line 225 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6Header::CalculatePseudoHeaderChecksum(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ConvertTo(), Ipv6AddressTestCase::DoRun(), GetIpv4MappedAddress(), ns3::Mac48Address::GetMulticast(), ns3::Ipv6QueueDiscItem::Hash(), MakeSolicitedAddress(), ns3::PbbAddressBlockIpv6::SerializeAddress(), and ns3::PbbMessageIpv6::SerializeOriginatorAddress().
| void ns3::Ipv6Address::Set | ( | const char * | address | ) |
Sets an Ipv6Address by parsing the input C-string.
| address | the C-string containing the IPv6 address (e.g. 2001:db8:f00d:cafe::1). |
Definition at line 205 of file ipv6-address.cc.
References m_address, NS_ABORT_MSG, and NS_LOG_FUNCTION.
Referenced by EpcTftClassifierTestSuite::EpcTftClassifierTestSuite(), CombinePrefix(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeAutoconfiguredLinkLocalAddress(), MakeSolicitedAddress(), and ns3::ReadFrom().
| void ns3::Ipv6Address::Set | ( | uint8_t | address[16] | ) |
Set an Ipv6Address by using the input 16 bytes.
| address | the 128-bit address |
Definition at line 217 of file ipv6-address.cc.
References m_address, and NS_LOG_FUNCTION.
|
friend |
Not equal to operator.
| a | the first operand. |
| b | the first operand. |
Definition at line 676 of file ipv6-address.h.
References Ipv6Address(), and m_address.
|
friend |
Less than to operator.
| a | the first operand. |
| b | the first operand. |
Definition at line 681 of file ipv6-address.h.
References Ipv6Address(), and m_address.
|
friend |
Equal to operator.
| a | the first operand. |
| b | the first operand. |
Definition at line 670 of file ipv6-address.h.
References Ipv6Address(), and m_address.
|
private |
The address representation on 128 bits (16 bytes).
Definition at line 423 of file ipv6-address.h.
Referenced by Ipv6Address(), Ipv6Address(), Ipv6Address(), Ipv6Address(), Ipv6Address(), CombinePrefix(), GetBytes(), IsIpv4MappedAddress(), IsLinkLocalMulticast(), IsMulticast(), operator!=, operator<, operator==, Print(), Serialize(), Set(), and Set().