Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/re/if_re.c
Context not available. | |||||
.ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, | .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, | ||||
.ifat_capabilities = IFCAP_LINKSTATE, | .ifat_capabilities = IFCAP_LINKSTATE, | ||||
.ifat_mediamask = MII_MEDIA_MASK, | .ifat_mediamask = MII_MEDIA_MASK, | ||||
.ifat_nrings = 1, | |||||
}; | }; | ||||
u_char eaddr[ETHER_ADDR_LEN]; | u_char eaddr[ETHER_ADDR_LEN]; | ||||
u_int16_t as[ETHER_ADDR_LEN / 2]; | u_int16_t as[ETHER_ADDR_LEN / 2]; | ||||
Context not available. | |||||
{ | { | ||||
struct mbuf *m; | struct mbuf *m; | ||||
if_t ifp; | if_t ifp; | ||||
ifring_t *ifrs, ifr; | |||||
int i, rxerr, total_len; | int i, rxerr, total_len; | ||||
struct rl_desc *cur_rx; | struct rl_desc *cur_rx; | ||||
u_int32_t rxstat, rxvlan; | u_int32_t rxstat, rxvlan; | ||||
Context not available. | |||||
RL_LOCK_ASSERT(sc); | RL_LOCK_ASSERT(sc); | ||||
ifp = sc->rl_ifp; | ifp = sc->rl_ifp; | ||||
ifrs = if_getsoftc(ifp, IF_RING); | |||||
ifr = ifrs[0]; | |||||
#ifdef DEV_NETMAP | #ifdef DEV_NETMAP | ||||
if (netmap_rx_irq(ifp, 0, &rx_npkts)) | if (netmap_rx_irq(ifp, 0, &rx_npkts)) | ||||
return 0; | return 0; | ||||
Context not available. | |||||
if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); | if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); | ||||
if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); | if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); | ||||
m->m_pkthdr.rcvif = ifp; | m->m_pkthdr.rcvif = ifp; | ||||
m->m_pkthdr.ifring = ifr; | |||||
/* Do RX checksumming if enabled */ | /* Do RX checksumming if enabled */ | ||||
Context not available. |