diff --git a/Makefile b/Makefile index 5002ac02445..e94ae2411d2 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ .include # for NOMAN, if it's there. SUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games -SUBDIR+= gnu +#SUBDIR+= gnu SUBDIR+= sys diff --git a/sys/net/art.c b/sys/net/art.c index 379767ba2eb..c4e4eb57449 100644 --- a/sys/net/art.c +++ b/sys/net/art.c @@ -85,7 +85,7 @@ art_init(void) * Per routing table initialization API function. */ struct art_root * -art_alloc(unsigned int rtableid, unsigned int alen, unsigned int off) +art_alloc(unsigned int rtableid, unsigned int alen) { struct art_root *ar; int i; @@ -114,7 +114,6 @@ art_alloc(unsigned int rtableid, unsigned int alen, unsigned int off) return (NULL); } - ar->ar_off = off; rw_init(&ar->ar_lock, "art"); return (ar); diff --git a/sys/net/art.h b/sys/net/art.h index f5f8bed6173..57fd1130d1a 100644 --- a/sys/net/art.h +++ b/sys/net/art.h @@ -40,7 +40,6 @@ struct art_root { uint8_t ar_bits[ART_MAXLVL]; /* [I] Per level stride */ uint8_t ar_nlvl; /* [I] Number of levels */ uint8_t ar_alen; /* [I] Address length in bits */ - uint8_t ar_off; /* [I] Offset of key in bytes */ }; #define ISLEAF(e) (((unsigned long)(e) & 1) == 0) @@ -94,7 +93,7 @@ struct art_node { #define an_gc an_pointer.an__gc void art_init(void); -struct art_root *art_alloc(unsigned int, unsigned int, unsigned int); +struct art_root *art_alloc(unsigned int, unsigned int); struct art_node *art_insert(struct art_root *, struct art_node *, const void *, int); struct art_node *art_delete(struct art_root *, struct art_node *, const void *, diff --git a/sys/net/if_wg.c b/sys/net/if_wg.c index b0c8369bc78..354b29c98b6 100644 --- a/sys/net/if_wg.c +++ b/sys/net/if_wg.c @@ -2726,10 +2726,10 @@ wg_clone_create(struct if_clone *ifc, int unit) #endif sc->sc_aip_num = 0; - if ((sc->sc_aip4 = art_alloc(0, 32, 0)) == NULL) + if ((sc->sc_aip4 = art_alloc(0, 32)) == NULL) goto ret_02; #ifdef INET6 - if ((sc->sc_aip6 = art_alloc(0, 128, 0)) == NULL) + if ((sc->sc_aip6 = art_alloc(0, 128)) == NULL) goto ret_03; #endif diff --git a/sys/net/rtable.c b/sys/net/rtable.c index 719415d04de..0dbb91de4dd 100644 --- a/sys/net/rtable.c +++ b/sys/net/rtable.c @@ -350,7 +350,7 @@ rtable_l2set(unsigned int rtableid, unsigned int rdomain, unsigned int loifidx) } -static inline const uint8_t *satoaddr(struct art_root *, +static inline const uint8_t *satoaddr(struct rtable *, const struct sockaddr *); int an_match(struct art_node *, const struct sockaddr *, int); @@ -376,12 +376,13 @@ rtable_alloc(unsigned int rtableid, unsigned int alen, unsigned int off) if (tbl == NULL) return (NULL); - tbl->r_art = art_alloc(rtableid, alen, off); + tbl->r_art = art_alloc(rtableid, alen); if (tbl->r_art == NULL) { free(tbl, M_RTABLE, sizeof(*tbl)); return (NULL); } + tbl->r_off = off; tbl->r_source = NULL; return (tbl); @@ -447,7 +448,7 @@ rtable_lookup(unsigned int rtableid, const struct sockaddr *dst, return (NULL); ar = tbl->r_art; - addr = satoaddr(ar, dst); + addr = satoaddr(tbl, dst); /* No need for a perfect match. */ if (mask == NULL) { @@ -504,7 +505,7 @@ rtable_match(unsigned int rtableid, const struct sockaddr *dst, uint32_t *src) return (NULL); ar = tbl->r_art; - addr = satoaddr(ar, dst); + addr = satoaddr(tbl, dst); an = art_match(ar, addr, &nsr); if (an == NULL) @@ -583,7 +584,7 @@ rtable_insert(unsigned int rtableid, struct sockaddr *dst, return (EAFNOSUPPORT); ar = tbl->r_art; - addr = satoaddr(ar, dst); + addr = satoaddr(tbl, dst); plen = rtable_satoplen(dst->sa_family, mask); if (plen == -1) return (EINVAL); @@ -690,7 +691,7 @@ rtable_delete(unsigned int rtableid, const struct sockaddr *dst, return (EAFNOSUPPORT); ar = tbl->r_art; - addr = satoaddr(ar, dst); + addr = satoaddr(tbl, dst); plen = rtable_satoplen(dst->sa_family, mask); if (plen == -1) return (EINVAL); @@ -831,7 +832,7 @@ rtable_mpath_reprio(unsigned int rtableid, struct sockaddr *dst, return (EAFNOSUPPORT); ar = tbl->r_art; - addr = satoaddr(ar, dst); + addr = satoaddr(tbl, dst); rw_enter_write(&ar->ar_lock); an = art_lookup(ar, addr, plen, &sr); @@ -931,9 +932,9 @@ rtentry_unref(void *null, void *xrt) * of "struct sockaddr" used by this routing table. */ static inline const uint8_t * -satoaddr(struct art_root *at, const struct sockaddr *sa) +satoaddr(struct rtable *tbl, const struct sockaddr *sa) { - return (((const uint8_t *)sa) + at->ar_off); + return (((const uint8_t *)sa) + tbl->r_off); } /* diff --git a/sys/net/rtable.h b/sys/net/rtable.h index 2fe9b83e9f4..b9ebd4a5d6d 100644 --- a/sys/net/rtable.h +++ b/sys/net/rtable.h @@ -29,6 +29,7 @@ struct art_root; struct rtable { struct art_root *r_art; /* [I] */ + unsigned int r_off; /* [I] Offset of key in bytes */ struct sockaddr *r_source; /* [N] use optional src addr */ };