On Thu, Apr 04, 2019 at 10:49:56AM -0700, David Ahern wrote:
> From: David Ahern <dsah...@gmail.com>
> 
> Add support for an IPv6 gateway to fib_config. Since a gateway is either
> IPv4 or IPv6, make it a union with fc_gw4 where fc_gw_family decides
> which address is in use. Update current checks on family and gw4 to
> handle ipv6 as well.
> 
> Signed-off-by: David Ahern <dsah...@gmail.com>

Reviewed-by: Ido Schimmel <ido...@mellanox.com>

See one note below

> -                  fi->fib_nh->fib_nh_gw4 != cfg->fc_gw4)) {
> +                  fi->fib_nh->fib_nh_gw4 != cfg->fc_gw4) ||
> +                 (cfg->fc_gw_family == AF_INET6 &&
> +                  ipv6_addr_cmp(&fi->fib_nh->fib_nh_gw6, &cfg->fc_gw6))) {
>                       NL_SET_ERR_MSG(extack,
>                                      "Nexthop gateway does not match 
> RTA_GATEWAY");

Given that you can now specify a gateway with either RTA_GATEWAY or
RTA_VIA it might make sense to adjust this message.

>                       goto errout;
> @@ -745,6 +758,10 @@ int fib_nh_match(struct fib_config *cfg, struct fib_info 
> *fi,
>                   cfg->fc_gw4 != fi->fib_nh->fib_nh_gw4)
>                       return 1;
>  
> +             if (cfg->fc_gw_family == AF_INET6 &&
> +                 ipv6_addr_cmp(&cfg->fc_gw6, &fi->fib_nh->fib_nh_gw6))
> +                     return 1;
> +
>               return 0;
>       }
>  
> -- 
> 2.11.0
> 

Reply via email to