treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
[linux-2.6-block.git] / security / selinux / include / netlabel.h
CommitLineData
1ccea77e 1/* SPDX-License-Identifier: GPL-2.0-or-later */
7420ed23
VY
2/*
3 * SELinux interface to the NetLabel subsystem
4 *
82c21bfa 5 * Author: Paul Moore <paul@paul-moore.com>
7420ed23
VY
6 */
7
8/*
9 * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
7420ed23
VY
10 */
11
12#ifndef _SELINUX_NETLABEL_H_
13#define _SELINUX_NETLABEL_H_
14
7a0e1d60
PM
15#include <linux/types.h>
16#include <linux/fs.h>
17#include <linux/net.h>
18#include <linux/skbuff.h>
19#include <net/sock.h>
389fb800 20#include <net/request_sock.h>
d452930f 21#include <net/sctp/structs.h>
7a0e1d60
PM
22
23#include "avc.h"
24#include "objsec.h"
25
7420ed23
VY
26#ifdef CONFIG_NETLABEL
27void selinux_netlbl_cache_invalidate(void);
5778eabd 28
a04e71f6
HD
29void selinux_netlbl_err(struct sk_buff *skb, u16 family, int error,
30 int gateway);
dfaebe98 31
dd3e7836
EP
32void selinux_netlbl_sk_security_free(struct sk_security_struct *sksec);
33void selinux_netlbl_sk_security_reset(struct sk_security_struct *sksec);
5778eabd 34
75e22910
PM
35int selinux_netlbl_skbuff_getsid(struct sk_buff *skb,
36 u16 family,
220deb96 37 u32 *type,
75e22910 38 u32 *sid);
948bf85c
PM
39int selinux_netlbl_skbuff_setsid(struct sk_buff *skb,
40 u16 family,
41 u32 sid);
d452930f
RH
42int selinux_netlbl_sctp_assoc_request(struct sctp_endpoint *ep,
43 struct sk_buff *skb);
389fb800
PM
44int selinux_netlbl_inet_conn_request(struct request_sock *req, u16 family);
45void selinux_netlbl_inet_csk_clone(struct sock *sk, u16 family);
d452930f 46void selinux_netlbl_sctp_sk_clone(struct sock *sk, struct sock *newsk);
389fb800 47int selinux_netlbl_socket_post_create(struct sock *sk, u16 family);
5778eabd
PM
48int selinux_netlbl_sock_rcv_skb(struct sk_security_struct *sksec,
49 struct sk_buff *skb,
75e22910 50 u16 family,
2bf49690 51 struct common_audit_data *ad);
f8687afe
PM
52int selinux_netlbl_socket_setsockopt(struct socket *sock,
53 int level,
54 int optname);
014ab19a 55int selinux_netlbl_socket_connect(struct sock *sk, struct sockaddr *addr);
d452930f
RH
56int selinux_netlbl_socket_connect_locked(struct sock *sk,
57 struct sockaddr *addr);
014ab19a 58
7420ed23
VY
59#else
60static inline void selinux_netlbl_cache_invalidate(void)
61{
62 return;
63}
64
dfaebe98 65static inline void selinux_netlbl_err(struct sk_buff *skb,
a04e71f6 66 u16 family,
dfaebe98
PM
67 int error,
68 int gateway)
69{
70 return;
71}
72
6c5b3fc0 73static inline void selinux_netlbl_sk_security_free(
dd3e7836 74 struct sk_security_struct *sksec)
6c5b3fc0
PM
75{
76 return;
77}
78
5778eabd 79static inline void selinux_netlbl_sk_security_reset(
dd3e7836 80 struct sk_security_struct *sksec)
3de4bab5 81{
5778eabd 82 return;
3de4bab5 83}
7420ed23 84
5778eabd 85static inline int selinux_netlbl_skbuff_getsid(struct sk_buff *skb,
75e22910 86 u16 family,
220deb96 87 u32 *type,
5778eabd 88 u32 *sid)
7420ed23 89{
220deb96 90 *type = NETLBL_NLTYPE_NONE;
5778eabd 91 *sid = SECSID_NULL;
7420ed23
VY
92 return 0;
93}
948bf85c
PM
94static inline int selinux_netlbl_skbuff_setsid(struct sk_buff *skb,
95 u16 family,
96 u32 sid)
97{
98 return 0;
99}
7420ed23 100
014ab19a
PM
101static inline int selinux_netlbl_conn_setsid(struct sock *sk,
102 struct sockaddr *addr)
103{
104 return 0;
105}
106
d452930f
RH
107static inline int selinux_netlbl_sctp_assoc_request(struct sctp_endpoint *ep,
108 struct sk_buff *skb)
109{
110 return 0;
111}
389fb800
PM
112static inline int selinux_netlbl_inet_conn_request(struct request_sock *req,
113 u16 family)
99f59ed0 114{
389fb800 115 return 0;
99f59ed0 116}
389fb800 117static inline void selinux_netlbl_inet_csk_clone(struct sock *sk, u16 family)
99f59ed0 118{
389fb800 119 return;
99f59ed0 120}
2572f5b4
AB
121static inline void selinux_netlbl_sctp_sk_clone(struct sock *sk,
122 struct sock *newsk)
d452930f
RH
123{
124 return;
125}
389fb800
PM
126static inline int selinux_netlbl_socket_post_create(struct sock *sk,
127 u16 family)
7420ed23
VY
128{
129 return 0;
130}
5778eabd
PM
131static inline int selinux_netlbl_sock_rcv_skb(struct sk_security_struct *sksec,
132 struct sk_buff *skb,
75e22910 133 u16 family,
2bf49690 134 struct common_audit_data *ad)
5778eabd
PM
135{
136 return 0;
137}
f8687afe
PM
138static inline int selinux_netlbl_socket_setsockopt(struct socket *sock,
139 int level,
140 int optname)
141{
142 return 0;
143}
014ab19a
PM
144static inline int selinux_netlbl_socket_connect(struct sock *sk,
145 struct sockaddr *addr)
146{
147 return 0;
148}
d452930f
RH
149static inline int selinux_netlbl_socket_connect_locked(struct sock *sk,
150 struct sockaddr *addr)
151{
152 return 0;
153}
7420ed23
VY
154#endif /* CONFIG_NETLABEL */
155
156#endif