Blame include/netlabel.h

Packit 51d0f7
/** @file
Packit 51d0f7
 * NetLabel userspace/kernel interface API.
Packit 51d0f7
 *
Packit 51d0f7
 * The NetLabel system manages static and dynamic security label mappings for
Packit 51d0f7
 * network protocols such as CIPSO and RIPSO.
Packit 51d0f7
 *
Packit 51d0f7
 * Author: Paul Moore <paul@paul-moore.com>
Packit 51d0f7
 *
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
/*
Packit 51d0f7
 * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
Packit 51d0f7
 *
Packit 51d0f7
 * This program is free software: you can redistribute it and/or modify
Packit 51d0f7
 * it under the terms of version 2 of the GNU General Public License as
Packit 51d0f7
 * published by the Free Software Foundation.
Packit 51d0f7
 *
Packit 51d0f7
 * This program is distributed in the hope that it will be useful,
Packit 51d0f7
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 51d0f7
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 51d0f7
 * GNU General Public License for more details.
Packit 51d0f7
 *
Packit 51d0f7
 * You should have received a copy of the GNU General Public License
Packit 51d0f7
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit 51d0f7
 *
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
#ifndef _NETLABEL_H
Packit 51d0f7
#define _NETLABEL_H
Packit 51d0f7
Packit 51d0f7
/* NetLabel NETLINK protocol version
Packit 51d0f7
 *  1: initial version
Packit 51d0f7
 *  2: added static labels for unlabeled connections
Packit 51d0f7
 *  3: network selectors added to the NetLabel/LSM domain mapping
Packit 51d0f7
 */
Packit 51d0f7
#define NETLBL_PROTO_VERSION		3
Packit 51d0f7
Packit 51d0f7
/* NetLabel NETLINK types/families */
Packit 51d0f7
#define NETLBL_NLTYPE_NONE		0
Packit 51d0f7
#define NETLBL_NLTYPE_MGMT		1
Packit 51d0f7
#define NETLBL_NLTYPE_MGMT_NAME		"NLBL_MGMT"
Packit 51d0f7
#define NETLBL_NLTYPE_RIPSO		2
Packit 51d0f7
#define NETLBL_NLTYPE_RIPSO_NAME	"NLBL_RIPSO"
Packit 51d0f7
#define NETLBL_NLTYPE_CIPSOV4		3
Packit 51d0f7
#define NETLBL_NLTYPE_CIPSOV4_NAME	"NLBL_CIPSOv4"
Packit 51d0f7
#define NETLBL_NLTYPE_CIPSOV6		4
Packit 51d0f7
#define NETLBL_NLTYPE_CIPSOV6_NAME	"NLBL_CIPSOv6"
Packit 51d0f7
#define NETLBL_NLTYPE_UNLABELED		5
Packit 51d0f7
#define NETLBL_NLTYPE_UNLABELED_NAME	"NLBL_UNLBL"
Packit 51d0f7
#define NETLBL_NLTYPE_ADDRSELECT	6
Packit 51d0f7
#define NETLBL_NLTYPE_ADDRSELECT_NAME	"NLBL_ADRSEL"
Packit 51d0f7
#define NETLBL_NLTYPE_CALIPSO		7
Packit 51d0f7
#define NETLBL_NLTYPE_CALIPSO_NAME	"NLBL_CALIPSO"
Packit 51d0f7
Packit 51d0f7
/*
Packit 51d0f7
 * MGMT
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel Management commands
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_MGMT_C_UNSPEC,
Packit 51d0f7
	NLBL_MGMT_C_ADD,
Packit 51d0f7
	NLBL_MGMT_C_REMOVE,
Packit 51d0f7
	NLBL_MGMT_C_LISTALL,
Packit 51d0f7
	NLBL_MGMT_C_ADDDEF,
Packit 51d0f7
	NLBL_MGMT_C_REMOVEDEF,
Packit 51d0f7
	NLBL_MGMT_C_LISTDEF,
Packit 51d0f7
	NLBL_MGMT_C_PROTOCOLS,
Packit 51d0f7
	NLBL_MGMT_C_VERSION,
Packit 51d0f7
	__NLBL_MGMT_C_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_MGMT_C_MAX (__NLBL_MGMT_C_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel Management attributes
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_MGMT_A_UNSPEC,
Packit 51d0f7
	NLBL_MGMT_A_DOMAIN,
Packit 51d0f7
	NLBL_MGMT_A_PROTOCOL,
Packit 51d0f7
	NLBL_MGMT_A_VERSION,
Packit 51d0f7
	NLBL_MGMT_A_CV4DOI,
Packit 51d0f7
	NLBL_MGMT_A_IPV6ADDR,
Packit 51d0f7
	NLBL_MGMT_A_IPV6MASK,
Packit 51d0f7
	NLBL_MGMT_A_IPV4ADDR,
Packit 51d0f7
	NLBL_MGMT_A_IPV4MASK,
Packit 51d0f7
	NLBL_MGMT_A_ADDRSELECTOR,
Packit 51d0f7
	NLBL_MGMT_A_SELECTORLIST,
Packit 51d0f7
	NLBL_MGMT_A_FAMILY,
Packit 51d0f7
	NLBL_MGMT_A_CLPDOI,
Packit 51d0f7
	__NLBL_MGMT_A_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_MGMT_A_MAX (__NLBL_MGMT_A_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/*
Packit 51d0f7
 * CIPSO V4
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
/* CIPSOv4 DOI map types */
Packit 51d0f7
#define CIPSO_V4_MAP_UNKNOWN		0
Packit 51d0f7
#define CIPSO_V4_MAP_TRANS		1
Packit 51d0f7
#define CIPSO_V4_MAP_PASS		2
Packit 51d0f7
#define CIPSO_V4_MAP_LOCAL		3
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel CIPSOv4 commands
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_CIPSOV4_C_UNSPEC,
Packit 51d0f7
	NLBL_CIPSOV4_C_ADD,
Packit 51d0f7
	NLBL_CIPSOV4_C_REMOVE,
Packit 51d0f7
	NLBL_CIPSOV4_C_LIST,
Packit 51d0f7
	NLBL_CIPSOV4_C_LISTALL,
Packit 51d0f7
	__NLBL_CIPSOV4_C_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_CIPSOV4_C_MAX (__NLBL_CIPSOV4_C_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel CIPSOv4 attributes
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_CIPSOV4_A_UNSPEC,
Packit 51d0f7
	NLBL_CIPSOV4_A_DOI,
Packit 51d0f7
	NLBL_CIPSOV4_A_MTYPE,
Packit 51d0f7
	NLBL_CIPSOV4_A_TAG,
Packit 51d0f7
	NLBL_CIPSOV4_A_TAGLST,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSLVLLOC,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSLVLREM,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSLVL,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSLVLLST,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSCATLOC,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSCATREM,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSCAT,
Packit 51d0f7
	NLBL_CIPSOV4_A_MLSCATLST,
Packit 51d0f7
	__NLBL_CIPSOV4_A_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_CIPSOV4_A_MAX (__NLBL_CIPSOV4_A_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/*
Packit 51d0f7
 * CALIPSO
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
/* CALIPSO DOI map types */
Packit 51d0f7
#define CALIPSO_MAP_UNKNOWN		0
Packit 51d0f7
#define CALIPSO_MAP_PASS		2
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel CALIPSO commands
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_CALIPSO_C_UNSPEC,
Packit 51d0f7
	NLBL_CALIPSO_C_ADD,
Packit 51d0f7
	NLBL_CALIPSO_C_REMOVE,
Packit 51d0f7
	NLBL_CALIPSO_C_LIST,
Packit 51d0f7
	NLBL_CALIPSO_C_LISTALL,
Packit 51d0f7
	__NLBL_CALIPSO_C_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_CALIPSO_C_MAX (__NLBL_CALIPSO_C_MAX - 1)
Packit 51d0f7
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel CALIPSO attributes
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_CALIPSO_A_UNSPEC,
Packit 51d0f7
	NLBL_CALIPSO_A_DOI,
Packit 51d0f7
	NLBL_CALIPSO_A_MTYPE,
Packit 51d0f7
	__NLBL_CALIPSO_A_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_CALIPSO_A_MAX (__NLBL_CALIPSO_A_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/*
Packit 51d0f7
 * UNLABELED
Packit 51d0f7
 */
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel Unlabeled commands
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_UNLABEL_C_UNSPEC,
Packit 51d0f7
	NLBL_UNLABEL_C_ACCEPT,
Packit 51d0f7
	NLBL_UNLABEL_C_LIST,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICADD,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICREMOVE,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICLIST,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICADDDEF,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICREMOVEDEF,
Packit 51d0f7
	NLBL_UNLABEL_C_STATICLISTDEF,
Packit 51d0f7
	__NLBL_UNLABEL_C_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_UNLABEL_C_MAX (__NLBL_UNLABEL_C_MAX - 1)
Packit 51d0f7
Packit 51d0f7
/**
Packit 51d0f7
 * NetLabel Unlabeled attributes
Packit 51d0f7
 */
Packit 51d0f7
enum {
Packit 51d0f7
	NLBL_UNLABEL_A_UNSPEC,
Packit 51d0f7
	NLBL_UNLABEL_A_ACPTFLG,
Packit 51d0f7
	NLBL_UNLABEL_A_IPV6ADDR,
Packit 51d0f7
	NLBL_UNLABEL_A_IPV6MASK,
Packit 51d0f7
	NLBL_UNLABEL_A_IPV4ADDR,
Packit 51d0f7
	NLBL_UNLABEL_A_IPV4MASK,
Packit 51d0f7
	NLBL_UNLABEL_A_IFACE,
Packit 51d0f7
	NLBL_UNLABEL_A_SECCTX,
Packit 51d0f7
	__NLBL_UNLABEL_A_MAX,
Packit 51d0f7
};
Packit 51d0f7
#define NLBL_UNLABEL_A_MAX (__NLBL_UNLABEL_A_MAX - 1)
Packit 51d0f7
Packit 51d0f7
#endif /* _NETLABEL_H */