Changeset View
Changeset View
Standalone View
Standalone View
sys/net/if_ethersubr.c
Show First 20 Lines • Show All 485 Lines • ▼ Show 20 Lines | if_printf(ifp, "discard frame w/o leading ethernet " | ||||
"header (len %u pkt len %u)\n", | "header (len %u pkt len %u)\n", | ||||
m->m_len, m->m_pkthdr.len); | m->m_len, m->m_pkthdr.len); | ||||
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); | if_inc_counter(ifp, IFCOUNTER_IERRORS, 1); | ||||
m_freem(m); | m_freem(m); | ||||
return; | return; | ||||
} | } | ||||
eh = mtod(m, struct ether_header *); | eh = mtod(m, struct ether_header *); | ||||
etype = ntohs(eh->ether_type); | etype = ntohs(eh->ether_type); | ||||
random_harvest_queue(m, sizeof(*m), 2, RANDOM_NET_ETHER); | random_harvest_fast(m, sizeof(*m), 2, RANDOM_NET_ETHER); | ||||
CURVNET_SET_QUIET(ifp->if_vnet); | CURVNET_SET_QUIET(ifp->if_vnet); | ||||
if (ETHER_IS_MULTICAST(eh->ether_dhost)) { | if (ETHER_IS_MULTICAST(eh->ether_dhost)) { | ||||
if (ETHER_IS_BROADCAST(eh->ether_dhost)) | if (ETHER_IS_BROADCAST(eh->ether_dhost)) | ||||
m->m_flags |= M_BCAST; | m->m_flags |= M_BCAST; | ||||
else | else | ||||
m->m_flags |= M_MCAST; | m->m_flags |= M_MCAST; | ||||
▲ Show 20 Lines • Show All 751 Lines • Show Last 20 Lines |