A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::Ipv6Prefix Class Reference

Describes an IPv6 prefix. More...

#include "ipv6-address.h"

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
 Check whether two addresses have the same bits in the prefix portion of their addresses.
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.

Detailed Description

Describes an IPv6 prefix.

It is just a bitmask like Ipv4Mask.

See also
Ipv6Address
Ipv6Prefix Attribute

Definition at line 460 of file ipv6-address.h.

Constructor & Destructor Documentation

◆ Ipv6Prefix() [1/8]

ns3::Ipv6Prefix::Ipv6Prefix ( )

Default constructor.

The default prefix is empty, corresponding to /0

Definition at line 786 of file ipv6-address.cc.

References m_prefix, m_prefixLength, and NS_LOG_FUNCTION.

Referenced by Ipv6Prefix(), Ipv6Prefix(), GetLoopback(), GetOnes(), GetZero(), operator!=, and operator==.

Here is the caller graph for this function:

◆ Ipv6Prefix() [2/8]

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 (0xE is 0b1110).

Parameters
prefixthe 128-bit prefix

Definition at line 803 of file ipv6-address.cc.

References GetMinimumPrefixLength(), m_prefix, m_prefixLength, and NS_LOG_FUNCTION.

Here is the call graph for this function:

◆ Ipv6Prefix() [3/8]

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.

Parameters
prefixthe 128-bit prefix

Definition at line 793 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:

◆ Ipv6Prefix() [4/8]

ns3::Ipv6Prefix::Ipv6Prefix ( uint8_t prefix[16],
uint8_t prefixLength )

Constructs an Ipv6Prefix by using the input 16 bytes.

Parameters
prefixthe 128-bit prefix
prefixLengththe prefix length

Definition at line 825 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:

◆ Ipv6Prefix() [5/8]

ns3::Ipv6Prefix::Ipv6Prefix ( const char * prefix,
uint8_t prefixLength )

Constructs an Ipv6Prefix by using the input string.

Parameters
prefixthe 128-bit prefix
prefixLengththe prefix length

Definition at line 810 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:

◆ Ipv6Prefix() [6/8]

ns3::Ipv6Prefix::Ipv6Prefix ( uint8_t prefix)

Constructs an Ipv6Prefix by using the input number of bits.

Parameters
prefixnumber of bits of the prefix (0 - 128)
Note
A valid number of bits is between 0 and 128).

Definition at line 838 of file ipv6-address.cc.

References m_prefix, m_prefixLength, NS_ASSERT, and NS_LOG_FUNCTION.

◆ Ipv6Prefix() [7/8]

ns3::Ipv6Prefix::Ipv6Prefix ( const Ipv6Prefix & prefix)

Copy constructor.

Parameters
prefixIpv6Prefix object

Definition at line 874 of file ipv6-address.cc.

References Ipv6Prefix(), m_prefix, and m_prefixLength.

Here is the call graph for this function:

◆ Ipv6Prefix() [8/8]

ns3::Ipv6Prefix::Ipv6Prefix ( const Ipv6Prefix * prefix)

Copy constructor.

Parameters
prefixIpv6Prefix pointer

Definition at line 880 of file ipv6-address.cc.

References Ipv6Prefix(), m_prefix, and m_prefixLength.

Here is the call graph for this function:

◆ ~Ipv6Prefix()

ns3::Ipv6Prefix::~Ipv6Prefix ( )

Destructor.

Definition at line 886 of file ipv6-address.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ ConvertToIpv6Address()

Ipv6Address ns3::Ipv6Prefix::ConvertToIpv6Address ( ) const

Convert the Prefix into an IPv6 Address.

Returns
an IPv6 address representing the prefix

Definition at line 954 of file ipv6-address.cc.

References m_prefix.

◆ GetBytes()

void ns3::Ipv6Prefix::GetBytes ( uint8_t buf[16]) const

Get the bytes corresponding to the prefix.

Parameters
bufbuffer to store the data

Definition at line 947 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:

◆ GetLoopback()

Ipv6Prefix ns3::Ipv6Prefix::GetLoopback ( )
static

Get the loopback prefix ( /128).

Returns
a Ipv6Prefix corresponding to loopback prefix

Definition at line 923 of file ipv6-address.cc.

References Ipv6Prefix(), and NS_LOG_FUNCTION_NOARGS.

Here is the call graph for this function:

◆ GetMinimumPrefixLength()

uint8_t ns3::Ipv6Prefix::GetMinimumPrefixLength ( ) const

Get the minimum prefix length, i.e., 128 - the length of the largest sequence trailing zeroes.

Returns
minimum prefix length

Definition at line 978 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:

◆ GetOnes()

Ipv6Prefix ns3::Ipv6Prefix::GetOnes ( )
static

Get the "all-1" IPv6 mask (ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff).

Returns
/128 Ipv6Prefix representation

Definition at line 931 of file ipv6-address.cc.

References Ipv6Prefix(), and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ipv6StaticRouting::AddHostRouteTo(), ns3::Ipv6StaticRouting::AddHostRouteTo(), ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(), and ns3::Ipv6RoutingTableEntry::IsHost().

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

◆ GetPrefixLength()

uint8_t ns3::Ipv6Prefix::GetPrefixLength ( ) const

Get prefix length.

Returns
prefix length

Definition at line 964 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::operator<<(), Print(), ns3::Ipv6StaticRouting::PrintRoutingTable(), and ns3::RipNg::PrintRoutingTable().

Here is the caller graph for this function:

◆ GetZero()

Ipv6Prefix ns3::Ipv6Prefix::GetZero ( )
static

Get the zero prefix ( /0).

Returns
an Ipv6Prefix

Definition at line 939 of file ipv6-address.cc.

References Ipv6Prefix(), and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::RipNg::AddDefaultRouteTo(), ns3::RipNg::DoSendRouteUpdate(), ns3::RipNg::HandleRequests(), and ns3::Ipv6StaticRouting::SetDefaultRoute().

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

◆ IsMatch()

bool ns3::Ipv6Prefix::IsMatch ( Ipv6Address a,
Ipv6Address b ) const

Check whether two addresses have the same bits in the prefix portion of their addresses.

If the prefix length is 0, this method will return true regardless of the two address argument values. If the prefix length is 128, this method will require that the two address arguments are the same.

Parameters
afirst address to compare
bsecond address to compare
Returns
true if both addresses are equal in their masked bits, corresponding to the prefix length.

Definition at line 893 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 caller graph for this function:

◆ Print()

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".

Parameters
osthe output stream to which this Ipv6Address is printed

Definition at line 915 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 caller graph for this function:

◆ SetPrefixLength()

void ns3::Ipv6Prefix::SetPrefixLength ( uint8_t prefixLength)

Set prefix length.

Parameters
prefixLengththe prefix length

Definition at line 971 of file ipv6-address.cc.

References m_prefixLength, and NS_LOG_FUNCTION.

◆ operator!=

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

Not equal to operator.

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

Definition at line 694 of file ipv6-address.h.

References Ipv6Prefix(), and m_prefix.

◆ operator==

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

Equal to operator.

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

Definition at line 688 of file ipv6-address.h.

References Ipv6Prefix(), and m_prefix.

Member Data Documentation

◆ m_prefix

uint8_t ns3::Ipv6Prefix::m_prefix[16]
private

◆ m_prefixLength

uint8_t ns3::Ipv6Prefix::m_prefixLength
private

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