From: David Ahern <redacted>
Date: Fri, 16 Mar 2018 08:45:10 -0700
On 3/16/18 8:40 AM, David Miller wrote:
quoted
Hmmm, this actually "accumulates" the flag rather than sets it.
Have you thought about what should happen if the cfg has RTNH_F_ONLINK
set?
yes, that's why the test script adds cases with the ONLINK flag set for
both nexthops, then one with it on the first nexthop only, and one with
the flag only on the second nexthop.
If you look at the full loop 'cfg' is the variable with the user data,
and r_cfg is the 'local loop version' so r_cfg.fc_flags gets reset for
each nexthop:
while (rtnh_ok(rtnh, remaining)) {
memcpy(&r_cfg, cfg, sizeof(*cfg));
...
r_cfg.fc_flags |= (rtnh->rtnh_flags & RTNH_F_ONLINK);
rt = ip6_route_info_create(&r_cfg, extack);
Right.
quoted
I think you should either change this logic to a true 'set', or adjust
your commit message to address this aspect of the new behavior.
I can update the commit message.
Please do, thanks David.