NAME

Net::DHCPv6::Option::IAAddr - IA Address option (code 5) -- address + lifetimes + sub-options

VERSION

version 0.002

SYNOPSIS

# Text form (auto-resolved to wire bytes)
my $iaaddr = Net::DHCPv6::Option::IAAddr->new(
    address            => '2001:db8::1',
    preferred_lifetime => 7_200,
    valid_lifetime     => 86_400,
);
print $iaaddr->address;             # '2001:db8::1'
print $iaaddr->address_raw;         # 16-byte wire-format bytes

# Raw bytes
use Socket qw(inet_pton AF_INET6);
my $iaaddr2 = Net::DHCPv6::Option::IAAddr->new(
    address_raw        => inet_pton( AF_INET6, '2001:db8::1' ),
    preferred_lifetime => 7_200,
    valid_lifetime     => 86_400,
);

DESCRIPTION

Implements the IAADDR option (OPTION_IAADDR, code 5) per RFC 8415 §21.6. Contains a 16-byte IPv6 address, preferred lifetime, valid lifetime, and sub-options.

ALPHA STATUS

ALPHA SOFTWARE. This is an early release. The interface is experimental and subject to change without notice.

METHODS

new(address => $text | address_raw => $bytes16, preferred_lifetime => $num, valid_lifetime => $num, options => $optionlist)

Constructor. Requires either address (IPv6 text) or address_raw (16 raw bytes). preferred_lifetime and valid_lifetime default to 0. options defaults to an empty Net::DHCPv6::OptionList.

address

Returns the IPv6 address as a text string.

address_raw

Returns the 16-byte wire-format address.

preferred_lifetime

Returns preferred lifetime in seconds.

valid_lifetime

Returns valid lifetime in seconds.

options

Returns the internal Net::DHCPv6::OptionList of sub-options.

add_option($option)

Add a sub-option.

get_option($code)

Retrieve the first sub-option with the given code.

SEE ALSO

Net::DHCPv6::Option, Net::DHCPv6::Option::IANA

AUTHOR

Dean Hamstead <dean@fragfest.com.au>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2026 by Dean Hamstead.

This is free software, licensed under:

The MIT (X11) License