Lines Matching defs:channel
67 static struct sk_buff *efx_rx_mk_skb(struct efx_channel *channel,
72 struct efx_nic *efx = channel->efx;
106 rx_buf = efx_rx_buf_next(&channel->rx_queue, rx_buf);
119 skb_mark_napi_id(skb, &channel->napi_str);
128 struct efx_channel *channel = efx_rx_queue_channel(rx_queue);
162 efx_rx_flush_packet(channel);
163 efx_discard_rx_packet(channel, rx_buf, n_frags);
201 efx_recycle_rx_pages(channel, rx_buf, n_frags);
206 efx_rx_flush_packet(channel);
207 channel->rx_pkt_n_frags = n_frags;
208 channel->rx_pkt_index = index;
211 static void efx_rx_deliver(struct efx_channel *channel, u8 *eh,
218 skb = efx_rx_mk_skb(channel, rx_buf, n_frags, eh, hdr_len);
222 rx_queue = efx_channel_get_rx_queue(channel);
226 skb_record_rx_queue(skb, channel->rx_queue.core_index);
235 efx_rx_skb_attach_timestamp(channel, skb);
237 if (channel->type->receive_skb)
238 if (channel->type->receive_skb(channel, skb))
242 if (channel->rx_list != NULL)
244 list_add_tail(&skb->list, channel->rx_list);
254 static bool efx_do_xdp(struct efx_nic *efx, struct efx_channel *channel,
273 rx_queue = efx_channel_get_rx_queue(channel);
275 if (unlikely(channel->rx_pkt_n_frags > 1)) {
279 channel->rx_pkt_n_frags);
283 channel->rx_pkt_n_frags);
284 channel->n_rx_xdp_bad_drops++;
331 channel->n_rx_xdp_bad_drops++;
334 channel->n_rx_xdp_tx++;
345 channel->n_rx_xdp_bad_drops++;
348 channel->n_rx_xdp_redirect++;
355 channel->n_rx_xdp_bad_drops++;
364 channel->n_rx_xdp_drops++;
372 void __efx_rx_packet(struct efx_channel *channel)
374 struct efx_nic *efx = channel->efx;
376 efx_rx_buffer(&channel->rx_queue, channel->rx_pkt_index);
393 rx_queue = efx_channel_get_rx_queue(channel);
395 channel->rx_pkt_n_frags);
399 if (!efx_do_xdp(efx, channel, rx_buf, &eh))
405 if ((rx_buf->flags & EFX_RX_PKT_TCP) && !channel->type->receive_skb)
406 efx_rx_packet_gro(channel, rx_buf, channel->rx_pkt_n_frags, eh, 0);
408 efx_rx_deliver(channel, eh, rx_buf, channel->rx_pkt_n_frags);
410 channel->rx_pkt_n_frags = 0;