Blame view
net/netlabel/netlabel_mgmt.h
6.16 KB
d15c345fe
|
1 2 3 4 5 6 7 |
/* * NetLabel Management Support * * This file defines the management functions for the NetLabel system. The * NetLabel system manages static and dynamic label mappings for network * protocols such as CIPSO and RIPSO. * |
82c21bfab
|
8 |
* Author: Paul Moore <paul@paul-moore.com> |
d15c345fe
|
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
* */ /* * (c) Copyright Hewlett-Packard Development Company, L.P., 2006 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License |
d484ff154
|
26 |
* along with this program; if not, see <http://www.gnu.org/licenses/>. |
d15c345fe
|
27 28 29 30 31 32 33 |
* */ #ifndef _NETLABEL_MGMT_H #define _NETLABEL_MGMT_H #include <net/netlabel.h> |
60063497a
|
34 |
#include <linux/atomic.h> |
d15c345fe
|
35 36 |
/* |
fd3858554
|
37 |
* The following NetLabel payloads are supported by the management interface. |
d15c345fe
|
38 39 40 |
* * o ADD: * Sent by an application to add a domain mapping to the NetLabel system. |
d15c345fe
|
41 |
* |
fd3858554
|
42 |
* Required attributes: |
d15c345fe
|
43 |
* |
fd3858554
|
44 45 |
* NLBL_MGMT_A_DOMAIN * NLBL_MGMT_A_PROTOCOL |
d15c345fe
|
46 |
* |
63c416887
|
47 48 49 50 51 52 53 54 55 56 |
* If IPv4 is specified the following attributes are required: * * NLBL_MGMT_A_IPV4ADDR * NLBL_MGMT_A_IPV4MASK * * If IPv6 is specified the following attributes are required: * * NLBL_MGMT_A_IPV6ADDR * NLBL_MGMT_A_IPV6MASK * |
fd3858554
|
57 |
* If using NETLBL_NLTYPE_CIPSOV4 the following attributes are required: |
d15c345fe
|
58 |
* |
fd3858554
|
59 |
* NLBL_MGMT_A_CV4DOI |
d15c345fe
|
60 |
* |
fd3858554
|
61 |
* If using NETLBL_NLTYPE_UNLABELED no other attributes are required. |
d15c345fe
|
62 63 64 |
* * o REMOVE: * Sent by an application to remove a domain mapping from the NetLabel |
fd3858554
|
65 |
* system. |
d15c345fe
|
66 |
* |
fd3858554
|
67 |
* Required attributes: |
d15c345fe
|
68 |
* |
fd3858554
|
69 |
* NLBL_MGMT_A_DOMAIN |
d15c345fe
|
70 |
* |
fd3858554
|
71 |
* o LISTALL: |
d15c345fe
|
72 |
* This message can be sent either from an application or by the kernel in |
fd3858554
|
73 74 75 |
* response to an application generated LISTALL message. When sent by an * application there is no payload and the NLM_F_DUMP flag should be set. * The kernel should respond with a series of the following messages. |
d15c345fe
|
76 |
* |
fd3858554
|
77 |
* Required attributes: |
d15c345fe
|
78 |
* |
fd3858554
|
79 |
* NLBL_MGMT_A_DOMAIN |
63c416887
|
80 81 82 83 |
* * If the IP address selectors are not used the following attribute is * required: * |
fd3858554
|
84 |
* NLBL_MGMT_A_PROTOCOL |
d15c345fe
|
85 |
* |
63c416887
|
86 87 88 89 90 91 92 |
* If the IP address selectors are used then the following attritbute is * required: * * NLBL_MGMT_A_SELECTORLIST * * If the mapping is using the NETLBL_NLTYPE_CIPSOV4 type then the following * attributes are required: |
d15c345fe
|
93 |
* |
fd3858554
|
94 |
* NLBL_MGMT_A_CV4DOI |
d15c345fe
|
95 |
* |
63c416887
|
96 97 |
* If the mapping is using the NETLBL_NLTYPE_UNLABELED type no other * attributes are required. |
d15c345fe
|
98 99 100 |
* * o ADDDEF: * Sent by an application to set the default domain mapping for the NetLabel |
fd3858554
|
101 |
* system. |
d15c345fe
|
102 |
* |
fd3858554
|
103 |
* Required attributes: |
d15c345fe
|
104 |
* |
fd3858554
|
105 |
* NLBL_MGMT_A_PROTOCOL |
d15c345fe
|
106 |
* |
fd3858554
|
107 |
* If using NETLBL_NLTYPE_CIPSOV4 the following attributes are required: |
d15c345fe
|
108 |
* |
fd3858554
|
109 |
* NLBL_MGMT_A_CV4DOI |
d15c345fe
|
110 |
* |
fd3858554
|
111 |
* If using NETLBL_NLTYPE_UNLABELED no other attributes are required. |
d15c345fe
|
112 113 114 |
* * o REMOVEDEF: * Sent by an application to remove the default domain mapping from the |
fd3858554
|
115 |
* NetLabel system, there is no payload. |
d15c345fe
|
116 117 118 119 |
* * o LISTDEF: * This message can be sent either from an application or by the kernel in * response to an application generated LISTDEF message. When sent by an |
fd3858554
|
120 121 |
* application there is no payload. On success the kernel should send a * response using the following format. |
d15c345fe
|
122 |
* |
63c416887
|
123 124 |
* If the IP address selectors are not used the following attribute is * required: |
d15c345fe
|
125 |
* |
fd3858554
|
126 |
* NLBL_MGMT_A_PROTOCOL |
d15c345fe
|
127 |
* |
63c416887
|
128 129 130 131 132 133 134 |
* If the IP address selectors are used then the following attritbute is * required: * * NLBL_MGMT_A_SELECTORLIST * * If the mapping is using the NETLBL_NLTYPE_CIPSOV4 type then the following * attributes are required: |
d15c345fe
|
135 |
* |
fd3858554
|
136 |
* NLBL_MGMT_A_CV4DOI |
d15c345fe
|
137 |
* |
63c416887
|
138 139 |
* If the mapping is using the NETLBL_NLTYPE_UNLABELED type no other * attributes are required. |
d15c345fe
|
140 |
* |
fd3858554
|
141 142 143 144 145 |
* o PROTOCOLS: * Sent by an application to request a list of configured NetLabel protocols * in the kernel. When sent by an application there is no payload and the * NLM_F_DUMP flag should be set. The kernel should respond with a series of * the following messages. |
d15c345fe
|
146 |
* |
fd3858554
|
147 |
* Required attributes: |
d15c345fe
|
148 |
* |
fd3858554
|
149 |
* NLBL_MGMT_A_PROTOCOL |
d15c345fe
|
150 151 |
* * o VERSION: |
fd3858554
|
152 153 154 |
* Sent by an application to request the NetLabel version. When sent by an * application there is no payload. This message type is also used by the * kernel to respond to an VERSION request. |
d15c345fe
|
155 |
* |
fd3858554
|
156 |
* Required attributes: |
d15c345fe
|
157 |
* |
fd3858554
|
158 |
* NLBL_MGMT_A_VERSION |
d15c345fe
|
159 160 161 162 163 164 |
* */ /* NetLabel Management commands */ enum { NLBL_MGMT_C_UNSPEC, |
d15c345fe
|
165 166 |
NLBL_MGMT_C_ADD, NLBL_MGMT_C_REMOVE, |
fd3858554
|
167 |
NLBL_MGMT_C_LISTALL, |
d15c345fe
|
168 169 170 |
NLBL_MGMT_C_ADDDEF, NLBL_MGMT_C_REMOVEDEF, NLBL_MGMT_C_LISTDEF, |
fd3858554
|
171 |
NLBL_MGMT_C_PROTOCOLS, |
d15c345fe
|
172 173 174 |
NLBL_MGMT_C_VERSION, __NLBL_MGMT_C_MAX, }; |
d15c345fe
|
175 |
|
fd3858554
|
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
/* NetLabel Management attributes */ enum { NLBL_MGMT_A_UNSPEC, NLBL_MGMT_A_DOMAIN, /* (NLA_NUL_STRING) * the NULL terminated LSM domain string */ NLBL_MGMT_A_PROTOCOL, /* (NLA_U32) * the NetLabel protocol type (defined by NETLBL_NLTYPE_*) */ NLBL_MGMT_A_VERSION, /* (NLA_U32) * the NetLabel protocol version number (defined by * NETLBL_PROTO_VERSION) */ NLBL_MGMT_A_CV4DOI, /* (NLA_U32) * the CIPSOv4 DOI value */ |
63c416887
|
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
NLBL_MGMT_A_IPV6ADDR, /* (NLA_BINARY, struct in6_addr) * an IPv6 address */ NLBL_MGMT_A_IPV6MASK, /* (NLA_BINARY, struct in6_addr) * an IPv6 address mask */ NLBL_MGMT_A_IPV4ADDR, /* (NLA_BINARY, struct in_addr) * an IPv4 address */ NLBL_MGMT_A_IPV4MASK, /* (NLA_BINARY, struct in_addr) * and IPv4 address mask */ NLBL_MGMT_A_ADDRSELECTOR, /* (NLA_NESTED) * an IP address selector, must contain an address, mask, and protocol * attribute plus any protocol specific attributes */ NLBL_MGMT_A_SELECTORLIST, /* (NLA_NESTED) * the selector list, there must be at least one * NLBL_MGMT_A_ADDRSELECTOR attribute */ |
fd3858554
|
212 213 214 |
__NLBL_MGMT_A_MAX, }; #define NLBL_MGMT_A_MAX (__NLBL_MGMT_A_MAX - 1) |
d15c345fe
|
215 216 |
/* NetLabel protocol functions */ int netlbl_mgmt_genl_init(void); |
c783f1ce5
|
217 218 |
/* NetLabel configured protocol reference counter */ extern atomic_t netlabel_mgmt_protocount; |
23bcdc1ad
|
219 |
|
d15c345fe
|
220 |
#endif |