udhcpc6: add some comments
No binary (build failed)
—
(log yok)
| @@ -63,28 +63,45 @@ struct d6_option { | |
| #define D6_OPT_CLIENTID 1 | |
| #define D6_OPT_SERVERID 2 | |
| + | /* "Identity Association for Non-temporary Addresses", |
| + | * also known as a "network interface" in plain English */ |
| #define D6_OPT_IA_NA 3 | |
| - | #define D6_OPT_IA_TA 4 |
| + | /* "Identity Association for the Temporary Addresses". |
| + | * Presumably this is a "network interface with only link-local addresses". |
| + | * Why would DHCPv6 server assign such addresses, I have no idea. */ |
| + | //#define D6_OPT_IA_TA 4 |
| + | /* "IA Address", an IPv6 address */ |
| #define D6_OPT_IAADDR 5 | |
| + | /* Option "Option Request Option". From the owners of a doggy dog named Dog? */ |
| #define D6_OPT_ORO 6 | |
| - | #define D6_OPT_PREFERENCE 7 |
| + | //#define D6_OPT_PREFERENCE 7 |
| #define D6_OPT_ELAPSED_TIME 8 | |
| - | #define D6_OPT_RELAY_MSG 9 |
| - | #define D6_OPT_AUTH 11 |
| - | #define D6_OPT_UNICAST 12 |
| + | //#define D6_OPT_RELAY_MSG 9 |
| + | //#define D6_OPT_AUTH 11 |
| + | /* "The server sends this option to a client to indicate to the client |
| + | * that it is allowed to unicast messages to the server." |
| + | * Contains IPv6 address to send packets to. */ |
| + | //#define D6_OPT_UNICAST 12 |
| + | /* "A Status Code option may appear in the options field of a DHCP |
| + | * message and/or in the options field of another option." */ |
| #define D6_OPT_STATUS_CODE 13 | |
| - | #define D6_OPT_RAPID_COMMIT 14 |
| - | #define D6_OPT_USER_CLASS 15 |
| - | #define D6_OPT_VENDOR_CLASS 16 |
| - | #define D6_OPT_VENDOR_OPTS 17 |
| - | #define D6_OPT_INTERFACE_ID 18 |
| - | #define D6_OPT_RECONF_MSG 19 |
| - | #define D6_OPT_RECONF_ACCEPT 20 |
| + | /* "A client MAY include this option in a Solicit message if the client |
| + | * is prepared to perform the Solicit-Reply message exchange..." */ |
| + | //#define D6_OPT_RAPID_COMMIT 14 /* zero-length option */ |
| + | //#define D6_OPT_USER_CLASS 15 |
| + | //#define D6_OPT_VENDOR_CLASS 16 |
| + | //#define D6_OPT_VENDOR_OPTS 17 |
| + | //#define D6_OPT_INTERFACE_ID 18 |
| + | //#define D6_OPT_RECONF_MSG 19 |
| + | //#define D6_OPT_RECONF_ACCEPT 20 |
| #define D6_OPT_DNS_SERVERS 23 | |
| #define D6_OPT_DOMAIN_LIST 24 | |
| + | /* RFC 3633 "Identity Association for Prefix Delegation". |
| + | * This option says that client wants to get an IPv6 prefix */ |
| #define D6_OPT_IA_PD 25 | |
| + | /* Response from the server comes in this one */ |
| #define D6_OPT_IAPREFIX 26 | |
| /* RFC 4704 "The DHCPv6 Client FQDN Option" | |
| @@ -1617,6 +1617,16 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv) | |
| prefix_timeout = 0; | |
| option = d6_find_option(packet.d6_options, packet_end, D6_OPT_STATUS_CODE); | |
| if (option && (option->data[0] | option->data[1]) != 0) { | |
| + | ///FIXME: |
| + | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| + | // | OPTION_STATUS_CODE | option-len | |
| + | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| + | // | status-code | | |
| + | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| + | // . status-message . |
| + | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| + | // so why do we think it's NAK if data[0] is zero but data[1] is not? That's wrong... |
| + | // we should also check that option->len is ok (i.e. not 0), right? |
| /* return to init state */ | |
| bb_info_msg("received DHCP NAK (%u)", option->data[4]); | |
| d6_run_script(packet.d6_options, | |