summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/dhcpv6message.go
AgeCommit message (Collapse)Author
2020-04-21Generate new TransactionID for RequestTom McPhail
Signed-off-by: Tom McPhail <tom.mcphail@icloud.com>
2020-03-11v6: rename IAPD option to be shorterChris Koch
Also removes superfluous GetOne/Del proxy functions. Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-10dhcpv6: add IA_PD to request from advertiseMikael Magnusson
Add the IA_PD option to the request from the advertise if present. Add WithIAPD() as modifier and test. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2020-03-09Merge branch 'master' into vendorsPablo Mazzini
2020-03-09Merge branch 'master' into feature/dhcp4-o-dhcp6Pablo Mazzini
2020-03-06dhcp6: fix VendorOpts getterChris Koch
RFC 8415 Section 21.17 states it may appear more than once: Multiple instances of the Vendor-specific Information option may appear in a DHCP message. Each instance of the option is interpreted according to the option codes defined by the vendor identified by the Enterprise Number in that option. Servers and clients MUST NOT send more than one instance of the Vendor-specific Information option with the same Enterprise Number. Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-06[dhcpv6] More getters for MessageOptionsAndrea Barberio
Added IAAddress, OneIAAddress, UserClasses, VendorOpts, and changed Options to MessageOptions in IA_NA and IA_Address options. Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2020-03-06dhcpv6: add DHCPv4-over-DHCPv6 supportMikael Magnusson
Add message types, options, and modifier for handling DHCPv4-over-DHCPv6. Refer to RFC 7341 Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2020-03-05v6: DomainSearchList getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add FQDN option getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add IAPD getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: merge multiple OptionOROsChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add BootFileParam getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add ElapsedTime getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add BootFileURL getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add DNS getter (and rename DNSRecursiveNameServer to DNS)Chris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: RequestedOptions getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: Status getter for message optionsChris Koch
Status Code is one of the few options used across many Option types. Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add IANA GetterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add ServerID getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05v6: add ClientID getterChris Koch
Signed-off-by: Chris Koch <chrisko@google.com>
2020-03-05dhcpv6: intro Getters for OptionsChris Koch
Allow the Options type to have getters for each specific options, in order to avoid users having to cast options to their specific type. This commit introduces a getter for exactly one option: the ClientArchType. i.e. users can replace archTypes := msg.GetOneOption(OptionClientArchType).(*OptClientArchType) with archTypes := msg.Options.ArchTypes() Because a few message types and options embed options (normal message, relay message, IANA/IATA option) and each have a restricted set of options that can be used inside them, we'll introduce at least 3 or more Options subtypes: - MessageOptions - RelayOptions - IdentityOptions Perhaps others will join at a later time, such as VendorOptions or AddressOptions for the IAAddress options field. Signed-off-by: Chris Koch <chrisko@google.com>
2019-05-02[dhcpv6] Handle SOLICIT with rapid commit in NewReplyFromMessageAndrea Barberio
NewReplyFromMessage creates a reply from a message. With this patch it can handle Solicit messages with rapid-commit. RFC3315 states that: ``` If the client has included a Rapid Commit option in its Solicit message, the client terminates the waiting process as soon as a Reply message with a Rapid Commit option is received. ``` Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-04-24[dhcpv6] Solicit messages derive default IAID from MAC addressAndrea Barberio
IAID must be set by the client. This patch generates the IAID from the MAC address of the interface. To do so, a new WithIAID modifier is added, the interface of NewSolicitWithCID now requires a hwaddr parameter, and NewAdvertiseFromSolicit copies the IA_NA option from the solicit if present. Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-04-23Revert "[dhcpv6] Solicit messages derive default IAID from MAC address"Andrea Barberio
This reverts commit b071bdc86a58037f6c745647c97fca202f3caef9. Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-04-23[dhcpv6] Solicit messages derive default IAID from MAC addressAndrea Barberio
IAID must be set by the client. This patch generates the IAID from the MAC address of the interface. To do so, a new WithIAID modifier is added, the interface of NewSolicitWithCID now requires a hwaddr parameter, and NewAdvertiseFromSolicit copies the IA_NA option from the solicit if present. Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-04-04client6: new async DHCPv6 client like #250.Christopher Koch
- Race-condition-averse. - Supports multiple concurrent requests. - Tested. - Requires a fully compatible net.PacketConn. Signed-off-by: Christopher Koch <chrisko@google.com>
2019-04-03Use cancellable crypto RNG from u-rootAndrea Barberio
Fixes #246 Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-03-11dhcpv6: standardize GetInnerMessageChristopher Koch
2019-03-11dhcpv6: remove setters and getters.Christopher Koch
- Make members directly accessible.
2019-03-11dhcpv6: rename stuttering types.Christopher Koch
dhcpv6.DHCPv6Message -> dhcpv6.Message dhcpv6.DHCPv6Relay -> dhcpv6.RelayMessage
2019-01-26dhcpv6: remove unnecessary Length functionChristopher Koch
2019-01-26dhcpv6: move option code and length marshaling to Options.ToBytes.Christopher Koch
2019-01-26dhcpv6: use uio buffer in DHCPv6 message parsingChristopher Koch
2019-01-26dhcpv6: introduce TransactionID typeChristopher Koch
2019-01-26dhcpv6: introduce options type.Christopher Koch
2019-01-14iana: rename HwTypeType to HWType, add package comment.Christopher Koch
2018-12-08Added netconf v4 tests and required modifiersAndrea Barberio
2018-11-27Test TransactionID generationMikołaj Walczak
2018-11-26Add missing error check in GenerateTransactionIDMikołaj Walczak
2018-10-15Added String methods for types (#175)Pablo Mazzini
2018-09-12NewReplyFromDHCPv6Message: reply to information requestPablo Mazzini
2018-08-21Remove depracated function calls from the library (#145)Mikołaj Walczak
2018-08-12IsOptionRequested method of DHCPv6MessagePablo Mazzini
2018-07-30DHCPv6: Rename Option constants to CamelCaseSean Karlage
To appease linters
2018-07-29DHCPv6: Fix message type constantsSean Karlage
Renames DHCPv6 constants for message types to CamelCase
2018-07-11NewSolicitWithCID for DHCPv6 (#76)Mikołaj Walczak
2018-07-08add NewReplyFromDHCPv6Message (#78)Pablo Mazzini
Add a more generic NewReplyFromMessage to avoid code duplication. This is one step closer towards fixing issue #73. Leave NewReplyFromRequest, NewReplyFromRenew and NewReplyFromRebind for backwards compatibility.
2018-06-11add NewReplyFromRenew and NewReplyFromRebind (#72)Pablo Mazzini
2018-05-20OptIANA and OptElapsedTime now have public fieldsAndrea Barberio