1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * NetLabel NETLINK Interface 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This file defines the NETLINK interface for the NetLabel system. The 6*4882a593Smuzhiyun * NetLabel system manages static and dynamic label mappings for network 7*4882a593Smuzhiyun * protocols such as CIPSO and RIPSO. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * Author: Paul Moore <paul@paul-moore.com> 10*4882a593Smuzhiyun */ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun /* 13*4882a593Smuzhiyun * (c) Copyright Hewlett-Packard Development Company, L.P., 2006 14*4882a593Smuzhiyun */ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #ifndef _NETLABEL_USER_H 17*4882a593Smuzhiyun #define _NETLABEL_USER_H 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #include <linux/types.h> 20*4882a593Smuzhiyun #include <linux/skbuff.h> 21*4882a593Smuzhiyun #include <linux/capability.h> 22*4882a593Smuzhiyun #include <linux/audit.h> 23*4882a593Smuzhiyun #include <net/netlink.h> 24*4882a593Smuzhiyun #include <net/genetlink.h> 25*4882a593Smuzhiyun #include <net/netlabel.h> 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* NetLabel NETLINK helper functions */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /** 30*4882a593Smuzhiyun * netlbl_netlink_auditinfo - Fetch the audit information from a NETLINK msg 31*4882a593Smuzhiyun * @skb: the packet 32*4882a593Smuzhiyun * @audit_info: NetLabel audit information 33*4882a593Smuzhiyun */ netlbl_netlink_auditinfo(struct sk_buff * skb,struct netlbl_audit * audit_info)34*4882a593Smuzhiyunstatic inline void netlbl_netlink_auditinfo(struct sk_buff *skb, 35*4882a593Smuzhiyun struct netlbl_audit *audit_info) 36*4882a593Smuzhiyun { 37*4882a593Smuzhiyun security_task_getsecid(current, &audit_info->secid); 38*4882a593Smuzhiyun audit_info->loginuid = audit_get_loginuid(current); 39*4882a593Smuzhiyun audit_info->sessionid = audit_get_sessionid(current); 40*4882a593Smuzhiyun } 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun /* NetLabel NETLINK I/O functions */ 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun int netlbl_netlink_init(void); 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun /* NetLabel Audit Functions */ 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun struct audit_buffer *netlbl_audit_start_common(int type, 49*4882a593Smuzhiyun struct netlbl_audit *audit_info); 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun #endif 52