|
Packit |
51d0f7 |
/** @file
|
|
Packit |
51d0f7 |
* NetLabel userspace configuration library API.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* The Linux NetLabel subsystem manages network security labels for explicit
|
|
Packit |
51d0f7 |
* labeling protocols such as CIPSO as well as static security labels for
|
|
Packit |
51d0f7 |
* "unlabeled" network traffic. More information on NetLabel can be found at
|
|
Packit |
51d0f7 |
* the NetLabel SourceForge project site, http://netlabel.sf.net.
|
|
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 _LIBNETLABEL_H
|
|
Packit |
51d0f7 |
#define _LIBNETLABEL_H
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
#include <sys/types.h>
|
|
Packit |
51d0f7 |
#include <linux/types.h>
|
|
Packit |
51d0f7 |
#include <netinet/in.h>
|
|
Packit |
51d0f7 |
#include <netlink/netlink.h>
|
|
Packit |
51d0f7 |
#include <netlink/msg.h>
|
|
Packit |
51d0f7 |
#include <netlink/attr.h>
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
#include <netlabel.h>
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/*
|
|
Packit |
51d0f7 |
* Types
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* General Types */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel communications handle
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* Handle used for communicating with the NetLabel subsystem in the kernel via
|
|
Packit |
51d0f7 |
* generic netlink.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_handle;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel message
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used for sending and receiving messages with the NetLabel
|
|
Packit |
51d0f7 |
* kernel subsystem.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef struct nl_msg nlbl_msg;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel labeling protocol
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to specify network labeling protocols.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_proto;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel network device
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to specify network interfaces.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef char *nlbl_netdev;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel network address structure
|
|
Packit |
51d0f7 |
* @param type address family
|
|
Packit |
51d0f7 |
* @param addr.v4 IPv4 address
|
|
Packit |
51d0f7 |
* @param addr.v6 IPv6 address
|
|
Packit |
51d0f7 |
* @param mask.v4 IPv4 address mask
|
|
Packit |
51d0f7 |
* @param mask.v6 IPv6 address mask
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent IP addresses. It can represent both single
|
|
Packit |
51d0f7 |
* hosts and entire networks using both IPv4 and IPv6.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_netaddr {
|
|
Packit |
51d0f7 |
short type;
|
|
Packit |
51d0f7 |
union {
|
|
Packit |
51d0f7 |
struct in_addr v4;
|
|
Packit |
51d0f7 |
struct in6_addr v6;
|
|
Packit |
51d0f7 |
} addr;
|
|
Packit |
51d0f7 |
union {
|
|
Packit |
51d0f7 |
struct in_addr v4;
|
|
Packit |
51d0f7 |
struct in6_addr v6;
|
|
Packit |
51d0f7 |
} mask;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel security label
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent security labels. NetLabel itself does not
|
|
Packit |
51d0f7 |
* interpret the security labels, the individual LSMs are used to parse and
|
|
Packit |
51d0f7 |
* interpret the security labels.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef char *nlbl_secctx;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* CIPSO Types */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO Domain Of Interpretation (DOI) value
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent a CIPSO Domian of Interpretation (DOI).
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_cip_doi;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO mapping type
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent the CIPSO security label mapping method.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_cip_mtype;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO tag type
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent CIPSO tag types.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint8_t nlbl_cip_tag;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO tag array
|
|
Packit |
51d0f7 |
* @param array array of tag types
|
|
Packit |
51d0f7 |
* @param size size of array
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent an array of CIPSO tags in decreasing order
|
|
Packit |
51d0f7 |
* of preference.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_cip_tag_a {
|
|
Packit |
51d0f7 |
nlbl_cip_tag *array;
|
|
Packit |
51d0f7 |
size_t size;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO MLS level
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent the CIPSO MLS sensitivity level.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_cip_lvl;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO MLS level array
|
|
Packit |
51d0f7 |
* @param array array of MLS levels
|
|
Packit |
51d0f7 |
* @param size size of array
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent an array of CIPSO MLS sensitivity levels.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_cip_lvl_a {
|
|
Packit |
51d0f7 |
nlbl_cip_lvl *array;
|
|
Packit |
51d0f7 |
size_t size;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO MLS category
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent the CIPSO MLS category/compartment.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_cip_cat;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CIPSO MLS category array
|
|
Packit |
51d0f7 |
* @param array array of MLS categories
|
|
Packit |
51d0f7 |
* @param size size of array
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent an array of CIPSO MLS categories.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_cip_cat_a {
|
|
Packit |
51d0f7 |
nlbl_cip_cat *array;
|
|
Packit |
51d0f7 |
size_t size;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* CALIPSO Types */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CALIPSO Domain Of Interpretation (DOI) value
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent a CALIPSO Domian of Interpretation (DOI).
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_clp_doi;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel CALIPSO mapping type
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to represent the CALIPSO security label mapping method.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
typedef uint32_t nlbl_clp_mtype;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* NetLabel and LSM Mapping Types */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel IP address selector structure
|
|
Packit |
51d0f7 |
* @param addr IP address
|
|
Packit |
51d0f7 |
* @param proto_type labeling protocol
|
|
Packit |
51d0f7 |
* @param proto.cip_doi CIPSO DOI
|
|
Packit |
51d0f7 |
* @param proto.clp_doi CALIPSO DOI
|
|
Packit |
51d0f7 |
* @param next next address selector
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to map IP addresses to labeling protocol configurations.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_dommap_addr {
|
|
Packit |
51d0f7 |
struct nlbl_netaddr addr;
|
|
Packit |
51d0f7 |
nlbl_proto proto_type;
|
|
Packit |
51d0f7 |
union {
|
|
Packit |
51d0f7 |
nlbl_cip_doi cip_doi;
|
|
Packit |
51d0f7 |
nlbl_clp_doi clp_doi;
|
|
Packit |
51d0f7 |
} proto;
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
struct nlbl_dommap_addr *next;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel LSM/Domain mapping structure
|
|
Packit |
51d0f7 |
* @param domain LSM domain
|
|
Packit |
51d0f7 |
* @param family address family
|
|
Packit |
51d0f7 |
* @param proto_type labeling protocol
|
|
Packit |
51d0f7 |
* @param proto.cip_doi CIPSO DOI
|
|
Packit |
51d0f7 |
* @param proto.cpl_doi CALIPSO DOI
|
|
Packit |
51d0f7 |
* @param proto.addrsel IP address selector(s)
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to map LSM domains to labeling protocol configurations.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_dommap {
|
|
Packit |
51d0f7 |
char *domain;
|
|
Packit |
51d0f7 |
uint16_t family;
|
|
Packit |
51d0f7 |
nlbl_proto proto_type;
|
|
Packit |
51d0f7 |
union {
|
|
Packit |
51d0f7 |
nlbl_cip_doi cip_doi;
|
|
Packit |
51d0f7 |
nlbl_clp_doi clp_doi;
|
|
Packit |
51d0f7 |
struct nlbl_dommap_addr *addrsel;
|
|
Packit |
51d0f7 |
} proto;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/**
|
|
Packit |
51d0f7 |
* NetLabel network address mapping structure
|
|
Packit |
51d0f7 |
* @param dev network device
|
|
Packit |
51d0f7 |
* @param addr network address
|
|
Packit |
51d0f7 |
* @param label security label
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
* NetLabel type used to map network interfaces and addresses to security
|
|
Packit |
51d0f7 |
* labels.
|
|
Packit |
51d0f7 |
*
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
struct nlbl_addrmap {
|
|
Packit |
51d0f7 |
nlbl_netdev dev;
|
|
Packit |
51d0f7 |
struct nlbl_netaddr addr;
|
|
Packit |
51d0f7 |
nlbl_secctx label;
|
|
Packit |
51d0f7 |
};
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/*
|
|
Packit |
51d0f7 |
* Functions
|
|
Packit |
51d0f7 |
*/
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Initialization and Termination */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
int nlbl_init(void);
|
|
Packit |
51d0f7 |
void nlbl_exit(void);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Low Level Communications */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Communications Control */
|
|
Packit |
51d0f7 |
void nlbl_comm_timeout(uint32_t seconds);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Raw NetLabel I/O API */
|
|
Packit |
51d0f7 |
struct nlbl_handle *nlbl_comm_open(void);
|
|
Packit |
51d0f7 |
int nlbl_comm_close(struct nlbl_handle *hndl);
|
|
Packit |
51d0f7 |
int nlbl_comm_recv(struct nlbl_handle *hndl, nlbl_msg **msg);
|
|
Packit |
51d0f7 |
int nlbl_comm_recv_raw(struct nlbl_handle *hndl, unsigned char **data);
|
|
Packit |
51d0f7 |
int nlbl_comm_send(struct nlbl_handle *hndl, nlbl_msg *msg);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Message Handling */
|
|
Packit |
51d0f7 |
nlbl_msg *nlbl_msg_new(void);
|
|
Packit |
51d0f7 |
void nlbl_msg_free(nlbl_msg *msg);
|
|
Packit |
51d0f7 |
struct nlmsghdr *nlbl_msg_nlhdr(nlbl_msg *msg);
|
|
Packit |
51d0f7 |
struct genlmsghdr *nlbl_msg_genlhdr(nlbl_msg *msg);
|
|
Packit |
51d0f7 |
struct nlmsgerr *nlbl_msg_err(nlbl_msg *msg);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Attribute Handling */
|
|
Packit |
51d0f7 |
struct nlattr *nlbl_attr_head(nlbl_msg *msg);
|
|
Packit |
51d0f7 |
struct nlattr *nlbl_attr_find(nlbl_msg *msg, int nla_type);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Configuration Operations */
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Management */
|
|
Packit |
51d0f7 |
int nlbl_mgmt_version(struct nlbl_handle *hndl, uint32_t *version);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_protocols(struct nlbl_handle *hndl, nlbl_proto **protocols);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_add(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_dommap *domain,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_adddef(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_dommap *domain,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_del(struct nlbl_handle *hndl, char *domain);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_deldef(struct nlbl_handle *hndl);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_listall(struct nlbl_handle *hndl, struct nlbl_dommap **domains);
|
|
Packit |
51d0f7 |
int nlbl_mgmt_listdef(struct nlbl_handle *hndl, uint16_t family,
|
|
Packit |
51d0f7 |
struct nlbl_dommap *domain);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* Unlabeled Traffic */
|
|
Packit |
51d0f7 |
int nlbl_unlbl_accept(struct nlbl_handle *hndl, uint8_t allow_flag);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_list(struct nlbl_handle *hndl, uint8_t *allow_flag);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticadd(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_netdev dev,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr,
|
|
Packit |
51d0f7 |
nlbl_secctx label);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticadddef(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr,
|
|
Packit |
51d0f7 |
nlbl_secctx label);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticdel(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_netdev dev,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticdeldef(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_netaddr *addr);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticlist(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_addrmap **addrs);
|
|
Packit |
51d0f7 |
int nlbl_unlbl_staticlistdef(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
struct nlbl_addrmap **addrs);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
/* CIPSO Protocol */
|
|
Packit |
51d0f7 |
int nlbl_cipso_add_trans(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_cip_doi doi,
|
|
Packit |
51d0f7 |
struct nlbl_cip_tag_a *tags,
|
|
Packit |
51d0f7 |
struct nlbl_cip_lvl_a *lvls,
|
|
Packit |
51d0f7 |
struct nlbl_cip_cat_a *cats);
|
|
Packit |
51d0f7 |
int nlbl_cipso_add_pass(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_cip_doi doi,
|
|
Packit |
51d0f7 |
struct nlbl_cip_tag_a *tags);
|
|
Packit |
51d0f7 |
int nlbl_cipso_add_local(struct nlbl_handle *hndl, nlbl_cip_doi doi);
|
|
Packit |
51d0f7 |
int nlbl_cipso_del(struct nlbl_handle *hndl, nlbl_cip_doi doi);
|
|
Packit |
51d0f7 |
int nlbl_cipso_list(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_cip_doi doi,
|
|
Packit |
51d0f7 |
nlbl_cip_mtype *mtype,
|
|
Packit |
51d0f7 |
struct nlbl_cip_tag_a *tags,
|
|
Packit |
51d0f7 |
struct nlbl_cip_lvl_a *lvls,
|
|
Packit |
51d0f7 |
struct nlbl_cip_cat_a *cats);
|
|
Packit |
51d0f7 |
int nlbl_cipso_listall(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_cip_doi **dois,
|
|
Packit |
51d0f7 |
nlbl_cip_mtype **mtypes);
|
|
Packit |
51d0f7 |
/* CALIPSO Protocol */
|
|
Packit |
51d0f7 |
int nlbl_calipso_add_pass(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_clp_doi doi);
|
|
Packit |
51d0f7 |
int nlbl_calipso_del(struct nlbl_handle *hndl, nlbl_clp_doi doi);
|
|
Packit |
51d0f7 |
int nlbl_calipso_list(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_clp_doi doi,
|
|
Packit |
51d0f7 |
nlbl_clp_mtype *mtype);
|
|
Packit |
51d0f7 |
int nlbl_calipso_listall(struct nlbl_handle *hndl,
|
|
Packit |
51d0f7 |
nlbl_clp_doi **dois,
|
|
Packit |
51d0f7 |
nlbl_clp_mtype **mtypes);
|
|
Packit |
51d0f7 |
|
|
Packit |
51d0f7 |
#endif
|