On 5/22/19 5:16 PM, Stephen Hemminger wrote: > On Fri, 17 May 2019 10:59:13 -0700 > David Ahern <dsah...@kernel.org> wrote: > >> index 2b3dcc5dbd53..d980b86ffd42 100644 >> --- a/ip/iproute.c >> +++ b/ip/iproute.c >> @@ -2035,7 +2035,11 @@ static int iproute_get(int argc, char **argv) >> if (addr.bytelen) >> addattr_l(&req.n, sizeof(req), >> RTA_DST, &addr.data, addr.bytelen); >> - req.r.rtm_dst_len = addr.bitlen; >> + /* kernel ignores prefix length on 'route get' >> + * requests; to allow ip to work with strict mode >> + * but not break existing users, just set to 32 >> + */ >> + req.r.rtm_dst_len = 32; >> address_found = true; >> } >> argc--; argv++; > > Why not warn user that any prefix length (ie not 32) is ignored, > then do what you propose. >
My first version did that. I thought people would complain about a stderr message. At least with failing the 'route get' scripts can be fixed. After more thought even changing the prefix length for users presents a limitation on future changes.