17 #define DHCPV6_SERVER_PORT 547 20 #define DHCPV6_CLIENT_PORT 546 44 #define DHCPV6_DUID_UUID 4 55 #define DHCPV6_CLIENT_ID 1 58 #define DHCPV6_SERVER_ID 2 75 #define DHCPV6_IA_NA 3 92 #define DHCPV6_IAADDR 5 103 #define DHCPV6_OPTION_REQUEST 6 114 #define DHCPV6_ELAPSED_TIME 8 127 #define DHCPV6_STATUS_CODE 13 146 #define DHCPV6_USER_CLASS 15 149 #define DHCPV6_VENDOR_CLASS 16 161 #define DHCPV6_VENDOR_CLASS_PXE 343 164 #define DHCPV6_DNS_SERVERS 23 167 #define DHCPV6_DOMAIN_LIST 24 170 #define DHCPV6_BOOTFILE_URL 59 173 #define DHCPV6_BOOTFILE_PARAM 60 176 #define DHCPV6_CLIENT_ARCHITECTURE 61 179 #define DHCPV6_CLIENT_NDI 62 186 #define DHCPV6_LOG_SERVERS 0xffffffffUL 189 #define DHCPV6_BYTE_VALUE( value ) ( (value) & 0xff ) 192 #define DHCPV6_WORD_VALUE( value ) \ 193 DHCPV6_BYTE_VALUE ( (value) >> 8 ), DHCPV6_BYTE_VALUE ( (value) >> 0 ) 196 #define DHCPV6_DWORD_VALUE( value ) \ 197 DHCPV6_WORD_VALUE ( (value) >> 16 ), DHCPV6_WORD_VALUE ( (value) >> 0 ) 200 #define DHCPV6_CODE( code ) DHCPV6_WORD_VALUE ( code ) 203 #define DHCPV6_LEN( len ) DHCPV6_WORD_VALUE ( len ) 206 #define DHCPV6_OPTION( ... ) \ 207 DHCPV6_LEN ( VA_ARG_COUNT ( __VA_ARGS__ ) ), __VA_ARGS__ 210 #define DHCPV6_STRING( ... ) DHCPV6_OPTION ( __VA_ARGS__ ) 213 #define DHCPV6_BYTE( value ) DHCPV6_OPTION ( DHCPV6_BYTE_VALUE ( value ) ) 216 #define DHCPV6_WORD( value ) DHCPV6_OPTION ( DHCPV6_WORD_VALUE ( value ) ) 219 #define DHCPV6_DWORD( value ) DHCPV6_OPTION ( DHCPV6_DWORD_VALUE ( value ) ) 250 #define DHCPV6_SOLICIT 1 253 #define DHCPV6_ADVERTISE 2 256 #define DHCPV6_REQUEST 3 259 #define DHCPV6_REPLY 7 262 #define DHCPV6_INFORMATION_REQUEST 11 265 #define DHCPV6_SETTINGS_NAME "dhcpv6" 274 addr->s6_addr[13] = 1;
275 addr->s6_addr[15] = 2;
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
DHCP unique identifier based on UUID (DUID-UUID)
struct dhcpv6_user_class_option user_class
struct dhcpv6_option header
Option header.
struct dhcpv6_duid_option duid
uint8_t duid[0]
DHCP unique identifier (DUID)
struct dhcpv6_option options[0]
IA_NA options.
uint16_t status
Status code.
uint32_t iaid
Identity association identifier (IAID)
int start_dhcpv6(struct interface *job, struct net_device *netdev, int stateful)
Start DHCPv6.
DHCPv6 user class option.
struct dhcpv6_option header
Option header.
uint32_t valid
Valid lifetime (in seconds)
struct dhcpv6_elapsed_time_option elapsed_time
struct dhcpv6_option options[0]
IAADDR options.
struct dhcpv6_option header
Option header.
static struct net_device * netdev
char message[0]
Status message.
uint16_t requested[0]
Requested options.
uint32_t rebind
Rebind time (in seconds)
struct in6_addr address
IPv6 address.
DHCPv6 client or server identifier option.
DHCPv6 identity association address (IAADDR) option.
DHCPv6 status code option.
struct dhcpv6_option header
struct dhcpv6_option header
Option header.
struct dhcpv6_option_request_option option_request
uint32_t renew
Renew time (in seconds)
uint16_t len
Length of the data field.
struct dhcpv6_option header
Option header.
static void ipv6_all_dhcp_relay_and_servers(struct in6_addr *addr)
Construct all-DHCP-relay-agents-and-servers multicast address.
DHCPv6 option request option.
uint16_t elapsed
Elapsed time, in centiseconds.
uint32_t preferred
Preferred lifetime (in seconds)
struct dhcpv6_option header
Option header.
DHCPv6 identity association for non-temporary address (IA_NA) option.
struct dhcpv6_ia_na_option ia_na
struct dhcpv6_iaaddr_option iaaddr
struct dhcpv6_user_class user_class[0]
User class.
struct dhcpv6_status_code_option status_code
struct dhcpv6_option header
Option header.
DHCPv6 elapsed time option.