backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / lib / of_config / of-config-1.1.1.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema
3     xmlns:xs="http://www.w3.org/2001/XMLSchema"
4     xmlns:yin="urn:ietf:params:xml:schema:yang:yin:1"
5     targetNamespace="urn:onf:of111:config:yang"
6     xmlns="urn:onf:of111:config:yang"
7     elementFormDefault="qualified"
8     attributeFormDefault="unqualified"
9     version="2011-12-07"
10     xml:lang="en"
11     xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"
12     xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types"
13     xmlns:of11-config="urn:onf:of111:config:yang">
14     <xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-inet-types"
15                schemaLocation="ietf-inet-types.xsd"/>
16     <xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-yang-types"
17                schemaLocation="ietf-yang-types.xsd"/>
18     <xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
19                schemaLocation="../netconf/netconf.xsd"/>
20     <xs:annotation>
21         <xs:documentation> This schema was generated from the YANG module of-config1.1.1 by pyang
22             version 1.2. The schema describes an instance document consisting of the entire
23             configuration data store, operational data, rpc operations, and notifications. This
24             schema can thus NOT be used as-is to validate NETCONF PDUs. </xs:documentation>
25     </xs:annotation>
26     <xs:annotation>
27         <xs:documentation> NETCONF Operational Considerations Elements that are configurable,
28             optional and have a default value MAY be reported by replies to NETCONF
29             &lt;get-config&gt; requests. All non-configurable values SHOULD be reported by replies
30             to NETCONF &lt;get&gt; requests. Attemps to modify non-configurable elements with a
31             NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported' error
32             with type 'application'. When validating an &lt;editā€config&gt; operation the following
33             errors MUST be detected: * Delete requests for non-existent data. In this case a
34             'data-missing' error is returned. * Create requests for existent data. In this case a
35             'data-exists' error is returned. * If the NETCONF operation creates data nodes under a
36             'choice', any existing nodes from other branches are deleted. </xs:documentation>
37     </xs:annotation>
38     <!-- YANG typedefs -->
39     <xs:simpleType name="OFConfigId">
40         <xs:annotation>
41             <xs:documentation> Generic type of an identifier in OF-CONFIG </xs:documentation>
42         </xs:annotation>
43         <xs:restriction base="inet:uri"> </xs:restriction>
44     </xs:simpleType>
45     <xs:simpleType name="OFConfigurationPointProtocolType">
46         <xs:annotation>
47             <xs:documentation> Possible protocols to connect ot an OF Configuration Point
48             </xs:documentation>
49         </xs:annotation>
50         <xs:restriction base="xs:string">
51             <xs:enumeration value="ssh"/>
52             <xs:enumeration value="soap"/>
53             <xs:enumeration value="tls"/>
54             <xs:enumeration value="beep"/>
55         </xs:restriction>
56     </xs:simpleType>
57     <xs:simpleType name="OFOpenFlowVersionType">
58         <xs:annotation>
59             <xs:documentation> This enumeration contains the all OpenFlow versions released so far.
60             </xs:documentation>
61         </xs:annotation>
62         <xs:restriction base="xs:string">
63             <xs:enumeration value="not-applicable"/>
64             <xs:enumeration value="1.0"/>
65             <xs:enumeration value="1.0.1"/>
66             <xs:enumeration value="1.1"/>
67             <xs:enumeration value="1.2"/>
68             <xs:enumeration value="1.3"/>
69             <xs:enumeration value="1.3.1"/>
70         </xs:restriction>
71     </xs:simpleType>
72     <xs:simpleType name="datapath-id-type">
73         <xs:annotation>
74             <xs:documentation> The datapath-id type represents an OpenFlow datapath identifier.
75             </xs:documentation>
76         </xs:annotation>
77         <xs:restriction base="xs:string">
78             <xs:pattern value="[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}"/>
79         </xs:restriction>
80     </xs:simpleType>
81     <xs:simpleType name="OFTenthOfAPercentType">
82         <xs:annotation>
83             <xs:documentation> This type defines a value in tenth of a percent. </xs:documentation>
84         </xs:annotation>
85         <xs:restriction base="xs:unsignedShort">
86             <xs:minInclusive value="0"/>
87             <xs:maxInclusive value="1000"/>
88         </xs:restriction>
89     </xs:simpleType>
90     <xs:simpleType name="OFUpDownStateType">
91         <xs:annotation>
92             <xs:documentation> Type to specify state information for a port or a connection.
93             </xs:documentation>
94         </xs:annotation>
95         <xs:restriction base="xs:string">
96             <xs:enumeration value="up"/>
97             <xs:enumeration value="down"/>
98         </xs:restriction>
99     </xs:simpleType>
100     <xs:simpleType name="OFPortRateType">
101         <xs:annotation>
102             <xs:documentation> Type to specify the rate of a port including the duplex transmission
103                 feature. Possible rates are 10Mb, 100Mb, 1Gb, 10Gb, 40Gb, 100Gb, 1Tb or other. Rates
104                 of 10Mb, 100Mb and 1 Gb can support half or full duplex transmission.
105             </xs:documentation>
106         </xs:annotation>
107         <xs:restriction base="xs:string">
108             <xs:enumeration value="10Mb-HD"/>
109             <xs:enumeration value="10Mb-FD"/>
110             <xs:enumeration value="100Mb-HD"/>
111             <xs:enumeration value="100Mb-FD"/>
112             <xs:enumeration value="1Gb-HD"/>
113             <xs:enumeration value="1Gb-FD"/>
114             <xs:enumeration value="10Gb"/>
115             <xs:enumeration value="40Gb"/>
116             <xs:enumeration value="100Gb"/>
117             <xs:enumeration value="1Tb"/>
118             <xs:enumeration value="other"/>
119         </xs:restriction>
120     </xs:simpleType>
121     <xs:simpleType name="OFActionType">
122         <xs:annotation>
123             <xs:documentation> The types of actions defined in OpenFlow Switch Specification
124                 versions 1.2, 1.3, and 1.3.1</xs:documentation>
125         </xs:annotation>
126         <xs:restriction base="xs:string">
127             <xs:enumeration value="output"/>
128             <xs:enumeration value="copy-ttl-out"/>
129             <xs:enumeration value="copy-ttl-in"/>
130             <xs:enumeration value="set-mpls-ttl"/>
131             <xs:enumeration value="dec-mpls-ttl"/>
132             <xs:enumeration value="push-vlan"/>
133             <xs:enumeration value="pop-vlan"/>
134             <xs:enumeration value="push-mpls"/>
135             <xs:enumeration value="pop-mpls"/>
136             <xs:enumeration value="set-queue"/>
137             <xs:enumeration value="group"/>
138             <xs:enumeration value="set-nw-ttl"/>
139             <xs:enumeration value="dec-nw-ttl"/>
140             <xs:enumeration value="set-field"/>
141         </xs:restriction>
142     </xs:simpleType>
143     <xs:simpleType name="OFInstructionType">
144         <xs:annotation>
145             <xs:documentation> The types of instructions defined in OpenFlow Switch Specification
146                 versions 1.2, 1.3, and 1.3.1. </xs:documentation>
147         </xs:annotation>
148         <xs:restriction base="xs:string">
149             <xs:enumeration value="apply-actions"/>
150             <xs:enumeration value="clear-actions"/>
151             <xs:enumeration value="write-actions"/>
152             <xs:enumeration value="write-metadata"/>
153             <xs:enumeration value="goto-table"/>
154         </xs:restriction>
155     </xs:simpleType>
156     <xs:simpleType name="OFMatchFieldType">
157         <xs:annotation>
158             <xs:documentation> The types of match field defined in OpenFlow Switch Specification
159                 versions 1.2, 1.3, and 1.3.1. </xs:documentation>
160         </xs:annotation>
161         <xs:restriction base="xs:string">
162             <xs:enumeration value="input-port"/>
163             <xs:enumeration value="physical-input-port"/>
164             <xs:enumeration value="metadata"/>
165             <xs:enumeration value="ethernet-dest"/>
166             <xs:enumeration value="ethernet-src"/>
167             <xs:enumeration value="ethernet-frame-type"/>
168             <xs:enumeration value="vlan-id"/>
169             <xs:enumeration value="vlan-priority"/>
170             <xs:enumeration value="ip-dscp"/>
171             <xs:enumeration value="ip-ecn"/>
172             <xs:enumeration value="ip-protocol"/>
173             <xs:enumeration value="ipv4-src"/>
174             <xs:enumeration value="ipv4-dest"/>
175             <xs:enumeration value="tcp-src"/>
176             <xs:enumeration value="tcp-dest"/>
177             <xs:enumeration value="udp-src"/>
178             <xs:enumeration value="udp-dest"/>
179             <xs:enumeration value="sctp-src"/>
180             <xs:enumeration value="sctp-dest"/>
181             <xs:enumeration value="icmpv4-type"/>
182             <xs:enumeration value="icmpv4-code"/>
183             <xs:enumeration value="arp-op"/>
184             <xs:enumeration value="arp-src-ip-address"/>
185             <xs:enumeration value="arp-target-ip-address"/>
186             <xs:enumeration value="arp-src-hardware-address"/>
187             <xs:enumeration value="arp-target-hardware-address"/>
188             <xs:enumeration value="ipv6-src"/>
189             <xs:enumeration value="ipv6-dest"/>
190             <xs:enumeration value="ipv6-flow-label"/>
191             <xs:enumeration value="icmpv6-type"/>
192             <xs:enumeration value="icmpv6-code"/>
193             <xs:enumeration value="ipv6-nd-target"/>
194             <xs:enumeration value="ipv6-nd-source-link-layer"/>
195             <xs:enumeration value="ipv6-nd-target-link-layer"/>
196             <xs:enumeration value="mpls-label"/>
197             <xs:enumeration value="mpls-tc"/>
198         </xs:restriction>
199     </xs:simpleType>
200     <xs:simpleType name="hex-binary">
201         <xs:annotation>
202             <xs:documentation> hex binary encoded string </xs:documentation>
203         </xs:annotation>
204         <xs:restriction base="xs:base64Binary"> </xs:restriction>
205     </xs:simpleType>
206     <!-- YANG groupings -->
207     <xs:group name="OFPortCurrentFeatureListType">
208         <xs:annotation>
209             <xs:documentation> The current features of a port. Elements in the type
210                 OFPortCurrentFeatureListType are not configurable and can only be retrieved by
211                 NETCONF &lt;get&gt; operations. Attemps to modify this element and its children with
212                 a NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
213                 error with type 'application'. </xs:documentation>
214         </xs:annotation>
215         <xs:sequence>
216             <xs:element name="rate" type="OFPortRateType">
217                 <xs:annotation>
218                     <xs:documentation> The transmission rate that is currently used. The value MUST
219                         indicate a valid forwarding rate. The current Port Feature set MUST contain
220                         this element exactly once. The other Port Feature sets MAY contain this
221                         element more than once. If this element appears more than once in a Port
222                         Feature set than the value MUST be unique within the Port Feature set.
223                     </xs:documentation>
224                 </xs:annotation>
225             </xs:element>
226             <xs:element name="auto-negotiate" type="xs:boolean">
227                 <xs:annotation>
228                     <xs:documentation> Specifies the administrative state of the forwarding rate
229                         auto-negotiation protocol at this OpenFlow Port. </xs:documentation>
230                 </xs:annotation>
231             </xs:element>
232             <xs:element name="medium">
233                 <xs:annotation>
234                     <xs:documentation> This element MUST indicate a valid physical medium used by
235                         the OpenFlow Port. The current Port Feature set MUST contain this element
236                         exactly once. The other Port Feature sets MAY contain this element more than
237                         once. If this element appears more than once in a Port Feature set than the
238                         value MUST be unique within the Port Feature set. </xs:documentation>
239                 </xs:annotation>
240                 <xs:simpleType>
241                     <xs:restriction base="xs:string">
242                         <xs:enumeration value="copper"/>
243                         <xs:enumeration value="fiber"/>
244                     </xs:restriction>
245                 </xs:simpleType>
246             </xs:element>
247             <xs:element name="pause">
248                 <xs:annotation>
249                     <xs:documentation> Specifies if pausing of transmission is supported at all and
250                         if yes if it is asymmetric or symmetric. </xs:documentation>
251                 </xs:annotation>
252                 <xs:simpleType>
253                     <xs:restriction base="xs:string">
254                         <xs:enumeration value="unsupported"/>
255                         <xs:enumeration value="symmetric"/>
256                         <xs:enumeration value="asymmetric"/>
257                     </xs:restriction>
258                 </xs:simpleType>
259             </xs:element>
260         </xs:sequence>
261     </xs:group>
262     <xs:group name="OFPortOtherFeatureListType">
263         <xs:annotation>
264             <xs:documentation> The features of a port that are supported or advertised. If the
265                 elements in the OFPortOtherFeatureListType ares used as configurable elements the
266                 NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: * The
267                 'resource-id' element MUST be present in the path or in the filter at all
268                 &lt;edit-config&gt; operations to identify the resource. * If the operation is
269                 'merge' or 'replace', the element is created if it does not exist, and its value is
270                 set to the value found in the XML RPC data. * If the operation is 'create', the
271                 element is created if it does not exist. If the element already exists, a
272                 'dataā€‘exists' error is returned. * If the operation is 'delete', the element is
273                 deleted if it exists. If the element does not exist, a 'dataā€‘missing' error is
274                 returned. If elements in the type OFPortOtherFeatureListType are used in an
275                 non-configurable way, they only be retrieved by NETCONF &lt;get&gt; operations.
276                 Attemps to modify this element and its children with a NETCONF &lt;edit-config&gt;
277                 operation MUST result in an 'operation-not-supported' error with type 'application'.
278             </xs:documentation>
279         </xs:annotation>
280         <xs:sequence>
281             <xs:element name="rate" type="OFPortRateType" minOccurs="0">
282                 <xs:annotation>
283                     <xs:documentation> The transmission rate that is supported or advertised.
284                         Multiple transmissions rates are allowed. At least one element MUST be
285                         present in the NETCONF data store. If none of this elements is are present
286                         in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace'
287                         and the parent element does not exist, a 'data-missing' error is returned.
288                     </xs:documentation>
289                 </xs:annotation>
290             </xs:element>
291             <xs:element name="auto-negotiate" type="xs:boolean" minOccurs="0">
292                 <xs:annotation>
293                     <xs:documentation> Specifies if auto-negotiation of transmission parameters is
294                         enabled for the port. This element is optional. If this element is not
295                         present it defaults to 'true'. </xs:documentation>
296                 </xs:annotation>
297             </xs:element>
298             <xs:element name="medium" minOccurs="0">
299                 <xs:annotation>
300                     <xs:documentation> The transmission medium used by the port. Multiple media are
301                         allowed. At least one element MUST be present in the NETCONF data store. If
302                         none of this elements is are present in a NETCONF &lt;edit-config&gt;
303                         operation 'create', 'merge' or 'replace' and the parent element does not
304                         exist, a 'data-missing' error is returned. </xs:documentation>
305                 </xs:annotation>
306                 <xs:simpleType>
307                     <xs:restriction base="xs:string">
308                         <xs:enumeration value="copper"/>
309                         <xs:enumeration value="fiber"/>
310                     </xs:restriction>
311                 </xs:simpleType>
312             </xs:element>
313             <xs:element name="pause" minOccurs="0">
314                 <xs:annotation>
315                     <xs:documentation> Specifies if pausing of transmission is supported at all and
316                         if yes if it is asymmetric or symmetric. This element MUST be present in the
317                         NETCONF data store. If this element is not present in a NETCONF
318                         &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the parent
319                         element does not exist, a 'data-missing' error is returned.
320                     </xs:documentation>
321                 </xs:annotation>
322                 <xs:simpleType>
323                     <xs:restriction base="xs:string">
324                         <xs:enumeration value="unsupported"/>
325                         <xs:enumeration value="symmetric"/>
326                         <xs:enumeration value="asymmetric"/>
327                     </xs:restriction>
328                 </xs:simpleType>
329             </xs:element>
330         </xs:sequence>
331     </xs:group>
332     <xs:group name="DSAKeyValueType">
333         <xs:annotation>
334             <xs:documentation> DSA keys and the DSA signature algorithm are specified in 'FIPS PUB
335                 186-2, Digital Signature Standard (DSS), U.S. Department of Commerce/National
336                 Institute of Standards and Technology,
337                 http://csrc.nist.gov/publications/fips/fips186-2/fips186-2.pdf'. DSA public key
338                 values can have the following fields: P a prime modulus meeting the requirements of
339                 the standard above Q an integer in the range 2**159 &lt; Q &lt; 2**160 which is a
340                 prime divisor of P-1 G an integer with certain properties with respect to P and Q J
341                 (P - 1) / Q Y G**X mod P (where X is part of the private key and not made public)
342                 seed a DSA prime generation seed pgenCounter a DSA prime generation counter
343                 Parameter J is avilable for inclusion solely for efficiency as it is calculatable
344                 from P and Q. Parameters seed and pgenCounter are used in the DSA prime number
345                 generation algorithm specified in the above standard. As such, they are optional but
346                 MUST either both be present or both be absent. This prime generation algorithm is
347                 designed to provide assurance that a weak prime is not being used and it yields a P
348                 and Q value. Parameters P, Q, and G can be public and common to a group of users.
349                 They might be known from application context. As such, they are optional but P and Q
350                 MUST either both appear or both be absent. If all of P, Q, seed, and pgenCounter are
351                 present, implementations are not required to check if they are consistent and are
352                 free to use either P and Q or seed and pgenCounter. All parameters are encoded as
353                 base64 values. </xs:documentation>
354         </xs:annotation>
355         <xs:sequence>
356             <xs:element name="P" type="xs:base64Binary">
357                 <xs:annotation>
358                     <xs:documentation> This element is optional. It MUST be present in the NETCONF
359                         data store, if the element 'Q' is present. If element 'Q' is present in a
360                         NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and
361                         this element is missing, a 'data-missing' error is returned.
362                     </xs:documentation>
363                 </xs:annotation>
364             </xs:element>
365             <xs:element name="Q" type="xs:base64Binary">
366                 <xs:annotation>
367                     <xs:documentation> This element is optional. It MUST be present in the NETCONF
368                         data store, if the element 'P' is present. If element 'P' is present in a
369                         NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and
370                         this element is missing, a 'data-missing' error is returned.
371                     </xs:documentation>
372                 </xs:annotation>
373             </xs:element>
374             <xs:element name="J" type="xs:base64Binary">
375                 <xs:annotation>
376                     <xs:documentation> This element is optional. </xs:documentation>
377                 </xs:annotation>
378             </xs:element>
379             <xs:element name="G" type="xs:base64Binary">
380                 <xs:annotation>
381                     <xs:documentation> This element is optional. </xs:documentation>
382                 </xs:annotation>
383             </xs:element>
384             <xs:element name="Y" type="xs:base64Binary">
385                 <xs:annotation>
386                     <xs:documentation> This element MUST be present in the NETCONF data store. If
387                         this element is not present in a NETCONF &lt;edit-config&gt; operation
388                         'create', 'merge' or 'replace' and the parent element does not exist, a
389                         'data-missing' error is returned. </xs:documentation>
390                 </xs:annotation>
391             </xs:element>
392             <xs:element name="Seed" type="xs:base64Binary">
393                 <xs:annotation>
394                     <xs:documentation> This element is optional. It MUST be present in the NETCONF
395                         data store, if the element 'PgenCounter' is present. If element
396                         'PgenCounter' is present in a NETCONF &lt;edit-config&gt; operation
397                         'create', 'merge' or 'replace' and this element is missing, a 'data-missing'
398                         error is returned. </xs:documentation>
399                 </xs:annotation>
400             </xs:element>
401             <xs:element name="PgenCounter" type="xs:base64Binary">
402                 <xs:annotation>
403                     <xs:documentation> This element is optional. It MUST be present in the NETCONF
404                         data store, if the element 'Seed' is present. If element 'Seed' is present
405                         in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace'
406                         and this element is missing, a 'data-missing' error is returned.
407                     </xs:documentation>
408                 </xs:annotation>
409             </xs:element>
410         </xs:sequence>
411     </xs:group>
412     <xs:group name="OFPortBaseTunnelType">
413         <xs:annotation>
414             <xs:documentation> A group of common elements that are included in every supported
415                 tunnel type. Tunnels are modeled as logical ports. One pair of local/remote
416                 endpoints must exist for a tunnel configuration. Only elements from one choice must
417                 exist at a time. </xs:documentation>
418         </xs:annotation>
419         <xs:sequence>
420             <xs:choice>
421                 <xs:sequence>
422                     <xs:element name="local-endpoint-ipv4-address" type="inet:ipv4-address">
423                         <xs:annotation>
424                             <xs:documentation> The IPv4 address of the local tunnel endpoint.
425                             </xs:documentation>
426                         </xs:annotation>
427                     </xs:element>
428                     <xs:element name="remote-endpoint-ipv4-address" type="inet:ipv4-address">
429                         <xs:annotation>
430                             <xs:documentation> The IPv4 address of the remote tunnel endpoint.
431                             </xs:documentation>
432                         </xs:annotation>
433                     </xs:element>
434                 </xs:sequence>
435                 <xs:sequence>
436                     <xs:element name="local-endpoint-ipv6-address" type="inet:ipv6-address">
437                         <xs:annotation>
438                             <xs:documentation> The IPv6 address of the local tunnel endpoint.
439                             </xs:documentation>
440                         </xs:annotation>
441                     </xs:element>
442                     <xs:element name="remote-endpoint-ipv6-address" type="inet:ipv6-address">
443                         <xs:annotation>
444                             <xs:documentation> The IPv6 address of the remote tunnel endpoint.
445                             </xs:documentation>
446                         </xs:annotation>
447                     </xs:element>
448                 </xs:sequence>
449                 <xs:sequence>
450                     <xs:element name="local-endpoint-mac-adress" type="yang:mac-address">
451                         <xs:annotation>
452                             <xs:documentation> The MAC address of the local tunnel endpoint.
453                             </xs:documentation>
454                         </xs:annotation>
455                     </xs:element>
456                     <xs:element name="remote-endpoint-mac-adress" type="yang:mac-address">
457                         <xs:annotation>
458                             <xs:documentation> The MAC address of the remote tunnel endpoint.
459                             </xs:documentation>
460                         </xs:annotation>
461                     </xs:element>
462                 </xs:sequence>
463             </xs:choice>
464         </xs:sequence>
465     </xs:group>
466     <xs:group name="OFPortIPGRETunnelType">
467         <xs:annotation>
468             <xs:documentation> Properties of a IP-in-GRE tunnel with key, checksum, and sequence
469                 number information. </xs:documentation>
470         </xs:annotation>
471         <xs:sequence>
472             <xs:group ref="OFPortBaseTunnelType"/>
473             <xs:element name="checksum-present" type="xs:boolean">
474                 <xs:annotation>
475                     <xs:documentation> Indicates presence of the GRE checksum. </xs:documentation>
476                 </xs:annotation>
477             </xs:element>
478             <xs:element name="key-present" type="xs:boolean">
479                 <xs:annotation>
480                     <xs:documentation> Indicates presence of the GRE key. </xs:documentation>
481                 </xs:annotation>
482             </xs:element>
483             <xs:element name="key" type="xs:unsignedInt">
484                 <xs:annotation>
485                     <xs:documentation> The (optional) key of the GRE tunnel. It MAY be used to set
486                         the OXM_OF_TUNNEL_ID match field metadata in the OpenFlow protocol
487                     </xs:documentation>
488                 </xs:annotation>
489             </xs:element>
490             <xs:element name="sequence-number-present" type="xs:boolean">
491                 <xs:annotation>
492                     <xs:documentation> Indicates presence of the GRE sequence number.
493                     </xs:documentation>
494                 </xs:annotation>
495             </xs:element>
496         </xs:sequence>
497     </xs:group>
498     <xs:group name="OFPortNVGRETunnelType">
499         <xs:annotation>
500             <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
501         </xs:annotation>
502         <xs:sequence>
503             <xs:group ref="OFPortBaseTunnelType"/>
504             <xs:element name="tni" type="xs:unsignedInt">
505                 <xs:annotation>
506                     <xs:documentation> Specifies the tenant network identifier assigned to all
507                         packets sent on the tunnel </xs:documentation>
508                 </xs:annotation>
509             </xs:element>
510             <xs:element name="tni-resv" type="xs:unsignedInt">
511                 <xs:annotation>
512                     <xs:documentation> Used to set the reserved user-defined bits of the GRE key
513                         field </xs:documentation>
514                 </xs:annotation>
515             </xs:element>
516             <xs:element name="tni-multicast-group" type="inet:ip-address">
517                 <xs:annotation>
518                     <xs:documentation> If IP multicast is used to support broadcast on the tunnel
519                         this element specifies the corresponding multicast IP address
520                     </xs:documentation>
521                 </xs:annotation>
522             </xs:element>
523         </xs:sequence>
524     </xs:group>
525     <xs:group name="OFQueueType">
526         <xs:annotation>
527             <xs:documentation> This grouping specifies all properties of a queue resource. NETCONF
528                 &lt;edit-config&gt; operations MUST be implemented as follows: * The 'resource-id'
529                 element of OFResoureType MUST be present at all &lt;edit-config&gt; operations to
530                 identify the port. * If the operation is 'merge' or 'replace', the element is
531                 created if it does not exist, and its value is set to the value found in the XML RPC
532                 data. * If the operation is 'create', the element is created if it does not exist.
533                 If the element already exists, a 'dataā€‘exists' error is returned. * If the operation
534                 is 'delete', the element is deleted if it exists. If the element does not exist, a
535                 'dataā€‘missing' error is returned. </xs:documentation>
536         </xs:annotation>
537         <xs:sequence>
538             <xs:group ref="OFResourceType"/>
539             <xs:element name="id" type="xs:unsignedLong" minOccurs="0">
540                 <xs:annotation>
541                     <xs:documentation> This id identifies the OpenFlow Queue to OpenFlow
542                         Controllers. It is assigned to an OpenFlow Queue latest when the OpenFlow
543                         Queue is associated with and OpenFlow Logical Switch. If the OpenFlow Queue
544                         is associated with an OpenFlow Logical Switch, this element MUST be unique
545                         within the context of the OpenFlow Logical Switch. OpenFlow Capable Switch
546                         implementations may choose to assign values to OpenFlow Queues that are
547                         unique within the context of the OpenFlow Logical Switch. These id can be
548                         used independent of assignments to OpenFlow Logical Switches. Other
549                         implementations may assign values to this element only if the OpenFlow Queue
550                         is assigned to an OpenFlow Logical Switch. If no value is currently assigned
551                         to this element then this element MUST NOT be included in replies to NETCONF
552                         &lt;get&gt; requests. Since this element is not configurable with the
553                         NETCONF protocol it MUST NOT be included in replies to NETCONF
554                         &lt;get-config&gt; requests. </xs:documentation>
555                 </xs:annotation>
556             </xs:element>
557             <xs:element name="port" minOccurs="0">
558                 <xs:annotation>
559                     <xs:documentation> Reference to port resources in the Capable Switch. This
560                         element associates an OpenFlow Queue with an OpenFlow Port. If the OpenFlow
561                         Queue is associated with an OpenFlow Logical Switch S and this element is
562                         present, then it MUST be set to the value of element resource-id of an
563                         OpenFlow Port which is associated with the OpenFlow Logical Switch S. The
564                         element MUST refer to an element at the following path:
565                         /capable-switch/resources/port/resource-id </xs:documentation>
566                 </xs:annotation>
567                 <xs:simpleType>
568                     <xs:restriction base="inet:uri"> </xs:restriction>
569                 </xs:simpleType>
570             </xs:element>
571             <xs:element name="properties" minOccurs="0">
572                 <xs:annotation>
573                     <xs:documentation> The queue properties currently configured.
574                     </xs:documentation>
575                 </xs:annotation>
576                 <xs:complexType>
577                     <xs:sequence>
578                         <xs:element name="min-rate" minOccurs="0" type="OFTenthOfAPercentType">
579                             <xs:annotation>
580                                 <xs:documentation> The minimal rate that is reserved for this queue
581                                     in 1/10 of a percent of the actual rate. This element is
582                                     optional. If not present a min-rate is not set.
583                                 </xs:documentation>
584                             </xs:annotation>
585                         </xs:element>
586                         <xs:element name="max-rate" minOccurs="0" type="OFTenthOfAPercentType">
587                             <xs:annotation>
588                                 <xs:documentation> The maximum rate that is reserved for this queue
589                                     in 1/10 of a percent of the actual rate. This element is
590                                     optional. If not present the max-rate is not set.
591                                 </xs:documentation>
592                             </xs:annotation>
593                         </xs:element>
594                         <xs:element name="experimenter" minOccurs="0" maxOccurs="unbounded"
595                             type="xs:unsignedInt">
596                             <xs:annotation>
597                                 <xs:documentation> A list of experimenter identifiers of queue
598                                     properties used. This element is optional. </xs:documentation>
599                             </xs:annotation>
600                         </xs:element>
601                     </xs:sequence>
602                 </xs:complexType>
603             </xs:element>
604         </xs:sequence>
605     </xs:group>
606     <xs:group name="OFOwnedCertificateType">
607         <xs:annotation>
608             <xs:documentation> This grouping specifies a certificate and a private key. It can be
609                 used by an OpenFlow Logical Switch for authenticating itself to a controller when a
610                 TLS connection is established. </xs:documentation>
611         </xs:annotation>
612         <xs:sequence>
613             <xs:group ref="OFResourceType"/>
614             <xs:element name="certificate" type="xs:string">
615                 <xs:annotation>
616                     <xs:documentation> An X.509 certificate in DER format base64 encoded. This
617                         element MUST be present in the NETCONF data store. If this element is not
618                         present in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or
619                         'replace' and the parent element does not exist, a 'data-missing' error is
620                         returned. </xs:documentation>
621                 </xs:annotation>
622             </xs:element>
623             <xs:element name="private-key">
624                 <xs:annotation>
625                     <xs:documentation> This element contains the private key corresponding to the
626                         certificate. The private key is encoded as specified in XML-Signature Syntax
627                         and Processing (http://www.w3.org/TR/2001/PR-xmldsig-core-20010820/).
628                         Currently the specification only support DSA and RSA keys. This element MUST
629                         be present in the NETCONF data store. If this element is not present in a
630                         NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the
631                         parent element does not exist, a 'data-missing' error is returned.
632                     </xs:documentation>
633                 </xs:annotation>
634                 <xs:complexType>
635                     <xs:sequence>
636                         <xs:group ref="KeyValueType"/>
637                     </xs:sequence>
638                 </xs:complexType>
639             </xs:element>
640         </xs:sequence>
641     </xs:group>
642     <xs:group name="OFExternalCertificateType">
643         <xs:annotation>
644             <xs:documentation> This grouping specifies a certificate that can be used by an OpenFlow
645                 Logical Switch for authenticating a controller when a TLS connection is established.
646             </xs:documentation>
647         </xs:annotation>
648         <xs:sequence>
649             <xs:group ref="OFResourceType"/>
650             <xs:element name="certificate" type="xs:string" minOccurs="0">
651                 <xs:annotation>
652                     <xs:documentation> An X.509 certificate in DER format base64 encoded. This
653                         element MUST be present in the NETCONF data store. If this element is not
654                         present in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or
655                         'replace' and the parent element does not exist, a 'data-missing' error is
656                         returned. </xs:documentation>
657                 </xs:annotation>
658             </xs:element>
659         </xs:sequence>
660     </xs:group>
661     <xs:group name="OFConfigurationPointType">
662         <xs:annotation>
663             <xs:documentation> Representation of an OpenFlow Configuration Point. Instances of the
664                 Configuration Point class SHOULD be stored persistently across reboots of the
665                 OpenFlow Capable Switch. When a connection is established between an OpenFlow
666                 Capable Switch and a Configuration Point the switch MUST store the connection
667                 information in an instance of the Configuration Point class. If such an instance
668                 does not exist, the OpenFlow Capable Switch MUST create an instance where it then
669                 stores the connection information. An OpenFlow Capable Switch that cannot initiate a
670                 connection to a configuration point does not have to implement the Configuration
671                 Point class. It SHOULD block attempts to write to instances of the Configuration
672                 Point class with NETCONF &lt;edit-config&gt; operations. NETCONF &lt;edit-config&gt;
673                 operations MUST be implemented as follows: * The 'id' element MUST be present at all
674                 &lt;edit-config&gt; operations to identify the configuration point. * If the
675                 operation is 'merge' or 'replace', the element is created if it does not exist, and
676                 its value is set to the value found in the XML RPC data. * If the operation is
677                 'create', the element is created if it does not exist. If the element already
678                 exists, a 'dataā€‘exists' error is returned. * If the operation is 'delete', the
679                 element is deleted if it exists. If the element does not exist, a 'dataā€‘missing'
680                 error is returned. </xs:documentation>
681         </xs:annotation>
682         <xs:sequence>
683             <xs:element name="id" type="OFConfigId">
684                 <xs:annotation>
685                     <xs:documentation> A unique but locally arbitrary identifier that identifies a
686                         Configuration Point within the context of an OpenFlow Capable Switch. This
687                         element MUST be present to identify the configuration point.
688                     </xs:documentation>
689                 </xs:annotation>
690             </xs:element>
691             <xs:element name="uri" type="inet:uri">
692                 <xs:annotation>
693                     <xs:documentation> A locator of the Configuration Point. It identifies the
694                         location of the Configuration Point as a service resource and MUST include
695                         all information necessary for the OpenFlow Capable Switch to connect to the
696                         Configuration Point or re-connect to it should it become disconnected. Such
697                         information MAY include, for example, protocol, fully qualified domain name,
698                         IP address, port number, etc. This element MUST be present in the NETCONF
699                         data store. If this element is not present in a NETCONF &lt;edit-config&gt;
700                         operation 'create', 'merge' or 'replace' and the parent element does not
701                         exist, a 'data-missing' error is returned. </xs:documentation>
702                 </xs:annotation>
703             </xs:element>
704             <xs:element name="protocol" type="OFConfigurationPointProtocolType" minOccurs="0">
705                 <xs:annotation>
706                     <xs:documentation> The transport protocol that the Configuration Point uses when
707                         communicating via NETCONF with the OpenFlow Capable Switch. This element is
708                         optional. If it is not present its value defaults to 'ssh'.
709                     </xs:documentation>
710                 </xs:annotation>
711             </xs:element>
712         </xs:sequence>
713     </xs:group>
714     <xs:group name="RSAKeyValueType">
715         <xs:annotation>
716             <xs:documentation> RSA key values have two fields: Modulus and Exponent.
717             </xs:documentation>
718         </xs:annotation>
719         <xs:sequence>
720             <xs:element name="Modulus" type="xs:base64Binary">
721                 <xs:annotation>
722                     <xs:documentation> This element MUST be present in the NETCONF data store. If
723                         this element is not present in a NETCONF &lt;edit-config&gt; operation
724                         'create', 'merge' or 'replace' and the parent element does not exist, a
725                         'data-missing' error is returned. </xs:documentation>
726                 </xs:annotation>
727             </xs:element>
728             <xs:element name="Exponent" type="xs:base64Binary">
729                 <xs:annotation>
730                     <xs:documentation> This element MUST be present in the NETCONF data store. If
731                         this element is not present in a NETCONF &lt;edit-config&gt; operation
732                         'create', 'merge' or 'replace' and the parent element does not exist, a
733                         'data-missing' error is returned. </xs:documentation>
734                 </xs:annotation>
735             </xs:element>
736         </xs:sequence>
737     </xs:group>
738     <xs:group name="OFFlowTableType">
739         <xs:annotation>
740             <xs:documentation> Representation of an OpenFlow Flow Table Resource. Elements in the
741                 type OFFlowTableType are not configurable and can only be retrieved by NETCONF
742                 &lt;get&gt; operations. Attemps to modify this element and its children with a
743                 NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
744                 error with type 'application'. </xs:documentation>
745         </xs:annotation>
746         <xs:sequence>
747             <xs:group ref="OFResourceType"/>
748             <xs:element name="max-entries" type="xs:unsignedByte" minOccurs="0">
749                 <xs:annotation>
750                     <xs:documentation> The maximum number of flow entries supported by the flow
751                         table. </xs:documentation>
752                 </xs:annotation>
753             </xs:element>
754             <xs:element name="next-tables" minOccurs="0">
755                 <xs:annotation>
756                     <xs:documentation> An array of resource-ids of all flow tables that can be
757                         directly reached from this table using the 'goto-table' instruction.
758                     </xs:documentation>
759                 </xs:annotation>
760                 <xs:complexType>
761                     <xs:sequence>
762                         <xs:element name="table-id" maxOccurs="unbounded" type="inet:uri"/>
763                     </xs:sequence>
764                 </xs:complexType>
765             </xs:element>
766             <xs:element name="instructions" minOccurs="0">
767                 <xs:annotation>
768                     <xs:documentation> The list of all instruction types supported by the flow
769                         table. </xs:documentation>
770                 </xs:annotation>
771                 <xs:complexType>
772                     <xs:sequence>
773                         <xs:element name="type" maxOccurs="unbounded" type="OFInstructionType"/>
774                     </xs:sequence>
775                 </xs:complexType>
776             </xs:element>
777             <xs:element name="matches" minOccurs="0">
778                 <xs:annotation>
779                     <xs:documentation> The list of all match types supported by the flow table.
780                     </xs:documentation>
781                 </xs:annotation>
782                 <xs:complexType>
783                     <xs:sequence>
784                         <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
785                     </xs:sequence>
786                 </xs:complexType>
787             </xs:element>
788             <xs:element name="write-actions" minOccurs="0">
789                 <xs:annotation>
790                     <xs:documentation> The list of all write action types supported by the flow
791                         table. </xs:documentation>
792                 </xs:annotation>
793                 <xs:complexType>
794                     <xs:sequence>
795                         <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
796                     </xs:sequence>
797                 </xs:complexType>
798             </xs:element>
799             <xs:element name="apply-actions" minOccurs="0">
800                 <xs:annotation>
801                     <xs:documentation> The list of all apply action types supported by the flow
802                         table. </xs:documentation>
803                 </xs:annotation>
804                 <xs:complexType>
805                     <xs:sequence>
806                         <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
807                     </xs:sequence>
808                 </xs:complexType>
809             </xs:element>
810             <xs:element name="write-setfields" minOccurs="0">
811                 <xs:annotation>
812                     <xs:documentation> The list of all 'set-field' action types supported by the
813                         table using write actions. </xs:documentation>
814                 </xs:annotation>
815                 <xs:complexType>
816                     <xs:sequence>
817                         <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
818                     </xs:sequence>
819                 </xs:complexType>
820             </xs:element>
821             <xs:element name="apply-setfields" minOccurs="0">
822                 <xs:annotation>
823                     <xs:documentation> The list of all 'set-field' action types supported by the
824                         table using apply actions. </xs:documentation>
825                 </xs:annotation>
826                 <xs:complexType>
827                     <xs:sequence>
828                         <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
829                     </xs:sequence>
830                 </xs:complexType>
831             </xs:element>
832             <xs:element name="wildcards" minOccurs="0">
833                 <xs:annotation>
834                     <xs:documentation> The list of all fields for which the table supports
835                         wildcarding. </xs:documentation>
836                 </xs:annotation>
837                 <xs:complexType>
838                     <xs:sequence>
839                         <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
840                     </xs:sequence>
841                 </xs:complexType>
842             </xs:element>
843             <xs:element name="metadata-match" type="hex-binary" minOccurs="0">
844                 <xs:annotation>
845                     <xs:documentation> This element indicates the bits of the metadata field on
846                         which the flow table can match. It is represented as 64-bit integer in
847                         hexadecimal digits([0-9a-fA-F]) format. </xs:documentation>
848                 </xs:annotation>
849             </xs:element>
850             <xs:element name="metadata-write" type="hex-binary" minOccurs="0">
851                 <xs:annotation>
852                     <xs:documentation> This element indicates the bits of the metadata field on
853                         which flow table can write using the 'write-metadata' instruction. It is
854                         represented as 64-bit integer in hexadecimal digits([0-9a-fA-F]) format.
855                     </xs:documentation>
856                 </xs:annotation>
857             </xs:element>
858         </xs:sequence>
859     </xs:group>
860     <xs:group name="OFLogicalSwitchType">
861         <xs:annotation>
862             <xs:documentation> This grouping specifies all properties of an OpenFlow Logical Switch.
863                 Elements of type OFLogicalSwitchType cannot be created or deleted with NETCONF
864                 &lt;edit-config&gt; operations 'create' or 'delete'. The other NETCONF
865                 &lt;edit-config&gt; operations MUST be implemented as follows: * The 'id' element
866                 MUST be present at all &lt;edit-config&gt; operations to identify the OpenFlow
867                 Logical Switch. * If the operation is 'merge' or 'replace', and the element does not
868                 exist, a 'data-missing' error is returned. If the element exists its value is set to
869                 the value found in the XML RPC data. * If the operation is 'create', a
870                 'operation-not-supported' error with type 'application' is returned. * If the
871                 operation is 'delete', 'operation-not-supported' error with type 'application' is
872                 returned. </xs:documentation>
873         </xs:annotation>
874         <xs:sequence>
875             <xs:element name="id" type="OFConfigId">
876                 <xs:annotation>
877                     <xs:documentation> A unique but locally arbitrary identifier that identifies a
878                         Logical Switch within the context of an OpenFlow Capable Switch. It MUST be
879                         persistent across reboots of the OpenFlow Capable Switch. This element MUST
880                         be present to identify the OpenFlow Logical Switch. </xs:documentation>
881                 </xs:annotation>
882             </xs:element>
883             <xs:element name="capabilities" minOccurs="0">
884                 <xs:annotation>
885                     <xs:documentation> This element contains all capability items that an OpenFlow
886                         Logical Switch MAY implement. This element and its children can only be
887                         retrieved by NETCONF &lt;get&gt; operation since it contain no configuration
888                         data. </xs:documentation>
889                 </xs:annotation>
890                 <xs:complexType>
891                     <xs:sequence>
892                         <xs:group ref="OFLogicalSwitchCapabilitiesType"/>
893                     </xs:sequence>
894                 </xs:complexType>
895             </xs:element>
896             <xs:element name="datapath-id" type="datapath-id-type" minOccurs="0">
897                 <xs:annotation>
898                     <xs:documentation> The datapath identifier of the Logical Switch that uniquely
899                         identifies this Logical Switch within the context of all OpenFlow
900                         Controllers associated with the OpenFlow Logical Switch. The datapath
901                         identifier is a string value that MUST be formatted as a sequence of 8
902                         2-digit hexadecimal numbers that are separated by colons, for example,
903                         '01:23:45:67:89:ab:cd:ef'. When processing a datapath identifier, the case
904                         of the decimal digits MUST be ignored. This element MUST be present in the
905                         NETCONF data store. If this element is not present in a NETCONF
906                         &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the parent
907                         element does not exist, a 'data-missing' error is returned.
908                     </xs:documentation>
909                 </xs:annotation>
910             </xs:element>
911             <xs:element name="enabled" type="xs:boolean" minOccurs="0">
912                 <xs:annotation>
913                     <xs:documentation> This element indicates the administrative state of the
914                         OpenFlow Logical Switch. A value of 'false' means the OpenFlow Logical
915                         Switch MUST NOT communicate with any OpenFlow Controllers, MUST NOT conduct
916                         any OpenFlow processing, and SHOULD NOT be utilizing computational or
917                         network resources of the underlying platform. This element is optional. If
918                         this element is not present it defaults to 'false'. </xs:documentation>
919                 </xs:annotation>
920             </xs:element>
921             <xs:element name="check-controller-certificate" type="xs:boolean" minOccurs="0">
922                 <xs:annotation>
923                     <xs:documentation> This element indicates the behavior of the OpenFlow Logical
924                         Switch when connecting to an OpenFlow Controller. If set to value 'false',
925                         the logical switch will connect to a controller without checking any
926                         controller certificate. If set to value 'true', then the logical switch will
927                         connect to a controller with element &lt;protocol&gt; set to 'TLS', only if
928                         the controller provides a certificate that can be verified with one of the
929                         certificates stored in the list called external-certificates in the OpenFlow
930                         Capable Switch. If a certificate cannot be validated, the OpenFlow Logical
931                         Switch MUST terminate communication with the corresponding OpenFlow
932                         Controller, MUST NOT conduct any OpenFlow processing on requests of this
933                         OpenFlow controller, and SHOULD NOT further utilize any computational or
934                         network resources of for dealing with this connection. If set to value
935                         'true', the OpenFlow Logical Switch MUST NOT connect to any OpenFlow
936                         Controller that does not provide a certificate. This implies that it cannot
937                         connect to an OpenFlow controller that has the value of element protocol set
938                         to 'TCP'. Only connections with protocol 'TLS' are possible in this case.
939                         This element is optional. If this element is not present it defaults to
940                         'false'. </xs:documentation>
941                 </xs:annotation>
942             </xs:element>
943             <xs:element name="lost-connection-behavior" minOccurs="0">
944                 <xs:annotation>
945                     <xs:documentation> This element indicates the the behavior of the OpenFlow
946                         Logical Switch in case it loses contact with all OpenFlow Controllers. There
947                         are two alternative modes in such a case: fails secure mode and fail
948                         standalone mode as defined by the OpenFlow protocol specification version
949                         1.2, section 6.4. These are the only allowed values for this element.
950                         Default is the fail secure mode. This element is optional. If this element
951                         is not present it defaults to 'failSecureMode'. </xs:documentation>
952                 </xs:annotation>
953                 <xs:simpleType>
954                     <xs:restriction base="xs:string">
955                         <xs:enumeration value="failSecureMode"/>
956                         <xs:enumeration value="failStandaloneMode"/>
957                     </xs:restriction>
958                 </xs:simpleType>
959             </xs:element>
960             <xs:element name="controllers" minOccurs="0">
961                 <xs:annotation>
962                     <xs:documentation> The list of controllers for this Logical switch. The element
963                         'id' of OFControllerType MUST be unique within this list.
964                     </xs:documentation>
965                 </xs:annotation>
966                 <xs:complexType>
967                     <xs:sequence>
968                         <xs:element name="controller" maxOccurs="unbounded">
969                             <xs:annotation>
970                                 <xs:documentation> The list of OpenFlow Controllers that are
971                                     assigned to the OpenFlow Logical Switch. The switch MUST NOT
972                                     connect to any OpenFlow Controller that is not contained in this
973                                     list. NETCONF &lt;edit-config&gt; operations MUST be implemented
974                                     as follows: * The 'id' element MUST be present at all
975                                     &lt;editconfig&gt; operations to identify the controller. * If
976                                     the operation is 'merge' or 'replace', the element is created if
977                                     it does not exist, and its value is set to the value found in
978                                     the XML RPC data. * If the operation is 'create', the element is
979                                     created if it does not exist. If the element already exists, a
980                                     'dataā€‘exists' error is returned. * If the operation is 'delete',
981                                     the element is deleted if it exists. If the element does not
982                                     exist, a 'dataā€‘missing' error is returned. </xs:documentation>
983                             </xs:annotation>
984                             <xs:complexType>
985                                 <xs:sequence>
986                                     <xs:group ref="OFControllerType"/>
987                                 </xs:sequence>
988                                 <xs:attribute name="operation" type="xs:string"/>
989                             </xs:complexType>
990                         </xs:element>
991                     </xs:sequence>
992                 </xs:complexType>
993                 <xs:key name="key_controllers_controller">
994                     <xs:selector xpath="of11-config:controller"/>
995                     <xs:field xpath="of11-config:id"/>
996                 </xs:key>
997             </xs:element>
998             <xs:element name="resources" minOccurs="0">
999                 <xs:annotation>
1000                     <xs:documentation> The list of identifiers of all resources of the OpenFlow
1001                         Capable Switch that the OpenFlow Logical Switch has exclusive or
1002                         non-exclusive access to. A resource is identified by the value of its
1003                         resource-identifier element. For each resource identifier value in this
1004                         list, there MUST be an element with a matching resource identifier value in
1005                         the resources list of the OpenFlow Capable Switch. Identifiers of this list
1006                         are contained in elements indicating the type of resource: 'port', 'queue',
1007                         'certificate', or 'flow-table'. Depending on the type, different constraints
1008                         apply. These are specified in separate descriptions per type. At present the
1009                         elements in this lists are not configurable and can only be retrieved by
1010                         NETCONF &lt;get&gt; or &lt;getconfig&gt; operations. Attemps to modify this
1011                         element and its children with a NETCONF &lt;edit-config&gt; operation MUST
1012                         result in an 'operation-not-supported' error with type 'application'.
1013                     </xs:documentation>
1014                 </xs:annotation>
1015                 <xs:complexType>
1016                     <xs:sequence>
1017                         <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
1018                             <xs:annotation>
1019                                 <xs:documentation> A resource identifier of a port of the OpenFlow
1020                                     Capable Switch that the OpenFlow Logical Switch has exclusive
1021                                     access to. The elements in this list MUST refer to elements at
1022                                     the following path: /capable-switch/resources/port/resource-id
1023                                     Elements in this list MUST be unique. This means each port
1024                                     element can only be referenced once. </xs:documentation>
1025                             </xs:annotation>
1026                             <xs:simpleType>
1027                                 <xs:restriction base="inet:uri"> </xs:restriction>
1028                             </xs:simpleType>
1029                         </xs:element>
1030                         <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
1031                             <xs:annotation>
1032                                 <xs:documentation> A resource identifier of a queue of the OpenFlow
1033                                     Capable Switch that the OpenFlow Logical Switch has exclusive
1034                                     access to. The elements in this list MUST refer to elements at
1035                                     the following path: /capable-switch/resources/queue/resource-id
1036                                     Elements in this list MUST be unique. This means each queue
1037                                     element can only be referenced once. </xs:documentation>
1038                             </xs:annotation>
1039                             <xs:simpleType>
1040                                 <xs:restriction base="inet:uri"> </xs:restriction>
1041                             </xs:simpleType>
1042                         </xs:element>
1043                         <xs:element name="certificate" minOccurs="0">
1044                             <xs:annotation>
1045                                 <xs:documentation> The resource identifier of the owned certificate
1046                                     in the OpenFlow Capable Switch that the OpenFlow Logical Switch
1047                                     uses to identify itself. This element MUST NOT occur more than
1048                                     once in an OpenFlow Logical Switch's resource list. If no such
1049                                     element is in an OpenFlow Logical Switch's resource list, then
1050                                     the OpenFlow Logical Switch does not authenticate itself towards
1051                                     an OpenFloe Controller with a certificate. If this element is
1052                                     present, then the OpenFlow Logical Switch MUST provide this
1053                                     certificate for authentication to an OpenFlow Controller when
1054                                     setting up a TLS connection. For TCP connections this element is
1055                                     irrelevant. The element MUST refer to an element at the
1056                                     following path:
1057                                     /capable-switch/resources/owned-certificate/resource-id
1058                                 </xs:documentation>
1059                             </xs:annotation>
1060                             <xs:simpleType>
1061                                 <xs:restriction base="inet:uri"> </xs:restriction>
1062                             </xs:simpleType>
1063                         </xs:element>
1064                         <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
1065                             <xs:annotation>
1066                                 <xs:documentation> A resource identifier of a flow table of the
1067                                     OpenFlow Capable Switch that the OpenFlow Logical Switch has
1068                                     exclusive access to. The elements in this list MUST refer to
1069                                     elements at the following path:
1070                                     /capable-switch/resources/flow-table/resource-id Elements in
1071                                     this list MUST be unique. This means each flow-table element can
1072                                     only be referenced once. </xs:documentation>
1073                             </xs:annotation>
1074                             <xs:simpleType>
1075                                 <xs:restriction base="inet:uri"> </xs:restriction>
1076                             </xs:simpleType>
1077                         </xs:element>
1078                     </xs:sequence>
1079                 </xs:complexType>
1080             </xs:element>
1081         </xs:sequence>
1082     </xs:group>
1083     <xs:group name="KeyValueType">
1084         <xs:annotation>
1085             <xs:documentation> The KeyValue element contains a single public key that may be useful
1086                 in validating the signature. NETCONF &lt;edit-config&gt; operations MUST be
1087                 implemented as follows: * Exactly one of the elemenst 'DSAKeyValue' or 'RSAKeyValue'
1088                 all &lt;edit-config&gt; operations. * If the operation is 'merge' or 'replace', the
1089                 element is created if it does not exist, and its value is set to the value found in
1090                 the XML RPC data. * If the operation is 'create', the element is created if it does
1091                 not exist. If the element already exists, a 'dataā€‘exists' error is returned. * If
1092                 the operation is 'delete', the element is deleted if it exists. If the element does
1093                 not exist, a 'dataā€‘missing' error is returned. </xs:documentation>
1094         </xs:annotation>
1095         <xs:sequence>
1096             <xs:choice>
1097                 <xs:sequence>
1098                     <xs:element name="DSAKeyValue">
1099                         <xs:complexType>
1100                             <xs:sequence>
1101                                 <xs:group ref="DSAKeyValueType"/>
1102                             </xs:sequence>
1103                         </xs:complexType>
1104                     </xs:element>
1105                 </xs:sequence>
1106                 <xs:sequence>
1107                     <xs:element name="RSAKeyValue">
1108                         <xs:complexType>
1109                             <xs:sequence>
1110                                 <xs:group ref="RSAKeyValueType"/>
1111                             </xs:sequence>
1112                         </xs:complexType>
1113                     </xs:element>
1114                 </xs:sequence>
1115             </xs:choice>
1116         </xs:sequence>
1117     </xs:group>
1118     <xs:group name="OFLogicalSwitchCapabilitiesType">
1119         <xs:annotation>
1120             <xs:documentation> This grouping specifies all properties of an OpenFlow logical
1121                 switch's capabilities. Elements in the type OFLogicalSwitchCapabilitiesType are not
1122                 configurable and can only be retrieved by NETCONF &lt;get&gt; operations. Attemps to
1123                 modify this element and its children with a NETCONF &lt;edit-config&gt; operation
1124                 MUST result in an 'operation-not-supported' error with type 'application'.
1125             </xs:documentation>
1126         </xs:annotation>
1127         <xs:sequence>
1128             <xs:element name="max-buffered-packets" type="xs:unsignedInt">
1129                 <xs:annotation>
1130                     <xs:documentation> The maximum number of packets the logical switch can buffer
1131                         when sending packets to the controller using packet-in messages.
1132                     </xs:documentation>
1133                 </xs:annotation>
1134             </xs:element>
1135             <xs:element name="max-tables" type="xs:unsignedByte">
1136                 <xs:annotation>
1137                     <xs:documentation> The number of flow tables supported by the logical switch.
1138                     </xs:documentation>
1139                 </xs:annotation>
1140             </xs:element>
1141             <xs:element name="max-ports" type="xs:unsignedInt">
1142                 <xs:annotation>
1143                     <xs:documentation> The number of flow tables supported by the logical switch.
1144                     </xs:documentation>
1145                 </xs:annotation>
1146             </xs:element>
1147             <xs:element name="flow-statistics" type="xs:boolean">
1148                 <xs:annotation>
1149                     <xs:documentation> Specifies if the logical switch supports flow statistics.
1150                     </xs:documentation>
1151                 </xs:annotation>
1152             </xs:element>
1153             <xs:element name="table-statistics" type="xs:boolean">
1154                 <xs:annotation>
1155                     <xs:documentation> Specifies if the logical switch supports table statistics.
1156                     </xs:documentation>
1157                 </xs:annotation>
1158             </xs:element>
1159             <xs:element name="port-statistics" type="xs:boolean">
1160                 <xs:annotation>
1161                     <xs:documentation> Specifies if the logical switch supports port statistics.
1162                     </xs:documentation>
1163                 </xs:annotation>
1164             </xs:element>
1165             <xs:element name="group-statistics" type="xs:boolean">
1166                 <xs:annotation>
1167                     <xs:documentation> Specifies if the logical switch supports group statistics.
1168                     </xs:documentation>
1169                 </xs:annotation>
1170             </xs:element>
1171             <xs:element name="queue-statistics" type="xs:boolean">
1172                 <xs:annotation>
1173                     <xs:documentation> Specifies if the logical switch supports queue statistics.
1174                     </xs:documentation>
1175                 </xs:annotation>
1176             </xs:element>
1177             <xs:element name="reassemble-ip-fragments" type="xs:boolean">
1178                 <xs:annotation>
1179                     <xs:documentation> Specifies if the logical switch supports reassemble IP
1180                         fragments. </xs:documentation>
1181                 </xs:annotation>
1182             </xs:element>
1183             <xs:element name="block-looping-ports" type="xs:boolean">
1184                 <xs:annotation>
1185                     <xs:documentation> 'true' indicates that a switch protocol outside of OpenFlow,
1186                         such as 802.1D Spanning Tree, will detect topology loops and block ports to
1187                         prevent packet loops. </xs:documentation>
1188                 </xs:annotation>
1189             </xs:element>
1190             <xs:element name="reserved-port-types">
1191                 <xs:annotation>
1192                     <xs:documentation> Specify generic forwarding actions such as sending to the
1193                         controller, flooding, or forwarding using non-OpenFlow methods, such as
1194                         'normal' switch processing. </xs:documentation>
1195                 </xs:annotation>
1196                 <xs:complexType>
1197                     <xs:sequence>
1198                         <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
1199                             <xs:simpleType>
1200                                 <xs:restriction base="xs:string">
1201                                     <xs:enumeration value="all"/>
1202                                     <xs:enumeration value="controller"/>
1203                                     <xs:enumeration value="table"/>
1204                                     <xs:enumeration value="inport"/>
1205                                     <xs:enumeration value="any"/>
1206                                     <xs:enumeration value="normal"/>
1207                                     <xs:enumeration value="flood"/>
1208                                 </xs:restriction>
1209                             </xs:simpleType>
1210                         </xs:element>
1211                     </xs:sequence>
1212                 </xs:complexType>
1213             </xs:element>
1214             <xs:element name="group-types">
1215                 <xs:annotation>
1216                     <xs:documentation> Specify the group types supported by the logical switch.
1217                     </xs:documentation>
1218                 </xs:annotation>
1219                 <xs:complexType>
1220                     <xs:sequence>
1221                         <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
1222                             <xs:simpleType>
1223                                 <xs:restriction base="xs:string">
1224                                     <xs:enumeration value="all"/>
1225                                     <xs:enumeration value="select"/>
1226                                     <xs:enumeration value="indirect"/>
1227                                     <xs:enumeration value="fast-failover"/>
1228                                 </xs:restriction>
1229                             </xs:simpleType>
1230                         </xs:element>
1231                     </xs:sequence>
1232                 </xs:complexType>
1233             </xs:element>
1234             <xs:element name="group-capabilities">
1235                 <xs:annotation>
1236                     <xs:documentation> Specify the group capabilities supported by the logical
1237                         switch. </xs:documentation>
1238                 </xs:annotation>
1239                 <xs:complexType>
1240                     <xs:sequence>
1241                         <xs:element name="capability" minOccurs="0" maxOccurs="unbounded">
1242                             <xs:simpleType>
1243                                 <xs:restriction base="xs:string">
1244                                     <xs:enumeration value="select-weight"/>
1245                                     <xs:enumeration value="select-liveness"/>
1246                                     <xs:enumeration value="chaining"/>
1247                                     <xs:enumeration value="chaining-check"/>
1248                                 </xs:restriction>
1249                             </xs:simpleType>
1250                         </xs:element>
1251                     </xs:sequence>
1252                 </xs:complexType>
1253             </xs:element>
1254             <xs:element name="action-types">
1255                 <xs:annotation>
1256                     <xs:documentation> Specify the action types supported by the logical switch.
1257                     </xs:documentation>
1258                 </xs:annotation>
1259                 <xs:complexType>
1260                     <xs:sequence>
1261                         <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
1262                             type="OFActionType"/>
1263                     </xs:sequence>
1264                 </xs:complexType>
1265             </xs:element>
1266             <xs:element name="instruction-types">
1267                 <xs:annotation>
1268                     <xs:documentation> Specify the instruction types supported by the logical
1269                         switch. </xs:documentation>
1270                 </xs:annotation>
1271                 <xs:complexType>
1272                     <xs:sequence>
1273                         <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
1274                             type="OFInstructionType"/>
1275                     </xs:sequence>
1276                 </xs:complexType>
1277             </xs:element>
1278         </xs:sequence>
1279     </xs:group>
1280     <xs:group name="OFPortType">
1281         <xs:annotation>
1282             <xs:documentation> This element specifies all properties of an OpenFlow resource of type
1283                 OpenFlow Port. It represent a physical port or a logical port of the OpenFlow
1284                 Capable Switch and can be assigned for exclusive use to an OpenFlow Logical Switch.
1285                 A logical port represents a tunnel endpoint as described in the OpenFlow protocol
1286                 specification versions 1.3 - 1.3.1. NETCONF &lt;edit-config&gt; operations MUST be
1287                 implemented as follows: * The 'resource-id' element of OFResoureType MUST be present
1288                 at all &lt;edit-config&gt; operations to identify the port. * If the operation is
1289                 'merge' or 'replace', the element is created if it does not exist, and its value is
1290                 set to the value found in the XML RPC data. * If the operation is 'create', the
1291                 element is created if it does not exist. If the element already exists, a
1292                 'dataā€‘exists' error is returned. * If the operation is 'delete', the element is
1293                 deleted if it exists. If the element does not exist, a 'dataā€‘missing' error is
1294                 returned. </xs:documentation>
1295         </xs:annotation>
1296         <xs:sequence>
1297             <xs:group ref="OFResourceType"/>
1298             <xs:element name="number" type="xs:unsignedLong" minOccurs="0">
1299                 <xs:annotation>
1300                     <xs:documentation> This number identifies the OpenFlow Port to OpenFlow
1301                         Controllers. It is assigned to an OpenFlow Port latest when the OpenFlow
1302                         Port is associated with and OpenFlow Logical Switch. If the OpenFlow Port is
1303                         associated with an OpenFlow Logical Switch, this element MUST be unique
1304                         within the context of the OpenFlow Logical Switch. OpenFlow Capable Switch
1305                         implementations may choose to assign values to OpenFlow Ports that are
1306                         unique within the context of the OpenFlow Logical Switch. These numbers can
1307                         be used independent of assignments to OpenFlow Logical Switches. Other
1308                         implementations may assign values to this element only if the OpenFlow Port
1309                         is assigned to an OpenFlow Logical Switch. If no value is currently assigned
1310                         to this element then this element MUST NOT be included in replies to NETCONF
1311                         &lt;get&gt; requests. Since this element is not configurable with the
1312                         NETCONF protocol it MUST NOT be included in replies to NETCONF
1313                         &lt;get-config&gt; requests. </xs:documentation>
1314                 </xs:annotation>
1315             </xs:element>
1316             <xs:element name="name" minOccurs="0">
1317                 <xs:annotation>
1318                     <xs:documentation> This element assists OpenFlow Controllers in identifying
1319                         OpenFlow Ports. This element is not to be set by the OP-CONFIG protocol, but
1320                         it is set by the switch implementation. It may be set at start-up time of an
1321                         OpenFlow Capable Switch or when the OpenFlow Port is assigned to an OpenFlow
1322                         Logical Switch. It MAY also be not set at all. If this element is set to a
1323                         value other than the empty string when being assigned to an OpenFlow Logical
1324                         Switch, then the value of this element MUST be unique within the context of
1325                         the OpenFlow Logical Switch. If no value or the empty string is currently
1326                         assigned to this element then this element MUST not be included in replies
1327                         to NETCONF &lt;get&gt; requests. Since this element is not configurable with
1328                         the NETCONF protocol it MUST NOT be included in replies to NETCONF
1329                         &lt;get-config&gt; requests. </xs:documentation>
1330                 </xs:annotation>
1331                 <xs:simpleType>
1332                     <xs:restriction base="xs:string">
1333                         <xs:minLength value="1"/>
1334                         <xs:maxLength value="16"/>
1335                     </xs:restriction>
1336                 </xs:simpleType>
1337             </xs:element>
1338             <xs:element name="current-rate" type="xs:unsignedInt" minOccurs="0">
1339                 <xs:annotation>
1340                     <xs:documentation> This element indicates the current bit rate of the port. Its
1341                         values is to be provided in units of kilobit per second (kbps). This element
1342                         is only valid if the element called 'rate' in the current Port Features has
1343                         a value of 'other'. Since this element is not configurable with the NETCONF
1344                         protocol it MUST NOT be included in replies to NETCONF &lt;get-config&gt;
1345                         requests. </xs:documentation>
1346                 </xs:annotation>
1347             </xs:element>
1348             <xs:element name="max-rate" type="xs:unsignedInt" minOccurs="0">
1349                 <xs:annotation>
1350                     <xs:documentation> This element indicates the maximum bit rate of the port. Its
1351                         values is to be provided in units of kilobit per second (kbps). This element
1352                         is only valid if the element called 'rate' in the current Port Features has
1353                         a value of 'other'. Since this element is not configurable with the NETCONF
1354                         protocol it MUST NOT be included in replies to NETCONF &lt;get-config&gt;
1355                         requests. </xs:documentation>
1356                 </xs:annotation>
1357             </xs:element>
1358             <xs:element name="configuration" minOccurs="0">
1359                 <xs:annotation>
1360                     <xs:documentation> This element represents the general adminitrative
1361                         configuration of the OpenFlow Port. </xs:documentation>
1362                 </xs:annotation>
1363                 <xs:complexType>
1364                     <xs:sequence>
1365                         <xs:element name="admin-state" minOccurs="0" type="OFUpDownStateType">
1366                             <xs:annotation>
1367                                 <xs:documentation> The administrative state of the port. If true,
1368                                     the port has been administratively brought down and SHOULD not
1369                                     be used by OpenFlow. This element is optional. If this element
1370                                     is not present it defaults to 'up'. </xs:documentation>
1371                             </xs:annotation>
1372                         </xs:element>
1373                         <xs:element name="no-receive" minOccurs="0" type="xs:boolean">
1374                             <xs:annotation>
1375                                 <xs:documentation> If true, packets received at this OpenFlow port
1376                                     SHOULD be dropped. This element is optional. If this element is
1377                                     not present it defaults to 'false'. </xs:documentation>
1378                             </xs:annotation>
1379                         </xs:element>
1380                         <xs:element name="no-forward" minOccurs="0" type="xs:boolean">
1381                             <xs:annotation>
1382                                 <xs:documentation> If true, packets forwarded to this OpenFlow port
1383                                     SHOULD be dropped. This element is optional. If this element is
1384                                     not present it defaults to 'false'. </xs:documentation>
1385                             </xs:annotation>
1386                         </xs:element>
1387                         <xs:element name="no-packet-in" minOccurs="0" type="xs:boolean">
1388                             <xs:annotation>
1389                                 <xs:documentation> If true, packets received on that port that
1390                                     generate a table miss should never trigger a packet-in message
1391                                     to the OpenFlow Controller. This element is optional. If this
1392                                     element is not present it defaults to 'false'.
1393                                 </xs:documentation>
1394                             </xs:annotation>
1395                         </xs:element>
1396                     </xs:sequence>
1397                     <xs:attribute name="operation" type="xs:string"/>
1398                 </xs:complexType>
1399             </xs:element>
1400             <xs:element name="state" minOccurs="0">
1401                 <xs:annotation>
1402                     <xs:documentation> This element represents the general operational state of the
1403                         OpenFlow Port. Children of this element are not configurable and can only be
1404                         retrieved by NETCONF &lt;get&gt; operations. Attemps to modify this element
1405                         and its children with a NETCONF &lt;edit-config&gt; operation MUST result in
1406                         an 'operation-not-supported' error with type 'application'.
1407                     </xs:documentation>
1408                 </xs:annotation>
1409                 <xs:complexType>
1410                     <xs:sequence>
1411                         <xs:element name="oper-state" minOccurs="0" type="OFUpDownStateType">
1412                             <xs:annotation>
1413                                 <xs:documentation> If the value of this element is 'down', it
1414                                     indicates that there is no physical link present.
1415                                 </xs:documentation>
1416                             </xs:annotation>
1417                         </xs:element>
1418                         <xs:element name="blocked" minOccurs="0" type="xs:boolean">
1419                             <xs:annotation>
1420                                 <xs:documentation> If the value of this element is 'true', it
1421                                     indicates that a switch protocol outside of OpenFlow, such as
1422                                     802.1D Spanning Tree, is preventing the use of this OpenFlow
1423                                     port for OpenFlow flooding. </xs:documentation>
1424                             </xs:annotation>
1425                         </xs:element>
1426                         <xs:element name="live" minOccurs="0" type="xs:boolean">
1427                             <xs:annotation>
1428                                 <xs:documentation> If the value of this element is 'true', it
1429                                     indicates that this OpenFlow Port is live and can be used for
1430                                     fast failover. </xs:documentation>
1431                             </xs:annotation>
1432                         </xs:element>
1433                     </xs:sequence>
1434                 </xs:complexType>
1435             </xs:element>
1436             <xs:choice minOccurs="0">
1437                 <xs:element name="features" minOccurs="0">
1438                     <xs:complexType>
1439                         <xs:sequence>
1440                             <xs:element name="current" minOccurs="0">
1441                                 <xs:annotation>
1442                                     <xs:documentation> The features (rates, duplex, etc.) of the
1443                                         port, that are currently in use. Children of this element
1444                                         are not configurable and can only be retrieved by NETCONF
1445                                         &lt;get&gt; operations. Attemps to modify this element and
1446                                         its children with a NETCONF &lt;edit-config&gt; operation
1447                                         MUST result in an 'operation-not-supported' error with type
1448                                         'application'. </xs:documentation>
1449                                 </xs:annotation>
1450                                 <xs:complexType>
1451                                     <xs:sequence>
1452                                         <xs:group ref="OFPortCurrentFeatureListType"/>
1453                                     </xs:sequence>
1454                                 </xs:complexType>
1455                             </xs:element>
1456                             <xs:element name="advertised" minOccurs="0">
1457                                 <xs:annotation>
1458                                     <xs:documentation> The features (rates, duplex, etc.) of the
1459                                         port, that are advertised to the peer port. NETCONF
1460                                         &lt;edit-config&gt; operations MUST be implemented as
1461                                         follows: * The 'resource-id' element of OFResoureType MUST
1462                                         be present in the path or in the filter at all
1463                                         &lt;edit-config&gt; operations to identify the port. * If
1464                                         the operation is 'merge' or 'replace', the element is
1465                                         created if it does not exist, and its value is set to the
1466                                         value found in the XML RPC data. * If the operation is
1467                                         'create', the element is created if it does not exist. If
1468                                         the element already exists, a 'dataā€‘exists' error is
1469                                         returned. * If the operation is 'delete', the element is
1470                                         deleted if it exists. If the element does not exist, a
1471                                         'dataā€‘missing' error is returned. </xs:documentation>
1472                                 </xs:annotation>
1473                                 <xs:complexType>
1474                                     <xs:sequence>
1475                                         <xs:group minOccurs="0" ref="OFPortOtherFeatureListType"/>
1476                                     </xs:sequence>
1477                                     <xs:attribute name="operation" type="xs:string"/>
1478                                 </xs:complexType>
1479                             </xs:element>
1480                             <xs:element name="supported" minOccurs="0">
1481                                 <xs:annotation>
1482                                     <xs:documentation> The features (rates, duplex, etc.) of the
1483                                         port, that are supported on the port. Children of this
1484                                         element are not configurable and can only be retrieved by
1485                                         NETCONF &lt;get&gt; operations. Attemps to modify this
1486                                         element and its children with a NETCONF &lt;edit-config&gt;
1487                                         operation MUST result in an 'operation-not-supported' error
1488                                         with type 'application'. </xs:documentation>
1489                                 </xs:annotation>
1490                                 <xs:complexType>
1491                                     <xs:sequence>
1492                                         <xs:group ref="OFPortOtherFeatureListType"/>
1493                                     </xs:sequence>
1494                                 </xs:complexType>
1495                             </xs:element>
1496                             <xs:element name="advertised-peer" minOccurs="0">
1497                                 <xs:annotation>
1498                                     <xs:documentation> The features (rates, duplex, etc.) that are
1499                                         currently advertised by the peer port. Children of this
1500                                         element are not configurable and can only be retrieved by
1501                                         NETCONF &lt;get&gt; operations. Attemps to modify this
1502                                         element and its children with a NETCONF &lt;edit-config&gt;
1503                                         operation MUST result in an 'operation-not-supported' error
1504                                         with type 'application'. </xs:documentation>
1505                                 </xs:annotation>
1506                                 <xs:complexType>
1507                                     <xs:sequence>
1508                                         <xs:group ref="OFPortOtherFeatureListType"/>
1509                                     </xs:sequence>
1510                                 </xs:complexType>
1511                             </xs:element>
1512                         </xs:sequence>
1513                     </xs:complexType>
1514                 </xs:element>
1515                 <xs:choice>
1516                     <xs:annotation>
1517                         <xs:documentation> Tunnels are modeled as logical ports. Elements in this
1518                             choice are not configurable and can only be retrieved by NETCONF
1519                             &lt;get&gt; operations. Attemps to modify this element and its children
1520                             with a NETCONF &lt;edit-config&gt; operation MUST result in an
1521                             'operation-not-supported' error with type 'application'. Only elements
1522                             from one choice must exist at a time. </xs:documentation>
1523                     </xs:annotation>
1524                     <xs:sequence>
1525                         <xs:element name="tunnel" minOccurs="0">
1526                             <xs:annotation>
1527                                 <xs:documentation> Properties of a basic IP-in-GRE tunnel.
1528                                 </xs:documentation>
1529                             </xs:annotation>
1530                             <xs:complexType>
1531                                 <xs:sequence>
1532                                     <xs:group ref="OFPortBaseTunnelType"/>
1533                                 </xs:sequence>
1534                             </xs:complexType>
1535                         </xs:element>
1536                     </xs:sequence>
1537                     <xs:sequence>
1538                         <xs:element name="ipgre-tunnel" minOccurs="0">
1539                             <xs:annotation>
1540                                 <xs:documentation> Properties of a IP-in-GRE tunnel.
1541                                 </xs:documentation>
1542                             </xs:annotation>
1543                             <xs:complexType>
1544                                 <xs:sequence>
1545                                     <xs:group ref="OFPortIPGRETunnelType"/>
1546                                 </xs:sequence>
1547                             </xs:complexType>
1548                         </xs:element>
1549                     </xs:sequence>
1550                     <xs:sequence>
1551                         <xs:element name="vxlan-tunnel" minOccurs="0">
1552                             <xs:annotation>
1553                                 <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
1554                             </xs:annotation>
1555                             <xs:complexType>
1556                                 <xs:sequence>
1557                                     <xs:group ref="OFPortVXLANTunnelType"/>
1558                                 </xs:sequence>
1559                             </xs:complexType>
1560                         </xs:element>
1561                     </xs:sequence>
1562                     <xs:sequence>
1563                         <xs:element name="nvgre-tunnel" minOccurs="0">
1564                             <xs:annotation>
1565                                 <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
1566                             </xs:annotation>
1567                             <xs:complexType>
1568                                 <xs:sequence>
1569                                     <xs:group ref="OFPortNVGRETunnelType"/>
1570                                 </xs:sequence>
1571                             </xs:complexType>
1572                         </xs:element>
1573                     </xs:sequence>
1574                 </xs:choice>
1575             </xs:choice>
1576         </xs:sequence>
1577     </xs:group>
1578     <xs:group name="OFResourceType">
1579         <xs:annotation>
1580             <xs:documentation> This element specifies a generic OpenFlow resource that is used as a
1581                 basis for specific resources. Even though this element is not used on its own the
1582                 following rules for NETCONF operations MUST be obeyed also by elemnts using this
1583                 element. NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: *
1584                 The 'id' element MUST be present at all &lt;edit-config&gt; operations to identify
1585                 the resource. * If the operation is 'merge' or 'replace', the element is created if
1586                 it does not exist, and its value is set to the value found in the XML RPC data. * If
1587                 the operation is 'create', the element is created if it does not exist. If the
1588                 element already exists, a 'dataā€‘exists' error is returned. * If the operation is
1589                 'delete', the element is deleted if it exists. If the element does not exist, a
1590                 'dataā€‘missing' error is returned. </xs:documentation>
1591         </xs:annotation>
1592         <xs:sequence>
1593             <xs:element name="resource-id" type="inet:uri">
1594                 <xs:annotation>
1595                     <xs:documentation> A unique but locally arbitrary identifier that uniquely
1596                         identifies an OpenFlow Port within the context of an OpenFlow Logical
1597                         Switch. It MUST be persistent across reboots of the OpenFlow Capable Switch.
1598                         This element MUST be present to identify the OpenFlow resource.
1599                     </xs:documentation>
1600                 </xs:annotation>
1601             </xs:element>
1602         </xs:sequence>
1603     </xs:group>
1604     <xs:group name="OFPortVXLANTunnelType">
1605         <xs:annotation>
1606             <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
1607         </xs:annotation>
1608         <xs:sequence>
1609             <xs:group ref="OFPortBaseTunnelType"/>
1610             <xs:element name="vni-valid" type="xs:boolean">
1611                 <xs:annotation>
1612                     <xs:documentation> Indicates how the corresponding flag should be set in packets
1613                         sent on the tunnel. </xs:documentation>
1614                 </xs:annotation>
1615             </xs:element>
1616             <xs:element name="vni" type="xs:unsignedInt">
1617                 <xs:annotation>
1618                     <xs:documentation> Virtual network identifier assigned to all packets sent on
1619                         the tunnel. A VxLAN implementation MAY use the this element to set the
1620                         OXM_OF_TUNNEL_ID match field metadata in the OpenFlow protocol.
1621                     </xs:documentation>
1622                 </xs:annotation>
1623             </xs:element>
1624             <xs:element name="vni-multicast-group" type="inet:ip-address">
1625                 <xs:annotation>
1626                     <xs:documentation> If IP multicast is used to support broadcast on the tunnel
1627                         this specifies the corresponding multicast IP address </xs:documentation>
1628                 </xs:annotation>
1629             </xs:element>
1630             <xs:element name="udp-source-port" type="inet:port-number">
1631                 <xs:annotation>
1632                     <xs:documentation> Specifies the outer UDP source port number. If this element
1633                         is absent, the port number MAY be chosen dynamically. </xs:documentation>
1634                 </xs:annotation>
1635             </xs:element>
1636             <xs:element name="udp-dest-port" type="inet:port-number">
1637                 <xs:annotation>
1638                     <xs:documentation> Specifies the outer UDP destination port number. It is
1639                         intended to reserve a port number for VxLAN at IANA. As soon as this has
1640                         been reserved, the reserved number SHOULD become the default value for this
1641                         element. </xs:documentation>
1642                 </xs:annotation>
1643             </xs:element>
1644             <xs:element name="udp-checksum" type="xs:boolean">
1645                 <xs:annotation>
1646                     <xs:documentation> Boolean flag to indicate whether or not the outer UDP
1647                         checksum should be set </xs:documentation>
1648                 </xs:annotation>
1649             </xs:element>
1650         </xs:sequence>
1651     </xs:group>
1652     <xs:group name="OFControllerType">
1653         <xs:annotation>
1654             <xs:documentation> This grouping specifies all properties of an OpenFlow Logical Switch
1655                 Controller. NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: *
1656                 The 'id' element MUST be present at all &lt;edit-config&gt; operations to identify
1657                 the controller. * If the operation is 'merge' or 'replace', the element is created
1658                 if it does not exist, and its value is set to the value found in the XML RPC data. *
1659                 If the operation is 'create', the element is created if it does not exist. If the
1660                 element already exists, a 'dataā€‘exists' error is returned. * If the operation is
1661                 'delete', the element is deleted if it exists. If the element does not exist, a
1662                 'dataā€‘missing' error is returned. </xs:documentation>
1663         </xs:annotation>
1664         <xs:sequence>
1665             <xs:element name="id" type="OFConfigId">
1666                 <xs:annotation>
1667                     <xs:documentation> A unique but locally arbitrary identifier that uniquely
1668                         identifies an OpenFlow Controller within the context of an OpenFlow Capable
1669                         Switch. It MUST be persistent across reboots of the OpenFlow Capable Switch.
1670                         This element MUST be present to identify the OpenFlow controller.
1671                     </xs:documentation>
1672                 </xs:annotation>
1673             </xs:element>
1674             <xs:element name="role" minOccurs="0">
1675                 <xs:annotation>
1676                     <xs:documentation> This element indicates the role of the OpenFlow Controller.
1677                         Semantics of these roles are specified in the OpenFlow specifications 1.0 -
1678                         1.3.1. It is RECOMMENDED that the roles of controllers are not configured by
1679                         OF-CONFIG 1.1.1 but determined using the OpenFlow protocol. OpenFlow
1680                         Controllers configured by OF-CONFIG 1.1.1 have the default role 'equal'. A
1681                         role other than 'equal' MAY be assigned to a controller. Roles 'slave' and
1682                         'equal' MAY be assigned to multiple controllers. Role 'master' MUST NOT be
1683                         assigned to more than one controller. This element is optional. If this
1684                         element is not present it defaults to 'equal'. </xs:documentation>
1685                 </xs:annotation>
1686                 <xs:simpleType>
1687                     <xs:restriction base="xs:string">
1688                         <xs:enumeration value="master"/>
1689                         <xs:enumeration value="slave"/>
1690                         <xs:enumeration value="equal"/>
1691                     </xs:restriction>
1692                 </xs:simpleType>
1693             </xs:element>
1694             <xs:element name="ip-address" type="inet:ip-address" minOccurs="0">
1695                 <xs:annotation>
1696                     <xs:documentation> The IP address of the OpenFlow Controller. This IP address is
1697                         used by the OpenFlow Logical Switch when connecting to the OpenFlow
1698                         Controller. This element MUST be present in the NETCONF data store. If this
1699                         element is not present in a NETCONF &lt;edit-config&gt; operation 'create',
1700                         'merge' or 'replace' and the parent element does not exist, a 'data-missing'
1701                         error is returned. </xs:documentation>
1702                 </xs:annotation>
1703             </xs:element>
1704             <xs:element name="port" type="inet:port-number" minOccurs="0">
1705                 <xs:annotation>
1706                     <xs:documentation> The TCP port number at the OpenFlow Controller. This port
1707                         number is used by the OpenFlow Logical Switch when connecting to the
1708                         OpenFlow Controller using TCP or TLS. The default value is 6633. This
1709                         element is optional. If this element is not present it defaults to 6633.
1710                     </xs:documentation>
1711                 </xs:annotation>
1712             </xs:element>
1713             <xs:element name="local-ip-address" type="inet:ip-address" minOccurs="0">
1714                 <xs:annotation>
1715                     <xs:documentation> The local IP address of the OpenFlow Logical Switch when
1716                         connecting to this OpenFlow Controller. It is the source IP address of
1717                         packets sent to this OpenFlow Controller. If present, this element overrides
1718                         any default IP address. This element is optional. Attempts to set this
1719                         element to an IP address that cannot be used by the OpenFlow Logical Switch
1720                         MUST result in an 'bad-element' error with type 'application'. The
1721                         &lt;error-info&gt; element MUST contain the name of this element in the
1722                         &lt;bad-element&gt; element. </xs:documentation>
1723                 </xs:annotation>
1724             </xs:element>
1725             <xs:element name="local-port" type="inet:port-number" minOccurs="0">
1726                 <xs:annotation>
1727                     <xs:documentation> The local TCP port number of the OpenFlow Logical Switch when
1728                         connecting to this OpenFlow Controller. It is the source TCP port number of
1729                         packets sent to this OpenFlow Controller. If this element is not present,
1730                         then the port number is chosen arbitrarily by the OpenFlow Logical Switch.
1731                         This element is optional. Attempts to set this element to a port number that
1732                         cannot be used by the OpenFlow Logical Switch MUST result in an
1733                         'bad-element' error with type 'application'. The &lt;error-info&gt; element
1734                         MUST contain the name of this element in the &lt;bad-element&gt; element.
1735                     </xs:documentation>
1736                 </xs:annotation>
1737             </xs:element>
1738             <xs:element name="protocol" minOccurs="0">
1739                 <xs:annotation>
1740                     <xs:documentation> The default protocol tha the OpenFlow Logical Switch uses to
1741                         connect to this OpenFlow Controller. 'tls' is the default value. This
1742                         element is optional. If this element is not present it defaults to 'tls'.
1743                     </xs:documentation>
1744                 </xs:annotation>
1745                 <xs:simpleType>
1746                     <xs:restriction base="xs:string">
1747                         <xs:enumeration value="tcp"/>
1748                         <xs:enumeration value="tls"/>
1749                     </xs:restriction>
1750                 </xs:simpleType>
1751             </xs:element>
1752             <xs:element name="state" minOccurs="0">
1753                 <xs:annotation>
1754                     <xs:documentation> This container holds connection state information that
1755                         indicate the connection state of the OpenFlow Logical Switch and the
1756                         OpenFlow protocol version used for the connection. Children of this element
1757                         are not configurable and can only be retrieved by NETCONF &lt;get&gt;
1758                         operations. Attemps to modify this element and its children with a NETCONF
1759                         &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
1760                         error with type 'application'. </xs:documentation>
1761                 </xs:annotation>
1762                 <xs:complexType>
1763                     <xs:sequence>
1764                         <xs:element name="connection-state" minOccurs="0" type="OFUpDownStateType">
1765                             <xs:annotation>
1766                                 <xs:documentation> This object indicates the connections state of
1767                                     the OpenFlow Logical Switch to this controller.
1768                                 </xs:documentation>
1769                             </xs:annotation>
1770                         </xs:element>
1771                         <xs:element name="current-version" minOccurs="0"
1772                             type="OFOpenFlowVersionType">
1773                             <xs:annotation>
1774                                 <xs:documentation> This object indicates the version of the OpenFlow
1775                                     protocol used between the OpenFlow Logical Switch and this
1776                                     Controller. If element connection-state has value 'up', then
1777                                     this element indicates the actual version in use. If element
1778                                     connection-state has value 'down', then this element indicates
1779                                     the version number of the last established connection with this
1780                                     OpenFlow Controller. The value of this element MAY be persistent
1781                                     across reboots of the OpenFlow Logical Switch in such a case. If
1782                                     element connection-state has value 'down'and there is no
1783                                     information about previous connections to this OpenFlow
1784                                     controller, then this element is not present or has the value
1785                                     '0'. </xs:documentation>
1786                             </xs:annotation>
1787                         </xs:element>
1788                         <xs:element name="supported-versions" minOccurs="0" maxOccurs="unbounded"
1789                             type="OFOpenFlowVersionType">
1790                             <xs:annotation>
1791                                 <xs:documentation> This list of elements includes one entry for each
1792                                     OpenFlow protocol version that this OpenFlow controller
1793                                     supports. It SHOULD contain all </xs:documentation>
1794                             </xs:annotation>
1795                         </xs:element>
1796                         <xs:element name="local-ip-address-in-use" minOccurs="0"
1797                             type="inet:ip-address">
1798                             <xs:annotation>
1799                                 <xs:documentation> The local IP address of the OpenFlow Logical
1800                                     Switch when connecting to this OpenFlow Controller. It is the
1801                                     source IP address of packets sent to this OpenFlow Controller.
1802                                     If present, this element overrides any default IP address.
1803                                 </xs:documentation>
1804                             </xs:annotation>
1805                         </xs:element>
1806                         <xs:element name="local-port-in-use" minOccurs="0" type="inet:port-number">
1807                             <xs:annotation>
1808                                 <xs:documentation> The local TCP port number of the OpenFlow Logical
1809                                     Switch. If element connection-state has value 'up', then this
1810                                     element indicates the actual port number in use. If element
1811                                     connection-state has value 'down', then this element indicates
1812                                     the port number used for the last attempt to establish a
1813                                     connection with this OpenFlow Controller.??? When connecting to
1814                                     this OpenFlow Controller, it is the source TCP port number of
1815                                     packets sent to this OpenFlow Controller. If this element has
1816                                     its defaqult value 0, then port number is chosen arbitrarily by
1817                                     the OpenFlow Logical Switch. </xs:documentation>
1818                             </xs:annotation>
1819                         </xs:element>
1820                     </xs:sequence>
1821                 </xs:complexType>
1822             </xs:element>
1823         </xs:sequence>
1824     </xs:group>
1825     <xs:element name="capable-switch">
1826         <xs:annotation>
1827             <xs:documentation> The OpenFlow Capable Switch serves as the root element for an
1828                 OpenFlow configuration. It contains logical switches and resources that can be
1829                 assigned to logical switches. It may have relations to OpenFlow Configuration
1830                 Points. </xs:documentation>
1831         </xs:annotation>
1832         <xs:complexType>
1833             <xs:sequence>
1834                 <xs:element name="id" type="inet:uri">
1835                     <xs:annotation>
1836                         <xs:documentation> A unique but locally arbitrary identifier that uniquely
1837                             identifies a Capable Switch within the context of potential OpenFlow
1838                             Configuration Points. It MUST be persistent across reboots of the
1839                             OpenFlow Capable Switch. This element MUST be present in the NETCONF
1840                             data store. If this element is not present in a NETCONF
1841                             &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the
1842                             parent element does not exist, a 'data-missing' error is returned.
1843                         </xs:documentation>
1844                     </xs:annotation>
1845                 </xs:element>
1846                 <xs:element name="config-version" minOccurs="0" type="xs:string">
1847                     <xs:annotation>
1848                         <xs:documentation> The maximum supported OF-CONFIG version that is supported
1849                             by the OpenFlow Capable Switch. For switches implementing this version
1850                             of the OF-CONFIG protocol this MUST always be 1.1.1. This object can be
1851                             used to identify the OF-CONFIG version a capable switch supports
1852                             beginning with version 1.1.1 of OF-CONFIG. In addtion the supported
1853                             version can be determined by the namespace the OpenFlow Capable Switch
1854                             returns to configuration request of an element (like capable-switch)
1855                             that is present in all OF-CONFIG versions specified so far. This is the
1856                             only possiblity to identify OF-CONFIG versions prior to OF-CONFIG 1.1.1.
1857                         </xs:documentation>
1858                     </xs:annotation>
1859                 </xs:element>
1860                 <xs:element name="configuration-points" minOccurs="0">
1861                     <xs:complexType>
1862                         <xs:sequence>
1863                             <xs:element name="configuration-point" maxOccurs="unbounded">
1864                                 <xs:annotation>
1865                                     <xs:documentation> The list of all Configuration Points known to
1866                                         the OpenFlow Capable Switch that may manage it using
1867                                         OF-CONFIG. The element 'id' of OFConfigurationType MUST be
1868                                         unique within this list. </xs:documentation>
1869                                 </xs:annotation>
1870                                 <xs:complexType>
1871                                     <xs:sequence>
1872                                         <xs:group ref="OFConfigurationPointType"/>
1873                                     </xs:sequence>
1874                                 </xs:complexType>
1875                             </xs:element>
1876                         </xs:sequence>
1877                     </xs:complexType>
1878                     <xs:key name="key_configuration-points_capableswitch_configuration-point">
1879                         <xs:selector xpath="of11-config:configuration-point"/>
1880                         <xs:field xpath="of11-config:id"/>
1881                     </xs:key>
1882                 </xs:element>
1883                 <xs:element name="resources" minOccurs="0">
1884                     <xs:annotation>
1885                         <xs:documentation> A lists containing all resources of the OpenFlow Capable
1886                             Switch that can be used by OpenFlow Logical Switches. Resources are
1887                             listed here independent of their actual assignment to OpenFlow Logical
1888                             Switches. They may be available to be assigned to an OpenFlow Logical
1889                             Switch or already in use by an OpenFlow Logical Switch.
1890                         </xs:documentation>
1891                     </xs:annotation>
1892                     <xs:complexType>
1893                         <xs:sequence>
1894                             <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
1895                                 <xs:annotation>
1896                                     <xs:documentation> The list contains all port resources of the
1897                                         OpenFlow Capable Switch. The element 'resource-id' of
1898                                         OFPortType MUST be unique within this list.
1899                                     </xs:documentation>
1900                                 </xs:annotation>
1901                                 <xs:complexType>
1902                                     <xs:sequence>
1903                                         <xs:group ref="OFPortType"/>
1904                                     </xs:sequence>
1905                                 </xs:complexType>
1906                             </xs:element>
1907                             <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
1908                                 <xs:annotation>
1909                                     <xs:documentation> The list contains all queue resources of the
1910                                         OpenFlow Capable Switch. The element 'resource-id' of
1911                                         OFQueueType MUST be unique within this list.
1912                                     </xs:documentation>
1913                                 </xs:annotation>
1914                                 <xs:complexType>
1915                                     <xs:sequence>
1916                                         <xs:group ref="OFQueueType"/>
1917                                     </xs:sequence>
1918                                     <xs:attribute name="operation" type="xs:string"/>
1919                                 </xs:complexType>
1920                             </xs:element>
1921                             <xs:element name="owned-certificate" minOccurs="0" maxOccurs="unbounded">
1922                                 <xs:annotation>
1923                                     <xs:documentation> The list contains all owned certificate
1924                                         resources of the OpenFlow Capable Switch. The element
1925                                         'resource-id' of OFOwnedCertificateType MUST be unique
1926                                         within this list. </xs:documentation>
1927                                 </xs:annotation>
1928                                 <xs:complexType>
1929                                     <xs:sequence>
1930                                         <xs:group ref="OFOwnedCertificateType"/>
1931                                     </xs:sequence>
1932                                 </xs:complexType>
1933                             </xs:element>
1934                             <xs:element name="external-certificate" minOccurs="0"
1935                                 maxOccurs="unbounded">
1936                                 <xs:annotation>
1937                                     <xs:documentation> The list contains all external certificate
1938                                         resources of the OpenFlow Capable Switch. The element
1939                                         'resource-id' of OFExternalCertificateType MUST be unique
1940                                         within this list. </xs:documentation>
1941                                 </xs:annotation>
1942                                 <xs:complexType>
1943                                     <xs:sequence>
1944                                         <xs:group ref="OFExternalCertificateType"/>
1945                                     </xs:sequence>
1946                                     <xs:attribute name="operation" type="xs:string"/>
1947                                 </xs:complexType>
1948                             </xs:element>
1949                             <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
1950                                 <xs:annotation>
1951                                     <xs:documentation> The list contains all flow table resources of
1952                                         the OpenFlow Capable Switch. The element 'resource-id' of
1953                                         OFFlowTableType MUST be unique within this list.
1954                                     </xs:documentation>
1955                                 </xs:annotation>
1956                                 <xs:complexType>
1957                                     <xs:sequence>
1958                                         <xs:group ref="OFFlowTableType"/>
1959                                     </xs:sequence>
1960                                 </xs:complexType>
1961                             </xs:element>
1962                         </xs:sequence>
1963                     </xs:complexType>
1964                     <xs:key name="key_resources_capable-switch_port">
1965                         <xs:selector xpath="of11-config:port"/>
1966                         <xs:field xpath="of11-config:resource-id"/>
1967                     </xs:key>
1968                     <xs:key name="key_resources_capable-switch_queue">
1969                         <xs:selector xpath="of11-config:queue"/>
1970                         <xs:field xpath="of11-config:resource-id"/>
1971                     </xs:key>
1972                     <xs:key name="key_resources_capable-switch_owned-certificate">
1973                         <xs:selector xpath="of11-config:owned-certificate"/>
1974                         <xs:field xpath="of11-config:resource-id"/>
1975                     </xs:key>
1976                     <xs:key name="key_resources_capable-switch_external-certificate">
1977                         <xs:selector xpath="of11-config:external-certificate"/>
1978                         <xs:field xpath="of11-config:resource-id"/>
1979                     </xs:key>
1980                     <xs:key name="key_resources_capable-switch_flow-table">
1981                         <xs:selector xpath="of11-config:flow-table"/>
1982                         <xs:field xpath="of11-config:resource-id"/>
1983                     </xs:key>
1984                 </xs:element>
1985                 <xs:element name="logical-switches" minOccurs="0">
1986                     <xs:annotation>
1987                         <xs:documentation> This element contains a list of all OpenFlow Logical
1988                             Switches available at the OpenFlow Capable Switch. </xs:documentation>
1989                     </xs:annotation>
1990                     <xs:complexType>
1991                         <xs:sequence>
1992                             <xs:element name="switch" maxOccurs="unbounded">
1993                                 <xs:annotation>
1994                                     <xs:documentation> The list of all OpenFlow Logical Switches on
1995                                         the OpenFlow Capable Switch. The element 'resource-id' of
1996                                         OFLogicalSwitchType MUST be unique within this list.
1997                                     </xs:documentation>
1998                                 </xs:annotation>
1999                                 <xs:complexType>
2000                                     <xs:sequence>
2001                                         <xs:group ref="OFLogicalSwitchType"/>
2002                                     </xs:sequence>
2003                                 </xs:complexType>
2004                             </xs:element>
2005                         </xs:sequence>
2006                     </xs:complexType>
2007                     <xs:key name="key_logical-switches_capable-switch_switch">
2008                         <xs:selector xpath="of11-config:switch"/>
2009                         <xs:field xpath="of11-config:id"/>
2010                     </xs:key>
2011                 </xs:element>
2012             </xs:sequence>
2013         </xs:complexType>
2014     </xs:element>
2015 </xs:schema>