xref: /linux/net/netlabel/netlabel_user.h (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
11ccea77eSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2d15c345fSPaul Moore /*
3d15c345fSPaul Moore  * NetLabel NETLINK Interface
4d15c345fSPaul Moore  *
5d15c345fSPaul Moore  * This file defines the NETLINK interface for the NetLabel system.  The
6d15c345fSPaul Moore  * NetLabel system manages static and dynamic label mappings for network
7d15c345fSPaul Moore  * protocols such as CIPSO and RIPSO.
8d15c345fSPaul Moore  *
982c21bfaSPaul Moore  * Author: Paul Moore <paul@paul-moore.com>
10d15c345fSPaul Moore  */
11d15c345fSPaul Moore 
12d15c345fSPaul Moore /*
13d15c345fSPaul Moore  * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
14d15c345fSPaul Moore  */
15d15c345fSPaul Moore 
16d15c345fSPaul Moore #ifndef _NETLABEL_USER_H
17d15c345fSPaul Moore #define _NETLABEL_USER_H
18d15c345fSPaul Moore 
197a0e1d60SPaul Moore #include <linux/types.h>
20d15c345fSPaul Moore #include <linux/skbuff.h>
21d15c345fSPaul Moore #include <linux/capability.h>
2232f50cdeSPaul Moore #include <linux/audit.h>
237a0e1d60SPaul Moore #include <net/netlink.h>
24d15c345fSPaul Moore #include <net/genetlink.h>
257a0e1d60SPaul Moore #include <net/netlabel.h>
26d15c345fSPaul Moore 
27d15c345fSPaul Moore /* NetLabel NETLINK helper functions */
28d15c345fSPaul Moore 
29d15c345fSPaul Moore /**
3095d4e6beSPaul Moore  * netlbl_netlink_auditinfo - Fetch the audit information from a NETLINK msg
3195d4e6beSPaul Moore  * @audit_info: NetLabel audit information
3295d4e6beSPaul Moore  */
netlbl_netlink_auditinfo(struct netlbl_audit * audit_info)33f7e0318aSZheng Yejian static inline void netlbl_netlink_auditinfo(struct netlbl_audit *audit_info)
3495d4e6beSPaul Moore {
35*6326948fSPaul Moore 	security_current_getsecid_subj(&audit_info->secid);
36c53fa1edSPatrick McHardy 	audit_info->loginuid = audit_get_loginuid(current);
37c53fa1edSPatrick McHardy 	audit_info->sessionid = audit_get_sessionid(current);
3895d4e6beSPaul Moore }
3995d4e6beSPaul Moore 
40d15c345fSPaul Moore /* NetLabel NETLINK I/O functions */
41d15c345fSPaul Moore 
42d15c345fSPaul Moore int netlbl_netlink_init(void);
43d15c345fSPaul Moore 
4432f50cdeSPaul Moore /* NetLabel Audit Functions */
4532f50cdeSPaul Moore 
4695d4e6beSPaul Moore struct audit_buffer *netlbl_audit_start_common(int type,
4795d4e6beSPaul Moore 					      struct netlbl_audit *audit_info);
4832f50cdeSPaul Moore 
49d15c345fSPaul Moore #endif
50