18#define DHCPV6_SERVER_PORT 547
21#define DHCPV6_CLIENT_PORT 546
45#define DHCPV6_DUID_UUID 4
56#define DHCPV6_CLIENT_ID 1
59#define DHCPV6_SERVER_ID 2
93#define DHCPV6_IAADDR 5
104#define DHCPV6_OPTION_REQUEST 6
115#define DHCPV6_ELAPSED_TIME 8
128#define DHCPV6_STATUS_CODE 13
147#define DHCPV6_USER_CLASS 15
150#define DHCPV6_VENDOR_CLASS 16
162#define DHCPV6_VENDOR_CLASS_PXE 343
165#define DHCPV6_DNS_SERVERS 23
168#define DHCPV6_DOMAIN_LIST 24
171#define DHCPV6_BOOTFILE_URL 59
174#define DHCPV6_BOOTFILE_PARAM 60
177#define DHCPV6_CLIENT_ARCHITECTURE 61
180#define DHCPV6_CLIENT_NDI 62
187#define DHCPV6_LOG_SERVERS 0xffffffffUL
190#define DHCPV6_BYTE_VALUE( value ) ( (value) & 0xff )
193#define DHCPV6_WORD_VALUE( value ) \
194 DHCPV6_BYTE_VALUE ( (value) >> 8 ), DHCPV6_BYTE_VALUE ( (value) >> 0 )
197#define DHCPV6_DWORD_VALUE( value ) \
198 DHCPV6_WORD_VALUE ( (value) >> 16 ), DHCPV6_WORD_VALUE ( (value) >> 0 )
201#define DHCPV6_CODE( code ) DHCPV6_WORD_VALUE ( code )
204#define DHCPV6_LEN( len ) DHCPV6_WORD_VALUE ( len )
207#define DHCPV6_OPTION( ... ) \
208 DHCPV6_LEN ( VA_ARG_COUNT ( __VA_ARGS__ ) ), __VA_ARGS__
211#define DHCPV6_STRING( ... ) DHCPV6_OPTION ( __VA_ARGS__ )
214#define DHCPV6_BYTE( value ) DHCPV6_OPTION ( DHCPV6_BYTE_VALUE ( value ) )
217#define DHCPV6_WORD( value ) DHCPV6_OPTION ( DHCPV6_WORD_VALUE ( value ) )
220#define DHCPV6_DWORD( value ) DHCPV6_OPTION ( DHCPV6_DWORD_VALUE ( value ) )
251#define DHCPV6_SOLICIT 1
254#define DHCPV6_ADVERTISE 2
257#define DHCPV6_REQUEST 3
260#define DHCPV6_REPLY 7
263#define DHCPV6_INFORMATION_REQUEST 11
266#define DHCPV6_SETTINGS_NAME "dhcpv6"
275 addr->s6_addr[13] = 1;
276 addr->s6_addr[15] = 2;
280 struct in6_addr *router,
int stateful );
static void ipv6_all_dhcp_relay_and_servers(struct in6_addr *addr)
Construct all-DHCP-relay-agents-and-servers multicast address.
int start_dhcpv6(struct interface *job, struct net_device *netdev, struct in6_addr *router, int stateful)
Start DHCPv6.
uint32_t addr
Buffer address.
static struct net_device * netdev
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
DHCPv6 client or server identifier option.
struct dhcpv6_option header
Option header.
uint8_t duid[0]
DHCP unique identifier (DUID)
DHCP unique identifier based on UUID (DUID-UUID)
DHCPv6 elapsed time option.
struct dhcpv6_option header
Option header.
uint16_t elapsed
Elapsed time, in centiseconds.
DHCPv6 identity association for non-temporary address (IA_NA) option.
uint32_t renew
Renew time (in seconds)
struct dhcpv6_option header
Option header.
uint32_t iaid
Identity association identifier (IAID)
struct dhcpv6_option options[0]
IA_NA options.
uint32_t rebind
Rebind time (in seconds)
DHCPv6 identity association address (IAADDR) option.
struct dhcpv6_option options[0]
IAADDR options.
struct dhcpv6_option header
Option header.
struct in6_addr address
IPv6 address.
uint32_t valid
Valid lifetime (in seconds)
uint32_t preferred
Preferred lifetime (in seconds)
DHCPv6 option request option.
uint16_t requested[0]
Requested options.
struct dhcpv6_option header
Option header.
uint16_t len
Length of the data field.
DHCPv6 status code option.
char message[0]
Status message.
uint16_t status
Status code.
struct dhcpv6_option header
Option header.
DHCPv6 user class option.
struct dhcpv6_option header
Option header.
struct dhcpv6_user_class user_class[0]
User class.
struct dhcpv6_iaaddr_option iaaddr
struct dhcpv6_ia_na_option ia_na
struct dhcpv6_duid_option duid
struct dhcpv6_elapsed_time_option elapsed_time
struct dhcpv6_status_code_option status_code
struct dhcpv6_option_request_option option_request
struct dhcpv6_option header
struct dhcpv6_user_class_option user_class