On Mon, 10 Jun 2019 23:53:15 +0200 Stefano Brivio <sbri...@redhat.com> wrote:
> On Mon, 10 Jun 2019 15:38:06 -0600 > David Ahern <dsah...@gmail.com> wrote: > > > in dot releases of stable trees, I think it would be better to converge > > on consistent behavior between v4 and v6. By that I mean without the > > CLONED flag, no exceptions are returned (default FIB dump). With the > > CLONED flag only exceptions are returned. > > Again, this needs a change in iproute2, because RTM_F_CLONED is *not* > passed on 'flush'. And sure, let's *also* do that, but not everybody > runs recent versions of iproute2. One thing that sounds a bit more acceptable to me is: - dump (in IPv4 and IPv6): - regular routes only, if !RTM_F_CLONED and NLM_F_MATCH - exceptions only, if RTM_F_CLONED and NLM_F_MATCH - everything if !NLM_F_MATCH - fix iproute2 so that RTM_F_CLONED is passed on 'flush cache', or don't pass NLM_F_MATCH in that case this way, the kernel respects the intended semantics of flags, and we fix a bug in iproute2 (that was always present). I think it's not ideal, because the kernel unexpectedly changed the behaviour and we're not guaranteeing that older iproute2 works. The fact it was broken for two years is probably a partial excuse for this, though. What do you think? I'll prepare a v4 for net-next if we all agree. I'm not entirely sure which trees I should target. I guess this introduces a feature in the kernel, so net-next, and fixes a bug in iproute2, so iproute2.git? -- Stefano