Lines Matching refs:netdev

45 	struct net_device *netdev;  member
55 .key_offset = offsetof(struct bpf_offload_netdev, netdev),
62 static int bpf_dev_offload_check(struct net_device *netdev) in bpf_dev_offload_check() argument
64 if (!netdev) in bpf_dev_offload_check()
66 if (!netdev->netdev_ops->ndo_bpf) in bpf_dev_offload_check()
72 bpf_offload_find_netdev(struct net_device *netdev) in bpf_offload_find_netdev() argument
76 return rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in bpf_offload_find_netdev()
80 struct net_device *netdev) in __bpf_offload_dev_netdev_register() argument
89 ondev->netdev = netdev; in __bpf_offload_dev_netdev_register()
96 netdev_warn(netdev, "failed to register for BPF offload\n"); in __bpf_offload_dev_netdev_register()
125 struct net_device *netdev; in bpf_map_offload_ndo() local
132 netdev = offmap->netdev; in bpf_map_offload_ndo()
134 return netdev->netdev_ops->ndo_bpf(netdev, &data); in bpf_map_offload_ndo()
143 offmap->netdev = NULL; in __bpf_map_offload_destroy()
147 struct net_device *netdev) in __bpf_offload_dev_netdev_unregister() argument
155 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in __bpf_offload_dev_netdev_unregister()
171 offload->netdev = altdev->netdev; in __bpf_offload_dev_netdev_unregister()
175 offmap->netdev = altdev->netdev; in __bpf_offload_dev_netdev_unregister()
189 static int __bpf_prog_dev_bound_init(struct bpf_prog *prog, struct net_device *netdev) in __bpf_prog_dev_bound_init() argument
200 offload->netdev = netdev; in __bpf_prog_dev_bound_init()
202 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
214 err = __bpf_offload_dev_netdev_register(NULL, offload->netdev); in __bpf_prog_dev_bound_init()
217 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
231 struct net_device *netdev; in bpf_prog_dev_bound_init() local
252 netdev = dev_get_by_index(current->nsproxy->net_ns, attr->prog_ifindex); in bpf_prog_dev_bound_init()
253 if (!netdev) in bpf_prog_dev_bound_init()
256 err = bpf_dev_offload_check(netdev); in bpf_prog_dev_bound_init()
263 err = __bpf_prog_dev_bound_init(prog, netdev); in bpf_prog_dev_bound_init()
267 dev_put(netdev); in bpf_prog_dev_bound_init()
290 err = __bpf_prog_dev_bound_init(new_prog, old_prog->aux->offload->netdev); in bpf_prog_dev_bound_inherit()
385 struct net_device *netdev; in bpf_prog_dev_bound_destroy() local
392 netdev = prog->aux->offload->netdev; in bpf_prog_dev_bound_destroy()
395 ondev = bpf_offload_find_netdev(netdev); in bpf_prog_dev_bound_destroy()
397 __bpf_offload_dev_netdev_unregister(NULL, netdev); in bpf_prog_dev_bound_destroy()
447 args->info->ifindex = aux->offload->netdev->ifindex; in bpf_prog_offload_info_fill_ns()
448 net = dev_net(aux->offload->netdev); in bpf_prog_offload_info_fill_ns()
533 offmap->netdev = __dev_get_by_index(net, attr->map_ifindex); in bpf_map_offload_map_alloc()
534 err = bpf_dev_offload_check(offmap->netdev); in bpf_map_offload_map_alloc()
538 netdev_lock_ops(offmap->netdev); in bpf_map_offload_map_alloc()
541 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
553 netdev_unlock_ops(offmap->netdev); in bpf_map_offload_map_alloc()
560 netdev_unlock_ops(offmap->netdev); in bpf_map_offload_map_alloc()
573 if (offmap->netdev) in bpf_map_offload_map_free()
593 if (offmap->netdev) in bpf_map_offload_lookup_elem()
610 if (offmap->netdev) in bpf_map_offload_update_elem()
624 if (offmap->netdev) in bpf_map_offload_delete_elem()
637 if (offmap->netdev) in bpf_map_offload_get_next_key()
658 if (args->offmap->netdev) { in bpf_map_offload_info_fill_ns()
659 args->info->ifindex = args->offmap->netdev->ifindex; in bpf_map_offload_info_fill_ns()
660 net = dev_net(args->offmap->netdev); in bpf_map_offload_info_fill_ns()
700 struct net_device *netdev) in __bpf_offload_dev_match() argument
711 if (offload->netdev == netdev) in __bpf_offload_dev_match()
714 ondev1 = bpf_offload_find_netdev(offload->netdev); in __bpf_offload_dev_match()
715 ondev2 = bpf_offload_find_netdev(netdev); in __bpf_offload_dev_match()
720 bool bpf_offload_dev_match(struct bpf_prog *prog, struct net_device *netdev) in bpf_offload_dev_match() argument
725 ret = __bpf_offload_dev_match(prog, netdev); in bpf_offload_dev_match()
741 lhs->aux->offload->netdev && in bpf_prog_dev_bound_match()
742 lhs->aux->offload->netdev == rhs->aux->offload->netdev; in bpf_prog_dev_bound_match()
758 ret = __bpf_offload_dev_match(prog, offmap->netdev); in bpf_offload_prog_map_match()
765 struct net_device *netdev) in bpf_offload_dev_netdev_register() argument
770 err = __bpf_offload_dev_netdev_register(offdev, netdev); in bpf_offload_dev_netdev_register()
777 struct net_device *netdev) in bpf_offload_dev_netdev_unregister() argument
780 __bpf_offload_dev_netdev_unregister(offdev, netdev); in bpf_offload_dev_netdev_unregister()
824 __bpf_offload_dev_netdev_unregister(NULL, ondev->netdev); in bpf_dev_bound_netdev_unregister()
858 ops = prog->aux->offload->netdev->xdp_metadata_ops; in bpf_dev_bound_resolve_kfunc()