]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/network/networkd-route.c
network/route: manage all routes by Manager object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 14 Jan 2024 05:20:03 +0000 (14:20 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 24 Jan 2024 12:52:33 +0000 (21:52 +0900)
commit8d01e44c1f0e00b414d36bd1b46ecff548242208
tree44d9ca0329e1287d6778e0b569c4839f8839a197
parentbd922111fd752fe39f1bb31a1ff7658d1a5db3ca
network/route: manage all routes by Manager object

Previously, a Route object is owned by a Link object corresponding to the
outgoing interface of the route, and a Route object that does not have
outgoing interface is owned by the Manager object.

However, there were several issues:
- if a route has a nexthop ID, then the corresponding nexthop may be
  changed to use another interface, hence the outgoing interface of the
  route may be changed.
- if a route requested with MultiPathRoute=, then the link who requests
  the route is different from the outgoing interface of the configured
  route. So, we need to find routes on other interfaces on reconfiguring
  or so.

By this change, the limit of the number of routes per-interface is
tentatively dropped. Let's re-introduce the limit later in a nicer way.
src/network/networkd-address.c
src/network/networkd-dhcp-prefix-delegation.c
src/network/networkd-dhcp4.c
src/network/networkd-dhcp6.c
src/network/networkd-json.c
src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-ndisc.c
src/network/networkd-route-util.c
src/network/networkd-route.c
src/network/networkd-route.h