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