|
iPXE
|
Dynamic Host Configuration Protocol for IPv6. More...
Go to the source code of this file.
Data Structures | |
| struct | dhcpv6_option |
| A DHCPv6 option. More... | |
| struct | dhcpv6_duid_uuid |
| DHCP unique identifier based on UUID (DUID-UUID) More... | |
| struct | dhcpv6_duid_option |
| DHCPv6 client or server identifier option. More... | |
| struct | dhcpv6_ia_na_option |
| DHCPv6 identity association for non-temporary address (IA_NA) option. More... | |
| struct | dhcpv6_iaaddr_option |
| DHCPv6 identity association address (IAADDR) option. More... | |
| struct | dhcpv6_option_request_option |
| DHCPv6 option request option. More... | |
| struct | dhcpv6_elapsed_time_option |
| DHCPv6 elapsed time option. More... | |
| struct | dhcpv6_status_code_option |
| DHCPv6 status code option. More... | |
| struct | dhcpv6_user_class |
| DHCPv6 user class. More... | |
| struct | dhcpv6_user_class_option |
| DHCPv6 user class option. More... | |
| union | dhcpv6_any_option |
| Any DHCPv6 option. More... | |
| struct | dhcpv6_header |
| A DHCPv6 header. More... | |
Macros | |
| #define | DHCPV6_SERVER_PORT 547 |
| DHCPv6 server port. | |
| #define | DHCPV6_CLIENT_PORT 546 |
| DHCPv6 client port. | |
| #define | DHCPV6_DUID_UUID 4 |
| DHCP unique identifier based on UUID (DUID-UUID) | |
| #define | DHCPV6_CLIENT_ID 1 |
| DHCPv6 client identifier option. | |
| #define | DHCPV6_SERVER_ID 2 |
| DHCPv6 server identifier option. | |
| #define | DHCPV6_IA_NA 3 |
| DHCPv6 identity association for non-temporary address (IA_NA) option. | |
| #define | DHCPV6_IAADDR 5 |
| DHCPv6 identity association address (IAADDR) option. | |
| #define | DHCPV6_OPTION_REQUEST 6 |
| DHCPv6 option request option. | |
| #define | DHCPV6_ELAPSED_TIME 8 |
| DHCPv6 elapsed time option. | |
| #define | DHCPV6_STATUS_CODE 13 |
| DHCPv6 status code option. | |
| #define | DHCPV6_USER_CLASS 15 |
| DHCPv6 user class option. | |
| #define | DHCPV6_VENDOR_CLASS 16 |
| DHCPv6 vendor class option. | |
| #define | DHCPV6_VENDOR_CLASS_PXE 343 |
| DHCPv6 PXE vendor class. | |
| #define | DHCPV6_DNS_SERVERS 23 |
| DHCPv6 DNS recursive name server option. | |
| #define | DHCPV6_DOMAIN_LIST 24 |
| DHCPv6 domain search list option. | |
| #define | DHCPV6_BOOTFILE_URL 59 |
| DHCPv6 bootfile URI option. | |
| #define | DHCPV6_BOOTFILE_PARAM 60 |
| DHCPv6 bootfile parameters option. | |
| #define | DHCPV6_CLIENT_ARCHITECTURE 61 |
| DHCPv6 client system architecture option. | |
| #define | DHCPV6_CLIENT_NDI 62 |
| DHCPv6 client network interface identifier option. | |
| #define | DHCPV6_LOG_SERVERS 0xffffffffUL |
| DHCPv6 syslog server option. | |
| #define | DHCPV6_BYTE_VALUE(value) |
| Construct a DHCPv6 byte value. | |
| #define | DHCPV6_WORD_VALUE(value) |
| Construct a DHCPv6 word value. | |
| #define | DHCPV6_DWORD_VALUE(value) |
| Construct a DHCPv6 dword value. | |
| #define | DHCPV6_CODE(code) |
| Construct a DHCPv6 option code. | |
| #define | DHCPV6_LEN(len) |
| Construct a DHCPv6 option length. | |
| #define | DHCPV6_OPTION(...) |
| Construct a DHCPv6 option from a list of bytes. | |
| #define | DHCPV6_STRING(...) |
| Construct a DHCPv6 option from a list of characters. | |
| #define | DHCPV6_BYTE(value) |
| Construct a byte-valued DHCPv6 option. | |
| #define | DHCPV6_WORD(value) |
| Construct a word-valued DHCPv6 option. | |
| #define | DHCPV6_DWORD(value) |
| Construct a dword-valued DHCPv6 option. | |
| #define | DHCPV6_SOLICIT 1 |
| DHCPv6 solicitation. | |
| #define | DHCPV6_ADVERTISE 2 |
| DHCPv6 advertisement. | |
| #define | DHCPV6_REQUEST 3 |
| DHCPv6 request. | |
| #define | DHCPV6_REPLY 7 |
| DHCPv6 reply. | |
| #define | DHCPV6_INFORMATION_REQUEST 11 |
| DHCPv6 information request. | |
| #define | DHCPV6_SETTINGS_NAME "dhcpv6" |
| DHCPv6 settings block name. | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| FILE_SECBOOT (PERMITTED) | |
| 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. | |
Dynamic Host Configuration Protocol for IPv6.
Definition in file dhcpv6.h.
| #define DHCPV6_SERVER_PORT 547 |
| #define DHCPV6_CLIENT_PORT 546 |
| #define DHCPV6_DUID_UUID 4 |
DHCP unique identifier based on UUID (DUID-UUID)
Definition at line 45 of file dhcpv6.h.
Referenced by start_dhcpv6().
| #define DHCPV6_CLIENT_ID 1 |
DHCPv6 client identifier option.
Definition at line 56 of file dhcpv6.h.
Referenced by dhcpv6_rx(), and dhcpv6_tx().
| #define DHCPV6_SERVER_ID 2 |
DHCPv6 server identifier option.
Definition at line 59 of file dhcpv6.h.
Referenced by dhcpv6_rx(), and dhcpv6_tx().
| #define DHCPV6_IA_NA 3 |
DHCPv6 identity association for non-temporary address (IA_NA) option.
Definition at line 76 of file dhcpv6.h.
Referenced by dhcpv6_iaaddr(), and dhcpv6_tx().
| #define DHCPV6_IAADDR 5 |
DHCPv6 identity association address (IAADDR) option.
Definition at line 93 of file dhcpv6.h.
Referenced by dhcpv6_iaaddr(), and dhcpv6_tx().
| #define DHCPV6_OPTION_REQUEST 6 |
| #define DHCPV6_ELAPSED_TIME 8 |
| #define DHCPV6_STATUS_CODE 13 |
DHCPv6 status code option.
Definition at line 128 of file dhcpv6.h.
Referenced by dhcpv6_status_code().
| #define DHCPV6_USER_CLASS 15 |
| #define DHCPV6_VENDOR_CLASS_PXE 343 |
DHCPv6 PXE vendor class.
The DHCPv6 vendor class includes a field for an IANA enterprise number. The EDK2 codebase uses the value 343, with the comment:
TODO: IANA TBD: temporarily using Intel's
Since this "temporarily" has applied since at least 2010, we assume that it has become a de facto standard.
| #define DHCPV6_DNS_SERVERS 23 |
DHCPv6 DNS recursive name server option.
Definition at line 165 of file dhcpv6.h.
Referenced by __setting().
| #define DHCPV6_DOMAIN_LIST 24 |
DHCPv6 domain search list option.
Definition at line 168 of file dhcpv6.h.
Referenced by __setting().
| #define DHCPV6_BOOTFILE_URL 59 |
| #define DHCPV6_BOOTFILE_PARAM 60 |
| #define DHCPV6_CLIENT_ARCHITECTURE 61 |
| #define DHCPV6_CLIENT_NDI 62 |
| #define DHCPV6_LOG_SERVERS 0xffffffffUL |
DHCPv6 syslog server option.
This option code has not yet been assigned by IANA. Please update this definition once an option code has been assigned.
Definition at line 187 of file dhcpv6.h.
Referenced by __setting().
| #define DHCPV6_BYTE_VALUE | ( | value | ) |
| #define DHCPV6_WORD_VALUE | ( | value | ) |
Construct a DHCPv6 word value.
Definition at line 193 of file dhcpv6.h.
| #define DHCPV6_DWORD_VALUE | ( | value | ) |
Construct a DHCPv6 dword value.
Definition at line 197 of file dhcpv6.h.
| #define DHCPV6_CODE | ( | code | ) |
Construct a DHCPv6 option code.
| #define DHCPV6_LEN | ( | len | ) |
Construct a DHCPv6 option length.
| #define DHCPV6_OPTION | ( | ... | ) |
Construct a DHCPv6 option from a list of bytes.
Definition at line 207 of file dhcpv6.h.
| #define DHCPV6_STRING | ( | ... | ) |
Construct a DHCPv6 option from a list of characters.
| #define DHCPV6_BYTE | ( | value | ) |
Construct a byte-valued DHCPv6 option.
| #define DHCPV6_WORD | ( | value | ) |
Construct a word-valued DHCPv6 option.
| #define DHCPV6_DWORD | ( | value | ) |
Construct a dword-valued DHCPv6 option.
| #define DHCPV6_SOLICIT 1 |
| #define DHCPV6_ADVERTISE 2 |
| #define DHCPV6_REQUEST 3 |
| #define DHCPV6_REPLY 7 |
| #define DHCPV6_INFORMATION_REQUEST 11 |
DHCPv6 information request.
Definition at line 263 of file dhcpv6.h.
Referenced by dhcpv6_type_name().
| #define DHCPV6_SETTINGS_NAME "dhcpv6" |
DHCPv6 settings block name.
Definition at line 266 of file dhcpv6.h.
Referenced by dhcpv6_register().
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
| FILE_SECBOOT | ( | PERMITTED | ) |
|
inlinestatic |
Construct all-DHCP-relay-agents-and-servers multicast address.
| addr | Zeroed address to construct |
Definition at line 273 of file dhcpv6.h.
Referenced by start_dhcpv6().
|
extern |
Start DHCPv6.
| job | Job control interface |
| netdev | Network device |
| router | Router address |
| stateful | Perform stateful address autoconfiguration |
| rc | Return status code |
Definition at line 1000 of file dhcpv6.c.
References AF_INET6, dhcpv6_session::client_duid, crc32_le(), currticks(), DBGC, DHCPV6_CLIENT_PORT, DHCPV6_DUID_UUID, dhcpv6_finished(), dhcpv6_free(), dhcpv6_information_request, dhcpv6_job_desc, DHCPV6_SERVER_PORT, dhcpv6_set_state(), dhcpv6_solicit, dhcpv6_timer_expired(), dhcpv6_xfer_desc, ENOMEM, fetch_uuid_setting(), htons, dhcpv6_session::iaid, intf_init(), intf_plug_plug(), ipv6_all_dhcp_relay_and_servers(), dhcpv6_session::job, len, ll_protocol::ll_addr_len, memcpy(), memset(), net_device::name, dhcpv6_session::netdev, netdev, netdev_get(), NULL, random(), rc, ref_init, ref_put, dhcpv6_session::refcnt, dhcpv6_session::router, sa, sin6, SOCK_DGRAM, dhcpv6_session::start, strerror(), dhcpv6_session::timer, dhcpv6_duid_uuid::type, dhcpv6_duid_uuid::uuid, dhcpv6_session::xfer, xfer_open_socket(), dhcpv6_session::xid, and zalloc().
Referenced by ipv6conf_rx_router_advertisement().