diff options
Diffstat (limited to 'include/linux/bpf-cgroup.h')
| -rw-r--r-- | include/linux/bpf-cgroup.h | 24 | 
1 files changed, 18 insertions, 6 deletions
diff --git a/include/linux/bpf-cgroup.h b/include/linux/bpf-cgroup.h index 30d15e64b993..975fb4cf1bb7 100644 --- a/include/linux/bpf-cgroup.h +++ b/include/linux/bpf-cgroup.h @@ -66,7 +66,8 @@ int __cgroup_bpf_run_filter_sk(struct sock *sk,  int __cgroup_bpf_run_filter_sock_addr(struct sock *sk,  				      struct sockaddr *uaddr, -				      enum bpf_attach_type type); +				      enum bpf_attach_type type, +				      void *t_ctx);  int __cgroup_bpf_run_filter_sock_ops(struct sock *sk,  				     struct bpf_sock_ops_kern *sock_ops, @@ -120,16 +121,18 @@ int __cgroup_bpf_check_dev_permission(short dev_type, u32 major, u32 minor,  ({									       \  	int __ret = 0;							       \  	if (cgroup_bpf_enabled)						       \ -		__ret = __cgroup_bpf_run_filter_sock_addr(sk, uaddr, type);    \ +		__ret = __cgroup_bpf_run_filter_sock_addr(sk, uaddr, type,     \ +							  NULL);	       \  	__ret;								       \  }) -#define BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, type)			       \ +#define BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, type, t_ctx)		       \  ({									       \  	int __ret = 0;							       \  	if (cgroup_bpf_enabled)	{					       \  		lock_sock(sk);						       \ -		__ret = __cgroup_bpf_run_filter_sock_addr(sk, uaddr, type);    \ +		__ret = __cgroup_bpf_run_filter_sock_addr(sk, uaddr, type,     \ +							  t_ctx);	       \  		release_sock(sk);					       \  	}								       \  	__ret;								       \ @@ -151,10 +154,16 @@ int __cgroup_bpf_check_dev_permission(short dev_type, u32 major, u32 minor,  	BPF_CGROUP_RUN_SA_PROG(sk, uaddr, BPF_CGROUP_INET6_CONNECT)  #define BPF_CGROUP_RUN_PROG_INET4_CONNECT_LOCK(sk, uaddr)		       \ -	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_INET4_CONNECT) +	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_INET4_CONNECT, NULL)  #define BPF_CGROUP_RUN_PROG_INET6_CONNECT_LOCK(sk, uaddr)		       \ -	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_INET6_CONNECT) +	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_INET6_CONNECT, NULL) + +#define BPF_CGROUP_RUN_PROG_UDP4_SENDMSG_LOCK(sk, uaddr, t_ctx)		       \ +	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_UDP4_SENDMSG, t_ctx) + +#define BPF_CGROUP_RUN_PROG_UDP6_SENDMSG_LOCK(sk, uaddr, t_ctx)		       \ +	BPF_CGROUP_RUN_SA_PROG_LOCK(sk, uaddr, BPF_CGROUP_UDP6_SENDMSG, t_ctx)  #define BPF_CGROUP_RUN_PROG_SOCK_OPS(sock_ops)				       \  ({									       \ @@ -185,6 +194,7 @@ struct cgroup_bpf {};  static inline void cgroup_bpf_put(struct cgroup *cgrp) {}  static inline int cgroup_bpf_inherit(struct cgroup *cgrp) { return 0; } +#define cgroup_bpf_enabled (0)  #define BPF_CGROUP_PRE_CONNECT_ENABLED(sk) (0)  #define BPF_CGROUP_RUN_PROG_INET_INGRESS(sk,skb) ({ 0; })  #define BPF_CGROUP_RUN_PROG_INET_EGRESS(sk,skb) ({ 0; }) @@ -197,6 +207,8 @@ static inline int cgroup_bpf_inherit(struct cgroup *cgrp) { return 0; }  #define BPF_CGROUP_RUN_PROG_INET4_CONNECT_LOCK(sk, uaddr) ({ 0; })  #define BPF_CGROUP_RUN_PROG_INET6_CONNECT(sk, uaddr) ({ 0; })  #define BPF_CGROUP_RUN_PROG_INET6_CONNECT_LOCK(sk, uaddr) ({ 0; }) +#define BPF_CGROUP_RUN_PROG_UDP4_SENDMSG_LOCK(sk, uaddr, t_ctx) ({ 0; }) +#define BPF_CGROUP_RUN_PROG_UDP6_SENDMSG_LOCK(sk, uaddr, t_ctx) ({ 0; })  #define BPF_CGROUP_RUN_PROG_SOCK_OPS(sock_ops) ({ 0; })  #define BPF_CGROUP_RUN_PROG_DEVICE_CGROUP(type,major,minor,access) ({ 0; })  | 
