On Thu, Sep 18, 2025 at 06:33:50PM +0200, Stefano Brivio wrote:
The kernel doesn't like those (EINVAL) on RTM_NEWROUTE, as they are flags representing states, not configuration.
Link: https://github.com/containers/podman/discussions/27104 Signed-off-by: Stefano Brivio
Aha!, nice catch.
Reviewed-by: David Gibson
--- netlink.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/netlink.c b/netlink.c index 8f82e73..c436780 100644 --- a/netlink.c +++ b/netlink.c @@ -565,6 +565,11 @@ int nl_route_dup(int s_src, unsigned int ifi_src, if (nh->nlmsg_type != RTM_NEWROUTE) continue;
+ /* nexthop state flags don't apply to freshly created routes, + * and the kernel will refuse our route if they are set. + */ + rtm->rtm_flags &= ~RTNH_COMPARE_MASK; + for (rta = RTM_RTA(rtm), na = RTM_PAYLOAD(nh); RTA_OK(rta, na); rta = RTA_NEXT(rta, na)) { /* RTA_OIF and RTA_MULTIPATH attributes carry the -- 2.43.0
-- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson