[systemd-devel] systemd-networkd bridge with DHCP not working

Tom Gundersen teg at jklm.no
Fri Mar 21 03:41:06 PDT 2014


On Fri, Mar 21, 2014 at 8:51 AM, Umut Tezduyar Lindskog
<umut at tezduyar.com> wrote:
> On Thu, Mar 20, 2014 at 8:29 PM, Tom Gundersen <teg at jklm.no> wrote:
>> On Wed, Mar 19, 2014 at 2:09 PM, Tom Gundersen <teg at jklm.no> wrote:
>>> On Wed, Mar 19, 2014 at 1:25 PM, poma <pomidorabelisima at gmail.com> wrote:
>>>> Still the same issue, DHCPC starts too early, before the correct MAC
>>>> address is set for the bridge.
>>>>
>>>> git 7bf2f4397255bc8f6cf20a0f2adab4c984ea7d14
>>>
>>> I haven't yet gotten around to this. We probably should just restart
>>> the dhcp client if the mac address changes, for whatever reason.
>>> Unless anyone else has a better idea.
>>
>> Adding Umut as well as this problem is the same in sd-ipv4ll.
>>
>> I have now shuffled the code around a bit in git to give a clearer
>> error message when this problem is encountered. The underlying problem
>> remains though.
>>
>> My proposal is:
>>
>> Whenever the MAC address changes under us networkd calls
>> sd_{dhcp_client,ipv4ll}_set_mac(), and it is the libs' responsibility
>> to then do the right thing.
>>
>> Currently the libs don't support this and will fail with EBUSY, so I
>> suggest we change that into letting them restart themselves
>> internally, and send out notifications that the lease has been lost
>> (so networkd will drop the addresses correctly, if it has any
>> assigned).
>>
>> Umut, Patrik, what do you think?
>
> I think it is absolutely necessary to restart ipv4ll because ipv4ll
> checks for address collisions based on the link's mac address.
>
> Is there a specific reason why you don't prefer using the APIs in
> manager instead of library making decisions.

We could do either, but I thought it would be nicer to keep the magic
hidden in the library if possible.

-t


More information about the systemd-devel mailing list