[systemd-devel] [PATCH] sd-dhcp-client: Sets broadcast flag to 1

Tom Gundersen teg at jklm.no
Wed May 28 16:03:06 PDT 2014


On Wed, May 28, 2014 at 7:43 PM, Camilo Aguilar
<camilo.aguilar at gmail.com> wrote:
> In systems running on hypervisors this flag needs to be set ON, so offers can reach
> the virtual machines.
>
> For more information please refer to this thread in CoreOS: https://github.com/coreos/bugs/issues/12
>
> Signed-off-by: Camilo Aguilar <camilo.aguilar at gmail.com>
> ---
>  src/libsystemd-network/sd-dhcp-client.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
> index 0300a6b..8f54906 100644
> --- a/src/libsystemd-network/sd-dhcp-client.c
> +++ b/src/libsystemd-network/sd-dhcp-client.c
> @@ -286,6 +286,15 @@ static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret,
>             refuse to issue an DHCP lease if 'secs' is set to zero */
>          packet->dhcp.secs = htobe16(client->secs);
>
> +        /* RFC2132 section 4.1
> +           A client that cannot receive unicast IP datagrams until its protocol
> +           software has been configured with an IP address SHOULD set the
> +           BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or
> +           DHCPREQUEST messages that client sends.  The BROADCAST bit will
> +           provide a hint to the DHCP server and BOOTP relay agent to broadcast
> +           any messages to the client on the client's subnet. */
> +        packet->dhcp.flags = htobe16(0x8000);

Hm, most clients can and should use unicast, so we should definitely
not request broadcast unconditionally. If there really is a situation
where we need broadcast, we should detect that and only request
broadcast in this case.

Does that make sense?

Cheers,

Tom

>          /* RFC2132 section 4.1.1:
>             The client MUST include its hardware address in the ’chaddr’ field, if
>             necessary for delivery of DHCP reply messages.
> --
> 1.8.5.2 (Apple Git-48)
>
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>


More information about the systemd-devel mailing list