<p dir="ltr"><br>
On 30 May 2014 10:12, "Patrik Flykt" <<a href="mailto:Patrik.Flykt@linux.intel.com">Patrik.Flykt@linux.intel.com</a>> wrote:<br>
><br>
> On Thu, 2014-05-29 at 00:03 +0100, Tom Gundersen wrote:<br>
> > On Wed, May 28, 2014 at 7:43 PM, Camilo Aguilar<br>
> > <<a href="mailto:camilo.aguilar@gmail.com">camilo.aguilar@gmail.com</a>> wrote:<br>
> > > In systems running on hypervisors this flag needs to be set ON, so offers can reach<br>
> > > the virtual machines.<br>
> > ><br>
> > > For more information please refer to this thread in CoreOS: <a href="https://github.com/coreos/bugs/issues/12">https://github.com/coreos/bugs/issues/12</a><br>
> > ><br>
> > > Signed-off-by: Camilo Aguilar <<a href="mailto:camilo.aguilar@gmail.com">camilo.aguilar@gmail.com</a>><br>
> > > ---<br>
> > >  src/libsystemd-network/sd-dhcp-client.c | 9 +++++++++<br>
> > >  1 file changed, 9 insertions(+)<br>
> > ><br>
> > > diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c<br>
> > > index 0300a6b..8f54906 100644<br>
> > > --- a/src/libsystemd-network/sd-dhcp-client.c<br>
> > > +++ b/src/libsystemd-network/sd-dhcp-client.c<br>
> > > @@ -286,6 +286,15 @@ static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret,<br>
> > >             refuse to issue an DHCP lease if 'secs' is set to zero */<br>
> > >          packet->dhcp.secs = htobe16(client->secs);<br>
> > ><br>
> > > +        /* RFC2132 section 4.1<br>
> > > +           A client that cannot receive unicast IP datagrams until its protocol<br>
> > > +           software has been configured with an IP address SHOULD set the<br>
> > > +           BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or<br>
> > > +           DHCPREQUEST messages that client sends.  The BROADCAST bit will<br>
> > > +           provide a hint to the DHCP server and BOOTP relay agent to broadcast<br>
> > > +           any messages to the client on the client's subnet. */<br>
> > > +        packet->dhcp.flags = htobe16(0x8000);<br>
> ><br>
> > Hm, most clients can and should use unicast, so we should definitely<br>
> > not request broadcast unconditionally. If there really is a situation<br>
> > where we need broadcast, we should detect that and only request<br>
> > broadcast in this case.<br>
> ><br>
> > Does that make sense?<br>
><br>
> Actually, I have had recent reports from users that there seems to exist<br>
> a category of networking devices</p>
<p dir="ltr">Do you have any more info on this by any chance? Any way we may classify these devices in a robust way?</p>
<p dir="ltr">> which discard DHCPv4 messages unless<br>
> the messages are sent by broadcast. The users say that forcing the<br>
> DHCPv4 clients to use broadcast fixes the problem.<br>
><br>
> I recently added a patch to ConnMan that always requests broadcast<br>
> replies when it is sending broadcast itself. That means broadcast<br>
> DHCPDiscover - DHCPOffer messages as well as DHCPRequest - DHCPAck/Nak<br>
> messages in Requesting and Rebinding states. Unicast is used for most of<br>
> the normal message sending in the Renewing state. This way not every<br>
> message is broadcast and if unicast messages disappear, there is always<br>
> Rebinding that gets through before lease expiry. Should we do the same<br>
> thing in networkd?<br>
><br>
><br>
> Cheers,<br>
><br>
>         Patrik<br>
><br>
</p>