Lines Matching refs:xdpf
345 struct xdp_frame *xdpf = frames[i]; in dev_map_bpf_prog_run() local
349 xdp_convert_frame_to_buff(xdpf, &xdp); in dev_map_bpf_prog_run()
356 err = xdp_update_frame_from_buff(&xdp, xdpf); in dev_map_bpf_prog_run()
358 xdp_return_frame_rx_napi(xdpf); in dev_map_bpf_prog_run()
360 frames[nframes++] = xdpf; in dev_map_bpf_prog_run()
369 xdp_return_frame_rx_napi(xdpf); in dev_map_bpf_prog_run()
388 struct xdp_frame *xdpf = bq->q[i]; in bq_xmit_all() local
390 prefetch(xdpf); in bq_xmit_all()
456 static void bq_enqueue(struct net_device *dev, struct xdp_frame *xdpf, in bq_enqueue() argument
479 bq->q[bq->count++] = xdpf; in bq_enqueue()
482 static inline int __xdp_enqueue(struct net_device *dev, struct xdp_frame *xdpf, in __xdp_enqueue() argument
492 xdp_frame_has_frags(xdpf))) in __xdp_enqueue()
495 err = xdp_ok_fwd_dev(dev, xdp_get_frame_len(xdpf)); in __xdp_enqueue()
499 bq_enqueue(dev, xdpf, dev_rx, xdp_prog); in __xdp_enqueue()
534 int dev_xdp_enqueue(struct net_device *dev, struct xdp_frame *xdpf, in dev_xdp_enqueue() argument
537 return __xdp_enqueue(dev, xdpf, dev_rx, NULL); in dev_xdp_enqueue()
540 int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_frame *xdpf, in dev_map_enqueue() argument
545 return __xdp_enqueue(dev, xdpf, dev_rx, dst->xdp_prog); in dev_map_enqueue()
548 static bool is_valid_dst(struct bpf_dtab_netdev *obj, struct xdp_frame *xdpf) in is_valid_dst() argument
557 xdp_frame_has_frags(xdpf))) in is_valid_dst()
560 if (xdp_ok_fwd_dev(obj->dev, xdp_get_frame_len(xdpf))) in is_valid_dst()
568 struct xdp_frame *xdpf) in dev_map_enqueue_clone() argument
572 nxdpf = xdpf_clone(xdpf); in dev_map_enqueue_clone()
606 int dev_map_enqueue_multi(struct xdp_frame *xdpf, struct net_device *dev_rx, in dev_map_enqueue_multi() argument
626 if (!is_valid_dst(dst, xdpf)) in dev_map_enqueue_multi()
638 err = dev_map_enqueue_clone(last_dst, dev_rx, xdpf); in dev_map_enqueue_multi()
649 if (!is_valid_dst(dst, xdpf)) in dev_map_enqueue_multi()
662 err = dev_map_enqueue_clone(last_dst, dev_rx, xdpf); in dev_map_enqueue_multi()
673 bq_enqueue(last_dst->dev, xdpf, dev_rx, last_dst->xdp_prog); in dev_map_enqueue_multi()
675 xdp_return_frame_rx_napi(xdpf); /* dtab is empty */ in dev_map_enqueue_multi()