1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#![cfg_attr(nightly, allow(unused_attributes))]
#![cfg_attr(nightly, rustfmt::skip)]

use Ipv6Address;

/// IPv6 unspecified address: `::`
pub const IPV6_UNSPECIFIED: Ipv6Address = Ipv6Address(0);

/// IPv6 loopback address: `::1`
pub const IPV6_LOOPBACK: Ipv6Address = Ipv6Address(1);

/// Multicast address for all the address on the interface: `ff01::1`
pub const IPV6_INTERFACE_LOCAL_ALL_NODES: Ipv6Address = Ipv6Address(0xff01_0000_0000_0000_0000_0000_0000_0001);

/// Multicast address for all the nodes on the network segment: `ff02::1`
pub const IPV6_LINK_LOCAL_ALL_NODES: Ipv6Address = Ipv6Address(0xff02_0000_0000_0000_0000_0000_0000_0001);

/// Multicast address for all the routers on the network segment: `ff02::2`
pub const IPV6_LINK_LOCAL_ALL_ROUTERS: Ipv6Address = Ipv6Address(0xff02_0000_0000_0000_0000_0000_0000_0002);

/// Mask for multicast addresses
pub const IPV6_MULTICAST_MASK: Ipv6Address = Ipv6Address(0xff00_0000_0000_0000_0000_0000_0000_0000);

/// Mask for multicast interface-local addresses
pub const IPV6_INTERFACE_LOCAL_MULTICAST_MASK: Ipv6Address = Ipv6Address(0xff01_0000_0000_0000_0000_0000_0000_0000);

/// Mask for multicast link-local addresses
pub const IPV6_LINK_LOCAL_MULTICAST_MASK: Ipv6Address = Ipv6Address(0xff02_0000_0000_0000_0000_0000_0000_0000);

/// Mask for unicast link-local addresses
pub const IPV6_LINK_LOCAL_UNICAST_MASK: Ipv6Address = Ipv6Address(0xfe80_0000_0000_0000_0000_0000_0000_0000);

pub(crate) const IPV6_MAX_PREFIXLEN: u8 = 128;