1 <?xml version="1.0" encoding="UTF-8"?>
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"
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"/>
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>
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 <get-config> requests. All non-configurable values SHOULD be reported by replies
30 to NETCONF <get> requests. Attemps to modify non-configurable elements with a
31 NETCONF <edit-config> operation MUST result in an 'operation-not-supported' error
32 with type 'application'. When validating an <editāconfig> 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>
38 <!-- YANG typedefs -->
39 <xs:simpleType name="OFConfigId">
41 <xs:documentation> Generic type of an identifier in OF-CONFIG </xs:documentation>
43 <xs:restriction base="inet:uri"> </xs:restriction>
45 <xs:simpleType name="OFConfigurationPointProtocolType">
47 <xs:documentation> Possible protocols to connect ot an OF Configuration Point
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"/>
57 <xs:simpleType name="OFOpenFlowVersionType">
59 <xs:documentation> This enumeration contains the all OpenFlow versions released so far.
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"/>
72 <xs:simpleType name="datapath-id-type">
74 <xs:documentation> The datapath-id type represents an OpenFlow datapath identifier.
77 <xs:restriction base="xs:string">
78 <xs:pattern value="[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}"/>
81 <xs:simpleType name="OFTenthOfAPercentType">
83 <xs:documentation> This type defines a value in tenth of a percent. </xs:documentation>
85 <xs:restriction base="xs:unsignedShort">
86 <xs:minInclusive value="0"/>
87 <xs:maxInclusive value="1000"/>
90 <xs:simpleType name="OFUpDownStateType">
92 <xs:documentation> Type to specify state information for a port or a connection.
95 <xs:restriction base="xs:string">
96 <xs:enumeration value="up"/>
97 <xs:enumeration value="down"/>
100 <xs:simpleType name="OFPortRateType">
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.
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"/>
121 <xs:simpleType name="OFActionType">
123 <xs:documentation> The types of actions defined in OpenFlow Switch Specification
124 versions 1.2, 1.3, and 1.3.1</xs:documentation>
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"/>
143 <xs:simpleType name="OFInstructionType">
145 <xs:documentation> The types of instructions defined in OpenFlow Switch Specification
146 versions 1.2, 1.3, and 1.3.1. </xs:documentation>
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"/>
156 <xs:simpleType name="OFMatchFieldType">
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>
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"/>
200 <xs:simpleType name="hex-binary">
202 <xs:documentation> hex binary encoded string </xs:documentation>
204 <xs:restriction base="xs:base64Binary"> </xs:restriction>
206 <!-- YANG groupings -->
207 <xs:group name="OFPortCurrentFeatureListType">
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 <get> operations. Attemps to modify this element and its children with
212 a NETCONF <edit-config> operation MUST result in an 'operation-not-supported'
213 error with type 'application'. </xs:documentation>
216 <xs:element name="rate" type="OFPortRateType">
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.
226 <xs:element name="auto-negotiate" type="xs:boolean">
228 <xs:documentation> Specifies the administrative state of the forwarding rate
229 auto-negotiation protocol at this OpenFlow Port. </xs:documentation>
232 <xs:element name="medium">
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>
241 <xs:restriction base="xs:string">
242 <xs:enumeration value="copper"/>
243 <xs:enumeration value="fiber"/>
247 <xs:element name="pause">
249 <xs:documentation> Specifies if pausing of transmission is supported at all and
250 if yes if it is asymmetric or symmetric. </xs:documentation>
253 <xs:restriction base="xs:string">
254 <xs:enumeration value="unsupported"/>
255 <xs:enumeration value="symmetric"/>
256 <xs:enumeration value="asymmetric"/>
262 <xs:group name="OFPortOtherFeatureListType">
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 <edit-config> operations MUST be implemented as follows: * The
267 'resource-id' element MUST be present in the path or in the filter at all
268 <edit-config> 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 <get> operations.
276 Attemps to modify this element and its children with a NETCONF <edit-config>
277 operation MUST result in an 'operation-not-supported' error with type 'application'.
281 <xs:element name="rate" type="OFPortRateType" minOccurs="0">
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 <edit-config> operation 'create', 'merge' or 'replace'
287 and the parent element does not exist, a 'data-missing' error is returned.
291 <xs:element name="auto-negotiate" type="xs:boolean" minOccurs="0">
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>
298 <xs:element name="medium" minOccurs="0">
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 <edit-config>
303 operation 'create', 'merge' or 'replace' and the parent element does not
304 exist, a 'data-missing' error is returned. </xs:documentation>
307 <xs:restriction base="xs:string">
308 <xs:enumeration value="copper"/>
309 <xs:enumeration value="fiber"/>
313 <xs:element name="pause" minOccurs="0">
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 <edit-config> operation 'create', 'merge' or 'replace' and the parent
319 element does not exist, a 'data-missing' error is returned.
323 <xs:restriction base="xs:string">
324 <xs:enumeration value="unsupported"/>
325 <xs:enumeration value="symmetric"/>
326 <xs:enumeration value="asymmetric"/>
332 <xs:group name="DSAKeyValueType">
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 < Q < 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>
356 <xs:element name="P" type="xs:base64Binary">
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 <edit-config> operation 'create', 'merge' or 'replace' and
361 this element is missing, a 'data-missing' error is returned.
365 <xs:element name="Q" type="xs:base64Binary">
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 <edit-config> operation 'create', 'merge' or 'replace' and
370 this element is missing, a 'data-missing' error is returned.
374 <xs:element name="J" type="xs:base64Binary">
376 <xs:documentation> This element is optional. </xs:documentation>
379 <xs:element name="G" type="xs:base64Binary">
381 <xs:documentation> This element is optional. </xs:documentation>
384 <xs:element name="Y" type="xs:base64Binary">
386 <xs:documentation> This element MUST be present in the NETCONF data store. If
387 this element is not present in a NETCONF <edit-config> operation
388 'create', 'merge' or 'replace' and the parent element does not exist, a
389 'data-missing' error is returned. </xs:documentation>
392 <xs:element name="Seed" type="xs:base64Binary">
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 <edit-config> operation
397 'create', 'merge' or 'replace' and this element is missing, a 'data-missing'
398 error is returned. </xs:documentation>
401 <xs:element name="PgenCounter" type="xs:base64Binary">
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 <edit-config> operation 'create', 'merge' or 'replace'
406 and this element is missing, a 'data-missing' error is returned.
412 <xs:group name="OFPortBaseTunnelType">
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>
422 <xs:element name="local-endpoint-ipv4-address" type="inet:ipv4-address">
424 <xs:documentation> The IPv4 address of the local tunnel endpoint.
428 <xs:element name="remote-endpoint-ipv4-address" type="inet:ipv4-address">
430 <xs:documentation> The IPv4 address of the remote tunnel endpoint.
436 <xs:element name="local-endpoint-ipv6-address" type="inet:ipv6-address">
438 <xs:documentation> The IPv6 address of the local tunnel endpoint.
442 <xs:element name="remote-endpoint-ipv6-address" type="inet:ipv6-address">
444 <xs:documentation> The IPv6 address of the remote tunnel endpoint.
450 <xs:element name="local-endpoint-mac-adress" type="yang:mac-address">
452 <xs:documentation> The MAC address of the local tunnel endpoint.
456 <xs:element name="remote-endpoint-mac-adress" type="yang:mac-address">
458 <xs:documentation> The MAC address of the remote tunnel endpoint.
466 <xs:group name="OFPortIPGRETunnelType">
468 <xs:documentation> Properties of a IP-in-GRE tunnel with key, checksum, and sequence
469 number information. </xs:documentation>
472 <xs:group ref="OFPortBaseTunnelType"/>
473 <xs:element name="checksum-present" type="xs:boolean">
475 <xs:documentation> Indicates presence of the GRE checksum. </xs:documentation>
478 <xs:element name="key-present" type="xs:boolean">
480 <xs:documentation> Indicates presence of the GRE key. </xs:documentation>
483 <xs:element name="key" type="xs:unsignedInt">
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
490 <xs:element name="sequence-number-present" type="xs:boolean">
492 <xs:documentation> Indicates presence of the GRE sequence number.
498 <xs:group name="OFPortNVGRETunnelType">
500 <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
503 <xs:group ref="OFPortBaseTunnelType"/>
504 <xs:element name="tni" type="xs:unsignedInt">
506 <xs:documentation> Specifies the tenant network identifier assigned to all
507 packets sent on the tunnel </xs:documentation>
510 <xs:element name="tni-resv" type="xs:unsignedInt">
512 <xs:documentation> Used to set the reserved user-defined bits of the GRE key
513 field </xs:documentation>
516 <xs:element name="tni-multicast-group" type="inet:ip-address">
518 <xs:documentation> If IP multicast is used to support broadcast on the tunnel
519 this element specifies the corresponding multicast IP address
525 <xs:group name="OFQueueType">
527 <xs:documentation> This grouping specifies all properties of a queue resource. NETCONF
528 <edit-config> operations MUST be implemented as follows: * The 'resource-id'
529 element of OFResoureType MUST be present at all <edit-config> 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>
538 <xs:group ref="OFResourceType"/>
539 <xs:element name="id" type="xs:unsignedLong" minOccurs="0">
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 <get> requests. Since this element is not configurable with the
553 NETCONF protocol it MUST NOT be included in replies to NETCONF
554 <get-config> requests. </xs:documentation>
557 <xs:element name="port" minOccurs="0">
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>
568 <xs:restriction base="inet:uri"> </xs:restriction>
571 <xs:element name="properties" minOccurs="0">
573 <xs:documentation> The queue properties currently configured.
578 <xs:element name="min-rate" minOccurs="0" type="OFTenthOfAPercentType">
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.
586 <xs:element name="max-rate" minOccurs="0" type="OFTenthOfAPercentType">
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.
594 <xs:element name="experimenter" minOccurs="0" maxOccurs="unbounded"
595 type="xs:unsignedInt">
597 <xs:documentation> A list of experimenter identifiers of queue
598 properties used. This element is optional. </xs:documentation>
606 <xs:group name="OFOwnedCertificateType">
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>
613 <xs:group ref="OFResourceType"/>
614 <xs:element name="certificate" type="xs:string">
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 <edit-config> operation 'create', 'merge' or
619 'replace' and the parent element does not exist, a 'data-missing' error is
620 returned. </xs:documentation>
623 <xs:element name="private-key">
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 <edit-config> operation 'create', 'merge' or 'replace' and the
631 parent element does not exist, a 'data-missing' error is returned.
636 <xs:group ref="KeyValueType"/>
642 <xs:group name="OFExternalCertificateType">
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.
649 <xs:group ref="OFResourceType"/>
650 <xs:element name="certificate" type="xs:string" minOccurs="0">
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 <edit-config> operation 'create', 'merge' or
655 'replace' and the parent element does not exist, a 'data-missing' error is
656 returned. </xs:documentation>
661 <xs:group name="OFConfigurationPointType">
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 <edit-config> operations. NETCONF <edit-config>
673 operations MUST be implemented as follows: * The 'id' element MUST be present at all
674 <edit-config> 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>
683 <xs:element name="id" type="OFConfigId">
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.
691 <xs:element name="uri" type="inet:uri">
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 <edit-config>
700 operation 'create', 'merge' or 'replace' and the parent element does not
701 exist, a 'data-missing' error is returned. </xs:documentation>
704 <xs:element name="protocol" type="OFConfigurationPointProtocolType" minOccurs="0">
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'.
714 <xs:group name="RSAKeyValueType">
716 <xs:documentation> RSA key values have two fields: Modulus and Exponent.
720 <xs:element name="Modulus" type="xs:base64Binary">
722 <xs:documentation> This element MUST be present in the NETCONF data store. If
723 this element is not present in a NETCONF <edit-config> operation
724 'create', 'merge' or 'replace' and the parent element does not exist, a
725 'data-missing' error is returned. </xs:documentation>
728 <xs:element name="Exponent" type="xs:base64Binary">
730 <xs:documentation> This element MUST be present in the NETCONF data store. If
731 this element is not present in a NETCONF <edit-config> operation
732 'create', 'merge' or 'replace' and the parent element does not exist, a
733 'data-missing' error is returned. </xs:documentation>
738 <xs:group name="OFFlowTableType">
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 <get> operations. Attemps to modify this element and its children with a
743 NETCONF <edit-config> operation MUST result in an 'operation-not-supported'
744 error with type 'application'. </xs:documentation>
747 <xs:group ref="OFResourceType"/>
748 <xs:element name="max-entries" type="xs:unsignedByte" minOccurs="0">
750 <xs:documentation> The maximum number of flow entries supported by the flow
751 table. </xs:documentation>
754 <xs:element name="next-tables" minOccurs="0">
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.
762 <xs:element name="table-id" maxOccurs="unbounded" type="inet:uri"/>
766 <xs:element name="instructions" minOccurs="0">
768 <xs:documentation> The list of all instruction types supported by the flow
769 table. </xs:documentation>
773 <xs:element name="type" maxOccurs="unbounded" type="OFInstructionType"/>
777 <xs:element name="matches" minOccurs="0">
779 <xs:documentation> The list of all match types supported by the flow table.
784 <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
788 <xs:element name="write-actions" minOccurs="0">
790 <xs:documentation> The list of all write action types supported by the flow
791 table. </xs:documentation>
795 <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
799 <xs:element name="apply-actions" minOccurs="0">
801 <xs:documentation> The list of all apply action types supported by the flow
802 table. </xs:documentation>
806 <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
810 <xs:element name="write-setfields" minOccurs="0">
812 <xs:documentation> The list of all 'set-field' action types supported by the
813 table using write actions. </xs:documentation>
817 <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
821 <xs:element name="apply-setfields" minOccurs="0">
823 <xs:documentation> The list of all 'set-field' action types supported by the
824 table using apply actions. </xs:documentation>
828 <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
832 <xs:element name="wildcards" minOccurs="0">
834 <xs:documentation> The list of all fields for which the table supports
835 wildcarding. </xs:documentation>
839 <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
843 <xs:element name="metadata-match" type="hex-binary" minOccurs="0">
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>
850 <xs:element name="metadata-write" type="hex-binary" minOccurs="0">
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.
860 <xs:group name="OFLogicalSwitchType">
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 <edit-config> operations 'create' or 'delete'. The other NETCONF
865 <edit-config> operations MUST be implemented as follows: * The 'id' element
866 MUST be present at all <edit-config> 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>
875 <xs:element name="id" type="OFConfigId">
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>
883 <xs:element name="capabilities" minOccurs="0">
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 <get> operation since it contain no configuration
888 data. </xs:documentation>
892 <xs:group ref="OFLogicalSwitchCapabilitiesType"/>
896 <xs:element name="datapath-id" type="datapath-id-type" minOccurs="0">
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 <edit-config> operation 'create', 'merge' or 'replace' and the parent
907 element does not exist, a 'data-missing' error is returned.
911 <xs:element name="enabled" type="xs:boolean" minOccurs="0">
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>
921 <xs:element name="check-controller-certificate" type="xs:boolean" minOccurs="0">
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 <protocol> 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>
943 <xs:element name="lost-connection-behavior" minOccurs="0">
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>
954 <xs:restriction base="xs:string">
955 <xs:enumeration value="failSecureMode"/>
956 <xs:enumeration value="failStandaloneMode"/>
960 <xs:element name="controllers" minOccurs="0">
962 <xs:documentation> The list of controllers for this Logical switch. The element
963 'id' of OFControllerType MUST be unique within this list.
968 <xs:element name="controller" maxOccurs="unbounded">
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 <edit-config> operations MUST be implemented
974 as follows: * The 'id' element MUST be present at all
975 <editconfig> 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>
986 <xs:group ref="OFControllerType"/>
988 <xs:attribute name="operation" type="xs:string"/>
993 <xs:key name="key_controllers_controller">
994 <xs:selector xpath="of11-config:controller"/>
995 <xs:field xpath="of11-config:id"/>
998 <xs:element name="resources" minOccurs="0">
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 <get> or <getconfig> operations. Attemps to modify this
1011 element and its children with a NETCONF <edit-config> operation MUST
1012 result in an 'operation-not-supported' error with type 'application'.
1017 <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
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>
1027 <xs:restriction base="inet:uri"> </xs:restriction>
1030 <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
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>
1040 <xs:restriction base="inet:uri"> </xs:restriction>
1043 <xs:element name="certificate" minOccurs="0">
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
1057 /capable-switch/resources/owned-certificate/resource-id
1061 <xs:restriction base="inet:uri"> </xs:restriction>
1064 <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
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>
1075 <xs:restriction base="inet:uri"> </xs:restriction>
1083 <xs:group name="KeyValueType">
1085 <xs:documentation> The KeyValue element contains a single public key that may be useful
1086 in validating the signature. NETCONF <edit-config> operations MUST be
1087 implemented as follows: * Exactly one of the elemenst 'DSAKeyValue' or 'RSAKeyValue'
1088 all <edit-config> 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>
1098 <xs:element name="DSAKeyValue">
1101 <xs:group ref="DSAKeyValueType"/>
1107 <xs:element name="RSAKeyValue">
1110 <xs:group ref="RSAKeyValueType"/>
1118 <xs:group name="OFLogicalSwitchCapabilitiesType">
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 <get> operations. Attemps to
1123 modify this element and its children with a NETCONF <edit-config> operation
1124 MUST result in an 'operation-not-supported' error with type 'application'.
1128 <xs:element name="max-buffered-packets" type="xs:unsignedInt">
1130 <xs:documentation> The maximum number of packets the logical switch can buffer
1131 when sending packets to the controller using packet-in messages.
1135 <xs:element name="max-tables" type="xs:unsignedByte">
1137 <xs:documentation> The number of flow tables supported by the logical switch.
1141 <xs:element name="max-ports" type="xs:unsignedInt">
1143 <xs:documentation> The number of flow tables supported by the logical switch.
1147 <xs:element name="flow-statistics" type="xs:boolean">
1149 <xs:documentation> Specifies if the logical switch supports flow statistics.
1153 <xs:element name="table-statistics" type="xs:boolean">
1155 <xs:documentation> Specifies if the logical switch supports table statistics.
1159 <xs:element name="port-statistics" type="xs:boolean">
1161 <xs:documentation> Specifies if the logical switch supports port statistics.
1165 <xs:element name="group-statistics" type="xs:boolean">
1167 <xs:documentation> Specifies if the logical switch supports group statistics.
1171 <xs:element name="queue-statistics" type="xs:boolean">
1173 <xs:documentation> Specifies if the logical switch supports queue statistics.
1177 <xs:element name="reassemble-ip-fragments" type="xs:boolean">
1179 <xs:documentation> Specifies if the logical switch supports reassemble IP
1180 fragments. </xs:documentation>
1183 <xs:element name="block-looping-ports" type="xs:boolean">
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>
1190 <xs:element name="reserved-port-types">
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>
1198 <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
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"/>
1214 <xs:element name="group-types">
1216 <xs:documentation> Specify the group types supported by the logical switch.
1221 <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
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"/>
1234 <xs:element name="group-capabilities">
1236 <xs:documentation> Specify the group capabilities supported by the logical
1237 switch. </xs:documentation>
1241 <xs:element name="capability" minOccurs="0" maxOccurs="unbounded">
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"/>
1254 <xs:element name="action-types">
1256 <xs:documentation> Specify the action types supported by the logical switch.
1261 <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
1262 type="OFActionType"/>
1266 <xs:element name="instruction-types">
1268 <xs:documentation> Specify the instruction types supported by the logical
1269 switch. </xs:documentation>
1273 <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
1274 type="OFInstructionType"/>
1280 <xs:group name="OFPortType">
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 <edit-config> operations MUST be
1287 implemented as follows: * The 'resource-id' element of OFResoureType MUST be present
1288 at all <edit-config> 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>
1297 <xs:group ref="OFResourceType"/>
1298 <xs:element name="number" type="xs:unsignedLong" minOccurs="0">
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 <get> requests. Since this element is not configurable with the
1312 NETCONF protocol it MUST NOT be included in replies to NETCONF
1313 <get-config> requests. </xs:documentation>
1316 <xs:element name="name" minOccurs="0">
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 <get> requests. Since this element is not configurable with
1328 the NETCONF protocol it MUST NOT be included in replies to NETCONF
1329 <get-config> requests. </xs:documentation>
1332 <xs:restriction base="xs:string">
1333 <xs:minLength value="1"/>
1334 <xs:maxLength value="16"/>
1338 <xs:element name="current-rate" type="xs:unsignedInt" minOccurs="0">
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 <get-config>
1345 requests. </xs:documentation>
1348 <xs:element name="max-rate" type="xs:unsignedInt" minOccurs="0">
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 <get-config>
1355 requests. </xs:documentation>
1358 <xs:element name="configuration" minOccurs="0">
1360 <xs:documentation> This element represents the general adminitrative
1361 configuration of the OpenFlow Port. </xs:documentation>
1365 <xs:element name="admin-state" minOccurs="0" type="OFUpDownStateType">
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>
1373 <xs:element name="no-receive" minOccurs="0" type="xs:boolean">
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>
1380 <xs:element name="no-forward" minOccurs="0" type="xs:boolean">
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>
1387 <xs:element name="no-packet-in" minOccurs="0" type="xs:boolean">
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'.
1397 <xs:attribute name="operation" type="xs:string"/>
1400 <xs:element name="state" minOccurs="0">
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 <get> operations. Attemps to modify this element
1405 and its children with a NETCONF <edit-config> operation MUST result in
1406 an 'operation-not-supported' error with type 'application'.
1411 <xs:element name="oper-state" minOccurs="0" type="OFUpDownStateType">
1413 <xs:documentation> If the value of this element is 'down', it
1414 indicates that there is no physical link present.
1418 <xs:element name="blocked" minOccurs="0" type="xs:boolean">
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>
1426 <xs:element name="live" minOccurs="0" type="xs:boolean">
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>
1436 <xs:choice minOccurs="0">
1437 <xs:element name="features" minOccurs="0">
1440 <xs:element name="current" minOccurs="0">
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 <get> operations. Attemps to modify this element and
1446 its children with a NETCONF <edit-config> operation
1447 MUST result in an 'operation-not-supported' error with type
1448 'application'. </xs:documentation>
1452 <xs:group ref="OFPortCurrentFeatureListType"/>
1456 <xs:element name="advertised" minOccurs="0">
1458 <xs:documentation> The features (rates, duplex, etc.) of the
1459 port, that are advertised to the peer port. NETCONF
1460 <edit-config> 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 <edit-config> 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>
1475 <xs:group minOccurs="0" ref="OFPortOtherFeatureListType"/>
1477 <xs:attribute name="operation" type="xs:string"/>
1480 <xs:element name="supported" minOccurs="0">
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 <get> operations. Attemps to modify this
1486 element and its children with a NETCONF <edit-config>
1487 operation MUST result in an 'operation-not-supported' error
1488 with type 'application'. </xs:documentation>
1492 <xs:group ref="OFPortOtherFeatureListType"/>
1496 <xs:element name="advertised-peer" minOccurs="0">
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 <get> operations. Attemps to modify this
1502 element and its children with a NETCONF <edit-config>
1503 operation MUST result in an 'operation-not-supported' error
1504 with type 'application'. </xs:documentation>
1508 <xs:group ref="OFPortOtherFeatureListType"/>
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 <get> operations. Attemps to modify this element and its children
1520 with a NETCONF <edit-config> 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>
1525 <xs:element name="tunnel" minOccurs="0">
1527 <xs:documentation> Properties of a basic IP-in-GRE tunnel.
1532 <xs:group ref="OFPortBaseTunnelType"/>
1538 <xs:element name="ipgre-tunnel" minOccurs="0">
1540 <xs:documentation> Properties of a IP-in-GRE tunnel.
1545 <xs:group ref="OFPortIPGRETunnelType"/>
1551 <xs:element name="vxlan-tunnel" minOccurs="0">
1553 <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
1557 <xs:group ref="OFPortVXLANTunnelType"/>
1563 <xs:element name="nvgre-tunnel" minOccurs="0">
1565 <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
1569 <xs:group ref="OFPortNVGRETunnelType"/>
1578 <xs:group name="OFResourceType">
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 <edit-config> operations MUST be implemented as follows: *
1584 The 'id' element MUST be present at all <edit-config> 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>
1593 <xs:element name="resource-id" type="inet:uri">
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.
1604 <xs:group name="OFPortVXLANTunnelType">
1606 <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
1609 <xs:group ref="OFPortBaseTunnelType"/>
1610 <xs:element name="vni-valid" type="xs:boolean">
1612 <xs:documentation> Indicates how the corresponding flag should be set in packets
1613 sent on the tunnel. </xs:documentation>
1616 <xs:element name="vni" type="xs:unsignedInt">
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.
1624 <xs:element name="vni-multicast-group" type="inet:ip-address">
1626 <xs:documentation> If IP multicast is used to support broadcast on the tunnel
1627 this specifies the corresponding multicast IP address </xs:documentation>
1630 <xs:element name="udp-source-port" type="inet:port-number">
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>
1636 <xs:element name="udp-dest-port" type="inet:port-number">
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>
1644 <xs:element name="udp-checksum" type="xs:boolean">
1646 <xs:documentation> Boolean flag to indicate whether or not the outer UDP
1647 checksum should be set </xs:documentation>
1652 <xs:group name="OFControllerType">
1654 <xs:documentation> This grouping specifies all properties of an OpenFlow Logical Switch
1655 Controller. NETCONF <edit-config> operations MUST be implemented as follows: *
1656 The 'id' element MUST be present at all <edit-config> 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>
1665 <xs:element name="id" type="OFConfigId">
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.
1674 <xs:element name="role" minOccurs="0">
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>
1687 <xs:restriction base="xs:string">
1688 <xs:enumeration value="master"/>
1689 <xs:enumeration value="slave"/>
1690 <xs:enumeration value="equal"/>
1694 <xs:element name="ip-address" type="inet:ip-address" minOccurs="0">
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 <edit-config> operation 'create',
1700 'merge' or 'replace' and the parent element does not exist, a 'data-missing'
1701 error is returned. </xs:documentation>
1704 <xs:element name="port" type="inet:port-number" minOccurs="0">
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.
1713 <xs:element name="local-ip-address" type="inet:ip-address" minOccurs="0">
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 <error-info> element MUST contain the name of this element in the
1722 <bad-element> element. </xs:documentation>
1725 <xs:element name="local-port" type="inet:port-number" minOccurs="0">
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 <error-info> element
1734 MUST contain the name of this element in the <bad-element> element.
1738 <xs:element name="protocol" minOccurs="0">
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'.
1746 <xs:restriction base="xs:string">
1747 <xs:enumeration value="tcp"/>
1748 <xs:enumeration value="tls"/>
1752 <xs:element name="state" minOccurs="0">
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 <get>
1758 operations. Attemps to modify this element and its children with a NETCONF
1759 <edit-config> operation MUST result in an 'operation-not-supported'
1760 error with type 'application'. </xs:documentation>
1764 <xs:element name="connection-state" minOccurs="0" type="OFUpDownStateType">
1766 <xs:documentation> This object indicates the connections state of
1767 the OpenFlow Logical Switch to this controller.
1771 <xs:element name="current-version" minOccurs="0"
1772 type="OFOpenFlowVersionType">
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>
1788 <xs:element name="supported-versions" minOccurs="0" maxOccurs="unbounded"
1789 type="OFOpenFlowVersionType">
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>
1796 <xs:element name="local-ip-address-in-use" minOccurs="0"
1797 type="inet:ip-address">
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.
1806 <xs:element name="local-port-in-use" minOccurs="0" type="inet:port-number">
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>
1825 <xs:element name="capable-switch">
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>
1834 <xs:element name="id" type="inet:uri">
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 <edit-config> operation 'create', 'merge' or 'replace' and the
1842 parent element does not exist, a 'data-missing' error is returned.
1846 <xs:element name="config-version" minOccurs="0" type="xs:string">
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.
1860 <xs:element name="configuration-points" minOccurs="0">
1863 <xs:element name="configuration-point" maxOccurs="unbounded">
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>
1872 <xs:group ref="OFConfigurationPointType"/>
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"/>
1883 <xs:element name="resources" minOccurs="0">
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.
1894 <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
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.
1903 <xs:group ref="OFPortType"/>
1907 <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
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.
1916 <xs:group ref="OFQueueType"/>
1918 <xs:attribute name="operation" type="xs:string"/>
1921 <xs:element name="owned-certificate" minOccurs="0" maxOccurs="unbounded">
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>
1930 <xs:group ref="OFOwnedCertificateType"/>
1934 <xs:element name="external-certificate" minOccurs="0"
1935 maxOccurs="unbounded">
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>
1944 <xs:group ref="OFExternalCertificateType"/>
1946 <xs:attribute name="operation" type="xs:string"/>
1949 <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
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.
1958 <xs:group ref="OFFlowTableType"/>
1964 <xs:key name="key_resources_capable-switch_port">
1965 <xs:selector xpath="of11-config:port"/>
1966 <xs:field xpath="of11-config:resource-id"/>
1968 <xs:key name="key_resources_capable-switch_queue">
1969 <xs:selector xpath="of11-config:queue"/>
1970 <xs:field xpath="of11-config:resource-id"/>
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"/>
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"/>
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"/>
1985 <xs:element name="logical-switches" minOccurs="0">
1987 <xs:documentation> This element contains a list of all OpenFlow Logical
1988 Switches available at the OpenFlow Capable Switch. </xs:documentation>
1992 <xs:element name="switch" maxOccurs="unbounded">
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.
2001 <xs:group ref="OFLogicalSwitchType"/>
2007 <xs:key name="key_logical-switches_capable-switch_switch">
2008 <xs:selector xpath="of11-config:switch"/>
2009 <xs:field xpath="of11-config:id"/>