2019-05-19 15:51:43 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2006-08-04 23:17:57 -07:00
/*
* SELinux interface to the NetLabel subsystem
*
2011-08-01 11:10:33 +00:00
* Author : Paul Moore < paul @ paul - moore . com >
2006-08-04 23:17:57 -07:00
*/
/*
* ( c ) Copyright Hewlett - Packard Development Company , L . P . , 2006
*/
# ifndef _SELINUX_NETLABEL_H_
# define _SELINUX_NETLABEL_H_
2006-08-29 17:56:04 -07:00
# include <linux/types.h>
# include <linux/fs.h>
# include <linux/net.h>
# include <linux/skbuff.h>
# include <net/sock.h>
2009-03-27 17:10:34 -04:00
# include <net/request_sock.h>
2018-02-13 20:57:18 +00:00
# include <net/sctp/structs.h>
2006-08-29 17:56:04 -07:00
# include "avc.h"
# include "objsec.h"
2006-08-04 23:17:57 -07:00
# ifdef CONFIG_NETLABEL
void selinux_netlbl_cache_invalidate ( void ) ;
2007-02-28 15:14:22 -05:00
2016-06-27 15:06:16 -04:00
void selinux_netlbl_err ( struct sk_buff * skb , u16 family , int error ,
int gateway ) ;
2008-10-10 10:16:31 -04:00
2010-04-07 15:08:46 -04:00
void selinux_netlbl_sk_security_free ( struct sk_security_struct * sksec ) ;
void selinux_netlbl_sk_security_reset ( struct sk_security_struct * sksec ) ;
2007-02-28 15:14:22 -05:00
2008-01-29 08:38:04 -05:00
int selinux_netlbl_skbuff_getsid ( struct sk_buff * skb ,
u16 family ,
2008-01-29 08:38:23 -05:00
u32 * type ,
2008-01-29 08:38:04 -05:00
u32 * sid ) ;
2008-10-10 10:16:32 -04:00
int selinux_netlbl_skbuff_setsid ( struct sk_buff * skb ,
u16 family ,
u32 sid ) ;
2021-11-02 08:02:47 -04:00
int selinux_netlbl_sctp_assoc_request ( struct sctp_association * asoc ,
2018-02-13 20:57:18 +00:00
struct sk_buff * skb ) ;
2009-03-27 17:10:34 -04:00
int selinux_netlbl_inet_conn_request ( struct request_sock * req , u16 family ) ;
void selinux_netlbl_inet_csk_clone ( struct sock * sk , u16 family ) ;
2018-02-13 20:57:18 +00:00
void selinux_netlbl_sctp_sk_clone ( struct sock * sk , struct sock * newsk ) ;
2009-03-27 17:10:34 -04:00
int selinux_netlbl_socket_post_create ( struct sock * sk , u16 family ) ;
2007-02-28 15:14:22 -05:00
int selinux_netlbl_sock_rcv_skb ( struct sk_security_struct * sksec ,
struct sk_buff * skb ,
2008-01-29 08:38:04 -05:00
u16 family ,
2009-07-14 12:14:09 -04:00
struct common_audit_data * ad ) ;
2006-10-30 15:22:15 -08:00
int selinux_netlbl_socket_setsockopt ( struct socket * sock ,
int level ,
int optname ) ;
2008-10-10 10:16:33 -04:00
int selinux_netlbl_socket_connect ( struct sock * sk , struct sockaddr * addr ) ;
2018-02-13 20:57:18 +00:00
int selinux_netlbl_socket_connect_locked ( struct sock * sk ,
struct sockaddr * addr ) ;
2008-10-10 10:16:33 -04:00
2006-08-04 23:17:57 -07:00
# else
static inline void selinux_netlbl_cache_invalidate ( void )
{
return ;
}
2008-10-10 10:16:31 -04:00
static inline void selinux_netlbl_err ( struct sk_buff * skb ,
2016-06-27 15:06:16 -04:00
u16 family ,
2008-10-10 10:16:31 -04:00
int error ,
int gateway )
{
return ;
}
2008-10-10 10:16:33 -04:00
static inline void selinux_netlbl_sk_security_free (
2010-04-07 15:08:46 -04:00
struct sk_security_struct * sksec )
2008-10-10 10:16:33 -04:00
{
return ;
}
2007-02-28 15:14:22 -05:00
static inline void selinux_netlbl_sk_security_reset (
2010-04-07 15:08:46 -04:00
struct sk_security_struct * sksec )
2006-11-17 17:38:54 -05:00
{
2007-02-28 15:14:22 -05:00
return ;
2006-11-17 17:38:54 -05:00
}
2006-08-04 23:17:57 -07:00
2007-02-28 15:14:22 -05:00
static inline int selinux_netlbl_skbuff_getsid ( struct sk_buff * skb ,
2008-01-29 08:38:04 -05:00
u16 family ,
2008-01-29 08:38:23 -05:00
u32 * type ,
2007-02-28 15:14:22 -05:00
u32 * sid )
2006-08-04 23:17:57 -07:00
{
2008-01-29 08:38:23 -05:00
* type = NETLBL_NLTYPE_NONE ;
2007-02-28 15:14:22 -05:00
* sid = SECSID_NULL ;
2006-08-04 23:17:57 -07:00
return 0 ;
}
2008-10-10 10:16:32 -04:00
static inline int selinux_netlbl_skbuff_setsid ( struct sk_buff * skb ,
u16 family ,
u32 sid )
{
return 0 ;
}
2006-08-04 23:17:57 -07:00
2021-11-02 08:02:47 -04:00
static inline int selinux_netlbl_sctp_assoc_request ( struct sctp_association * asoc ,
2018-02-13 20:57:18 +00:00
struct sk_buff * skb )
{
return 0 ;
}
2009-03-27 17:10:34 -04:00
static inline int selinux_netlbl_inet_conn_request ( struct request_sock * req ,
u16 family )
2006-08-29 17:53:48 -07:00
{
2009-03-27 17:10:34 -04:00
return 0 ;
2006-08-29 17:53:48 -07:00
}
2009-03-27 17:10:34 -04:00
static inline void selinux_netlbl_inet_csk_clone ( struct sock * sk , u16 family )
2006-08-29 17:53:48 -07:00
{
2009-03-27 17:10:34 -04:00
return ;
2006-08-29 17:53:48 -07:00
}
2018-02-23 22:12:09 +01:00
static inline void selinux_netlbl_sctp_sk_clone ( struct sock * sk ,
struct sock * newsk )
2018-02-13 20:57:18 +00:00
{
return ;
}
2009-03-27 17:10:34 -04:00
static inline int selinux_netlbl_socket_post_create ( struct sock * sk ,
u16 family )
2006-08-04 23:17:57 -07:00
{
return 0 ;
}
2007-02-28 15:14:22 -05:00
static inline int selinux_netlbl_sock_rcv_skb ( struct sk_security_struct * sksec ,
struct sk_buff * skb ,
2008-01-29 08:38:04 -05:00
u16 family ,
2009-07-14 12:14:09 -04:00
struct common_audit_data * ad )
2007-02-28 15:14:22 -05:00
{
return 0 ;
}
2006-10-30 15:22:15 -08:00
static inline int selinux_netlbl_socket_setsockopt ( struct socket * sock ,
int level ,
int optname )
{
return 0 ;
}
2008-10-10 10:16:33 -04:00
static inline int selinux_netlbl_socket_connect ( struct sock * sk ,
struct sockaddr * addr )
{
return 0 ;
}
2018-02-13 20:57:18 +00:00
static inline int selinux_netlbl_socket_connect_locked ( struct sock * sk ,
struct sockaddr * addr )
{
return 0 ;
}
2006-08-04 23:17:57 -07:00
# endif /* CONFIG_NETLABEL */
# endif