code: func (c *Client) RequestPacket(offer *dhcp4.Packet) *dhcp4.Packet {
  	packet := dhcp4.NewPacket(dhcp4.BootRequest)
  
  	packet.CHAddr = c.iface.Attrs().HardwareAddr
  	packet.TransactionID = offer.TransactionID
  	packet.CIAddr = offer.CIAddr
  	packet.SIAddr = offer.SIAddr
  	packet.Broadcast = true
  
  	packet.Options.Add(dhcp4.OptionDHCPMessageType, dhcp4opts.DHCPRequest)
  	packet.Options.Add(dhcp4.OptionMaximumDHCPMessageSize, dhcp4opts.Uint16(maxMessageSize))
  	// Request the offered IP address.
  	packet.Options.Add(dhcp4.OptionRequestedIPAddress, dhcp4opts.IP(offer.YIAddr))
  
  	sid := dhcp4opts.GetServerIdentifier(offer.Options)
  	if sid != nil {
  		packet.Options.Add(dhcp4.OptionServerIdentifier, dhcp4opts.IP(sid))
  	}
  	return packet
  }
docs: // RequestPacket returns a valid DHCPRequest packet for the given offer.
  //
  // TODO: Look at RFC and confirm.