Lines Matching refs:bif

378 bif_ifflags_are_set(struct bridge_iflist * bif, uint32_t flags)  in bif_ifflags_are_set()  argument
380 return (bif->bif_ifflags & flags) == flags; in bif_ifflags_are_set()
384 bif_has_checksum_offload(struct bridge_iflist * bif) in bif_has_checksum_offload() argument
386 return bif_ifflags_are_set(bif, IFBIF_CHECKSUM_OFFLOAD); in bif_has_checksum_offload()
1674 struct bridge_iflist *bif; in bridge_clone_destroy() local
1696 while ((bif = TAILQ_FIRST(&sc->sc_iflist)) != NULL) { in bridge_clone_destroy()
1697 bridge_delete_member(sc, bif); in bridge_clone_destroy()
1700 while ((bif = TAILQ_FIRST(&sc->sc_spanlist)) != NULL) { in bridge_clone_destroy()
1701 bridge_delete_span(sc, bif); in bridge_clone_destroy()
1774 bif_set_input_broadcast(struct bridge_iflist * bif, boolean_t input_broadcast) in bif_set_input_broadcast() argument
1778 old_input_broadcast = (bif->bif_flags & BIFF_INPUT_BROADCAST) != 0; in bif_set_input_broadcast()
1780 bif->bif_flags |= BIFF_INPUT_BROADCAST; in bif_set_input_broadcast()
1782 bif->bif_flags &= ~BIFF_INPUT_BROADCAST; in bif_set_input_broadcast()
1797 struct bridge_iflist *bif; in bridge_ioctl() local
1929 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_ioctl()
1930 if (bif->bif_ifp->if_mtu != (unsigned)ifr->ifr_mtu) { in bridge_ioctl()
1934 bif->bif_ifp->if_mtu, in bridge_ioctl()
1935 bif->bif_ifp->if_xname, ifr->ifr_mtu); in bridge_ioctl()
1974 struct bridge_iflist *bif; in bridge_mutecaps() local
1980 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_mutecaps()
1982 mask &= bif->bif_savedcaps; in bridge_mutecaps()
1985 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_mutecaps()
1986 enabled = bif->bif_ifp->if_capenable; in bridge_mutecaps()
1992 bridge_set_ifcap(sc, bif, enabled); in bridge_mutecaps()
1997 bridge_set_ifcap(struct bridge_softc *sc, struct bridge_iflist *bif, int set) in bridge_set_ifcap() argument
1999 struct ifnet *ifp = bif->bif_ifp; in bridge_set_ifcap()
2084 struct bridge_iflist *bif; in bridge_set_tso() local
2096 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_set_tso()
2097 ifnet_t ifp = bif->bif_ifp; in bridge_set_tso()
2180 struct bridge_iflist *bif; in bridge_lookup_member() local
2185 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_lookup_member()
2186 ifp = bif->bif_ifp; in bridge_lookup_member()
2188 return bif; in bridge_lookup_member()
2203 struct bridge_iflist *bif; in bridge_lookup_member_if() local
2207 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_lookup_member_if()
2208 if (bif->bif_ifp == member_ifp) { in bridge_lookup_member_if()
2209 return bif; in bridge_lookup_member_if()
2222 struct bridge_iflist *bif = (struct bridge_iflist *)cookie; in bridge_iff_input() local
2223 struct bridge_softc *sc = bif->bif_sc; in bridge_iff_input()
2314 struct bridge_iflist *bif = (struct bridge_iflist *)cookie; in bridge_iff_output() local
2315 struct bridge_softc *sc = bif->bif_sc; in bridge_iff_output()
2344 struct bridge_iflist *bif = (struct bridge_iflist *)cookie; in bridge_iff_event() local
2345 struct bridge_softc *sc = bif->bif_sc; in bridge_iff_event()
2368 if ((bif->bif_flags & BIFF_PROMISC) == 0) { in bridge_iff_event()
2378 bif->bif_flags |= BIFF_PROMISC; in bridge_iff_event()
2381 if ((bif->bif_flags & BIFF_WIFI_INFRA) != 0 && in bridge_iff_event()
2382 (bif->bif_flags & BIFF_ALL_MULTI) == 0) { in bridge_iff_event()
2392 bif->bif_flags |= BIFF_ALL_MULTI; in bridge_iff_event()
2427 struct bridge_iflist *bif; in bridge_iff_detached() local
2435 bif = bridge_lookup_member_if(sc, ifp); in bridge_iff_detached()
2436 if (bif != NULL) { in bridge_iff_detached()
2437 bridge_delete_member(sc, bif); in bridge_iff_detached()
2446 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) in bridge_iff_detached()
2447 if (ifp == bif->bif_ifp) { in bridge_iff_detached()
2448 bridge_delete_span(sc, bif); in bridge_iff_detached()
2508 bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif) in bridge_delete_member() argument
2514 struct ifnet *ifs = bif->bif_ifp, *bifp = sc->sc_ifp; in bridge_delete_member()
2526 if ((bif->bif_flags & BIFF_IN_MEMBER_LIST) != 0) { in bridge_delete_member()
2528 TAILQ_REMOVE(&sc->sc_iflist, bif, bif_next); in bridge_delete_member()
2532 if (bif == sc->sc_mac_nat_bif) { in bridge_delete_member()
2535 bridge_mac_nat_flush_entries(sc, bif); in bridge_delete_member()
2539 if ((bif->bif_ifflags & IFBIF_STP) != 0) { in bridge_delete_member()
2540 bstp_disable(&bif->bif_stp); in bridge_delete_member()
2575 KASSERT(bif->bif_addrcnt == 0, in bridge_delete_member()
2576 ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt)); in bridge_delete_member()
2582 bif_flags = bif->bif_flags; in bridge_delete_member()
2604 bridge_set_ifcap(sc, bif, bif->bif_savedcaps); in bridge_delete_member()
2612 iflt_detach(bif->bif_iff_ref); in bridge_delete_member()
2631 bstp_destroy(&bif->bif_stp); /* prepare to free */ in bridge_delete_member()
2634 kfree_type(struct bridge_iflist, bif); in bridge_delete_member()
2654 bridge_delete_span(struct bridge_softc *sc, struct bridge_iflist *bif) in bridge_delete_span() argument
2658 KASSERT(bif->bif_ifp->if_bridge == NULL, in bridge_delete_span()
2661 ifnet_release(bif->bif_ifp); in bridge_delete_span()
2663 TAILQ_REMOVE(&sc->sc_spanlist, bif, bif_next); in bridge_delete_span()
2664 kfree_type(struct bridge_iflist, bif); in bridge_delete_span()
2671 struct bridge_iflist *bif = NULL; in bridge_ioctl_add() local
2694 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) { in bridge_ioctl_add()
2695 if (ifs == bif->bif_ifp) { in bridge_ioctl_add()
2746 bif = kalloc_type(struct bridge_iflist, Z_WAITOK | Z_ZERO | Z_NOFAIL); in bridge_ioctl_add()
2747 bif->bif_ifp = ifs; in bridge_ioctl_add()
2749 bif->bif_ifflags |= IFBIF_LEARNING | IFBIF_DISCOVER; in bridge_ioctl_add()
2751 bif->bif_savedcaps = ifs->if_capenable; in bridge_ioctl_add()
2753 bif->bif_sc = sc; in bridge_ioctl_add()
2755 (void)bridge_mac_nat_enable(sc, bif); in bridge_ioctl_add()
2781 bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp); in bridge_ioctl_add()
2799 bif->bif_flags |= BIFF_PROMISC; in bridge_ioctl_add()
2820 bif->bif_flags |= BIFF_WIFI_INFRA; in bridge_ioctl_add()
2823 bif->bif_flags |= BIFF_ALL_MULTI; in bridge_ioctl_add()
2837 bif->bif_flags |= BIFF_FLOWSWITCH_ATTACHED; in bridge_ioctl_add()
2843 bif->bif_flags |= BIFF_NETAGENT_REMOVED; in bridge_ioctl_add()
2851 iff.iff_cookie = bif; in bridge_ioctl_add()
2857 error = dlil_attach_filter(ifs, &iff, &bif->bif_iff_ref, in bridge_ioctl_add()
2864 bif->bif_flags |= BIFF_FILTER_ATTACHED; in bridge_ioctl_add()
2877 bif->bif_flags |= BIFF_PROTO_ATTACHED; in bridge_ioctl_add()
2888 bif->bif_flags |= BIFF_LRO_DISABLED; in bridge_ioctl_add()
2895 bif->bif_flags |= BIFF_IN_MEMBER_LIST; in bridge_ioctl_add()
2897 TAILQ_INSERT_TAIL(&sc->sc_iflist, bif, bif_next); in bridge_ioctl_add()
2902 bif->bif_flags |= BIFF_MEDIA_ACTIVE; in bridge_ioctl_add()
2904 bif->bif_flags &= ~BIFF_MEDIA_ACTIVE; in bridge_ioctl_add()
2912 bif_set_input_broadcast(bif, input_broadcast); in bridge_ioctl_add()
2930 if (bif != NULL) { in bridge_ioctl_add()
2931 bridge_delete_member(sc, bif); in bridge_ioctl_add()
2944 struct bridge_iflist *bif; in bridge_ioctl_del() local
2946 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_del()
2947 if (bif == NULL) { in bridge_ioctl_del()
2951 bridge_delete_member(sc, bif); in bridge_ioctl_del()
2967 struct bridge_iflist *bif; in bridge_ioctl_gifflags() local
2969 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_gifflags()
2970 if (bif == NULL) { in bridge_ioctl_gifflags()
2976 bp = &bif->bif_stp; in bridge_ioctl_gifflags()
2983 req->ifbr_ifsflags = bif->bif_ifflags; in bridge_ioctl_gifflags()
3005 req->ifbr_portno = bif->bif_ifp->if_index & 0xfff; in bridge_ioctl_gifflags()
3006 req->ifbr_addrcnt = bif->bif_addrcnt; in bridge_ioctl_gifflags()
3007 req->ifbr_addrmax = bif->bif_addrmax; in bridge_ioctl_gifflags()
3008 req->ifbr_addrexceeded = bif->bif_addrexceeded; in bridge_ioctl_gifflags()
3017 struct bridge_iflist *bif; in bridge_ioctl_sifflags() local
3023 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_sifflags()
3024 if (bif == NULL) { in bridge_ioctl_sifflags()
3040 error = bridge_mac_nat_enable(sc, bif); in bridge_ioctl_sifflags()
3044 } else if (sc->sc_mac_nat_bif == bif) { in bridge_ioctl_sifflags()
3051 if ((bif->bif_ifflags & IFBIF_STP) == 0) { in bridge_ioctl_sifflags()
3052 error = bstp_enable(&bif->bif_stp); in bridge_ioctl_sifflags()
3058 if ((bif->bif_ifflags & IFBIF_STP) != 0) { in bridge_ioctl_sifflags()
3059 bstp_disable(&bif->bif_stp); in bridge_ioctl_sifflags()
3064 bp = &bif->bif_stp; in bridge_ioctl_sifflags()
3076 bif->bif_ifflags = req->ifbr_ifsflags & IFBIFMASK; in bridge_ioctl_sifflags()
3103 struct bridge_iflist *bif; \
3109 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) \
3111 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) \
3127 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { \
3132 "%s", bif->bif_ifp->if_xname); \
3142 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) { \
3148 "%s", bif->bif_ifp->if_xname); \
3149 breq.ifbr_ifsflags = bif->bif_ifflags; \
3151 = bif->bif_ifp->if_index & 0xfff; \
3268 struct bridge_iflist *bif; in bridge_ioctl_saddr32() local
3271 bif = bridge_lookup_member(sc, req->ifba_ifsname); in bridge_ioctl_saddr32()
3272 if (bif == NULL) { in bridge_ioctl_saddr32()
3276 error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1, in bridge_ioctl_saddr32()
3286 struct bridge_iflist *bif; in bridge_ioctl_saddr64() local
3289 bif = bridge_lookup_member(sc, req->ifba_ifsname); in bridge_ioctl_saddr64()
3290 if (bif == NULL) { in bridge_ioctl_saddr64()
3294 error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1, in bridge_ioctl_saddr64()
3444 struct bridge_iflist *bif; in bridge_ioctl_sifprio() local
3446 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_sifprio()
3447 if (bif == NULL) { in bridge_ioctl_sifprio()
3451 return bstp_set_port_priority(&bif->bif_stp, req->ifbr_priority); in bridge_ioctl_sifprio()
3463 struct bridge_iflist *bif; in bridge_ioctl_sifcost() local
3465 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_sifcost()
3466 if (bif == NULL) { in bridge_ioctl_sifcost()
3470 return bstp_set_path_cost(&bif->bif_stp, req->ifbr_path_cost); in bridge_ioctl_sifcost()
3509 struct bridge_iflist *bif; in bridge_ioctl_sifmaxaddr() local
3511 bif = bridge_lookup_member(sc, req->ifbr_ifsname); in bridge_ioctl_sifmaxaddr()
3512 if (bif == NULL) { in bridge_ioctl_sifmaxaddr()
3516 bif->bif_addrmax = req->ifbr_addrmax; in bridge_ioctl_sifmaxaddr()
3524 struct bridge_iflist *bif = NULL; in bridge_ioctl_addspan() local
3536 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) in bridge_ioctl_addspan()
3537 if (ifs == bif->bif_ifp) { in bridge_ioctl_addspan()
3557 bif = kalloc_type(struct bridge_iflist, Z_WAITOK | Z_ZERO | Z_NOFAIL); in bridge_ioctl_addspan()
3559 bif->bif_ifp = ifs; in bridge_ioctl_addspan()
3560 bif->bif_ifflags = IFBIF_SPAN; in bridge_ioctl_addspan()
3562 ifnet_reference(bif->bif_ifp); in bridge_ioctl_addspan()
3564 TAILQ_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next); in bridge_ioctl_addspan()
3573 struct bridge_iflist *bif; in bridge_ioctl_delspan() local
3581 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) in bridge_ioctl_delspan()
3582 if (ifs == bif->bif_ifp) { in bridge_ioctl_delspan()
3586 if (bif == NULL) { in bridge_ioctl_delspan()
3590 bridge_delete_span(sc, bif); in bridge_ioctl_delspan()
3648 struct bridge_iflist *bif; \
3655 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { \
3656 if ((bif->bif_ifflags & IFBIF_STP) != 0) \
3674 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { \
3678 if ((bif->bif_ifflags & IFBIF_STP) == 0) \
3681 bp = &bif->bif_stp; \
3682 bpreq.ifbp_portno = bif->bif_ifp->if_index & 0xfff; \
3754 struct bridge_iflist *bif; in bridge_ioctl_ghostfilter() local
3756 bif = bridge_lookup_member(sc, req->ifbrhf_ifsname); in bridge_ioctl_ghostfilter()
3757 if (bif == NULL) { in bridge_ioctl_ghostfilter()
3762 if (bif->bif_flags & BIFF_HOST_FILTER) { in bridge_ioctl_ghostfilter()
3764 bcopy(bif->bif_hf_hwsrc, req->ifbrhf_hwsrca, in bridge_ioctl_ghostfilter()
3766 req->ifbrhf_ipsrc = bif->bif_hf_ipsrc.s_addr; in bridge_ioctl_ghostfilter()
3775 struct bridge_iflist *bif; in bridge_ioctl_shostfilter() local
3777 bif = bridge_lookup_member(sc, req->ifbrhf_ifsname); in bridge_ioctl_shostfilter()
3778 if (bif == NULL) { in bridge_ioctl_shostfilter()
3783 bif->bif_flags |= BIFF_HOST_FILTER; in bridge_ioctl_shostfilter()
3786 bcopy(req->ifbrhf_hwsrca, bif->bif_hf_hwsrc, in bridge_ioctl_shostfilter()
3790 bif->bif_flags |= BIFF_HF_HWSRC; in bridge_ioctl_shostfilter()
3792 bif->bif_flags &= ~BIFF_HF_HWSRC; in bridge_ioctl_shostfilter()
3796 bif->bif_hf_ipsrc.s_addr = req->ifbrhf_ipsrc; in bridge_ioctl_shostfilter()
3797 if (bif->bif_hf_ipsrc.s_addr != INADDR_ANY) { in bridge_ioctl_shostfilter()
3798 bif->bif_flags |= BIFF_HF_IPSRC; in bridge_ioctl_shostfilter()
3800 bif->bif_flags &= ~BIFF_HF_IPSRC; in bridge_ioctl_shostfilter()
3804 bif->bif_flags &= ~(BIFF_HOST_FILTER | BIFF_HF_HWSRC | in bridge_ioctl_shostfilter()
3806 bzero(bif->bif_hf_hwsrc, ETHER_ADDR_LEN); in bridge_ioctl_shostfilter()
3807 bif->bif_hf_ipsrc.s_addr = INADDR_ANY; in bridge_ioctl_shostfilter()
3937 struct bridge_iflist *bif; in bridge_ioctl_gifstats() local
3941 bif = bridge_lookup_member(sc, mreq->brmr_ifname); in bridge_ioctl_gifstats()
3942 if (bif == NULL) { in bridge_ioctl_gifstats()
3957 error = copyout(&bif->bif_stats, user_addr, buflen); in bridge_ioctl_gifstats()
3987 struct bridge_iflist *bif; in bridge_proto_attach_changed() local
3997 bif = bridge_lookup_member_if(sc, ifp); in bridge_proto_attach_changed()
3998 if (bif != NULL) { in bridge_proto_attach_changed()
3999 changed = bif_set_input_broadcast(bif, input_broadcast); in bridge_proto_attach_changed()
4041 struct bridge_iflist *bif; in bridge_updatelinkstatus() local
4050 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) { in bridge_updatelinkstatus()
4051 if (bif->bif_flags & BIFF_MEDIA_ACTIVE) { in bridge_updatelinkstatus()
4075 struct bridge_iflist *bif; in bridge_iflinkevent() local
4088 bif = bridge_lookup_member_if(sc, ifp); in bridge_iflinkevent()
4089 if (bif != NULL) { in bridge_iflinkevent()
4091 bif->bif_flags |= BIFF_MEDIA_ACTIVE; in bridge_iflinkevent()
4093 bif->bif_flags &= ~BIFF_MEDIA_ACTIVE; in bridge_iflinkevent()
4096 bridge_mac_nat_flush_entries(sc, bif); in bridge_iflinkevent()
5289 struct bridge_iflist *bif;
5306 TAILQ_FOREACH(bif, &sc->sc_iflist, bif_next) {
5307 dst_if = bif->bif_ifp;
5313 if ((bif->bif_flags & BIFF_MEDIA_ACTIVE) == 0) {
5330 if ((bif->bif_ifflags & IFBIF_STP) &&
5331 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
5980 struct bridge_iflist *bif;
5984 bif = bridge_lookup_member_if(sc, ifp);
5985 if (bif == NULL) {
5988 if (!bif_has_checksum_offload(bif)) {
5991 bripstats_apply(&bif->bif_stats.brms_in_ip, stats_p);
6008 struct bridge_iflist *bif, *bif2;
6096 bif = bridge_lookup_member_if(sc, ifp);
6097 if (bif == NULL) {
6104 if (is_ip && bif_has_checksum_offload(bif)) {
6106 bripstats_apply(&bif->bif_stats.brms_in_ip, &stats);
6109 &info, &bif->bif_stats.brms_in_ip);
6114 bif->bif_ifp->if_xname, error);
6121 &bif->bif_stats);
6126 bif->bif_ifp->if_xname, error);
6141 if (bif->bif_flags & BIFF_HOST_FILTER) {
6142 error = bridge_host_filter(bif, data);
6146 bif->bif_ifp->if_xname);
6156 if (is_ip && sc->sc_mac_nat_bif == bif) {
6185 m = bstp_input(&bif->bif_stp, ifp, m);
6196 if ((bif->bif_ifflags & IFBIF_STP) &&
6197 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
6226 bridge_forward(sc, bif, mc);
6261 if ((bif->bif_ifflags & IFBIF_STP) &&
6262 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
6296 if (bif->bif_ifflags & IFBIF_LEARNING) { \
6298 vlan, bif, 0, IFBAF_DYNAMIC); \
6299 if (error && bif->bif_addrmax) { \
6323 if (is_ifp_mac && sc->sc_mac_nat_bif == bif) {
6359 if (bif->bif_ifflags & IFBIF_LEARNING) {
6361 vlan, bif, 0, IFBAF_DYNAMIC);
6409 bridge_forward(sc, bif, m);
6616 struct bridge_iflist *bif;
6624 TAILQ_FOREACH(bif, &sc->sc_spanlist, bif_next) {
6625 dst_if = bif->bif_ifp;
6650 struct bridge_iflist *bif, int setflags, uint8_t flags)
6680 if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) {
6681 bif->bif_addrexceeded++;
6698 if (bif->bif_ifflags & IFBIF_STICKY) {
6712 brt->brt_dst = bif;
6713 bif->bif_addrcnt++;
6723 brt->brt_dst != bif) {
6725 brt->brt_dst = bif;
7449 bridge_dhcp_filter(struct bridge_iflist *bif, struct mbuf *m, size_t offset)
7478 if (bcmp(dhcp.dp_chaddr, bif->bif_hf_hwsrc,
7486 if (dhcp.dp_ciaddr.s_addr != bif->bif_hf_ipsrc.s_addr &&
7497 bridge_host_filter(struct bridge_iflist *bif, mbuf_t *data)
7509 if ((bif->bif_flags & BIFF_HF_HWSRC) != 0 &&
7510 bcmp(eh->ether_shost, bif->bif_hf_hwsrc,
7573 if ((bif->bif_flags & BIFF_HF_HWSRC) != 0) {
7577 if (bcmp(ea->arp_sha, bif->bif_hf_hwsrc,
7583 if ((bif->bif_flags & BIFF_HF_IPSRC) != 0) {
7588 if (bcmp(ea->arp_spa, &bif->bif_hf_ipsrc.s_addr,
7616 if ((bif->bif_flags & BIFF_HF_IPSRC) != 0) {
7633 if (iphdr.ip_src.s_addr != bif->bif_hf_ipsrc.s_addr &&
7661 error = bridge_dhcp_filter(bif, m, offset);
7670 } else if (iphdr.ip_src.s_addr != bif->bif_hf_ipsrc.s_addr) {
7671 assert(bif->bif_hf_ipsrc.s_addr != INADDR_ANY);
7743 bridge_mac_nat_enable(struct bridge_softc *sc, struct bridge_iflist *bif)
7749 if (IFNET_IS_VMNET(bif->bif_ifp)) {
7754 if (sc->sc_mac_nat_bif != bif) {
7759 sc->sc_mac_nat_bif = bif;
7760 bif->bif_ifflags |= IFBIF_MAC_NAT;
7860 struct bridge_iflist *bif, int af, const void *ip, uint8_t *eaddr)
7877 mne->mne_bif = bif;
7896 struct bridge_iflist *bif, int af, void *ip, uint8_t *eaddr)
7907 if (mne->mne_bif != bif) {
7910 bif->bif_ifp->if_xname);
7913 } else if (mne->mne_bif != bif) {
7916 mne->mne_bif = bif;
7927 mne = bridge_create_mac_nat_entry(sc, bif, af, ip, eaddr);
7934 struct mac_nat_entry_list *list, struct bridge_iflist *bif)
7940 if (bif != NULL && mne->mne_bif != bif) {
7955 bridge_mac_nat_flush_entries(struct bridge_softc *sc, struct bridge_iflist * bif)
7959 flush_bif = (bif == sc->sc_mac_nat_bif) ? NULL : bif;
8180 struct bridge_iflist *bif, mbuf_t *data, struct mac_nat_record *mnr)
8207 mne = bridge_update_mac_nat_entry(sc, bif, AF_INET, &ip, ea->arp_sha);
8299 struct bridge_iflist *bif, mbuf_t m,
8347 bif->bif_ifp->if_xname,
8355 struct bridge_iflist *bif, mbuf_t *data, struct mac_nat_record *mnr)
8378 mne = bridge_update_mac_nat_entry(sc, bif, AF_INET, &ip,
8384 bridge_mac_nat_udp_output(sc, bif, *data,
8429 struct bridge_iflist *bif,
8645 sc->sc_if_xname, bif->bif_ifp->if_xname, str,
8678 struct bridge_iflist *bif, mbuf_t *data, struct mac_nat_record *mnr)
8686 translate = (bif == sc->sc_mac_nat_bif) ? FALSE : TRUE;
8696 bridge_mac_nat_icmpv6_output(sc, bif, data, ip6h, &saddr, mnr);
8701 (void)bridge_update_mac_nat_entry(sc, bif, AF_INET6, &saddr,
8801 struct bridge_iflist *bif, mbuf_t *data, struct mac_nat_record *mnr)
8818 translate = bridge_mac_nat_arp_output(sc, bif, data, mnr);
8821 translate = bridge_mac_nat_ip_output(sc, bif, data, mnr);
8824 translate = bridge_mac_nat_ipv6_output(sc, bif, data, mnr);