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 76 #define DHCPV6_IA_NA 3 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 );
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)
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)
uint32_t addr
Buffer address.
struct in6_addr address
IPv6 address.
DHCPv6 client or server identifier option.
DHCPv6 identity association address (IAADDR) option.
DHCPv6 status code option.
int start_dhcpv6(struct interface *job, struct net_device *netdev, struct in6_addr *router, int stateful)
Start DHCPv6.
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.