xref: /linux/include/net/tc_act/tc_bpf.h (revision 2874c5fd)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2d23b8ad8SJiri Pirko /*
3d23b8ad8SJiri Pirko  * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
4d23b8ad8SJiri Pirko  */
5d23b8ad8SJiri Pirko 
6d23b8ad8SJiri Pirko #ifndef __NET_TC_BPF_H
7d23b8ad8SJiri Pirko #define __NET_TC_BPF_H
8d23b8ad8SJiri Pirko 
9d23b8ad8SJiri Pirko #include <linux/filter.h>
10d23b8ad8SJiri Pirko #include <net/act_api.h>
11d23b8ad8SJiri Pirko 
12d23b8ad8SJiri Pirko struct tcf_bpf {
13ec0595ccSWANG Cong 	struct tc_action	common;
14cff82457SAlexei Starovoitov 	struct bpf_prog __rcu	*filter;
15a8cb5f55SDaniel Borkmann 	union {
16a8cb5f55SDaniel Borkmann 		u32		bpf_fd;
17d23b8ad8SJiri Pirko 		u16		bpf_num_ops;
18d23b8ad8SJiri Pirko 	};
19a8cb5f55SDaniel Borkmann 	struct sock_filter	*bpf_ops;
20a8cb5f55SDaniel Borkmann 	const char		*bpf_name;
21a8cb5f55SDaniel Borkmann };
22a85a970aSWANG Cong #define to_bpf(a) ((struct tcf_bpf *)a)
23d23b8ad8SJiri Pirko 
24d23b8ad8SJiri Pirko #endif /* __NET_TC_BPF_H */
25