Lines Matching defs:link
13 struct bpf_link link;
17 /* We don't hold a ref to net in order to auto-detach the link
67 struct bpf_netns_link *link)
73 if (pos == link)
97 prog_array->items[i].prog = pos->link.prog;
102 static void bpf_netns_link_release(struct bpf_link *link)
105 container_of(link, struct bpf_netns_link, link);
124 /* Remember link position in case of safe delete */
150 static int bpf_netns_link_detach(struct bpf_link *link)
152 bpf_netns_link_release(link);
156 static void bpf_netns_link_dealloc(struct bpf_link *link)
159 container_of(link, struct bpf_netns_link, link);
164 static int bpf_netns_link_update_prog(struct bpf_link *link,
169 container_of(link, struct bpf_netns_link, link);
175 if (old_prog && old_prog != link->prog)
177 if (new_prog->type != link->prog->type)
196 old_prog = xchg(&link->prog, new_prog);
204 static int bpf_netns_link_fill_info(const struct bpf_link *link,
208 container_of(link, struct bpf_netns_link, link);
223 static void bpf_netns_link_show_fdinfo(const struct bpf_link *link,
228 bpf_netns_link_fill_info(link, &info);
421 static int netns_bpf_link_attach(struct net *net, struct bpf_link *link,
425 container_of(link, struct bpf_netns_link, link);
444 err = flow_dissector_bpf_prog_attach_check(net, link->prog);
503 bpf_link_init(&net_link->link, BPF_LINK_TYPE_NETNS,
509 err = bpf_link_prime(&net_link->link, &link_primer);
515 err = netns_bpf_link_attach(net, &net_link->link, netns_type);
548 net_link->net = NULL; /* auto-detach link */