In if_ethersubr.c @ line 304:

        switch (dst->sa_family) {
        case AF_INET:
                error = arpresolve(ac, rt, m, dst, edst);
                if (error)
                        return (error == EAGAIN ? 0 : error);
/* If broadcasting on a simplex interface, loopback a copy */ if ((m->m_flags & M_BCAST) && (ifp->if_flags & IFF_SIMPLEX) &&
                    !m->m_pkthdr.pf.routed)
                        mcopy = m_copy(m, 0, (int)M_COPYALL);
                etype = htons(ETHERTYPE_IP);
                break;
#ifdef INET6
        case AF_INET6:
                error = nd6_storelladdr(ifp, rt, m, dst, (u_char *)edst);
                if (error)
                        return (error);
                etype = htons(ETHERTYPE_IPV6);
                break;

@ 374

        /* XXX Should we feed-back an unencrypted IPsec packet ? */
        if (mcopy)
                (void) looutput(ifp, mcopy, dst, rt);

Does the loopback for a simplex interface for IPv6 happen somewhere else?

thanks!
Geoff Steckel

Reply via email to