summaryrefslogtreecommitdiffhomepage
path: root/dhcpv6/dhcpv6message.go
AgeCommit message (Collapse)Author
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
2018-05-02UpdateOption now adds the option if missing (#55)insomniac
2018-05-02ClientID and ServerID are now public, with no setter/getter (#52)insomniac
2018-04-30add NewReplyFromRequest (#51)Pablo Mazzini
2018-04-30add NewAdvertiseFromSolicit (#50)Pablo Mazzini
add NewAdvertiseFromSolicit
2018-04-20dhcpv6: added modifiers (#41)insomniac
dhcpv6: added modifiers Added support for packet modifiers, i.e. functions that can arbitrarily manipulate a DHCPv6 packet. These modifiers are used by NewMessage, NewSolicitForInterface, NewRequestForAdvertise, and can be used by other packet creation functions. A bunch of sample modifiers have been added under modifiers.go , too. With the introduction of modifiers I also removed some options that should not necessarily be in a standard DHCPv6 message.
2018-04-19OptArchType: made field publicAndrea Barberio
2018-04-17dhcpv6: added DHCPv6Message.UpdateOptionAndrea Barberio
2017-12-13Added option NIIAndrea Barberio
2017-12-11Changed fixed IAID valueAndrea Barberio
2017-12-11Readded missing commentAndrea Barberio
2017-12-11Added OptClientArchTypeAndrea Barberio
2017-12-11Refactored REQUEST code into NewRequestFromAdvertiseAndrea Barberio
2017-12-10Added GetOption, GetOneOption and IsRelay methods to DHCPv6 interfaceAndrea Barberio
2017-12-10Added DHCPv6.Option() to interface, and implemented where missingAndrea Barberio
2017-12-08Added DHCPv6.Length() and improved relay msg parsingAndrea Barberio
2017-12-07Refactored options into the dhcpv6 package to resolve circular imports. Sadly.Andrea Barberio
2017-12-07Relay message options instead of a raw byte sequenceAndrea Barberio