Lines Matching refs:brt
1574 struct bridge_rtnode *brt; in bridge_ioctl_rts() local
1583 CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) in bridge_ioctl_rts()
1595 CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { in bridge_ioctl_rts()
1598 strlcpy(bareq.ifba_ifsname, brt->brt_ifp->if_xname, in bridge_ioctl_rts()
1600 memcpy(bareq.ifba_dst, brt->brt_addr, sizeof(brt->brt_addr)); in bridge_ioctl_rts()
1601 bareq.ifba_vlan = brt->brt_vlan; in bridge_ioctl_rts()
1602 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC && in bridge_ioctl_rts()
1603 time_uptime < brt->brt_expire) in bridge_ioctl_rts()
1604 bareq.ifba_expire = brt->brt_expire - time_uptime; in bridge_ioctl_rts()
1607 bareq.ifba_flags = brt->brt_flags; in bridge_ioctl_rts()
2879 struct bridge_rtnode *brt; in bridge_rtupdate() local
2895 if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) == NULL) { in bridge_rtupdate()
2922 brt = uma_zalloc(V_bridge_rtnode_zone, M_NOWAIT | M_ZERO); in bridge_rtupdate()
2923 if (brt == NULL) { in bridge_rtupdate()
2927 brt->brt_vnet = curvnet; in bridge_rtupdate()
2930 brt->brt_flags = IFBAF_STICKY; in bridge_rtupdate()
2932 brt->brt_flags = IFBAF_DYNAMIC; in bridge_rtupdate()
2934 memcpy(brt->brt_addr, dst, ETHER_ADDR_LEN); in bridge_rtupdate()
2935 brt->brt_vlan = vlan; in bridge_rtupdate()
2937 brt->brt_dst = bif; in bridge_rtupdate()
2938 if ((error = bridge_rtnode_insert(sc, brt)) != 0) { in bridge_rtupdate()
2939 uma_zfree(V_bridge_rtnode_zone, brt); in bridge_rtupdate()
2948 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC && in bridge_rtupdate()
2949 (obif = brt->brt_dst) != bif) { in bridge_rtupdate()
2953 brt->brt_dst->bif_addrcnt--; in bridge_rtupdate()
2954 brt->brt_dst = bif; in bridge_rtupdate()
2955 brt->brt_dst->bif_addrcnt++; in bridge_rtupdate()
2963 &brt->brt_addr[0], ":", in bridge_rtupdate()
2964 brt->brt_vlan, in bridge_rtupdate()
2971 brt->brt_expire = time_uptime + sc->sc_brttimeout; in bridge_rtupdate()
2973 brt->brt_flags = flags; in bridge_rtupdate()
2986 struct bridge_rtnode *brt; in bridge_rtlookup() local
2990 if ((brt = bridge_rtnode_lookup(sc, addr, vlan)) == NULL) in bridge_rtlookup()
2993 return (brt->brt_ifp); in bridge_rtlookup()
3006 struct bridge_rtnode *brt, *nbrt; in bridge_rttrim() local
3020 CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { in bridge_rttrim()
3021 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { in bridge_rttrim()
3022 bridge_rtnode_destroy(sc, brt); in bridge_rttrim()
3059 struct bridge_rtnode *brt, *nbrt; in bridge_rtage() local
3063 CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { in bridge_rtage()
3064 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { in bridge_rtage()
3065 if (time_uptime >= brt->brt_expire) in bridge_rtage()
3066 bridge_rtnode_destroy(sc, brt); in bridge_rtage()
3079 struct bridge_rtnode *brt, *nbrt; in bridge_rtflush() local
3083 CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { in bridge_rtflush()
3084 if (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) in bridge_rtflush()
3085 bridge_rtnode_destroy(sc, brt); in bridge_rtflush()
3097 struct bridge_rtnode *brt; in bridge_rtdaddr() local
3106 while ((brt = bridge_rtnode_lookup(sc, addr, vlan)) != NULL) { in bridge_rtdaddr()
3107 bridge_rtnode_destroy(sc, brt); in bridge_rtdaddr()
3124 struct bridge_rtnode *brt, *nbrt; in bridge_rtdelete() local
3128 CK_LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { in bridge_rtdelete()
3129 if (brt->brt_ifp == ifp && (full || in bridge_rtdelete()
3130 (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)) in bridge_rtdelete()
3131 bridge_rtnode_destroy(sc, brt); in bridge_rtdelete()
3226 struct bridge_rtnode *brt; in bridge_rtnode_lookup() local
3233 CK_LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) { in bridge_rtnode_lookup()
3234 dir = bridge_rtnode_addr_cmp(addr, brt->brt_addr); in bridge_rtnode_lookup()
3235 if (dir == 0 && (brt->brt_vlan == vlan || vlan == DOT1Q_VID_RSVD_IMPL)) in bridge_rtnode_lookup()
3236 return (brt); in bridge_rtnode_lookup()
3251 bridge_rtnode_insert(struct bridge_softc *sc, struct bridge_rtnode *brt) in bridge_rtnode_insert() argument
3259 hash = bridge_rthash(sc, brt->brt_addr); in bridge_rtnode_insert()
3263 CK_LIST_INSERT_HEAD(&sc->sc_rthash[hash], brt, brt_hash); in bridge_rtnode_insert()
3268 dir = bridge_rtnode_addr_cmp(brt->brt_addr, lbrt->brt_addr); in bridge_rtnode_insert()
3269 if (dir == 0 && brt->brt_vlan == lbrt->brt_vlan) in bridge_rtnode_insert()
3272 CK_LIST_INSERT_BEFORE(lbrt, brt, brt_hash); in bridge_rtnode_insert()
3276 CK_LIST_INSERT_AFTER(lbrt, brt, brt_hash); in bridge_rtnode_insert()
3287 CK_LIST_INSERT_HEAD(&sc->sc_rtlist, brt, brt_list); in bridge_rtnode_insert()
3296 struct bridge_rtnode *brt; in bridge_rtnode_destroy_cb() local
3298 brt = __containerof(ctx, struct bridge_rtnode, brt_epoch_ctx); in bridge_rtnode_destroy_cb()
3300 CURVNET_SET(brt->brt_vnet); in bridge_rtnode_destroy_cb()
3301 uma_zfree(V_bridge_rtnode_zone, brt); in bridge_rtnode_destroy_cb()
3311 bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt) in bridge_rtnode_destroy() argument
3315 CK_LIST_REMOVE(brt, brt_hash); in bridge_rtnode_destroy()
3317 CK_LIST_REMOVE(brt, brt_list); in bridge_rtnode_destroy()
3319 brt->brt_dst->bif_addrcnt--; in bridge_rtnode_destroy()
3321 NET_EPOCH_CALL(bridge_rtnode_destroy_cb, &brt->brt_epoch_ctx); in bridge_rtnode_destroy()
3333 struct bridge_rtnode *brt; in bridge_rtable_expire() local
3345 CK_LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { in bridge_rtable_expire()
3347 if (brt->brt_ifp == ifp && in bridge_rtable_expire()
3348 brt->brt_expire > time_uptime + age && in bridge_rtable_expire()
3349 (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) in bridge_rtable_expire()
3350 brt->brt_expire = time_uptime + age; in bridge_rtable_expire()