On Fri, Dec 20, 2013 at 6:47 PM, Marcel Holtmann <[email protected]> wrote:
> Hi Tom,
>
>>>> The first seven patches fix a few issues with the current code.
>>>>
>>>> Patch 09 adds DHCP lease renewing support when timer T1 triggers. Using
>>>> the UDP socket sending implementation in patch 08, the DHCP lease
>>>> renewal is unicasted to the DHCP server. This means that systemd-network
>>>> should have applied the acquired IP address and default route to the
>>>> proper interface before timer T1 triggers.
>>>
>>> this could become racy and we might end up in funny cases if the lease is 
>>> really small. I think networkd and the DHCP need some way of communicating 
>>> a) I set the IP you told me and/or b) we have T1 triggering, have you set 
>>> the address or should I just redo the DHCP process.
>>
>> Makes sense to me for networkd to call (something like)
>> sd_dhcp_client_address_configured(client, true) whenever it has
>> successfully set the addresses/routes. I.e., I'd go with option (a).
>> Or is there a reason to go with (b) that I'm not seeing?
>
> the case I see is that T1 is triggered, but the IP address is not set. Then 
> of course we should not be setting it anymore since it might not stay valid.
>
> However this could be done by DHCP itself just deciding that if 
> client_address_configured is not called by the the time T1 expired, let the 
> DHCP code redo the DHCP discovery.

Yeah, that makes sense.

> For good measure we should have warnings in the code for these unlikely race 
> scenarios and see if someone is actually able to trigger them. With ConnMan, 
> I do not recall we had bug reports of this. However we do not know what funny 
> cases happen with virtualization and containers.

Agreed.

-t
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to