if_ethersubr.c (7e2041e0c42219263220e8d1f4ce1d18072346b4) if_ethersubr.c (58996b1337f58b869c82a4ab1a4595b36f0950f9)
1/*-
2 * Copyright (c) 1982, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 605 unchanged lines hidden (view full) ---

614 goto post_stats;
615#endif
616
617 if (!(BDG_ACTIVE(ifp)) &&
618 !((ether_type == ETHERTYPE_VLAN || m->m_flags & M_VLANTAG) &&
619 ifp->if_nvlans > 0)) {
620#ifdef DEV_CARP
621 /*
1/*-
2 * Copyright (c) 1982, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 605 unchanged lines hidden (view full) ---

614 goto post_stats;
615#endif
616
617 if (!(BDG_ACTIVE(ifp)) &&
618 !((ether_type == ETHERTYPE_VLAN || m->m_flags & M_VLANTAG) &&
619 ifp->if_nvlans > 0)) {
620#ifdef DEV_CARP
621 /*
622 * XXX: Okay, we need to call carp_forus() and - if it is for us
623 * jump over code that does the normal check
622 * XXX: Okay, we need to call carp_forus() and - if it is for
623 * us jump over code that does the normal check
624 * "ac_enaddr == ether_dhost". The check sequence is a bit
624 * "ac_enaddr == ether_dhost". The check sequence is a bit
625 * different from OpenBSD, so we jump over as few code as possible,
626 * to catch _all_ sanity checks. This needs evaluation, to see if
627 * the carp ether_dhost values break any of these checks!
625 * different from OpenBSD, so we jump over as few code as
626 * possible, to catch _all_ sanity checks. This needs
627 * evaluation, to see if the carp ether_dhost values break any
628 * of these checks!
628 */
629 if (ifp->if_carp && carp_forus(ifp->if_carp, eh->ether_dhost))
630 goto pre_stats;
631#endif
632 /*
633 * Discard packet if upper layers shouldn't see it because it
634 * was unicast to a different Ethernet address. If the driver
635 * is working properly, then this situation can only happen

--- 507 unchanged lines hidden ---
629 */
630 if (ifp->if_carp && carp_forus(ifp->if_carp, eh->ether_dhost))
631 goto pre_stats;
632#endif
633 /*
634 * Discard packet if upper layers shouldn't see it because it
635 * was unicast to a different Ethernet address. If the driver
636 * is working properly, then this situation can only happen

--- 507 unchanged lines hidden ---