Lines Matching refs:mne
3847 struct mac_nat_entry *mne; in bridge_mac_nat_entry_out() local
3851 LIST_FOREACH(mne, list, mne_list) { in bridge_mac_nat_entry_out()
3856 "%s", mne->mne_bif->bif_ifp->if_xname); in bridge_mac_nat_entry_out()
3857 memcpy(ifbmne.ifbmne_mac, mne->mne_mac, in bridge_mac_nat_entry_out()
3860 if (now < mne->mne_expire) { in bridge_mac_nat_entry_out()
3861 ifbmne.ifbmne_expire = mne->mne_expire - now; in bridge_mac_nat_entry_out()
3865 if ((mne->mne_flags & MNE_FLAGS_IPV6) != 0) { in bridge_mac_nat_entry_out()
3867 ifbmne.ifbmne_ip6_addr = mne->mne_ip6; in bridge_mac_nat_entry_out()
3870 ifbmne.ifbmne_ip_addr = mne->mne_ip; in bridge_mac_nat_entry_out()
3900 struct mac_nat_entry *mne; in bridge_ioctl_gmnelist() local
3906 LIST_FOREACH(mne, &sc->sc_mne_list, mne_list) { in bridge_ioctl_gmnelist()
3909 LIST_FOREACH(mne, &sc->sc_mne_list_v6, mne_list) { in bridge_ioctl_gmnelist()
8058 mac_nat_entry_print2(struct mac_nat_entry *mne,
8066 af = ((mne->mne_flags & MNE_FLAGS_IPV6) != 0) ? AF_INET6 : AF_INET;
8067 ether_ntop(etopbuf, sizeof(etopbuf), mne->mne_mac);
8068 (void)inet_ntop(af, &mne->mne_u, ntopbuf, sizeof(ntopbuf));
8076 "%.*s %s%s%s %p (%s, %s, %s)", IFNAMSIZ, ifname, msg1, space, msg2, mne,
8077 mne->mne_bif->bif_ifp->if_xname, ntopbuf, etopbuf);
8081 mac_nat_entry_print(struct mac_nat_entry *mne,
8084 mac_nat_entry_print2(mne, ifname, msg, NULL);
8090 struct mac_nat_entry *mne;
8093 LIST_FOREACH(mne, &sc->sc_mne_list, mne_list) {
8094 if (mne->mne_ip.s_addr == ip->s_addr) {
8096 mac_nat_entry_print(mne, sc->sc_if_xname,
8099 ret_mne = mne;
8110 struct mac_nat_entry *mne;
8113 LIST_FOREACH(mne, &sc->sc_mne_list_v6, mne_list) {
8114 if (IN6_ARE_ADDR_EQUAL(&mne->mne_ip6, ip6)) {
8116 mac_nat_entry_print(mne, sc->sc_if_xname,
8119 ret_mne = mne;
8129 struct mac_nat_entry *mne, const char *reason)
8131 LIST_REMOVE(mne, mne_list);
8133 mac_nat_entry_print(mne, sc->sc_if_xname, reason);
8135 zfree(bridge_mne_pool, mne);
8143 struct mac_nat_entry *mne;
8150 mne = zalloc_noblock(bridge_mne_pool);
8151 if (mne == NULL) {
8157 bzero(mne, sizeof(*mne));
8158 bcopy(eaddr, mne->mne_mac, sizeof(mne->mne_mac));
8160 mne->mne_bif = bif;
8161 mne->mne_expire = (unsigned long)net_uptime() + sc->sc_brttimeout;
8164 mac_nat_entry_print(mne, sc->sc_if_xname, "created");
8167 return mne;
8174 struct mac_nat_entry *mne;
8176 mne = bridge_create_mac_nat_entry_common(sc, bif, eaddr);
8177 if (mne == NULL) {
8181 bcopy(ip, &mne->mne_ip, sizeof(mne->mne_ip));
8182 LIST_INSERT_HEAD(&sc->sc_mne_list, mne, mne_list);
8184 return mne;
8191 struct mac_nat_entry *mne;
8193 mne = bridge_create_mac_nat_entry_common(sc, bif, eaddr);
8194 if (mne == NULL) {
8198 bcopy(ip6, &mne->mne_ip6, sizeof(mne->mne_ip6));
8199 mne->mne_flags |= MNE_FLAGS_IPV6;
8200 LIST_INSERT_HEAD(&sc->sc_mne_list_v6, mne, mne_list);
8202 return mne;
8207 struct mac_nat_entry *mne, const char eaddr[ETHER_ADDR_LEN])
8211 if (mne->mne_bif == mac_nat_bif) {
8214 if (mne->mne_bif != bif) {
8215 mac_nat_entry_print2(mne,
8220 } else if (mne->mne_bif != bif) {
8221 const char *__null_terminated old_if = mne->mne_bif->bif_ifp->if_xname;
8223 mne->mne_bif = bif;
8225 mac_nat_entry_print2(mne,
8229 bcopy(eaddr, mne->mne_mac, sizeof(mne->mne_mac));
8232 mne->mne_expire = (unsigned long)net_uptime() + sc->sc_brttimeout;
8234 return mne;
8241 struct mac_nat_entry *mne;
8243 mne = bridge_lookup_mac_nat_entry_ipv4(sc, ip);
8244 if (mne != NULL) {
8245 return bridge_update_mac_nat_entry_common(sc, bif, mne, eaddr);
8248 mne = bridge_create_mac_nat_entry_ipv4(sc, bif, ip, eaddr);
8249 return mne;
8256 struct mac_nat_entry *mne;
8258 mne = bridge_lookup_mac_nat_entry_ipv6(sc, ip6);
8259 if (mne != NULL) {
8260 return bridge_update_mac_nat_entry_common(sc, bif, mne, eaddr);
8263 mne = bridge_create_mac_nat_entry_ipv6(sc, bif, ip6, eaddr);
8264 return mne;
8271 struct mac_nat_entry *mne;
8274 LIST_FOREACH_SAFE(mne, list, mne_list, tmne) {
8275 if (bif != NULL && mne->mne_bif != bif) {
8278 bridge_destroy_mac_nat_entry(sc, mne, "flushed");
8374 struct mac_nat_entry *mne;
8377 LIST_FOREACH_SAFE(mne, list, mne_list, tmne) {
8378 if (now >= mne->mne_expire) {
8379 bridge_destroy_mac_nat_entry(sc, mne, "aged out");
8471 struct mac_nat_entry *mne = NULL;
8491 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &tpa);
8493 if (mne != NULL) {
8503 mne->mne_mac);
8507 mne->mne_bif->bif_ifp->if_xname,
8510 bcopy(mne->mne_mac, ea->arp_tha, sizeof(ea->arp_tha));
8519 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &spa);
8524 return mne;
8534 struct mac_nat_entry *mne = NULL;
8556 mne = bridge_update_mac_nat_entry_ipv4(sc, bif, &ip,
8558 if (mnr != NULL && mne != NULL) {
8629 struct mac_nat_entry *mne = NULL;
8641 mne = bridge_lookup_mac_nat_entry_ipv4(sc, &dst);
8643 return mne;
8712 struct mac_nat_entry *mne = NULL;
8730 mne = bridge_update_mac_nat_entry_ipv4(sc, bif, &ip,
9019 struct mac_nat_entry *mne = NULL;
9032 mne = bridge_lookup_mac_nat_entry_ipv6(sc, &dst);
9035 return mne;
9099 struct mac_nat_entry *mne = NULL;
9106 mne = bridge_mac_nat_arp_input(sc, &m);
9109 mne = bridge_mac_nat_ip_input(sc, &m);
9112 mne = bridge_mac_nat_ipv6_input(sc, &m);
9117 if (m != NULL & mne != NULL) {
9118 *dst_if = mne->mne_bif->bif_ifp;
9128 bcopy(mne->mne_mac, eh->ether_dhost,