From 10b08b6790f300fc4f7e9d4bfab038b13b153373 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 13 Jan 2024 16:02:44 +0900 Subject: [PATCH] network/route-nexthop: drop unnecessary link arguments These arguments are unused now. --- src/network/networkd-route-nexthop.c | 52 ++++++++++------------------ src/network/networkd-route-nexthop.h | 6 ++-- src/network/networkd-route.c | 18 +++++----- 3 files changed, 30 insertions(+), 46 deletions(-) diff --git a/src/network/networkd-route-nexthop.c b/src/network/networkd-route-nexthop.c index eb90e79f9de..1524b23188d 100644 --- a/src/network/networkd-route-nexthop.c +++ b/src/network/networkd-route-nexthop.c @@ -341,7 +341,7 @@ int route_adjust_nexthops(Route *route, Link *link) { return true; /* updated */ } -int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh, Link **ret) { +int route_nexthop_get_link(Manager *manager, const RouteNextHop *nh, Link **ret) { assert(manager); assert(nh); @@ -350,20 +350,16 @@ int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh, if (nh->ifname) return link_get_by_name(manager, nh->ifname, ret); - if (link) { - if (ret) - *ret = link; - return 0; - } - return -ENOENT; } -static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Link *link, bool onlink) { +static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Manager *manager, bool onlink) { + Link *link; + assert(nh); - assert(link); + assert(manager); - if (route_nexthop_get_link(link->manager, link, nh, &link)) + if (route_nexthop_get_link(manager, nh, &link) < 0) return false; if (!link_is_ready_to_configure(link, /* allow_unmanaged = */ true)) @@ -377,13 +373,11 @@ static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Link *li return gateway_is_ready(link, onlink, nh->family, &nh->gw); } -int route_nexthops_is_ready_to_configure(const Route *route, Link *link) { +int route_nexthops_is_ready_to_configure(const Route *route, Manager *manager) { int r; assert(route); - assert(link); - - Manager *manager = ASSERT_PTR(link->manager); + assert(manager); if (route->nexthop_id != 0) { struct nexthop_grp *nhg; @@ -406,11 +400,11 @@ int route_nexthops_is_ready_to_configure(const Route *route, Link *link) { return true; if (ordered_set_isempty(route->nexthops)) - return route_nexthop_is_ready_to_configure(&route->nexthop, link, FLAGS_SET(route->flags, RTNH_F_ONLINK)); + return route_nexthop_is_ready_to_configure(&route->nexthop, manager, FLAGS_SET(route->flags, RTNH_F_ONLINK)); RouteNextHop *nh; ORDERED_SET_FOREACH(nh, route->nexthops) - if (!route_nexthop_is_ready_to_configure(nh, link, FLAGS_SET(route->flags, RTNH_F_ONLINK))) + if (!route_nexthop_is_ready_to_configure(nh, manager, FLAGS_SET(route->flags, RTNH_F_ONLINK))) return false; return true; @@ -481,7 +475,7 @@ int route_nexthops_to_string(const Route *route, char **ret) { return 0; } -static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop *nh, struct rtattr **rta, size_t offset) { +static int append_nexthop_one(const Route *route, const RouteNextHop *nh, struct rtattr **rta, size_t offset) { struct rtnexthop *rtnh; struct rtattr *new_rta; int r; @@ -492,15 +486,6 @@ static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop assert(rta); assert(*rta); - if (nh->ifindex <= 0) { - assert(link); - assert(link->manager); - - r = route_nexthop_get_link(link->manager, link, nh, &link); - if (r < 0) - return r; - } - new_rta = realloc(*rta, RTA_ALIGN((*rta)->rta_len) + RTA_SPACE(sizeof(struct rtnexthop))); if (!new_rta) return -ENOMEM; @@ -509,7 +494,7 @@ static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop rtnh = (struct rtnexthop *)((uint8_t *) *rta + offset); *rtnh = (struct rtnexthop) { .rtnh_len = sizeof(*rtnh), - .rtnh_ifindex = nh->ifindex > 0 ? nh->ifindex : link->ifindex, + .rtnh_ifindex = nh->ifindex, .rtnh_hops = nh->weight, }; @@ -547,7 +532,7 @@ clear: return r; } -static int netlink_message_append_multipath_route(Link *link, const Route *route, sd_netlink_message *message) { +static int netlink_message_append_multipath_route(const Route *route, sd_netlink_message *message) { _cleanup_free_ struct rtattr *rta = NULL; size_t offset; int r; @@ -566,7 +551,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route offset = (uint8_t *) RTA_DATA(rta) - (uint8_t *) rta; if (ordered_set_isempty(route->nexthops)) { - r = append_nexthop_one(link, route, &route->nexthop, &rta, offset); + r = append_nexthop_one(route, &route->nexthop, &rta, offset); if (r < 0) return r; @@ -575,7 +560,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route ORDERED_SET_FOREACH(nh, route->nexthops) { struct rtnexthop *rtnh; - r = append_nexthop_one(link, route, nh, &rta, offset); + r = append_nexthop_one(route, nh, &rta, offset); if (r < 0) return r; @@ -587,7 +572,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route return sd_netlink_message_append_data(message, RTA_MULTIPATH, RTA_DATA(rta), RTA_PAYLOAD(rta)); } -int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlink_message *message) { +int route_nexthops_set_netlink_message(const Route *route, sd_netlink_message *message) { int r; assert(route); @@ -619,10 +604,11 @@ int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlin return r; } - return sd_netlink_message_append_u32(message, RTA_OIF, route->nexthop.ifindex > 0 ? route->nexthop.ifindex : ASSERT_PTR(link)->ifindex); + assert(route->nexthop.ifindex > 0); + return sd_netlink_message_append_u32(message, RTA_OIF, route->nexthop.ifindex); } - return netlink_message_append_multipath_route(link, route, message); + return netlink_message_append_multipath_route(route, message); } static int route_parse_nexthops(Route *route, const struct rtnexthop *rtnh, size_t size) { diff --git a/src/network/networkd-route-nexthop.h b/src/network/networkd-route-nexthop.h index a63409c9e28..5e4602d3cd3 100644 --- a/src/network/networkd-route-nexthop.h +++ b/src/network/networkd-route-nexthop.h @@ -38,12 +38,12 @@ int route_nexthops_copy(const Route *src, const RouteNextHop *nh, Route *dest); bool route_nexthops_needs_adjust(const Route *route); int route_adjust_nexthops(Route *route, Link *link); -int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh, Link **ret); -int route_nexthops_is_ready_to_configure(const Route *route, Link *link); +int route_nexthop_get_link(Manager *manager, const RouteNextHop *nh, Link **ret); +int route_nexthops_is_ready_to_configure(const Route *route, Manager *manager); int route_nexthops_to_string(const Route *route, char **ret); -int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlink_message *message); +int route_nexthops_set_netlink_message(const Route *route, sd_netlink_message *message); int route_nexthops_read_netlink_message(Route *route, sd_netlink_message *message); int route_section_verify_nexthops(Route *route); diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index c3a0d30cca4..a142719fb74 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -271,7 +271,7 @@ static int route_add(Manager *manager, Route *route) { assert(!route->wireguard); Link *link; - if (route_nexthop_get_link(manager, NULL, &route->nexthop, &link) >= 0) { + if (route_nexthop_get_link(manager, &route->nexthop, &link) >= 0) { r = set_ensure_put(&link->routes, &route_hash_ops, route); if (r < 0) return r; @@ -299,7 +299,7 @@ int route_get(Manager *manager, Link *link, const Route *route, Route **ret) { manager = ASSERT_PTR(ASSERT_PTR(link)->manager); assert(route); - if (route_nexthop_get_link(manager, NULL, &route->nexthop, &link) >= 0) + if (route_nexthop_get_link(manager, &route->nexthop, &link) >= 0) existing = set_get(link->routes, route); else existing = set_get(manager->routes, route); @@ -328,7 +328,7 @@ static int route_get_link(Manager *manager, const Route *route, Link **ret) { return link_get_by_index(manager, nh->ifindex, ret); } - return route_nexthop_get_link(manager, NULL, &route->nexthop, ret); + return route_nexthop_get_link(manager, &route->nexthop, ret); } static int route_get_request(Manager *manager, const Route *route, Request **ret) { @@ -440,14 +440,12 @@ static void log_route_debug(const Route *route, const char *str, Manager *manage strna(proto), strna(scope), strna(route_type_to_string(route->type)), strna(flags)); } -static int route_set_netlink_message(const Route *route, sd_netlink_message *m, Link *link) { +static int route_set_netlink_message(const Route *route, sd_netlink_message *m) { int r; assert(route); assert(m); - /* link may be NULL */ - /* rtmsg header (and relevant attributes) */ if (route->dst_prefixlen > 0) { r = netlink_message_append_in_addr_union(m, RTA_DST, route->family, &route->dst); @@ -516,7 +514,7 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *m, return r; /* nexthops */ - r = route_nexthops_set_netlink_message(link, route, m); + r = route_nexthops_set_netlink_message(route, m); if (r < 0) return r; @@ -563,7 +561,7 @@ int route_remove(Route *route) { if (r < 0) return log_link_warning_errno(link, r, "Could not create netlink message: %m"); - r = route_set_netlink_message(route, m, link); + r = route_set_netlink_message(route, m); if (r < 0) return log_link_warning_errno(link, r, "Could not fill netlink message: %m"); @@ -902,7 +900,7 @@ static int route_configure(const Route *route, uint32_t lifetime_sec, Link *link if (r < 0) return r; - r = route_set_netlink_message(route, m, link); + r = route_set_netlink_message(route, m); if (r < 0) return r; @@ -991,7 +989,7 @@ static int route_is_ready_to_configure(const Route *route, Link *link) { return r; } - return route_nexthops_is_ready_to_configure(route, link); + return route_nexthops_is_ready_to_configure(route, link->manager); } static int route_process_request(Request *req, Link *link, Route *route) { -- 2.39.5