backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / lib / of_config / of-config-1.1.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3            xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4            elementFormDefault="qualified"
5            targetNamespace="urn:onf:params:xml:ns:onf:of12:config"
6            xmlns="urn:onf:params:xml:ns:onf:of12:config"
7            xmlns:of12-config="urn:onf:params:xml:ns:onf:of12:config"
8            xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
9     <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
10                schemaLocation="xmldsig-core-schema.xsd"/>
11     <xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-inet-types"
12                schemaLocation="ietf-inet-types.xsd"/>
13     <xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
14                schemaLocation="../netconf/netconf.xsd"/>
15     <xs:element name="capable-switch" type="OFCapableSwitchType">
16         <xs:annotation>
17             <xs:documentation>The OpenFlow Capable Switch and its configurationpoints, logical
18             switches and resources available to logicalswitches. </xs:documentation>
19         </xs:annotation>
20     </xs:element>
21     <xs:simpleType name="OFConfigID">
22         <xs:restriction base="xs:string"/>
23     </xs:simpleType>
24     <xs:complexType name="OFCapableSwitchType">
25         <xs:annotation>
26             <xs:documentation>Representation of an OpenFlow Capable Switch.</xs:documentation>
27         </xs:annotation>
28         <xs:sequence>
29             <xs:element name="id" type="OFConfigID">
30                 <xs:annotation>
31                     <xs:documentation>An unique but locally arbitrary identifier that identifies a
32                     Capable Switch towards management systems and that is persistent across
33                     reboots of the system. </xs:documentation>
34                 </xs:annotation>
35             </xs:element>
36             <xs:element name="configuration-points" minOccurs="0" type="OFConfigurationPointListType">
37                 <xs:annotation>
38                     <xs:documentation>The list of all configuration points known to the OpenFlow
39                     Capable Switch that may manage it using OF-CONFIG. </xs:documentation>
40                 </xs:annotation>
41             </xs:element>
42             <xs:element name="resources" minOccurs="0" type="OFCapableSwitchResourceListType">
43                 <xs:annotation>
44                     <xs:documentation>This element contains lists of all resources of the OpenFlow
45                     Capable Switch that can be used by OpenFlow Logical Switches.
46                     </xs:documentation>
47                 </xs:annotation>
48             </xs:element>
49             <xs:element name="logical-switches" minOccurs="0" type="OFLogicalSwitchListType">
50                 <xs:annotation>
51                     <xs:documentation>List of all OpenFlow Logical Switches available on the
52                     OpenFlow Capable Switch. </xs:documentation>
53                 </xs:annotation>
54             </xs:element>
55         </xs:sequence>
56     </xs:complexType>
57     <xs:complexType name="OFConfigurationPointListType">
58         <xs:annotation>
59             <xs:documentation/>
60         </xs:annotation>
61         <xs:sequence>
62             <xs:element name="configuration-point" type="OFConfigurationPointType"
63                         maxOccurs="unbounded"/>
64         </xs:sequence>
65     </xs:complexType>
66     <xs:complexType name="OFCapableSwitchResourceListType">
67         <xs:sequence>
68             <xs:element name="port" type="OFPortType" minOccurs="0" maxOccurs="unbounded"/>
69             <xs:element name="queue" type="OFQueueType" minOccurs="0" maxOccurs="unbounded"/>
70             <xs:element name="owned-certificate" type="OFOwnedCertificateType" minOccurs="0" maxOccurs="unbounded"/>
71             <xs:element name="external-certificate" type="OFExternalCertificateType"
72                 minOccurs="0" maxOccurs="unbounded"/>
73             <xs:element name="flow-table" type="OFFlowTableType" minOccurs="0" maxOccurs="unbounded"/>
74         </xs:sequence>
75     </xs:complexType>
76     <xs:complexType name="OFLogicalSwitchListType">
77         <xs:sequence>
78             <xs:element name="logical-switch" type="OFLogicalSwitchType" maxOccurs="unbounded"/>
79         </xs:sequence>
80     </xs:complexType>
81     <xs:complexType name="OFConfigurationPointType">
82         <xs:annotation>
83             <xs:documentation>Representation of an OpenFlow Configuration Point. </xs:documentation>
84         </xs:annotation>
85         <xs:sequence>
86             <xs:element name="id" type="OFConfigID">
87                 <xs:annotation>
88                     <xs:documentation>An identifier that identifies a Configuration Point of the
89                     OpenFlow Capable Switch. </xs:documentation>
90                 </xs:annotation>
91             </xs:element>
92             <xs:element name="uri" type="inet:uri">
93                 <xs:annotation>
94                     <xs:documentation>A locator of the Configuration Point. This element MAY contain
95                     a locator of the configuration point including, for example, an IP address
96                     and a port number. </xs:documentation>
97                 </xs:annotation>
98             </xs:element>
99             <xs:element name="protocol" type="OFConfigurationPointProtocolType">
100                 <xs:annotation>
101                     <xs:documentation>The transport protocol that the Configuration Point uses when
102                     communicating via NETCONF with the OpenFlow Capable Switch.
103                     </xs:documentation>
104                 </xs:annotation>
105             </xs:element>
106         </xs:sequence>
107     </xs:complexType>
108     <xs:simpleType name="OFConfigurationPointProtocolType">
109         <xs:annotation>
110             <xs:documentation>The mappings of NETCONF to different transport protocols are defined
111             in RFC 6242 for SSH, RFC 4743 for SOAP, RFC 4744 for BEEP, and RFC 5539 for TLS.
112             </xs:documentation>
113         </xs:annotation>
114         <xs:restriction base="xs:string">
115             <xs:enumeration value="ssh"/>
116             <xs:enumeration value="soap"/>
117             <xs:enumeration value="tls"/>
118             <xs:enumeration value="beep"/>
119         </xs:restriction>
120     </xs:simpleType>
121     <xs:complexType name="OFLogicalSwitchType">
122         <xs:annotation>
123             <xs:documentation>The representation of an OpenFlow Logical Switch </xs:documentation>
124         </xs:annotation>
125         <xs:sequence>
126             <xs:element name="id" minOccurs="0" type="OFConfigID">
127                 <xs:annotation>
128                     <xs:documentation>An unique but locally arbitrary identifier that identifies an
129                     OpenFlow Logical Switch within an OpenFlow Capable Switch. It is persistent
130                     across reboots of the system. </xs:documentation>
131                 </xs:annotation>
132             </xs:element>
133             <xs:element name="capabilities" minOccurs="0" type="OFLogicalSwitchCapabilitiesType">
134                 <xs:annotation>
135                     <xs:documentation>Capability items of logical switch. </xs:documentation>
136                 </xs:annotation>
137             </xs:element>
138             <xs:element name="datapath-id" type="OFConfigID">
139                 <xs:annotation>
140                     <xs:documentation>A unique identifier that identifiers an OpenFlow Logical
141                     Switch within the context of an OpenFlow Controller. </xs:documentation>
142                 </xs:annotation>
143             </xs:element>
144             <xs:element name="enabled" minOccurs="0" type="xs:boolean"/>
145             <xs:element name="check-controller-certificate" minOccurs="0" type="xs:boolean"/>
146             <xs:element name="lost-connection-behavior" minOccurs="0"
147                         type="OFLogicalSwitchLostConnnectionBehavior"/>
148             <xs:element name="controllers" minOccurs="0" type="OFControllerListType">
149                 <xs:annotation>
150                     <xs:documentation>The list of controllers that are assigned to the OpenFlow
151                     Logical Switch. </xs:documentation>
152                 </xs:annotation>
153             </xs:element>
154             <xs:element name="resources" minOccurs="0" type="OFLogicalSwitchResourceListType">
155                 <xs:annotation>
156                     <xs:documentation>The list of references to all resources of the OpenFlow
157                     Capable Switch that the OpenFlow Logical Switch has exclusive access to.
158                     </xs:documentation>
159                 </xs:annotation>
160             </xs:element>
161         </xs:sequence>
162     </xs:complexType>
163     <xs:simpleType name="OFLogicalSwitchLostConnnectionBehavior">
164         <xs:restriction base="xs:string">
165             <xs:enumeration value="failSecureMode"/>
166             <xs:enumeration value="failStandaloneMode"/>
167         </xs:restriction>
168     </xs:simpleType>
169     <xs:complexType name="OFControllerListType">
170         <xs:sequence>
171             <xs:element name="controller" type="OFControllerType" maxOccurs="unbounded"/>
172         </xs:sequence>
173     </xs:complexType>
174     <xs:complexType name="OFLogicalSwitchResourceListType">
175         <xs:sequence>
176             <xs:element name="port" type="OFConfigID" maxOccurs="unbounded"/>
177             <xs:element name="queue" type="OFConfigID" maxOccurs="unbounded"/>
178             <xs:element name="certificate" type="OFConfigID" minOccurs="0" maxOccurs="1"/>
179             <xs:element name="flow-table" type="OFConfigID" maxOccurs="unbounded"/>
180         </xs:sequence>
181     </xs:complexType>
182     <xs:complexType name="OFLogicalSwitchCapabilitiesType">
183         <xs:sequence>
184             <xs:element name="max-buffered-packets" type="xs:integer">
185                 <xs:annotation>
186                     <xs:documentation>The maximum number of packets the switch can buffer when
187                     sending packets to the controller using packet-in messages. See OpenFlow
188                     protocol 1.2 section A.3.1 </xs:documentation>
189                 </xs:annotation>
190             </xs:element>
191             <xs:element name="max-tables" type="xs:integer">
192                 <xs:annotation>
193                     <xs:documentation> The number of flow tables supported by the switch. See
194                     OpenFlow protocol 1.2 section A.3.1 </xs:documentation>
195                 </xs:annotation>
196             </xs:element>
197             <xs:element name="max-ports" type="xs:integer">
198                 <xs:annotation>
199                     <xs:documentation> The number of ports supported by the switch. See OpenFlow
200                     protocol 1.2 section A.3.1 </xs:documentation>
201                 </xs:annotation>
202             </xs:element>
203             <xs:element name="flow-statistics" type="xs:boolean">
204                 <xs:annotation>
205                     <xs:documentation> Whether the switch supports flow statistics. See OpenFlow
206                     protocol 1.2 section A.3.1 </xs:documentation>
207                 </xs:annotation>
208             </xs:element>
209             <xs:element name="table-statistics" type="xs:boolean">
210                 <xs:annotation>
211                     <xs:documentation> Whether the switch supports table statistics. See OpenFlow
212                     protocol 1.2 section A.3.1 </xs:documentation>
213                 </xs:annotation>
214             </xs:element>
215             <xs:element name="port-statistics" type="xs:boolean">
216                 <xs:annotation>
217                     <xs:documentation>Whether the switch supports port statistics. See OpenFlow
218                     protocol 1.2 section A.3.1 </xs:documentation>
219                 </xs:annotation>
220             </xs:element>
221             <xs:element name="group-statistics" type="xs:boolean">
222                 <xs:annotation>
223                     <xs:documentation> Whether the switch supports group statistics. See OpenFlow
224                     protocol 1.2 section A.3.1 </xs:documentation>
225                 </xs:annotation>
226             </xs:element>
227             <xs:element name="queue-statistics" type="xs:boolean">
228                 <xs:annotation>
229                     <xs:documentation>Whether the switch supports queue statistics. See OpenFlow
230                     protocol 1.2 section A.3.1 </xs:documentation>
231                 </xs:annotation>
232             </xs:element>
233             <xs:element name="reassemble-ip-fragments" type="xs:boolean">
234                 <xs:annotation>
235                     <xs:documentation>Whether the switch supports reassemble IP fragments. See
236                     OpenFlow protocol 1.2 section A.3.1 </xs:documentation>
237                 </xs:annotation>
238             </xs:element>
239             <xs:element name="block-looping-ports" type="xs:boolean">
240                 <xs:annotation>
241                     <xs:documentation>"true" indicates that a switch protocol outside of OpenFlow,
242                     such as 802.1D Spanning Tree, will detect topology loops and block ports to
243                     prevent packet loops. See OpenFlow protocol 1.2 section A.3.1
244                     </xs:documentation>
245                 </xs:annotation>
246             </xs:element>
247             <xs:element name="reserved-port-types" type="OFReservedPortTypes">
248                 <xs:annotation>
249                     <xs:documentation>Specify generic forwarding actions such as sending to the
250                     controller, ooding, or forwarding using non-OpenFlow methods, such as
251                     "normal" switch processing. SeeOpenFlow protocol 1.2 section 4.5.
252                     </xs:documentation>
253                 </xs:annotation>
254             </xs:element>
255             <xs:element name="group-types" type="OFGroupTypes">
256                 <xs:annotation>
257                     <xs:documentation>The group types supported by the switch. SeeOpenFlow protocol
258                     1.2 section 5.4.1. </xs:documentation>
259                 </xs:annotation>
260             </xs:element>
261             <xs:element name="group-capabilities" type="OFGroupCapabilities">
262                 <xs:annotation>
263                     <xs:documentation>The group capabilities supported by the switch. SeeOpenFlow
264                     protocol 1.2 section A.3.5.9. </xs:documentation>
265                 </xs:annotation>
266             </xs:element>
267             <xs:element name="action-types" type="OFActionTypes">
268                 <xs:annotation>
269                     <xs:documentation>The action types supported by the switch. See OpenFlow
270                     protocol 1.2 section 5.9 and A.2.5. </xs:documentation>
271                 </xs:annotation>
272             </xs:element>
273             <xs:element name="instruction-types" type="OFInstructionTypes">
274                 <xs:annotation>
275                     <xs:documentation>The instruction types supported by the switch. See OpenFlow
276                     protocol 1.2 section 5.6. </xs:documentation>
277                 </xs:annotation>
278             </xs:element>
279         </xs:sequence>
280     </xs:complexType>
281     <xs:complexType name="OFReservedPortTypes">
282         <xs:sequence minOccurs="1" maxOccurs="unbounded">
283             <xs:element name="type" type="OFReservedPortType"/>
284         </xs:sequence>
285     </xs:complexType>
286     <xs:simpleType name="OFReservedPortType">
287         <xs:restriction base="xs:string">
288             <xs:enumeration value="all"/>
289             <xs:enumeration value="controller"/>
290             <xs:enumeration value="table"/>
291             <xs:enumeration value="inport"/>
292             <xs:enumeration value="any"/>
293             <xs:enumeration value="local"/>
294             <xs:enumeration value="normal"/>
295             <xs:enumeration value="flood"/>
296         </xs:restriction>
297     </xs:simpleType>
298     <xs:complexType name="OFGroupTypes">
299         <xs:sequence minOccurs="1" maxOccurs="unbounded">
300             <xs:element name="type" type="OFGroupType"/>
301         </xs:sequence>
302     </xs:complexType>
303     <xs:simpleType name="OFGroupType">
304         <xs:restriction base="xs:string">
305             <xs:enumeration value="all"/>
306             <xs:enumeration value="select"/>
307             <xs:enumeration value="indirect"/>
308             <xs:enumeration value="fast-failover"/>
309         </xs:restriction>
310     </xs:simpleType>
311     <xs:complexType name="OFGroupCapabilities">
312         <xs:sequence minOccurs="1" maxOccurs="unbounded">
313             <xs:element name="capability" type="OFGroupCapability"/>
314         </xs:sequence>
315     </xs:complexType>
316     <xs:simpleType name="OFGroupCapability">
317         <xs:restriction base="xs:string">
318             <xs:enumeration value="select-weight"/>
319             <xs:enumeration value="select-liveness"/>
320             <xs:enumeration value="chaining"/>
321             <xs:enumeration value="chaining-check"/>
322         </xs:restriction>
323     </xs:simpleType>
324     <xs:complexType name="OFActionTypes">
325         <xs:sequence minOccurs="1" maxOccurs="unbounded">
326             <xs:element name="type" type="OFActionType"/>
327         </xs:sequence>
328     </xs:complexType>
329     <xs:simpleType name="OFActionType">
330         <xs:restriction base="xs:string">
331             <xs:enumeration value="output"/>
332             <xs:enumeration value="copy-ttl-out"/>
333             <xs:enumeration value="copy-ttl-in"/>
334             <xs:enumeration value="set-mpls-ttl"/>
335             <xs:enumeration value="dec-mpls-ttl"/>
336             <xs:enumeration value="push-vlan"/>
337             <xs:enumeration value="pop-vlan"/>
338             <xs:enumeration value="push-mpls"/>
339             <xs:enumeration value="pop-mpls"/>
340             <xs:enumeration value="set-queue"/>
341             <xs:enumeration value="group"/>
342             <xs:enumeration value="set-nw-ttl"/>
343             <xs:enumeration value="dec-nw-ttl"/>
344             <xs:enumeration value="pop-mpls"/>
345             <xs:enumeration value="set-field"/>
346         </xs:restriction>
347     </xs:simpleType>
348     <xs:complexType name="OFInstructionTypes">
349         <xs:sequence minOccurs="1" maxOccurs="unbounded">
350             <xs:element name="type" type="OFInstructionType"/>
351         </xs:sequence>
352     </xs:complexType>
353     <xs:simpleType name="OFInstructionType">
354         <xs:restriction base="xs:string">
355             <xs:enumeration value="apply-actions"/>
356             <xs:enumeration value="clear-actions"/>
357             <xs:enumeration value="write-actions"/>
358             <xs:enumeration value="write-metadata"/>
359             <xs:enumeration value="goto-table"/>
360         </xs:restriction>
361     </xs:simpleType>
362     <xs:complexType name="OFControllerType">
363         <xs:annotation>
364             <xs:documentation>Representation of an OpenFlow Controller </xs:documentation>
365         </xs:annotation>
366         <xs:sequence>
367             <xs:element name="id" type="OFConfigID">
368                 <xs:annotation>
369                     <xs:documentation>An unique but locally arbitrary identifier that identifies an
370                     OpenFlow Controller within the context of an OpenFlow Capable Switch. It is
371                     persistent across reboots of the system. </xs:documentation>
372                 </xs:annotation>
373             </xs:element>
374             <xs:element name="role" minOccurs="0" type="OFControllerRoleType">
375                 <xs:annotation>
376                     <xs:documentation>The predefined role of the controller. </xs:documentation>
377                 </xs:annotation>
378             </xs:element>
379             <xs:element name="ip-address" minOccurs="0" type="inet:ip-prefix">
380                 <xs:annotation>
381                     <xs:documentation>The remote IP of the controller to connect
382                     to.</xs:documentation>
383                 </xs:annotation>
384             </xs:element>
385             <xs:element name="port" minOccurs="0" type="inet:port-number">
386                 <xs:annotation>
387                     <xs:documentation>The port number the controller listens on. </xs:documentation>
388                 </xs:annotation>
389             </xs:element>
390             <xs:element name="local-ip-address" minOccurs="0" type="inet:ip-address">
391                 <xs:annotation>
392                     <xs:documentation>This specifies the source IP for packets sent to this
393                     controller and overrides the default IP used. </xs:documentation>
394                 </xs:annotation>
395             </xs:element>
396             <xs:element name="local-port" minOccurs="0" type="inet:port-number">
397                 <xs:annotation>
398                     <xs:documentation>The port number the controller listens on. If 0 the port is
399                     chosen dynamically. </xs:documentation>
400                 </xs:annotation>
401             </xs:element>
402             <xs:element name="protocol" minOccurs="0" type="OFControllerProtocolType">
403                 <xs:annotation>
404                     <xs:documentation>The protocol used for connecting to the controller. Both sides
405                     must support the chosen protocol for a successful establishment of a
406                     connection. </xs:documentation>
407                 </xs:annotation>
408             </xs:element>
409             <xs:element name="state" minOccurs="0" type="OFControllerOpenFlowStateType">
410                 <xs:annotation>
411                     <xs:documentation>This element represents the state of the OpenFlow protocol
412                     connection to the controller. </xs:documentation>
413                 </xs:annotation>
414             </xs:element>
415         </xs:sequence>
416         <xs:attribute name="operation" type="xs:string"/>
417     </xs:complexType>
418     <xs:simpleType name="OFControllerRoleType">
419         <xs:restriction base="xs:string">
420             <xs:enumeration value="master"/>
421             <xs:enumeration value="slave"/>
422             <xs:enumeration value="equal"/>
423         </xs:restriction>
424     </xs:simpleType>
425     <xs:simpleType name="OFControllerProtocolType">
426         <xs:restriction base="xs:string">
427             <xs:enumeration value="tcp"/>
428             <xs:enumeration value="tls"/>
429         </xs:restriction>
430     </xs:simpleType>
431     <xs:complexType name="OFControllerOpenFlowStateType">
432         <xs:sequence>
433             <xs:element name="connection-state" type="OFControllerConnectionStateType">
434                 <xs:annotation>
435                     <xs:documentation>This element represents the run-time state of the OpenFlow
436                     connection to the Controller. </xs:documentation>
437                 </xs:annotation>
438             </xs:element>
439             <xs:element name="current-version" type="OFOpenFlowVersionType">
440                 <xs:annotation>
441                     <xs:documentation>This element denotes the version of OpenFlow that Controller
442                     is currently communicating with. It is only relevant when the
443                     connection-state element is set to "up". </xs:documentation>
444                 </xs:annotation>
445             </xs:element>
446             <xs:element name="supported-versions" type="OFOpenFlowSupportedVersionsType">
447                 <xs:annotation>
448                     <xs:documentation>This element denotes all of the versions of the OpenFlow
449                     protocol that the controller supports. </xs:documentation>
450                 </xs:annotation>
451             </xs:element>
452         </xs:sequence>
453     </xs:complexType>
454     <xs:simpleType name="OFControllerConnectionStateType">
455         <xs:restriction base="xs:string">
456             <xs:enumeration value="up"/>
457             <xs:enumeration value="down"/>
458         </xs:restriction>
459     </xs:simpleType>
460     <xs:complexType name="OFOpenFlowSupportedVersionsType">
461         <xs:sequence>
462             <xs:element name="version" type="OFOpenFlowVersionType" maxOccurs="unbounded"/>
463         </xs:sequence>
464     </xs:complexType>
465     <xs:simpleType name="OFOpenFlowVersionType">
466         <xs:restriction base="xs:string">
467             <xs:enumeration value="1.2"/>
468             <xs:enumeration value="1.1"/>
469             <xs:enumeration value="1.0"/>
470         </xs:restriction>
471     </xs:simpleType>
472     <xs:complexType name="OFResourceType">
473         <xs:annotation>
474             <xs:documentation>A Base Class for OpenFlow Resources. </xs:documentation>
475         </xs:annotation>
476         <xs:sequence>
477             <xs:element name="resource-id" type="OFConfigID">
478                 <xs:annotation>
479                     <xs:documentation>An unique but locally arbitrary identifier that identifies a
480                     resource within the context of and OpenFlow Capable Switch and is persistent
481                     across reboots of the system. </xs:documentation>
482                 </xs:annotation>
483             </xs:element>
484         </xs:sequence>
485     </xs:complexType>
486     <xs:complexType name="OFPortType">
487         <xs:complexContent>
488             <xs:extension base="OFResourceType">
489                 <xs:sequence>
490                     <xs:element name="number" minOccurs="0" type="xs:unsignedInt"/>
491                     <xs:element name="name" minOccurs="0" type="xs:string"/>
492                     <xs:element name="current-rate" minOccurs="0" type="xs:unsignedLong"/>
493                     <xs:element name="max-rate" minOccurs="0" type="xs:unsignedLong"/>
494                     <xs:element name="configuration" minOccurs="0" type="OFPortConfigurationType"/>
495                     <xs:element name="state" minOccurs="0" type="OFPortStateType"/>
496                     <xs:element name="features" minOccurs="0" type="OFPortFeatureMasterList"/>
497                 </xs:sequence>
498             </xs:extension>
499         </xs:complexContent>
500     </xs:complexType>
501     <xs:complexType name="OFPortFeatureMasterList">
502         <xs:sequence>
503             <xs:element name="current" minOccurs="0" type="OFPortCurrentFeatureListType"/>
504             <xs:element name="advertised" minOccurs="0" type="OFPortOtherFeatureListType"/>
505             <xs:element name="supported" minOccurs="0" type="OFPortOtherFeatureListType"/>
506             <xs:element name="advertised-peer" minOccurs="0" type="OFPortOtherFeatureListType"/>
507         </xs:sequence>
508     </xs:complexType>
509     <xs:complexType name="OFPortConfigurationType">
510         <xs:sequence>
511             <xs:element name="admin-state" minOccurs="0" type="OFPortStateOptionsType"/>
512             <xs:element name="no-receive" minOccurs="0" type="xs:boolean"/>
513             <xs:element name="no-forward" minOccurs="0" type="xs:boolean"/>
514             <xs:element name="no-packet-in" minOccurs="0" type="xs:boolean"/>
515         </xs:sequence>
516         <xs:attribute name="operation" type="xs:string"/>
517     </xs:complexType>
518     <xs:complexType name="OFPortStateType">
519         <xs:sequence>
520             <xs:element name="oper-state" minOccurs="0" type="OFPortStateOptionsType"/>
521             <xs:element name="blocked" minOccurs="0" type="xs:boolean"/>
522             <xs:element name="live" minOccurs="0" type="xs:boolean"/>
523         </xs:sequence>
524     </xs:complexType>
525     <xs:simpleType name="OFPortStateOptionsType">
526         <xs:restriction base="xs:string">
527             <xs:enumeration value="up"/>
528             <xs:enumeration value="down"/>
529         </xs:restriction>
530     </xs:simpleType>
531     <xs:complexType name="OFPortCurrentFeatureListType">
532         <xs:sequence>
533             <xs:element name="rate" type="OFPortRateType"/>
534             <xs:element name="auto-negotiate" type="OFPortAutoNegotiateType"/>
535             <xs:element name="medium" type="OFPortMediumType"/>
536             <xs:element name="pause" type="OFPortPauseType"/>
537         </xs:sequence>
538     </xs:complexType>
539     <xs:complexType name="OFPortOtherFeatureListType">
540         <xs:sequence>
541             <xs:element name="rate" type="OFPortRateType" minOccurs="0" maxOccurs="unbounded"/>
542             <xs:element name="auto-negotiate" type="OFPortAutoNegotiateType" minOccurs="0"/>
543             <xs:element name="medium" type="OFPortMediumType" minOccurs="0" maxOccurs="unbounded"/>
544             <xs:element name="pause" type="OFPortPauseType" minOccurs="0"/>
545         </xs:sequence>
546         <xs:attribute name="operation" type="xs:string"/>
547     </xs:complexType>
548     <xs:simpleType name="OFPortRateType">
549         <xs:restriction base="xs:string">
550             <xs:enumeration value="10Mb-HD"/>
551             <xs:enumeration value="10Mb-FD"/>
552             <xs:enumeration value="100Mb-HD"/>
553             <xs:enumeration value="100Mb-FD"/>
554             <xs:enumeration value="1Gb-HD"/>
555             <xs:enumeration value="1Gb-FD"/>
556             <xs:enumeration value="1 Tb"/>
557             <xs:enumeration value="Other"/>
558         </xs:restriction>
559     </xs:simpleType>
560     <xs:simpleType name="OFPortAutoNegotiateType">
561         <xs:restriction base="xs:string">
562             <xs:enumeration value="enabled"/>
563             <xs:enumeration value="disabled"/>
564         </xs:restriction>
565     </xs:simpleType>
566     <xs:simpleType name="OFPortMediumType">
567         <xs:restriction base="xs:string">
568             <xs:enumeration value="copper"/>
569             <xs:enumeration value="fiber"/>
570         </xs:restriction>
571     </xs:simpleType>
572     <xs:simpleType name="OFPortPauseType">
573         <xs:restriction base="xs:string">
574             <xs:enumeration value="unsupported"/>
575             <xs:enumeration value="symmetric"/>
576             <xs:enumeration value="asymmetric"/>
577         </xs:restriction>
578     </xs:simpleType>
579     <xs:complexType name="OFQueueType">
580         <xs:complexContent>
581             <xs:extension base="OFResourceType">
582                 <xs:sequence maxOccurs="1" minOccurs="1">
583                     <xs:element name="id" minOccurs="0" type="OFConfigID">
584                         <xs:annotation>
585                             <xs:documentation>An unique but locally arbitrary number that identifies
586                             a queue within the context of and OpenFlow Logical Switch and is
587                             persistent across reboots of the system. </xs:documentation>
588                         </xs:annotation>
589                     </xs:element>
590                     <xs:element name="port" minOccurs="0" type="OFConfigID">
591                         <xs:annotation>
592                             <xs:documentation>Port in the context of the same Logical Switch which
593                             this Queue is associated with. </xs:documentation>
594                         </xs:annotation>
595                     </xs:element>
596                     <xs:element name="properties" type="OFQueuePropertiesType">
597                         <xs:annotation>
598                             <xs:documentation>Properties of the Queue. </xs:documentation>
599                         </xs:annotation>
600                     </xs:element>
601                 </xs:sequence>
602                 <xs:attribute name="operation" type="xs:string"/>
603             </xs:extension>
604         </xs:complexContent>
605     </xs:complexType>
606     <xs:complexType name="OFQueuePropertiesType">
607         <xs:sequence>
608             <xs:element name="min-rate" type="OFQueueMinRateType" minOccurs="0" maxOccurs="1">
609                 <xs:annotation>
610                     <xs:documentation>The minimal rate that is reserved for this queue in 1/10 of a
611                     percent of the actual rate. </xs:documentation>
612                 </xs:annotation>
613             </xs:element>
614             <xs:element name="max-rate" type="OFQueueMaxRateType" minOccurs="0" maxOccurs="1">
615                 <xs:annotation>
616                     <xs:documentation>The maximum rate that is reserved for this queue in 1/10 of a
617                     percent of the actual rate. </xs:documentation>
618                 </xs:annotation>
619             </xs:element>
620             <xs:element minOccurs="0" maxOccurs="unbounded" name="experimenter" type="xs:unsignedLong">
621                 <xs:annotation>
622                     <xs:documentation>Experimental Properties</xs:documentation>
623                 </xs:annotation>
624             </xs:element>
625         </xs:sequence>
626     </xs:complexType>
627     <xs:simpleType name="OFQueueMinRateType">
628         <xs:restriction base="xs:integer"/>
629     </xs:simpleType>
630     <xs:simpleType name="OFQueueMaxRateType">
631         <xs:restriction base="xs:integer"/>
632     </xs:simpleType>
633     <xs:complexType name="OFExternalCertificateType">
634         <xs:complexContent>
635             <xs:extension base="OFResourceType">
636                 <xs:sequence maxOccurs="1" minOccurs="1">
637                     <xs:element name="certificate" minOccurs="0" type="OFX509CertificateType"/>
638                 </xs:sequence>
639                 <xs:attribute name="operation" type="xs:string"/>
640             </xs:extension>
641         </xs:complexContent>
642     </xs:complexType>
643     <xs:complexType name="OFOwnedCertificateType">
644         <xs:complexContent>
645             <xs:extension base="OFResourceType">
646                 <xs:sequence maxOccurs="1" minOccurs="1">
647                     <xs:element name="certificate" type="OFX509CertificateType"/>
648                     <xs:element name="private-key" type="ds:KeyValueType"/>
649                 </xs:sequence>
650             </xs:extension>
651         </xs:complexContent>
652     </xs:complexType>
653     <xs:simpleType name="OFX509CertificateType">
654         <xs:restriction base="xs:base64Binary"/>
655     </xs:simpleType>
656     <xs:complexType name="OFFlowTableType">
657         <xs:complexContent>
658             <xs:extension base="OFResourceType">
659                 <xs:sequence maxOccurs="1" minOccurs="1">
660                     <xs:element name="max-entries" type="xs:integer"/>
661                     <xs:element name="next-tables" type="OFNextFlowTables"/>
662                     <xs:element name="instructions" type="OFFlowTableInstructions"/>
663                     <xs:element name="matches" type="OFFlowTableMatchFields"/>
664                     <xs:element name="write-actions" type="OFFlowTableWriteActions"/>
665                     <xs:element name="apply-actions" type="OFFlowTableApplyActions"/>
666                     <xs:element name="write-setfields" type="OFFlowTableMatchFields"/>
667                     <xs:element name="apply-setfields" type="OFFlowTableMatchFields"/>
668                     <xs:element name="wildcards" type="OFFlowTableMatchFields"/>
669                     <xs:element name="metadata-match" type="xs:hexBinary"/>
670                     <xs:element name="metadata-write" type="xs:hexBinary"/>
671                 </xs:sequence>
672             </xs:extension>
673         </xs:complexContent>
674     </xs:complexType>
675     <xs:complexType name="OFNextFlowTables">
676         <xs:sequence minOccurs="1" maxOccurs="10">
677             <xs:element name="table-id" type="OFConfigID"/>
678         </xs:sequence>
679     </xs:complexType>
680     <xs:complexType name="OFFlowTableInstructions">
681         <xs:sequence minOccurs="1" maxOccurs="10">
682             <xs:element name="type" type="OFInstructionType"/>
683         </xs:sequence>
684     </xs:complexType>
685     <xs:complexType name="OFFlowTableMatchFields">
686         <xs:sequence minOccurs="1" maxOccurs="10">
687             <xs:element name="type" type="OFMatchFieldType"/>
688         </xs:sequence>
689     </xs:complexType>
690     <xs:complexType name="OFFlowTableWriteActions">
691         <xs:sequence minOccurs="1" maxOccurs="10">
692             <xs:element name="type" type="OFActionType"/>
693         </xs:sequence>
694     </xs:complexType>
695     <xs:complexType name="OFFlowTableApplyActions">
696         <xs:sequence minOccurs="1" maxOccurs="10">
697             <xs:element name="type" type="OFActionType"/>
698         </xs:sequence>
699     </xs:complexType>
700     <xs:simpleType name="OFMatchFieldType">
701         <xs:annotation>
702             <xs:documentation> The open flow match field types. See OpenFlow protocol 1.2 section
703             A.2.3.7 </xs:documentation>
704         </xs:annotation>
705         <xs:restriction base="xs:string">
706             <xs:enumeration value="input-port"/>
707             <xs:enumeration value="physical-input-port"/>
708             <xs:enumeration value="metadata"/>
709             <xs:enumeration value="ethernet-dest"/>
710             <xs:enumeration value="ethernet-src"/>
711             <xs:enumeration value="ethernet-frame-type"/>
712             <xs:enumeration value="vlan-id"/>
713             <xs:enumeration value="vlan-priority"/>
714             <xs:enumeration value="ip-dscp"/>
715             <xs:enumeration value="ip-ecn"/>
716             <xs:enumeration value="ip-protocol"/>
717             <xs:enumeration value="ipv4-src"/>
718             <xs:enumeration value="ipv4-dest"/>
719             <xs:enumeration value="tcp-src"/>
720             <xs:enumeration value="tcp-dest"/>
721             <xs:enumeration value="udp-src"/>
722             <xs:enumeration value="udp-dest"/>
723             <xs:enumeration value="sctp-src"/>
724             <xs:enumeration value="sctp-dest"/>
725             <xs:enumeration value="icmpv4-type"/>
726             <xs:enumeration value="icmpv4-code"/>
727             <xs:enumeration value="arp-op"/>
728             <xs:enumeration value="arp-src-ip-address"/>
729             <xs:enumeration value="arp-target-ip-address"/>
730             <xs:enumeration value="arp-src-hardware-address"/>
731             <xs:enumeration value="arp-target-hardware-address"/>
732             <xs:enumeration value="ipv6-src"/>
733             <xs:enumeration value="ipv6-dest"/>
734             <xs:enumeration value="ipv6-flow-label"/>
735             <xs:enumeration value="icmpv6-type"/>
736             <xs:enumeration value="icmpv6-code"/>
737             <xs:enumeration value="ipv6-nd-target"/>
738             <xs:enumeration value="ipv6-nd-source-link-layer"/>
739             <xs:enumeration value="ipv6-nd-target-link-layer"/>
740             <xs:enumeration value="mpls-label"/>
741             <xs:enumeration value="mpls-tc"/>
742         </xs:restriction>
743     </xs:simpleType>
744 </xs:schema>