On Thu, Jul 14, 2022 at 12:23:26PM +0200, Claudio Jeker wrote:
> Noticed while syncing code. I missed some scope_id assignments and checks
> in a few places.
>
> - VPN6 missed all of it
> - in kr_redistribute6() the copy is not really needed since link local
> address can not be redistributed (I still added it though)
> - kroute6_compare() do actually compare the scope_id of a prefix.
> This should make handling of link local addrs a bit more robust.
> - in kroute6_find() set the scope_id else kroute6_compare() will match
> against stack garbage.
> - in kroute6_matchgw() we need to compare the scope_id as well
> - in kr_fib_change() compare nexthop with scope_id to know if it changed
> and update the scope_id as well afterwards.
>
> Works for me
This looks good and I can't find any other missed instances in kroute.c
ok tb
> @@ -3524,9 +3534,13 @@ add4:
> if (kl->nexthop.aid == AID_INET6) {
> if (memcmp(&kr6->nexthop,
> &kl->nexthop.v6,
> - sizeof(struct in6_addr)))
> + sizeof(struct in6_addr)) ||
> + kr6->nexthop_scope_id !=
trailing space after !=