On Tue, Mar 30, 2021 at 08:44:30PM +0800, xuchunmei wrote: > Hi, > > I use iproute-5.10 with kernel-5.10.6, I found that ip-nexthop does not > support flush by id, is it by design? > > Reproduce steps: > # ip netns add me > # ip -netns me addr add 127.0.0.1/8 dev lo > # ip -netns me link set lo up > # ip -netns me nexthop add id 105 blackhole proto 99 > # ip -netns me nexthop flush id 105 > id 105 blackhole proto 99 > # ip -netns me nexthop ls > id 105 blackhole proto 99 > > while use flush without any args, flush will success. > # ip -netns me nexthop flush > Flushed 1 nexthops > > I find the function ipnh_list_flush implemented in ipnexthop.c: > > else if (!strcmp(*argv, "id")) { > __u32 id; > > NEXT_ARG(); > if (get_unsigned(&id, *argv, 0)) > invarg("invalid id value", *argv); > return ipnh_get_id(id); > } > > When args is “id”, just return the related info of “id”, so I want to known > is it by design ?
Looks like a bug. 'flush' does not really make sense with 'id', but 'list id' works, so I think 'flush id' should also work. Can you send a patch?