From 19ee83379cf483ab151dd1ad4e36d09483d6a223 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Wed, 4 Mar 2020 21:43:00 +0100 Subject: dhcpv6: add DHCPv4-over-DHCPv6 support Add message types, options, and modifier for handling DHCPv4-over-DHCPv6. Refer to RFC 7341 Signed-off-by: Mikael Magnusson --- dhcpv6/option_dhcpv4_msg.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 dhcpv6/option_dhcpv4_msg.go (limited to 'dhcpv6/option_dhcpv4_msg.go') diff --git a/dhcpv6/option_dhcpv4_msg.go b/dhcpv6/option_dhcpv4_msg.go new file mode 100644 index 0000000..0a1a2b3 --- /dev/null +++ b/dhcpv6/option_dhcpv4_msg.go @@ -0,0 +1,39 @@ +package dhcpv6 + +import ( + "fmt" + + "github.com/insomniacslk/dhcp/dhcpv4" +) + +// OptDHCPv4Msg represents a OptionDHCPv4Msg option +// +// This module defines the OptDHCPv4Msg structure. +// https://www.ietf.org/rfc/rfc7341.txt +type OptDHCPv4Msg struct { + Msg *dhcpv4.DHCPv4 +} + +// Code returns the option code +func (op *OptDHCPv4Msg) Code() OptionCode { + return OptionDHCPv4Msg +} + +// ToBytes returns the option serialized to bytes. +func (op *OptDHCPv4Msg) ToBytes() []byte { + return op.Msg.ToBytes() +} + +func (op *OptDHCPv4Msg) String() string { + return fmt.Sprintf("OptDHCPv4Msg{%v}", op.Msg) +} + +// ParseOptDHCPv4Msg builds an OptDHCPv4Msg structure +// from a sequence of bytes. The input data does not include option code and length +// bytes. +func ParseOptDHCPv4Msg(data []byte) (*OptDHCPv4Msg, error) { + var opt OptDHCPv4Msg + var err error + opt.Msg, err = dhcpv4.FromBytes(data) + return &opt, err +} -- cgit v1.2.3