ok benno@

Claudio Jeker([email protected]) on 2018.11.23 10:48:19 +0100:
> This changes rtable_mpath_reprio() to take the prefixlen as argument
> instead of the mask. ART is using the prefixlen internally and since we
> switched to ART some time ago it no longer makes sense to convert the
> prefixlen into a mask and back again.
> 
> OK?
> -- 
> :wq Claudio
> 
> Index: net/route.c
> ===================================================================
> RCS file: /cvs/src/sys/net/route.c,v
> retrieving revision 1.378
> diff -u -p -r1.378 route.c
> --- net/route.c       27 Sep 2018 12:36:57 -0000      1.378
> +++ net/route.c       23 Nov 2018 09:44:34 -0000
> @@ -1626,8 +1626,8 @@ rt_if_linkstate_change(struct rtentry *r
>  
>               /* bring route up */
>               rt->rt_flags |= RTF_UP;
> -             error = rtable_mpath_reprio(id, rt_key(rt),
> -                 rt_plen2mask(rt, &sa_mask), rt->rt_priority & RTP_MASK, rt);
> +             error = rtable_mpath_reprio(id, rt_key(rt), rt_plen(rt),
> +                 rt->rt_priority & RTP_MASK, rt);
>       } else {
>               /*
>                * Remove redirected and cloned routes (mainly ARP)
> @@ -1646,8 +1646,8 @@ rt_if_linkstate_change(struct rtentry *r
>  
>               /* take route down */
>               rt->rt_flags &= ~RTF_UP;
> -             error = rtable_mpath_reprio(id, rt_key(rt),
> -                 rt_plen2mask(rt, &sa_mask), rt->rt_priority | RTP_DOWN, rt);
> +             error = rtable_mpath_reprio(id, rt_key(rt), rt_plen(rt),
> +                 rt->rt_priority | RTP_DOWN, rt);
>       }
>       if_group_routechange(rt_key(rt), rt_plen2mask(rt, &sa_mask));
>  
> Index: net/rtable.c
> ===================================================================
> RCS file: /cvs/src/sys/net/rtable.c,v
> retrieving revision 1.66
> diff -u -p -r1.66 rtable.c
> --- net/rtable.c      20 Nov 2018 10:28:08 -0000      1.66
> +++ net/rtable.c      23 Nov 2018 09:43:16 -0000
> @@ -731,13 +731,12 @@ rtable_mpath_capable(unsigned int rtable
>  
>  int
>  rtable_mpath_reprio(unsigned int rtableid, struct sockaddr *dst,
> -    struct sockaddr *mask, uint8_t prio, struct rtentry *rt)
> +    int plen, uint8_t prio, struct rtentry *rt)
>  {
>       struct art_root                 *ar;
>       struct art_node                 *an;
>       struct srp_ref                   sr;
>       uint8_t                         *addr;
> -     int                              plen;
>       int                              error = 0;
>  
>       ar = rtable_get(rtableid, dst->sa_family);
> @@ -745,9 +744,6 @@ rtable_mpath_reprio(unsigned int rtablei
>               return (EAFNOSUPPORT);
>  
>       addr = satoaddr(ar, dst);
> -     plen = rtable_satoplen(dst->sa_family, mask);
> -     if (plen == -1)
> -             return (EINVAL);
>  
>       rw_enter_write(&ar->ar_lock);
>       an = art_lookup(ar, addr, plen, &sr);
> Index: net/rtable.h
> ===================================================================
> RCS file: /cvs/src/sys/net/rtable.h,v
> retrieving revision 1.21
> diff -u -p -r1.21 rtable.h
> --- net/rtable.h      9 Sep 2018 10:07:38 -0000       1.21
> +++ net/rtable.h      23 Nov 2018 09:43:38 -0000
> @@ -70,6 +70,6 @@ int          rtable_walk(unsigned int, sa_famil
>  int           rtable_mpath_capable(unsigned int, sa_family_t);
>  struct rtentry       *rtable_mpath_match(unsigned int, struct rtentry *,
>                    struct sockaddr *, uint8_t);
> -int           rtable_mpath_reprio(unsigned int, struct sockaddr *,
> -                  struct sockaddr *, uint8_t, struct rtentry *);
> +int           rtable_mpath_reprio(unsigned int, struct sockaddr *, int,
> +                  uint8_t, struct rtentry *);
>  #endif /* _NET_RTABLE_H_ */
> 

Reply via email to