Lines Matching refs:xdp
2 /* include/net/xdp.h
84 #define xdp_data_hard_end(xdp) \
85 ((xdp)->data_hard_start + (xdp)->frame_sz - \
89 xdp_get_shared_info_from_buff(struct xdp_buff *xdp)
91 return (struct skb_shared_info *)xdp_data_hard_end(xdp);
134 struct xdp_frame *xdp_convert_zc_to_xdp_frame(struct xdp_buff *xdp);
137 void xdp_convert_frame_to_buff(struct xdp_frame *frame, struct xdp_buff *xdp)
139 xdp->data_hard_start = frame->data - frame->headroom - sizeof(*frame);
140 xdp->data = frame->data;
141 xdp->data_end = frame->data + frame->len;
142 xdp->data_meta = frame->data - frame->metasize;
143 xdp->frame_sz = frame->frame_sz;
147 int xdp_update_frame_from_buff(struct xdp_buff *xdp,
153 headroom = xdp->data - xdp->data_hard_start;
154 metasize = xdp->data - xdp->data_meta;
160 if (unlikely(xdp->data_end > xdp_data_hard_end(xdp))) {
165 xdp_frame->data = xdp->data;
166 xdp_frame->len = xdp->data_end - xdp->data;
169 xdp_frame->frame_sz = xdp->frame_sz;
176 struct xdp_frame *xdp_convert_buff_to_frame(struct xdp_buff *xdp)
180 if (xdp->rxq->mem.type == MEM_TYPE_XSK_BUFF_POOL)
181 return xdp_convert_zc_to_xdp_frame(xdp);
184 xdp_frame = xdp->data_hard_start;
185 if (unlikely(xdp_update_frame_from_buff(xdp, xdp_frame) < 0))
189 xdp_frame->mem = xdp->rxq->mem;
196 void xdp_return_buff(struct xdp_buff *xdp);
229 xdp_set_data_meta_invalid(struct xdp_buff *xdp)
231 xdp->data_meta = xdp->data + 1;
235 xdp_data_meta_unsupported(const struct xdp_buff *xdp)
237 return unlikely(xdp->data_meta > xdp->data);