network/route-nexthop: drop unnecessary link arguments

These arguments are unused now.
This commit is contained in:
Yu Watanabe
2024-01-19 19:20:29 +09:00
parent 5a18697d61
commit 10b08b6790
3 changed files with 31 additions and 47 deletions
+20 -34
View File
@@ -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) {
assert(nh);
assert(link);
static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Manager *manager, bool onlink) {
Link *link;
if (route_nexthop_get_link(link->manager, link, nh, &link))
assert(nh);
assert(manager);
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) {
+3 -3
View File
@@ -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);
+8 -10
View File
@@ -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) {