Lines Matching refs:netdev

44 	struct net_device *netdev;  member
54 .key_offset = offsetof(struct bpf_offload_netdev, netdev),
61 static int bpf_dev_offload_check(struct net_device *netdev) in bpf_dev_offload_check() argument
63 if (!netdev) in bpf_dev_offload_check()
65 if (!netdev->netdev_ops->ndo_bpf) in bpf_dev_offload_check()
71 bpf_offload_find_netdev(struct net_device *netdev) in bpf_offload_find_netdev() argument
75 return rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in bpf_offload_find_netdev()
79 struct net_device *netdev) in __bpf_offload_dev_netdev_register() argument
88 ondev->netdev = netdev; in __bpf_offload_dev_netdev_register()
95 netdev_warn(netdev, "failed to register for BPF offload\n"); in __bpf_offload_dev_netdev_register()
124 struct net_device *netdev; in bpf_map_offload_ndo() local
131 netdev = offmap->netdev; in bpf_map_offload_ndo()
133 return netdev->netdev_ops->ndo_bpf(netdev, &data); in bpf_map_offload_ndo()
142 offmap->netdev = NULL; in __bpf_map_offload_destroy()
146 struct net_device *netdev) in __bpf_offload_dev_netdev_unregister() argument
154 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in __bpf_offload_dev_netdev_unregister()
170 offload->netdev = altdev->netdev; in __bpf_offload_dev_netdev_unregister()
174 offmap->netdev = altdev->netdev; in __bpf_offload_dev_netdev_unregister()
188 static int __bpf_prog_dev_bound_init(struct bpf_prog *prog, struct net_device *netdev) in __bpf_prog_dev_bound_init() argument
199 offload->netdev = netdev; in __bpf_prog_dev_bound_init()
201 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
213 err = __bpf_offload_dev_netdev_register(NULL, offload->netdev); in __bpf_prog_dev_bound_init()
216 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
230 struct net_device *netdev; in bpf_prog_dev_bound_init() local
244 netdev = dev_get_by_index(current->nsproxy->net_ns, attr->prog_ifindex); in bpf_prog_dev_bound_init()
245 if (!netdev) in bpf_prog_dev_bound_init()
248 err = bpf_dev_offload_check(netdev); in bpf_prog_dev_bound_init()
255 err = __bpf_prog_dev_bound_init(prog, netdev); in bpf_prog_dev_bound_init()
259 dev_put(netdev); in bpf_prog_dev_bound_init()
282 err = __bpf_prog_dev_bound_init(new_prog, old_prog->aux->offload->netdev); in bpf_prog_dev_bound_inherit()
377 struct net_device *netdev; in bpf_prog_dev_bound_destroy() local
384 netdev = prog->aux->offload->netdev; in bpf_prog_dev_bound_destroy()
387 ondev = bpf_offload_find_netdev(netdev); in bpf_prog_dev_bound_destroy()
389 __bpf_offload_dev_netdev_unregister(NULL, netdev); in bpf_prog_dev_bound_destroy()
439 args->info->ifindex = aux->offload->netdev->ifindex; in bpf_prog_offload_info_fill_ns()
440 net = dev_net(aux->offload->netdev); in bpf_prog_offload_info_fill_ns()
527 offmap->netdev = __dev_get_by_index(net, attr->map_ifindex); in bpf_map_offload_map_alloc()
528 err = bpf_dev_offload_check(offmap->netdev); in bpf_map_offload_map_alloc()
532 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
561 if (offmap->netdev) in bpf_map_offload_map_free()
581 if (offmap->netdev) in bpf_map_offload_lookup_elem()
598 if (offmap->netdev) in bpf_map_offload_update_elem()
612 if (offmap->netdev) in bpf_map_offload_delete_elem()
625 if (offmap->netdev) in bpf_map_offload_get_next_key()
646 if (args->offmap->netdev) { in bpf_map_offload_info_fill_ns()
647 args->info->ifindex = args->offmap->netdev->ifindex; in bpf_map_offload_info_fill_ns()
648 net = dev_net(args->offmap->netdev); in bpf_map_offload_info_fill_ns()
688 struct net_device *netdev) in __bpf_offload_dev_match() argument
699 if (offload->netdev == netdev) in __bpf_offload_dev_match()
702 ondev1 = bpf_offload_find_netdev(offload->netdev); in __bpf_offload_dev_match()
703 ondev2 = bpf_offload_find_netdev(netdev); in __bpf_offload_dev_match()
708 bool bpf_offload_dev_match(struct bpf_prog *prog, struct net_device *netdev) in bpf_offload_dev_match() argument
713 ret = __bpf_offload_dev_match(prog, netdev); in bpf_offload_dev_match()
729 lhs->aux->offload->netdev && in bpf_prog_dev_bound_match()
730 lhs->aux->offload->netdev == rhs->aux->offload->netdev; in bpf_prog_dev_bound_match()
746 ret = __bpf_offload_dev_match(prog, offmap->netdev); in bpf_offload_prog_map_match()
753 struct net_device *netdev) in bpf_offload_dev_netdev_register() argument
758 err = __bpf_offload_dev_netdev_register(offdev, netdev); in bpf_offload_dev_netdev_register()
765 struct net_device *netdev) in bpf_offload_dev_netdev_unregister() argument
768 __bpf_offload_dev_netdev_unregister(offdev, netdev); in bpf_offload_dev_netdev_unregister()
812 __bpf_offload_dev_netdev_unregister(NULL, ondev->netdev); in bpf_dev_bound_netdev_unregister()
846 ops = prog->aux->offload->netdev->xdp_metadata_ops; in bpf_dev_bound_resolve_kfunc()