Lines Matching full:xdp
2 /* include/net/xdp.h
12 * DOC: XDP RX-queue information
14 * The XDP RX-queue info (xdp_rxq_info) is associated with the driver
19 * reference to this xdp_rxq_info structure. This provides the XDP
29 * The struct is not directly tied to the XDP prog. A new XDP prog
40 MEM_TYPE_PAGE_ORDER0, /* Orig XDP full page model */
46 /* XDP flags for ndo_xdp_xmit */
80 * This macro reserves tailroom in the XDP buffer by limiting the
81 * XDP/BPF data access to data_hard_end. Notice same area (and size)
84 #define xdp_data_hard_end(xdp) \ argument
85 ((xdp)->data_hard_start + (xdp)->frame_sz - \
89 xdp_get_shared_info_from_buff(struct xdp_buff *xdp) in xdp_get_shared_info_from_buff() argument
91 return (struct skb_shared_info *)xdp_data_hard_end(xdp); in xdp_get_shared_info_from_buff()
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) in xdp_convert_frame_to_buff() argument
139 xdp->data_hard_start = frame->data - frame->headroom - sizeof(*frame); in xdp_convert_frame_to_buff()
140 xdp->data = frame->data; in xdp_convert_frame_to_buff()
141 xdp->data_end = frame->data + frame->len; in xdp_convert_frame_to_buff()
142 xdp->data_meta = frame->data - frame->metasize; in xdp_convert_frame_to_buff()
143 xdp->frame_sz = frame->frame_sz; in xdp_convert_frame_to_buff()
147 int xdp_update_frame_from_buff(struct xdp_buff *xdp, in xdp_update_frame_from_buff() argument
153 headroom = xdp->data - xdp->data_hard_start; in xdp_update_frame_from_buff()
154 metasize = xdp->data - xdp->data_meta; in xdp_update_frame_from_buff()
160 if (unlikely(xdp->data_end > xdp_data_hard_end(xdp))) { in xdp_update_frame_from_buff()
165 xdp_frame->data = xdp->data; in xdp_update_frame_from_buff()
166 xdp_frame->len = xdp->data_end - xdp->data; in xdp_update_frame_from_buff()
169 xdp_frame->frame_sz = xdp->frame_sz; in xdp_update_frame_from_buff()
176 struct xdp_frame *xdp_convert_buff_to_frame(struct xdp_buff *xdp) in xdp_convert_buff_to_frame() argument
180 if (xdp->rxq->mem.type == MEM_TYPE_XSK_BUFF_POOL) in xdp_convert_buff_to_frame()
181 return xdp_convert_zc_to_xdp_frame(xdp); in xdp_convert_buff_to_frame()
184 xdp_frame = xdp->data_hard_start; in xdp_convert_buff_to_frame()
185 if (unlikely(xdp_update_frame_from_buff(xdp, xdp_frame) < 0)) in xdp_convert_buff_to_frame()
189 xdp_frame->mem = xdp->rxq->mem; in xdp_convert_buff_to_frame()
196 void xdp_return_buff(struct xdp_buff *xdp);
225 /* Drivers not supporting XDP metadata can use this helper, which
229 xdp_set_data_meta_invalid(struct xdp_buff *xdp) in xdp_set_data_meta_invalid() argument
231 xdp->data_meta = xdp->data + 1; in xdp_set_data_meta_invalid()
235 xdp_data_meta_unsupported(const struct xdp_buff *xdp) in xdp_data_meta_unsupported() argument
237 return unlikely(xdp->data_meta > xdp->data); in xdp_data_meta_unsupported()