networkd-ndisc: Don't add NDisc route for local address (#4467)

System Internals / systemd - Patrik Flykt [linux.intel.com] - 24 October 2016 06:44 UTC

When systemd-networkd is run on the same IPv6 enabled interface where radvd is announcing prefixes, a route is being set up pointing to the interface address. As this will fail with an invalid argument error, the link is marked as failed and the following message like the following will appear in in the logs:

systemd-networkd[21459]: eth1: Could not set NDisc route or address: Invalid argument systemd-networkd[21459]: eth1: Failed

Should the interface be required by systemd-networkd-wait-online, network-online.target will wait until its timeout hits thereby significantly delaying system startup.

The fix is to check whether the gateway address obtained from NDisc messages is equal to any of the interface addresses on the same link and not set the NDisc route in that case.

6d7c761 networkd-ndisc: Don't add NDisc route for local address (#4467)
src/network/networkd-ndisc.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Upstream: github.com


  • Share