Lines Matching defs:brt

2241 	struct bridge_rtnode *brt;					    \
2250 LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) \
2262 LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) { \
2266 "%s%d", ifnet_name(brt->brt_ifp), \
2267 ifnet_unit(brt->brt_ifp)); \
2268 memcpy(bareq.ifba_dst, brt->brt_addr, sizeof (brt->brt_addr)); \
2269 bareq.ifba_vlan = brt->brt_vlan; \
2270 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { \
2272 if ((unsigned long)now.tv_sec < brt->brt_expire) \
2274 brt->brt_expire - now.tv_sec; \
2277 bareq.ifba_flags = brt->brt_flags; \
4220 struct bridge_rtnode *brt;
4240 if ((brt = bridge_rtnode_lookup(sc, dst, vlan)) == NULL) {
4256 brt = zalloc_noblock(bridge_rtnode_pool);
4257 if (brt == NULL)
4261 brt->brt_flags = IFBAF_STICKY;
4263 brt->brt_flags = IFBAF_DYNAMIC;
4265 memcpy(brt->brt_addr, dst, ETHER_ADDR_LEN);
4266 brt->brt_vlan = vlan;
4269 if ((error = bridge_rtnode_insert(sc, brt)) != 0) {
4270 zfree(bridge_rtnode_pool, brt);
4273 brt->brt_dst = bif;
4277 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC &&
4278 brt->brt_dst != bif) {
4279 brt->brt_dst->bif_addrcnt--;
4280 brt->brt_dst = bif;
4281 brt->brt_dst->bif_addrcnt++;
4288 brt->brt_expire = now.tv_sec + sc->sc_brttimeout;
4291 brt->brt_flags = flags;
4305 struct bridge_rtnode *brt;
4309 if ((brt = bridge_rtnode_lookup(sc, addr, vlan)) == NULL)
4312 return (brt->brt_ifp);
4325 struct bridge_rtnode *brt, *nbrt;
4338 LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) {
4339 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) {
4340 bridge_rtnode_destroy(sc, brt);
4380 struct bridge_rtnode *brt, *nbrt;
4384 LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) {
4385 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) {
4389 if ((unsigned long)now.tv_sec >= brt->brt_expire)
4390 bridge_rtnode_destroy(sc, brt);
4403 struct bridge_rtnode *brt, *nbrt;
4407 LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) {
4408 if (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
4409 bridge_rtnode_destroy(sc, brt);
4421 struct bridge_rtnode *brt;
4430 while ((brt = bridge_rtnode_lookup(sc, addr, vlan)) != NULL) {
4431 bridge_rtnode_destroy(sc, brt);
4446 struct bridge_rtnode *brt, *nbrt;
4450 LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) {
4451 if (brt->brt_ifp == ifp && (full ||
4452 (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC))
4453 bridge_rtnode_destroy(sc, brt);
4554 struct bridge_rtnode *brt;
4561 LIST_FOREACH(brt, &sc->sc_rthash[hash], brt_hash) {
4562 dir = bridge_rtnode_addr_cmp(addr, brt->brt_addr);
4563 if (dir == 0 && (brt->brt_vlan == vlan || vlan == 0))
4564 return (brt);
4579 bridge_rtnode_insert(struct bridge_softc *sc, struct bridge_rtnode *brt)
4587 hash = bridge_rthash(sc, brt->brt_addr);
4591 LIST_INSERT_HEAD(&sc->sc_rthash[hash], brt, brt_hash);
4596 dir = bridge_rtnode_addr_cmp(brt->brt_addr, lbrt->brt_addr);
4597 if (dir == 0 && brt->brt_vlan == lbrt->brt_vlan)
4600 LIST_INSERT_BEFORE(lbrt, brt, brt_hash);
4604 LIST_INSERT_AFTER(lbrt, brt, brt_hash);
4615 LIST_INSERT_HEAD(&sc->sc_rtlist, brt, brt_list);
4627 bridge_rtnode_destroy(struct bridge_softc *sc, struct bridge_rtnode *brt)
4631 LIST_REMOVE(brt, brt_hash);
4633 LIST_REMOVE(brt, brt_list);
4635 brt->brt_dst->bif_addrcnt--;
4636 zfree(bridge_rtnode_pool, brt);
4649 struct bridge_rtnode *brt;
4660 LIST_FOREACH(brt, &sc->sc_rtlist, brt_list) {
4665 if (brt->brt_ifp == ifp &&
4666 brt->brt_expire > (unsigned long)now.tv_sec + age &&
4667 (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
4668 brt->brt_expire =