Lines Matching defs:xdp

2 /* net/core/xdp.c
21 #include <net/xdp.h>
23 #include <trace/events/xdp.h>
434 bool napi_direct, struct xdp_buff *xdp)
455 xsk_buff_free(xdp);
541 * @xdp: &xdp_buff to release the frag for
543 void xdp_return_frag(netmem_ref netmem, const struct xdp_buff *xdp)
545 __xdp_return(netmem, xdp->rxq->mem.type, true, NULL);
549 void xdp_return_buff(struct xdp_buff *xdp)
553 if (likely(!xdp_buff_has_frags(xdp)))
556 sinfo = xdp_get_shared_info_from_buff(xdp);
559 xdp->rxq->mem.type, true, xdp);
562 __xdp_return(virt_to_netmem(xdp->data), xdp->rxq->mem.type, true, xdp);
576 struct xdp_frame *xdp_convert_zc_to_xdp_frame(struct xdp_buff *xdp)
584 metasize = xdp_data_meta_unsupported(xdp) ? 0 :
585 xdp->data - xdp->data_meta;
586 totsize = xdp->data_end - xdp->data + metasize;
600 data_to_copy = metasize ? xdp->data_meta : xdp->data;
610 xsk_buff_free(xdp);
624 * @xdp: &xdp_buff to convert to an skb
633 struct sk_buff *xdp_build_skb_from_buff(const struct xdp_buff *xdp)
635 const struct xdp_rxq_info *rxq = xdp->rxq;
641 if (unlikely(xdp_buff_has_frags(xdp))) {
642 sinfo = xdp_get_shared_info_from_buff(xdp);
646 skb = napi_build_skb(xdp->data_hard_start, xdp->frame_sz);
650 skb_reserve(skb, xdp->data - xdp->data_hard_start);
651 __skb_put(skb, xdp->data_end - xdp->data);
653 metalen = xdp->data - xdp->data_meta;
665 tsize = sinfo->xdp_frags_truesize ? : nr_frags * xdp->frame_sz;
667 tsize, xdp_buff_get_skb_flags(xdp));
679 * @xdp: XSk &xdp_buff from which the frags will be copied
688 const struct xdp_buff *xdp,
696 xinfo = xdp_get_shared_info_from_buff(xdp);
728 * @xdp: source XSk buff
734 * If new skb was built successfully, @xdp is returned to XSk pool's freelist.
739 struct sk_buff *xdp_build_skb_from_zc(struct xdp_buff *xdp)
741 const struct xdp_rxq_info *rxq = xdp->rxq;
742 u32 len = xdp->data_end - xdp->data_meta;
743 u32 truesize = xdp->frame_sz;
765 skb_reserve(skb, xdp->data_meta - xdp->data_hard_start);
767 memcpy(__skb_put(skb, len), xdp->data_meta, LARGEST_ALIGN(len));
769 metalen = xdp->data - xdp->data_meta;
777 if (unlikely(xdp_buff_has_frags(xdp)) &&
778 unlikely(!xdp_copy_frags_from_zc(skb, xdp, pp))) {
784 xsk_buff_free(xdp);
803 /* xdp frags frame */