Describes an IPv6 prefix. More...
#include "ipv6-address.h"
 Collaboration diagram for ns3::Ipv6Prefix:
 Collaboration diagram for ns3::Ipv6Prefix:| Public Member Functions | |
| Ipv6Prefix () | |
| Default constructor. | |
| Ipv6Prefix (const char *prefix) | |
| Constructs an Ipv6Prefix by using the input string. | |
| Ipv6Prefix (const char *prefix, uint8_t prefixLength) | |
| Constructs an Ipv6Prefix by using the input string. | |
| Ipv6Prefix (const Ipv6Prefix &prefix) | |
| Copy constructor. | |
| Ipv6Prefix (const Ipv6Prefix *prefix) | |
| Copy constructor. | |
| Ipv6Prefix (uint8_t prefix) | |
| Constructs an Ipv6Prefix by using the input number of bits. | |
| Ipv6Prefix (uint8_t prefix[16]) | |
| Constructs an Ipv6Prefix by using the input 16 bytes. | |
| Ipv6Prefix (uint8_t prefix[16], uint8_t prefixLength) | |
| Constructs an Ipv6Prefix by using the input 16 bytes. | |
| ~Ipv6Prefix () | |
| Destructor. | |
| Ipv6Address | ConvertToIpv6Address () const | 
| Convert the Prefix into an IPv6 Address. | |
| void | GetBytes (uint8_t buf[16]) const | 
| Get the bytes corresponding to the prefix. | |
| uint8_t | GetMinimumPrefixLength () const | 
| Get the minimum prefix length, i.e., 128 - the length of the largest sequence trailing zeroes. | |
| uint8_t | GetPrefixLength () const | 
| Get prefix length. | |
| bool | IsMatch (Ipv6Address a, Ipv6Address b) const | 
| If the Address match the type. | |
| void | Print (std::ostream &os) const | 
| Print this address to the given output stream. | |
| void | SetPrefixLength (uint8_t prefixLength) | 
| Set prefix length. | |
| Static Public Member Functions | |
| static Ipv6Prefix | GetLoopback () | 
| Get the loopback prefix ( /128). | |
| static Ipv6Prefix | GetOnes () | 
| Get the "all-1" IPv6 mask (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff). | |
| static Ipv6Prefix | GetZero () | 
| Get the zero prefix ( /0). | |
| Private Attributes | |
| uint8_t | m_prefix [16] | 
| The prefix representation. | |
| uint8_t | m_prefixLength | 
| The prefix length. | |
| Friends | |
| bool | operator!= (const Ipv6Prefix &a, const Ipv6Prefix &b) | 
| Not equal to operator. | |
| bool | operator== (const Ipv6Prefix &a, const Ipv6Prefix &b) | 
| Equal to operator. | |
Describes an IPv6 prefix.
It is just a bitmask like Ipv4Mask.
Definition at line 443 of file ipv6-address.h.
| ns3::Ipv6Prefix::Ipv6Prefix | ( | ) | 
Default constructor.
Definition at line 781 of file ipv6-address.cc.
References m_prefix, m_prefixLength, and NS_LOG_FUNCTION.
| ns3::Ipv6Prefix::Ipv6Prefix | ( | uint8_t | prefix[16] | ) | 
Constructs an Ipv6Prefix by using the input 16 bytes.
The prefix length is calculated as the minimum prefix length, i.e., 2001:db8:cafe:: will have a 47 bit prefix length.
| prefix | the 128-bit prefix | 
Definition at line 798 of file ipv6-address.cc.
References GetMinimumPrefixLength(), m_prefix, m_prefixLength, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| ns3::Ipv6Prefix::Ipv6Prefix | ( | const char * | prefix | ) | 
Constructs an Ipv6Prefix by using the input string.
The prefix length is calculated as the minimum prefix length, i.e., 2001:db8:cafe:: will have a 47 bit prefix length.
| prefix | the 128-bit prefix | 
Definition at line 788 of file ipv6-address.cc.
References GetMinimumPrefixLength(), m_prefix, m_prefixLength, NS_ABORT_MSG, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| ns3::Ipv6Prefix::Ipv6Prefix | ( | uint8_t | prefix[16], | 
| uint8_t | prefixLength ) | 
Constructs an Ipv6Prefix by using the input 16 bytes.
| prefix | the 128-bit prefix | 
| prefixLength | the prefix length | 
Definition at line 820 of file ipv6-address.cc.
References GetMinimumPrefixLength(), m_prefix, m_prefixLength, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| ns3::Ipv6Prefix::Ipv6Prefix | ( | const char * | prefix, | 
| uint8_t | prefixLength ) | 
Constructs an Ipv6Prefix by using the input string.
| prefix | the 128-bit prefix | 
| prefixLength | the prefix length | 
Definition at line 805 of file ipv6-address.cc.
References GetMinimumPrefixLength(), m_prefix, m_prefixLength, NS_ABORT_MSG, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| ns3::Ipv6Prefix::Ipv6Prefix | ( | uint8_t | prefix | ) | 
Constructs an Ipv6Prefix by using the input number of bits.
| prefix | number of bits of the prefix (0 - 128) | 
Definition at line 833 of file ipv6-address.cc.
References m_prefix, m_prefixLength, NS_ASSERT, and NS_LOG_FUNCTION.
| ns3::Ipv6Prefix::Ipv6Prefix | ( | const Ipv6Prefix & | prefix | ) | 
Copy constructor.
| prefix | Ipv6Prefix object | 
Definition at line 869 of file ipv6-address.cc.
References m_prefix, and m_prefixLength.
| ns3::Ipv6Prefix::Ipv6Prefix | ( | const Ipv6Prefix * | prefix | ) | 
Copy constructor.
| prefix | Ipv6Prefix pointer | 
Definition at line 875 of file ipv6-address.cc.
References m_prefix, and m_prefixLength.
| ns3::Ipv6Prefix::~Ipv6Prefix | ( | ) | 
| Ipv6Address ns3::Ipv6Prefix::ConvertToIpv6Address | ( | ) | const | 
Convert the Prefix into an IPv6 Address.
Definition at line 949 of file ipv6-address.cc.
References m_prefix.
| void ns3::Ipv6Prefix::GetBytes | ( | uint8_t | buf[16] | ) | const | 
Get the bytes corresponding to the prefix.
| buf | buffer to store the data | 
Definition at line 942 of file ipv6-address.cc.
References m_prefix, and NS_LOG_FUNCTION.
Referenced by ns3::SixLowPanNetDevice::FindMulticastCompressionContext(), ns3::Ipv6AddressGeneratorImpl::Init(), and ns3::Ipv6AddressGeneratorImpl::PrefixToIndex().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the loopback prefix ( /128).
Definition at line 918 of file ipv6-address.cc.
References NS_LOG_FUNCTION_NOARGS.
| uint8_t ns3::Ipv6Prefix::GetMinimumPrefixLength | ( | ) | const | 
Get the minimum prefix length, i.e., 128 - the length of the largest sequence trailing zeroes.
Definition at line 973 of file ipv6-address.cc.
References m_prefix, and NS_LOG_FUNCTION.
Referenced by Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), and Ipv6Prefix().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the "all-1" IPv6 mask (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff).
Definition at line 926 of file ipv6-address.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv6StaticRouting::AddHostRouteTo(), ns3::Ipv6StaticRouting::AddHostRouteTo(), ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(), and ns3::Ipv6RoutingTableEntry::IsHost().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| uint8_t ns3::Ipv6Prefix::GetPrefixLength | ( | ) | const | 
Get prefix length.
Definition at line 959 of file ipv6-address.cc.
References m_prefixLength, and NS_LOG_FUNCTION.
Referenced by ns3::SixLowPanNetDevice::CleanPrefix(), ns3::SixLowPanNetDevice::FindMulticastCompressionContext(), ns3::Ipv6StaticRouting::GetDefaultRoute(), ns3::RipNg::Lookup(), ns3::Ipv6StaticRouting::LookupStatic(), ns3::Ipv6AddressHelper::NewNetwork(), ns3::operator<<(), Print(), ns3::Ipv6StaticRouting::PrintRoutingTable(), and ns3::RipNg::PrintRoutingTable().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the zero prefix ( /0).
Definition at line 934 of file ipv6-address.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::RipNg::AddDefaultRouteTo(), ns3::RipNg::DoSendRouteUpdate(), ns3::RipNg::HandleRequests(), and ns3::Ipv6StaticRouting::SetDefaultRoute().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::Ipv6Prefix::IsMatch | ( | Ipv6Address | a, | 
| Ipv6Address | b ) const | 
If the Address match the type.
| a | a first address | 
| b | a second address | 
Definition at line 888 of file ipv6-address.cc.
References ns3::Ipv6Address::GetBytes(), m_prefix, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6Interface::GetAddressMatchingDestination(), ns3::Ipv6StaticRouting::HasNetworkDest(), ns3::RipNg::Lookup(), ns3::Ipv6StaticRouting::LookupStatic(), ns3::Dhcp6Server::RenewRebindLeases(), and ns3::Dhcp6Server::SendReply().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::Ipv6Prefix::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 910 of file ipv6-address.cc.
References GetPrefixLength(), and NS_LOG_FUNCTION.
Referenced by ns3::operator<<().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::Ipv6Prefix::SetPrefixLength | ( | uint8_t | prefixLength | ) | 
Set prefix length.
| prefixLength | the prefix length | 
Definition at line 966 of file ipv6-address.cc.
References m_prefixLength, and NS_LOG_FUNCTION.
| 
 | friend | 
Not equal to operator.
| a | the first operand | 
| b | the first operand | 
Definition at line 668 of file ipv6-address.h.
| 
 | friend | 
Equal to operator.
| a | the first operand | 
| b | the first operand | 
Definition at line 662 of file ipv6-address.h.
| 
 | private | 
The prefix representation.
Definition at line 578 of file ipv6-address.h.
Referenced by Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), ConvertToIpv6Address(), GetBytes(), GetMinimumPrefixLength(), and IsMatch().
| 
 | private | 
The prefix length.
Definition at line 583 of file ipv6-address.h.
Referenced by Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), Ipv6Prefix(), GetPrefixLength(), and SetPrefixLength().