1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 <!-- strongSwan Management Protocol (SMP) V1.0 --
>
6 Copyright (C)
2007 Martin Willi
7 Copyright (C)
2006 Andreas Eigenmann, Joël Stillhart
8 HSR Hochschule fuer Technik Rapperswil
10 This program is free software; you can redistribute it and/or modify it
11 under the terms of the GNU General Public License as published by the
12 Free Software Foundation; either version
2 of the License, or (at your
13 option) any later version. See
<http://www.fsf.org/copyleft/gpl.txt
>.
15 This program is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 <grammar xmlns=
"http://relaxng.org/ns/structure/1.0"
22 datatypeLibrary=
"http://www.w3.org/2001/XMLSchema-datatypes"
23 ns=
"http://www.strongswan.org/smp/1.0">
24 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
26 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
28 <element name=
"message">
31 <attribute name=
"type">
32 <value>request
</value>
35 <element name=
"query">
37 <ref name=
"QueryRequestIkesa"/>
40 <ref name=
"QueryRequestConfig"/>
46 <element name=
"control">
48 <ref name=
"ControlRequestIkeTerminate"/>
51 <ref name=
"ControlRequestChildTerminate"/>
54 <ref name=
"ControlRequestIkeInitiate"/>
57 <ref name=
"ControlRequestChildInitiate"/>
65 <attribute name=
"type">
66 <value>response
</value>
69 <element name=
"error">
70 <attribute name=
"code">
71 <data type=
"nonNegativeInteger"/>
77 <element name=
"query">
79 <ref name=
"QueryResponseIkesa"/>
82 <ref name=
"QueryResponseConfig"/>
88 <element name=
"control">
90 <ref name=
"ControlResponse"/>
102 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
104 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
105 <define name=
"QueryRequestIkesa">
106 <element name=
"ikesalist">
110 <define name=
"QueryResponseIkesa">
111 <element name=
"ikesalist">
113 <element name=
"ikesa">
115 <data type=
"positiveInteger"/>
117 <element name=
"status">
119 <value type=
"string">created
</value>
120 <value type=
"string">connecting
</value>
121 <value type=
"string">established
</value>
122 <value type=
"string">rekeying
</value>
123 <value type=
"string">deleting
</value>
126 <element name=
"role">
128 <value type=
"string">initiator
</value>
129 <value type=
"string">responder
</value>
132 <element name=
"peerconfig">
133 <data type=
"string"/>
135 <element name=
"lifetime">
136 <data type=
"integer"/>
138 <element name=
"rekeytime">
139 <data type=
"integer"/>
141 <element name=
"local">
144 <element name=
"remote">
147 <element name=
"childsalist">
149 <element name=
"childsa">
150 <ref name=
"childsa"/>
158 <define name=
"ikeEnd">
160 <data type=
"hexBinary" />
162 <element name=
"identification">
163 <ref name=
"identification"/>
165 <element name=
"address">
166 <ref name=
"address"/>
168 <element name=
"port">
169 <data type=
"nonNegativeInteger">
170 <param name=
"maxInclusive">65535</param>
175 <data type=
"boolean"/>
179 <define name=
"childsa">
180 <element name=
"reqid">
181 <data type=
"nonNegativeInteger"/>
183 <element name=
"lifetime">
184 <data type=
"integer"/>
186 <element name=
"rekeytime">
187 <data type=
"integer"/>
189 <element name=
"local">
190 <ref name=
"childEnd"/>
192 <element name=
"remote">
193 <ref name=
"childEnd"/>
196 <define name=
"childEnd">
198 <element name=
"networks">
199 <ref name=
"networks">
202 <define name=
"QueryRequestConfig">
203 <element name=
"configlist">
207 <define name=
"QueryResponseConfig">
208 <element name=
"configlist">
210 <element name=
"peerconfig">
211 <element name=
"name">
212 <data type=
"string"/>
214 <element name=
"local">
215 <ref name=
"identification"/>
217 <element name=
"remote">
218 <ref name=
"identification"/>
220 <element name=
"ikeconfig">
221 <ref name=
"ikeconfig"/>
223 <element name=
"childconfiglist">
225 <element name=
"childconfig">
226 <ref name=
"childconfig"/>
234 <define name=
"ikeconfig">
235 <element name=
"local">
236 <ref name=
"address"/>
238 <element name=
"remote">
239 <ref name=
"address"/>
242 <define name=
"childconfig">
243 <element name=
"name">
244 <data type=
"string"/>
246 <element name=
"local">
247 <ref name=
"networks">
249 <element name=
"remote">
250 <ref name=
"networks">
253 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
255 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
256 <define name=
"ControlRequestIkeTerminate">
257 <element name=
"ikesaterminate">
258 <data type=
"positiveInteger"/>
261 <define name=
"ControlRequestChildTerminate">
262 <element name=
"childsaterminate">
263 <data type=
"positiveInteger"/>
266 <define name=
"ControlRequestIkeInitiate">
267 <element name=
"ikesainitiate">
268 <data type=
"string"/>
271 <define name=
"ControlRequestChildInitiate">
272 <element name=
"childsainitiate">
273 <data type=
"string"/>
276 <define name=
"QueryResponse">
277 <element name=
"status">
278 <data type=
"nonNegativeInteger"/>
282 <element name=
"item">
283 <attribute name=
"level">
284 <data type=
"nonNegativeInteger">
286 <attribute name=
"thread">
287 <data type=
"nonNegativeInteger">
289 <attribute name=
"source">
292 <data type=
"string"/>
297 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
298 <!-- identification and address --
>
299 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
>
300 <define name=
"identification">
303 <attribute name=
"type">
309 <attribute name=
"type">
315 <attribute name=
"type">
321 <attribute name=
"type">
327 <attribute name=
"type">
333 <attribute name=
"type">
334 <value>asn1gn
</value>
336 <data type=
"string"/>
339 <attribute name=
"type">
340 <value>asn1dn
</value>
342 <data type=
"string"/>
345 <attribute name=
"type">
348 <data type=
"base64Binary"/>
352 <define name=
"address">
355 <attribute name=
"type">
361 <attribute name=
"type">
370 <param name=
"pattern">(([
0-
9]|[
1-
9][
0-
9]|
1[
0-
9][
0-
9]|
2[
0-
4][
0-
9]|
25[
0-
5])\.){
3}([
0-
9]|[
1-
9][
0-
9]|
1[
0-
9][
0-
9]|
2[
0-
4][
0-
9]|
25[
0-
5])(/([
0-
9]|[
1-
2][
0-
9]|
3[
0-
2]))?
</param>
375 <param name=
"pattern">([
0-
9a-fA-F]{
1,
4}:|:){
1,
7}([
0-
9a-fA-F]{
1,
4}|:)(/([
0-
9]|[
1-
9][
0-
9]|
1[
0-
1][
0-
9]|
12[
0-
8]))?
</param>
380 <param name=
"pattern">[a-z0-
9\-](\.[a-z0-
9\-]+)*
</param>
383 <define name=
"email">
385 <param name=
"pattern">[a-zA-Z0-
9_\-\.]+@(([a-z0-
9\-](\.[a-z0-
9\-]+)*)|(([
0-
9]|[
1-
9][
0-
9]|
1[
0-
9][
0-
9]|
2[
0-
4][
0-
9]|
25[
0-
5])\.){
3}([
0-
9]|[
1-
9][
0-
9]|
1[
0-
9][
0-
9]|
2[
0-
4][
0-
9]|
25[
0-
5]))
</param>
388 <define name=
"networks">
390 <element name=
"network">
392 <attribute name=
"protocol"/>
395 <attribute name=
"port"/>