Home | History | Annotate | Download | only in net

Lines Matching defs:brt

196 	PSLIST_WRITER_INSERT_HEAD(&(_sc)->sc_rtlist, brt, brt_list)
207 PSLIST_WRITER_INSERT_HEAD(&(_sc)->sc_rthash[(_hash)], brt, brt_hash)
1137 struct bridge_rtnode *brt;
1153 BRIDGE_RTLIST_WRITER_FOREACH(brt, sc) {
1157 strlcpy(bareq.ifba_ifsname, brt->brt_ifp->if_xname,
1159 memcpy(bareq.ifba_dst, brt->brt_addr, sizeof(brt->brt_addr));
1160 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) {
1161 bareq.ifba_expire = brt->brt_expire - time_uptime;
1164 bareq.ifba_flags = brt->brt_flags;
2212 struct bridge_rtnode *brt;
2223 brt = pool_get(&bridge_rtnode_pool, PR_NOWAIT);
2224 if (brt == NULL)
2227 memset(brt, 0, sizeof(*brt));
2228 brt->brt_expire = time_uptime + sc->sc_brttimeout;
2229 brt->brt_flags = IFBAF_DYNAMIC;
2230 memcpy(brt->brt_addr, dst, ETHER_ADDR_LEN);
2231 PSLIST_ENTRY_INIT(brt, brt_list);
2232 PSLIST_ENTRY_INIT(brt, brt_hash);
2235 error = bridge_rtnode_insert(sc, brt);
2239 pool_put(&bridge_rtnode_pool, brt);
2243 *brtp = brt;
2256 struct bridge_rtnode *brt;
2265 brt = bridge_rtnode_lookup(sc, dst);
2267 if (brt != NULL) {
2268 brt->brt_ifp = dst_if;
2270 brt->brt_flags = flags;
2272 brt->brt_expire = 0;
2274 brt->brt_expire = time_uptime + sc->sc_brttimeout;
2276 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
2277 brt->brt_expire = time_uptime + sc->sc_brttimeout;
2282 if (brt == NULL) {
2285 r = bridge_rtalloc(sc, dst, &brt);
2302 struct bridge_rtnode *brt;
2307 brt = bridge_rtnode_lookup(sc, addr);
2308 if (brt != NULL)
2309 ifs = brt->brt_ifp;
2329 struct bridge_rtnode *brt;
2353 BRIDGE_RTLIST_WRITER_FOREACH(brt, sc) {
2355 if (func(sc, brt, &need_break, arg)) {
2356 bridge_rtnode_remove(sc, brt);
2357 brt_list[i++] = brt;
2374 bridge_rttrim0_cb(struct bridge_softc *sc, struct bridge_rtnode *brt,
2377 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) {
2448 bridge_rtage_cb(struct bridge_softc *sc, struct bridge_rtnode *brt,
2451 if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC &&
2452 time_uptime >= brt->brt_expire)
2471 bridge_rtflush_cb(struct bridge_softc *sc, struct bridge_rtnode *brt,
2476 if (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
2501 struct bridge_rtnode *brt;
2504 if ((brt = bridge_rtnode_lookup(sc, addr)) == NULL) {
2508 bridge_rtnode_remove(sc, brt);
2512 bridge_rtnode_destroy(brt);
2525 struct bridge_rtnode *brt;
2530 BRIDGE_RTLIST_WRITER_FOREACH(brt, sc) {
2531 if (brt->brt_ifp == ifp)
2534 if (brt == NULL) {
2538 bridge_rtnode_remove(sc, brt);
2542 bridge_rtnode_destroy(brt);
2629 struct bridge_rtnode *brt;
2634 BRIDGE_RTHASH_READER_FOREACH(brt, sc, hash) {
2635 dir = memcmp(addr, brt->brt_addr, ETHER_ADDR_LEN);
2637 return brt;
2652 bridge_rtnode_insert(struct bridge_softc *sc, struct bridge_rtnode *brt)
2659 hash = bridge_rthash(sc, brt->brt_addr);
2661 int dir = memcmp(brt->brt_addr, lbrt->brt_addr, ETHER_ADDR_LEN);
2669 BRIDGE_RTHASH_WRITER_INSERT_HEAD(sc, hash, brt);
2671 BRIDGE_RTHASH_WRITER_INSERT_AFTER(prev, brt);
2673 BRIDGE_RTLIST_WRITER_INSERT_HEAD(sc, brt);
2685 bridge_rtnode_remove(struct bridge_softc *sc, struct bridge_rtnode *brt)
2690 BRIDGE_RTHASH_WRITER_REMOVE(brt);
2691 BRIDGE_RTLIST_WRITER_REMOVE(brt);
2701 bridge_rtnode_destroy(struct bridge_rtnode *brt)
2704 PSLIST_ENTRY_DESTROY(brt, brt_list);
2705 PSLIST_ENTRY_DESTROY(brt, brt_hash);
2706 pool_put(&bridge_rtnode_pool, brt);