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 138 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 156 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 182 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 144 of file ipv6-address.cc.
References Ipv6Address(), and m_address.
| ns3::Ipv6Address::Ipv6Address | ( | const Ipv6Address * | addr | ) |
Copy constructor.
| addr | Ipv6Address pointer |
Definition at line 150 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 168 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 565 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 666 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 657 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 223 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 700 of file ipv6-address.cc.
References Ipv6Address(), and NS_LOG_FUNCTION_NOARGS.
|
static |
Get the "all nodes multicast" address.
Definition at line 684 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 692 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 724 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 740 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 257 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 708 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 732 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 676 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 716 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 633 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 595 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 605 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 617 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 625 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 755 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 556 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 747 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 549 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 534 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 644 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 542 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 586 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 269 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 298 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 305 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 325 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 346 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 363 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 384 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 413 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 434 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 457 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 476 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 231 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 498 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 650 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 521 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 216 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 196 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 208 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().