Lines Matching refs:mne
3996 struct mac_nat_entry *mne; in bridge_mac_nat_entry_out() local
4000 LIST_FOREACH(mne, list, mne_list) { in bridge_mac_nat_entry_out()
4005 "%s", mne->mne_bif->bif_ifp->if_xname); in bridge_mac_nat_entry_out()
4006 memcpy(ifbmne.ifbmne_mac, mne->mne_mac, in bridge_mac_nat_entry_out()
4009 if (now < mne->mne_expire) { in bridge_mac_nat_entry_out()
4010 ifbmne.ifbmne_expire = mne->mne_expire - now; in bridge_mac_nat_entry_out()
4014 if ((mne->mne_flags & MNE_FLAGS_IPV6) != 0) { in bridge_mac_nat_entry_out()
4016 ifbmne.ifbmne_ip6_addr = mne->mne_ip6; in bridge_mac_nat_entry_out()
4019 ifbmne.ifbmne_ip_addr = mne->mne_ip; in bridge_mac_nat_entry_out()
4049 struct mac_nat_entry *mne; in bridge_ioctl_gmnelist() local
4055 LIST_FOREACH(mne, &sc->sc_mne_list, mne_list) { in bridge_ioctl_gmnelist()
4058 LIST_FOREACH(mne, &sc->sc_mne_list_v6, mne_list) { in bridge_ioctl_gmnelist()
7492 mac_nat_entry_print2(struct mac_nat_entry *mne,
7500 af = ((mne->mne_flags & MNE_FLAGS_IPV6) != 0) ? AF_INET6 : AF_INET;
7501 ether_ntop(etopbuf, sizeof(etopbuf), mne->mne_mac);
7502 (void)inet_ntop(af, &mne->mne_u, ntopbuf, sizeof(ntopbuf));
7510 "%.*s %s%s%s %p (%s, %s, %s)", IFNAMSIZ, ifname, msg1, space, msg2, mne,
7511 mne->mne_bif->bif_ifp->if_xname, ntopbuf, etopbuf);
7515 mac_nat_entry_print(struct mac_nat_entry *mne,
7518 mac_nat_entry_print2(mne, ifname, msg, NULL);
7524 struct mac_nat_entry *mne;
7527 LIST_FOREACH(mne, &sc->sc_mne_list, mne_list) {
7528 if (mne->mne_ip.s_addr == ip->s_addr) {
7530 mac_nat_entry_print(mne, sc->sc_if_xname,
7533 ret_mne = mne;
7544 struct mac_nat_entry *mne;
7547 LIST_FOREACH(mne, &sc->sc_mne_list_v6, mne_list) {
7548 if (IN6_ARE_ADDR_EQUAL(&mne->mne_ip6, ip6)) {
7550 mac_nat_entry_print(mne, sc->sc_if_xname,
7553 ret_mne = mne;
7563 struct mac_nat_entry *mne, const char *reason)
7565 LIST_REMOVE(mne, mne_list);
7567 mac_nat_entry_print(mne, sc->sc_if_xname, reason);
7569 zfree(bridge_mne_pool, mne);
7577 struct mac_nat_entry *mne;
7584 mne = zalloc_noblock(bridge_mne_pool);
7585 if (mne == NULL) {
7591 bzero(mne, sizeof(*mne));
7592 bcopy(eaddr, mne->mne_mac, sizeof(mne->mne_mac));
7594 mne->mne_bif = bif;
7595 mne->mne_expire = (unsigned long)net_uptime() + sc->sc_brttimeout;
7598 mac_nat_entry_print(mne, sc->sc_if_xname, "created");
7601 return mne;
7608 struct mac_nat_entry *mne;
7610 mne = bridge_create_mac_nat_entry_common(sc, bif, eaddr);
7611 if (mne == NULL) {
7615 bcopy(ip, &mne->mne_ip, sizeof(mne->mne_ip));
7616 LIST_INSERT_HEAD(&sc->sc_mne_list, mne, mne_list);
7618 return mne;
7625 struct mac_nat_entry *mne;
7627 mne = bridge_create_mac_nat_entry_common(sc, bif, eaddr);
7628 if (mne == NULL) {
7632 bcopy(ip6, &mne->mne_ip6, sizeof(mne->mne_ip6));
7633 mne->mne_flags |= MNE_FLAGS_IPV6;
7634 LIST_INSERT_HEAD(&sc->sc_mne_list_v6, mne, mne_list);
7636 return mne;
7641 struct mac_nat_entry *mne, const char eaddr[ETHER_ADDR_LEN])
7645 if (mne->mne_bif == mac_nat_bif) {
7648 if (mne->mne_bif != bif) {
7649 mac_nat_entry_print2(mne,
7654 } else if (mne->mne_bif != bif) {
7655 const char *__null_terminated old_if = mne->mne_bif->bif_ifp->if_xname;
7657 mne->mne_bif = bif;
7659 mac_nat_entry_print2(mne,
7663 bcopy(eaddr, mne->mne_mac, sizeof(mne->mne_mac));
7666 mne->mne_expire = (unsigned long)net_uptime() + sc->sc_brttimeout;
7668 return mne;
7675 struct mac_nat_entry *mne;
7677 mne = bridge_lookup_mac_nat_entry_ipv4(sc, ip);
7678 if (mne != NULL) {
7679 return bridge_update_mac_nat_entry_common(sc, bif, mne, eaddr);
7682 mne = bridge_create_mac_nat_entry_ipv4(sc, bif, ip, eaddr);
7683 return mne;
7690 struct mac_nat_entry *mne;
7692 mne = bridge_lookup_mac_nat_entry_ipv6(sc, ip6);
7693 if (mne != NULL) {
7694 return bridge_update_mac_nat_entry_common(sc, bif, mne, eaddr);
7697 mne = bridge_create_mac_nat_entry_ipv6(sc, bif, ip6, eaddr);
7698 return mne;
7705 struct mac_nat_entry *mne;
7708 LIST_FOREACH_SAFE(mne, list, mne_list, tmne) {
7709 if (bif != NULL && mne->mne_bif != bif) {
7712 bridge_destroy_mac_nat_entry(sc, mne, "flushed");
7808 struct mac_nat_entry *mne;
7811 LIST_FOREACH_SAFE(mne, list, mne_list, tmne) {
7812 if (now >= mne->mne_expire) {
7813 bridge_destroy_mac_nat_entry(sc, mne, "aged out");
7905 struct mac_nat_entry *mne = NULL;
7925 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &tpa);
7927 if (mne != NULL) {
7937 mne->mne_mac);
7941 mne->mne_bif->bif_ifp->if_xname,
7944 bcopy(mne->mne_mac, ea->arp_tha, sizeof(ea->arp_tha));
7953 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &spa);
7958 return mne;
7968 struct mac_nat_entry *mne = NULL;
7990 mne = bridge_update_mac_nat_entry_ipv4(sc, bif, &ip,
7992 if (mnr != NULL && mne != NULL) {
8037 struct mac_nat_entry *mne = NULL;
8049 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &dst);
8051 return mne;
8120 struct mac_nat_entry *mne = NULL;
8138 mne = bridge_update_mac_nat_entry_ipv4(sc, bif, &ip,
8427 struct mac_nat_entry *mne = NULL;
8440 mne = bridge_lookup_mac_nat_entry_ipv6(sc, &dst);
8443 return mne;
8507 struct mac_nat_entry *mne = NULL;
8514 mne = bridge_mac_nat_arp_input(sc, &m);
8517 mne = bridge_mac_nat_ip_input(sc, &m);
8520 mne = bridge_mac_nat_ipv6_input(sc, &m);
8525 if (m != NULL & mne != NULL) {
8526 *dst_if = mne->mne_bif->bif_ifp;
8536 bcopy(mne->mne_mac, eh->ether_dhost,