Age | Commit message (Collapse) | Author |
|
Fix typo in MessageOptions.IATA(). Add iaid argument to WithIATA() to
allow it to be set easily in line with WithIAPD(). Add a test for
WithIATA(),
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
Co-authored-by: Mikael Magnusson <mikma@users.sourceforge.net>
Co-authored-by: Pablo Mazzini <pmazzini@gmail.com>
|
|
OptInformationRefreshTime (32) https://tools.ietf.org/html/rfc8415#section-21.23
Signed-off-by: Tom McPhail <tom.mcphail@icloud.com>
|
|
This creates support for IA_TA options, based on and reusing the blocks
from IA_NA, to which it is extremely similar
Signed-off-by: Anatole Denis <natolumin@unverle.fr>
|
|
Signed-off-by: Tom McPhail <tom.mcphail@icloud.com>
|
|
IAPD has PDOptions which allows IAPrefix and StatusCode.
IAPrefix has PrefixOptions which allow StatusCode.
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
|
|
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>
|
|
|
|
IANA and IATA options may contain Status Code and IAAddr options.
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Add message types, options, and modifier for handling DHCPv4-over-DHCPv6.
Refer to RFC 7341
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
Signed-off-by: Chris Koch <chrisko@google.com>
|
|
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>
|
|
per https://tools.ietf.org/rfc/rfc4704.txt
Signed-off-by: Xuehao (David) Hu <xuehaohu@google.com>
|
|
Mostly for dead code and potentially wrong comparisons.
Signed-off-by: Andrea Barberio <insomniac@slackware.it>
|
|
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>
|
|
This reverts commit b071bdc86a58037f6c745647c97fca202f3caef9.
Signed-off-by: Andrea Barberio <insomniac@slackware.it>
|
|
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>
|
|
- Race-condition-averse.
- Supports multiple concurrent requests.
- Tested.
- Requires a fully compatible net.PacketConn.
Signed-off-by: Christopher Koch <chrisko@google.com>
|
|
- Make members directly accessible.
|
|
dhcpv6.DHCPv6Message -> dhcpv6.Message
dhcpv6.DHCPv6Relay -> dhcpv6.RelayMessage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To appease linters
|
|
|
|
dhcpv6: option userclass: supporting multiple user classes
|
|
|
|
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.
|