Lines Matching refs:skb
488 static u32 dev_map_bpf_prog_run_skb(struct sk_buff *skb, struct bpf_dtab_netdev *dst) in dev_map_bpf_prog_run_skb() argument
497 __skb_pull(skb, skb->mac_len); in dev_map_bpf_prog_run_skb()
500 act = bpf_prog_run_generic_xdp(skb, &xdp, dst->xdp_prog); in dev_map_bpf_prog_run_skb()
503 __skb_push(skb, skb->mac_len); in dev_map_bpf_prog_run_skb()
512 kfree_skb(skb); in dev_map_bpf_prog_run_skb()
659 int dev_map_generic_redirect(struct bpf_dtab_netdev *dst, struct sk_buff *skb, in dev_map_generic_redirect() argument
664 err = xdp_ok_fwd_dev(dst->dev, skb->len); in dev_map_generic_redirect()
672 if (dev_map_bpf_prog_run_skb(skb, dst) != XDP_PASS) in dev_map_generic_redirect()
675 skb->dev = dst->dev; in dev_map_generic_redirect()
676 generic_xdp_tx(skb, xdp_prog); in dev_map_generic_redirect()
682 struct sk_buff *skb, in dev_map_redirect_clone() argument
688 nskb = skb_clone(skb, GFP_ATOMIC); in dev_map_redirect_clone()
701 int dev_map_redirect_multi(struct net_device *dev, struct sk_buff *skb, in dev_map_redirect_multi() argument
735 err = dev_map_redirect_clone(last_dst, skb, xdp_prog); in dev_map_redirect_multi()
759 err = dev_map_redirect_clone(last_dst, skb, xdp_prog); in dev_map_redirect_multi()
770 return dev_map_generic_redirect(last_dst, skb, xdp_prog); in dev_map_redirect_multi()
773 consume_skb(skb); in dev_map_redirect_multi()