DHCPv6.Client (DHCP v0.5.0)
View SourceDHCPv6 client utilities for testing and simulation.
Provides functions to simulate DHCPv6 client behavior for testing DHCPv6 server implementations.
Summary
Functions
Create an INFORMATION-REQUEST message for testing.
Create a RELEASE message for testing.
Create a RENEW message for testing.
Create a REQUEST message for testing.
Send a DHCPv6 message to a server for testing.
Create a SOLICIT message for testing.
Run a complete DHCPv6 lease test cycle.
Functions
@spec information_request(keyword()) :: DHCPv6.Message.t()
Create an INFORMATION-REQUEST message for testing.
Options
:duid- Client DUID (required):transaction_id- Transaction ID (auto-generated if not provided):dns_servers- Request DNS servers (default: true)
@spec release(keyword()) :: DHCPv6.Message.t()
Create a RELEASE message for testing.
Options
:duid- Client DUID (required):server_duid- Server DUID (required):iaid- Identity Association ID (required):addresses- IPv6 addresses to release (required):transaction_id- Transaction ID (auto-generated if not provided)
@spec renew(keyword()) :: DHCPv6.Message.t()
Create a RENEW message for testing.
Options
:duid- Client DUID (required):server_duid- Server DUID (required):iaid- Identity Association ID (required):addresses- IPv6 addresses to renew (required):transaction_id- Transaction ID (auto-generated if not provided)
@spec request(keyword()) :: DHCPv6.Message.t()
Create a REQUEST message for testing.
Options
:duid- Client DUID (required):server_duid- Server DUID (required):iaid- Identity Association ID (required):addresses- Requested IPv6 addresses (required):transaction_id- Transaction ID (auto-generated if not provided)
@spec send_message(keyword()) :: {:ok, DHCPv6.Message.t()} | {:error, term()}
Send a DHCPv6 message to a server for testing.
Options
:message- Message to send (required):server_ip- Server IP to send to (default: ff02::1:2):server_port- Server port (default: 547):timeout- Timeout in milliseconds (default: 5000)
@spec solicit(keyword()) :: DHCPv6.Message.t()
Create a SOLICIT message for testing.
Options
:duid- Client DUID (required):iaid- Identity Association ID (required):transaction_id- Transaction ID (auto-generated if not provided):rapid_commit- Include rapid commit option (default: false):dns_servers- Request DNS servers (default: true)
@spec test_lease_cycle(keyword()) :: {:ok, %{ solicit: DHCPv6.Message.t(), advertise: DHCPv6.Message.t(), request: DHCPv6.Message.t(), reply: DHCPv6.Message.t() }} | {:error, term()}
Run a complete DHCPv6 lease test cycle.
Returns the full DHCPv6 handshake process for testing.