Lines Matching defs:pkt
253 struct xenvif_pkt_state *pkt)
264 memset(pkt, 0, sizeof(struct xenvif_pkt_state));
266 pkt->skb = skb;
267 pkt->frag_iter = skb;
268 pkt->remaining_len = skb->len;
269 pkt->frag = -1;
275 extra = &pkt->extras[XEN_NETIF_EXTRA_TYPE_GSO - 1];
284 pkt->extra_count++;
290 extra = &pkt->extras[XEN_NETIF_EXTRA_TYPE_XDP - 1];
297 pkt->extra_count++;
303 extra = &pkt->extras[XEN_NETIF_EXTRA_TYPE_HASH - 1];
324 pkt->extra_count++;
329 struct xenvif_pkt_state *pkt)
334 __skb_queue_tail(queue->rx_copy.completed, pkt->skb);
337 static void xenvif_rx_next_frag(struct xenvif_pkt_state *pkt)
339 struct sk_buff *frag_iter = pkt->frag_iter;
342 pkt->frag++;
343 pkt->frag_offset = 0;
345 if (pkt->frag >= nr_frags) {
346 if (frag_iter == pkt->skb)
347 pkt->frag_iter = skb_shinfo(frag_iter)->frag_list;
349 pkt->frag_iter = frag_iter->next;
351 pkt->frag = -1;
356 struct xenvif_pkt_state *pkt,
360 struct sk_buff *frag_iter = pkt->frag_iter;
366 if (pkt->frag == -1) {
370 skb_frag_t *frag = &skb_shinfo(frag_iter)->frags[pkt->frag];
376 frag_data += pkt->frag_offset;
377 frag_len -= pkt->frag_offset;
383 pkt->frag_offset += chunk_len;
387 xenvif_rx_next_frag(pkt);
394 struct xenvif_pkt_state *pkt,
405 xenvif_rx_next_chunk(queue, pkt, offset, &data, &len);
409 pkt->remaining_len -= len;
411 } while (offset < XEN_PAGE_SIZE && pkt->remaining_len > 0);
413 if (pkt->remaining_len > 0)
418 if (pkt->slot == 0) {
419 struct sk_buff *skb = pkt->skb;
427 if (pkt->extra_count != 0)
438 struct xenvif_pkt_state *pkt,
445 pkt->extra_count--;
447 for (i = 0; i < ARRAY_SIZE(pkt->extras); i++) {
448 if (pkt->extras[i].type) {
449 *extra = pkt->extras[i];
451 if (pkt->extra_count != 0)
454 pkt->extras[i].type = 0;
463 struct xenvif_pkt_state pkt;
465 xenvif_rx_next_skb(queue, &pkt);
477 if (pkt.slot != 0 && pkt.extra_count != 0)
478 xenvif_rx_extra_slot(queue, &pkt, req, rsp);
480 xenvif_rx_data_slot(queue, &pkt, req, rsp);
483 pkt.slot++;
484 } while (pkt.remaining_len > 0 || pkt.extra_count != 0);
486 xenvif_rx_complete(queue, &pkt);