backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / lib / of_config / of-config-1.1.1.xsd
diff --git a/ryu/build/lib.linux-armv7l-2.7/ryu/lib/of_config/of-config-1.1.1.xsd b/ryu/build/lib.linux-armv7l-2.7/ryu/lib/of_config/of-config-1.1.1.xsd
new file mode 100644 (file)
index 0000000..a31bfe9
--- /dev/null
@@ -0,0 +1,2015 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:yin="urn:ietf:params:xml:schema:yang:yin:1"
+    targetNamespace="urn:onf:of111:config:yang"
+    xmlns="urn:onf:of111:config:yang"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="2011-12-07"
+    xml:lang="en"
+    xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"
+    xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types"
+    xmlns:of11-config="urn:onf:of111:config:yang">
+    <xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-inet-types"
+              schemaLocation="ietf-inet-types.xsd"/>
+    <xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-yang-types"
+              schemaLocation="ietf-yang-types.xsd"/>
+    <xs:import namespace="urn:ietf:params:xml:ns:netconf:base:1.0"
+              schemaLocation="../netconf/netconf.xsd"/>
+    <xs:annotation>
+        <xs:documentation> This schema was generated from the YANG module of-config1.1.1 by pyang
+            version 1.2. The schema describes an instance document consisting of the entire
+            configuration data store, operational data, rpc operations, and notifications. This
+            schema can thus NOT be used as-is to validate NETCONF PDUs. </xs:documentation>
+    </xs:annotation>
+    <xs:annotation>
+        <xs:documentation> NETCONF Operational Considerations Elements that are configurable,
+            optional and have a default value MAY be reported by replies to NETCONF
+            &lt;get-config&gt; requests. All non-configurable values SHOULD be reported by replies
+            to NETCONF &lt;get&gt; requests. Attemps to modify non-configurable elements with a
+            NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported' error
+            with type 'application'. When validating an &lt;edit‐config&gt; operation the following
+            errors MUST be detected: * Delete requests for non-existent data. In this case a
+            'data-missing' error is returned. * Create requests for existent data. In this case a
+            'data-exists' error is returned. * If the NETCONF operation creates data nodes under a
+            'choice', any existing nodes from other branches are deleted. </xs:documentation>
+    </xs:annotation>
+    <!-- YANG typedefs -->
+    <xs:simpleType name="OFConfigId">
+        <xs:annotation>
+            <xs:documentation> Generic type of an identifier in OF-CONFIG </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="inet:uri"> </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFConfigurationPointProtocolType">
+        <xs:annotation>
+            <xs:documentation> Possible protocols to connect ot an OF Configuration Point
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="ssh"/>
+            <xs:enumeration value="soap"/>
+            <xs:enumeration value="tls"/>
+            <xs:enumeration value="beep"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFOpenFlowVersionType">
+        <xs:annotation>
+            <xs:documentation> This enumeration contains the all OpenFlow versions released so far.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="not-applicable"/>
+            <xs:enumeration value="1.0"/>
+            <xs:enumeration value="1.0.1"/>
+            <xs:enumeration value="1.1"/>
+            <xs:enumeration value="1.2"/>
+            <xs:enumeration value="1.3"/>
+            <xs:enumeration value="1.3.1"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="datapath-id-type">
+        <xs:annotation>
+            <xs:documentation> The datapath-id type represents an OpenFlow datapath identifier.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFTenthOfAPercentType">
+        <xs:annotation>
+            <xs:documentation> This type defines a value in tenth of a percent. </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:unsignedShort">
+            <xs:minInclusive value="0"/>
+            <xs:maxInclusive value="1000"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFUpDownStateType">
+        <xs:annotation>
+            <xs:documentation> Type to specify state information for a port or a connection.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="up"/>
+            <xs:enumeration value="down"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFPortRateType">
+        <xs:annotation>
+            <xs:documentation> Type to specify the rate of a port including the duplex transmission
+                feature. Possible rates are 10Mb, 100Mb, 1Gb, 10Gb, 40Gb, 100Gb, 1Tb or other. Rates
+                of 10Mb, 100Mb and 1 Gb can support half or full duplex transmission.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="10Mb-HD"/>
+            <xs:enumeration value="10Mb-FD"/>
+            <xs:enumeration value="100Mb-HD"/>
+            <xs:enumeration value="100Mb-FD"/>
+            <xs:enumeration value="1Gb-HD"/>
+            <xs:enumeration value="1Gb-FD"/>
+            <xs:enumeration value="10Gb"/>
+            <xs:enumeration value="40Gb"/>
+            <xs:enumeration value="100Gb"/>
+            <xs:enumeration value="1Tb"/>
+            <xs:enumeration value="other"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFActionType">
+        <xs:annotation>
+            <xs:documentation> The types of actions defined in OpenFlow Switch Specification
+                versions 1.2, 1.3, and 1.3.1</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="output"/>
+            <xs:enumeration value="copy-ttl-out"/>
+            <xs:enumeration value="copy-ttl-in"/>
+            <xs:enumeration value="set-mpls-ttl"/>
+            <xs:enumeration value="dec-mpls-ttl"/>
+            <xs:enumeration value="push-vlan"/>
+            <xs:enumeration value="pop-vlan"/>
+            <xs:enumeration value="push-mpls"/>
+            <xs:enumeration value="pop-mpls"/>
+            <xs:enumeration value="set-queue"/>
+            <xs:enumeration value="group"/>
+            <xs:enumeration value="set-nw-ttl"/>
+            <xs:enumeration value="dec-nw-ttl"/>
+            <xs:enumeration value="set-field"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFInstructionType">
+        <xs:annotation>
+            <xs:documentation> The types of instructions defined in OpenFlow Switch Specification
+                versions 1.2, 1.3, and 1.3.1. </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="apply-actions"/>
+            <xs:enumeration value="clear-actions"/>
+            <xs:enumeration value="write-actions"/>
+            <xs:enumeration value="write-metadata"/>
+            <xs:enumeration value="goto-table"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="OFMatchFieldType">
+        <xs:annotation>
+            <xs:documentation> The types of match field defined in OpenFlow Switch Specification
+                versions 1.2, 1.3, and 1.3.1. </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="input-port"/>
+            <xs:enumeration value="physical-input-port"/>
+            <xs:enumeration value="metadata"/>
+            <xs:enumeration value="ethernet-dest"/>
+            <xs:enumeration value="ethernet-src"/>
+            <xs:enumeration value="ethernet-frame-type"/>
+            <xs:enumeration value="vlan-id"/>
+            <xs:enumeration value="vlan-priority"/>
+            <xs:enumeration value="ip-dscp"/>
+            <xs:enumeration value="ip-ecn"/>
+            <xs:enumeration value="ip-protocol"/>
+            <xs:enumeration value="ipv4-src"/>
+            <xs:enumeration value="ipv4-dest"/>
+            <xs:enumeration value="tcp-src"/>
+            <xs:enumeration value="tcp-dest"/>
+            <xs:enumeration value="udp-src"/>
+            <xs:enumeration value="udp-dest"/>
+            <xs:enumeration value="sctp-src"/>
+            <xs:enumeration value="sctp-dest"/>
+            <xs:enumeration value="icmpv4-type"/>
+            <xs:enumeration value="icmpv4-code"/>
+            <xs:enumeration value="arp-op"/>
+            <xs:enumeration value="arp-src-ip-address"/>
+            <xs:enumeration value="arp-target-ip-address"/>
+            <xs:enumeration value="arp-src-hardware-address"/>
+            <xs:enumeration value="arp-target-hardware-address"/>
+            <xs:enumeration value="ipv6-src"/>
+            <xs:enumeration value="ipv6-dest"/>
+            <xs:enumeration value="ipv6-flow-label"/>
+            <xs:enumeration value="icmpv6-type"/>
+            <xs:enumeration value="icmpv6-code"/>
+            <xs:enumeration value="ipv6-nd-target"/>
+            <xs:enumeration value="ipv6-nd-source-link-layer"/>
+            <xs:enumeration value="ipv6-nd-target-link-layer"/>
+            <xs:enumeration value="mpls-label"/>
+            <xs:enumeration value="mpls-tc"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="hex-binary">
+        <xs:annotation>
+            <xs:documentation> hex binary encoded string </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:base64Binary"> </xs:restriction>
+    </xs:simpleType>
+    <!-- YANG groupings -->
+    <xs:group name="OFPortCurrentFeatureListType">
+        <xs:annotation>
+            <xs:documentation> The current features of a port. Elements in the type
+                OFPortCurrentFeatureListType are not configurable and can only be retrieved by
+                NETCONF &lt;get&gt; operations. Attemps to modify this element and its children with
+                a NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
+                error with type 'application'. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="rate" type="OFPortRateType">
+                <xs:annotation>
+                    <xs:documentation> The transmission rate that is currently used. The value MUST
+                        indicate a valid forwarding rate. The current Port Feature set MUST contain
+                        this element exactly once. The other Port Feature sets MAY contain this
+                        element more than once. If this element appears more than once in a Port
+                        Feature set than the value MUST be unique within the Port Feature set.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="auto-negotiate" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies the administrative state of the forwarding rate
+                        auto-negotiation protocol at this OpenFlow Port. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="medium">
+                <xs:annotation>
+                    <xs:documentation> This element MUST indicate a valid physical medium used by
+                        the OpenFlow Port. The current Port Feature set MUST contain this element
+                        exactly once. The other Port Feature sets MAY contain this element more than
+                        once. If this element appears more than once in a Port Feature set than the
+                        value MUST be unique within the Port Feature set. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="copper"/>
+                        <xs:enumeration value="fiber"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="pause">
+                <xs:annotation>
+                    <xs:documentation> Specifies if pausing of transmission is supported at all and
+                        if yes if it is asymmetric or symmetric. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="unsupported"/>
+                        <xs:enumeration value="symmetric"/>
+                        <xs:enumeration value="asymmetric"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortOtherFeatureListType">
+        <xs:annotation>
+            <xs:documentation> The features of a port that are supported or advertised. If the
+                elements in the OFPortOtherFeatureListType ares used as configurable elements the
+                NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: * The
+                'resource-id' element MUST be present in the path or in the filter at all
+                &lt;edit-config&gt; operations to identify the resource. * If the operation is
+                'merge' or 'replace', the element is created if it does not exist, and its value is
+                set to the value found in the XML RPC data. * If the operation is 'create', the
+                element is created if it does not exist. If the element already exists, a
+                'data‑exists' error is returned. * If the operation is 'delete', the element is
+                deleted if it exists. If the element does not exist, a 'data‑missing' error is
+                returned. If elements in the type OFPortOtherFeatureListType are used in an
+                non-configurable way, they only be retrieved by NETCONF &lt;get&gt; operations.
+                Attemps to modify this element and its children with a NETCONF &lt;edit-config&gt;
+                operation MUST result in an 'operation-not-supported' error with type 'application'.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="rate" type="OFPortRateType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The transmission rate that is supported or advertised.
+                        Multiple transmissions rates are allowed. At least one element MUST be
+                        present in the NETCONF data store. If none of this elements is are present
+                        in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace'
+                        and the parent element does not exist, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="auto-negotiate" type="xs:boolean" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> Specifies if auto-negotiation of transmission parameters is
+                        enabled for the port. This element is optional. If this element is not
+                        present it defaults to 'true'. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="medium" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The transmission medium used by the port. Multiple media are
+                        allowed. At least one element MUST be present in the NETCONF data store. If
+                        none of this elements is are present in a NETCONF &lt;edit-config&gt;
+                        operation 'create', 'merge' or 'replace' and the parent element does not
+                        exist, a 'data-missing' error is returned. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="copper"/>
+                        <xs:enumeration value="fiber"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="pause" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> Specifies if pausing of transmission is supported at all and
+                        if yes if it is asymmetric or symmetric. This element MUST be present in the
+                        NETCONF data store. If this element is not present in a NETCONF
+                        &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the parent
+                        element does not exist, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="unsupported"/>
+                        <xs:enumeration value="symmetric"/>
+                        <xs:enumeration value="asymmetric"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="DSAKeyValueType">
+        <xs:annotation>
+            <xs:documentation> DSA keys and the DSA signature algorithm are specified in 'FIPS PUB
+                186-2, Digital Signature Standard (DSS), U.S. Department of Commerce/National
+                Institute of Standards and Technology,
+                http://csrc.nist.gov/publications/fips/fips186-2/fips186-2.pdf'. DSA public key
+                values can have the following fields: P a prime modulus meeting the requirements of
+                the standard above Q an integer in the range 2**159 &lt; Q &lt; 2**160 which is a
+                prime divisor of P-1 G an integer with certain properties with respect to P and Q J
+                (P - 1) / Q Y G**X mod P (where X is part of the private key and not made public)
+                seed a DSA prime generation seed pgenCounter a DSA prime generation counter
+                Parameter J is avilable for inclusion solely for efficiency as it is calculatable
+                from P and Q. Parameters seed and pgenCounter are used in the DSA prime number
+                generation algorithm specified in the above standard. As such, they are optional but
+                MUST either both be present or both be absent. This prime generation algorithm is
+                designed to provide assurance that a weak prime is not being used and it yields a P
+                and Q value. Parameters P, Q, and G can be public and common to a group of users.
+                They might be known from application context. As such, they are optional but P and Q
+                MUST either both appear or both be absent. If all of P, Q, seed, and pgenCounter are
+                present, implementations are not required to check if they are consistent and are
+                free to use either P and Q or seed and pgenCounter. All parameters are encoded as
+                base64 values. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="P" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. It MUST be present in the NETCONF
+                        data store, if the element 'Q' is present. If element 'Q' is present in a
+                        NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and
+                        this element is missing, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="Q" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. It MUST be present in the NETCONF
+                        data store, if the element 'P' is present. If element 'P' is present in a
+                        NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and
+                        this element is missing, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="J" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="G" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="Y" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element MUST be present in the NETCONF data store. If
+                        this element is not present in a NETCONF &lt;edit-config&gt; operation
+                        'create', 'merge' or 'replace' and the parent element does not exist, a
+                        'data-missing' error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="Seed" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. It MUST be present in the NETCONF
+                        data store, if the element 'PgenCounter' is present. If element
+                        'PgenCounter' is present in a NETCONF &lt;edit-config&gt; operation
+                        'create', 'merge' or 'replace' and this element is missing, a 'data-missing'
+                        error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="PgenCounter" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element is optional. It MUST be present in the NETCONF
+                        data store, if the element 'Seed' is present. If element 'Seed' is present
+                        in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace'
+                        and this element is missing, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortBaseTunnelType">
+        <xs:annotation>
+            <xs:documentation> A group of common elements that are included in every supported
+                tunnel type. Tunnels are modeled as logical ports. One pair of local/remote
+                endpoints must exist for a tunnel configuration. Only elements from one choice must
+                exist at a time. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:choice>
+                <xs:sequence>
+                    <xs:element name="local-endpoint-ipv4-address" type="inet:ipv4-address">
+                        <xs:annotation>
+                            <xs:documentation> The IPv4 address of the local tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="remote-endpoint-ipv4-address" type="inet:ipv4-address">
+                        <xs:annotation>
+                            <xs:documentation> The IPv4 address of the remote tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+                <xs:sequence>
+                    <xs:element name="local-endpoint-ipv6-address" type="inet:ipv6-address">
+                        <xs:annotation>
+                            <xs:documentation> The IPv6 address of the local tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="remote-endpoint-ipv6-address" type="inet:ipv6-address">
+                        <xs:annotation>
+                            <xs:documentation> The IPv6 address of the remote tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+                <xs:sequence>
+                    <xs:element name="local-endpoint-mac-adress" type="yang:mac-address">
+                        <xs:annotation>
+                            <xs:documentation> The MAC address of the local tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="remote-endpoint-mac-adress" type="yang:mac-address">
+                        <xs:annotation>
+                            <xs:documentation> The MAC address of the remote tunnel endpoint.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:choice>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortIPGRETunnelType">
+        <xs:annotation>
+            <xs:documentation> Properties of a IP-in-GRE tunnel with key, checksum, and sequence
+                number information. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFPortBaseTunnelType"/>
+            <xs:element name="checksum-present" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Indicates presence of the GRE checksum. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="key-present" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Indicates presence of the GRE key. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="key" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> The (optional) key of the GRE tunnel. It MAY be used to set
+                        the OXM_OF_TUNNEL_ID match field metadata in the OpenFlow protocol
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="sequence-number-present" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Indicates presence of the GRE sequence number.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortNVGRETunnelType">
+        <xs:annotation>
+            <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFPortBaseTunnelType"/>
+            <xs:element name="tni" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> Specifies the tenant network identifier assigned to all
+                        packets sent on the tunnel </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="tni-resv" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> Used to set the reserved user-defined bits of the GRE key
+                        field </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="tni-multicast-group" type="inet:ip-address">
+                <xs:annotation>
+                    <xs:documentation> If IP multicast is used to support broadcast on the tunnel
+                        this element specifies the corresponding multicast IP address
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFQueueType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies all properties of a queue resource. NETCONF
+                &lt;edit-config&gt; operations MUST be implemented as follows: * The 'resource-id'
+                element of OFResoureType MUST be present at all &lt;edit-config&gt; operations to
+                identify the port. * If the operation is 'merge' or 'replace', the element is
+                created if it does not exist, and its value is set to the value found in the XML RPC
+                data. * If the operation is 'create', the element is created if it does not exist.
+                If the element already exists, a 'data‑exists' error is returned. * If the operation
+                is 'delete', the element is deleted if it exists. If the element does not exist, a
+                'data‑missing' error is returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFResourceType"/>
+            <xs:element name="id" type="xs:unsignedLong" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This id identifies the OpenFlow Queue to OpenFlow
+                        Controllers. It is assigned to an OpenFlow Queue latest when the OpenFlow
+                        Queue is associated with and OpenFlow Logical Switch. If the OpenFlow Queue
+                        is associated with an OpenFlow Logical Switch, this element MUST be unique
+                        within the context of the OpenFlow Logical Switch. OpenFlow Capable Switch
+                        implementations may choose to assign values to OpenFlow Queues that are
+                        unique within the context of the OpenFlow Logical Switch. These id can be
+                        used independent of assignments to OpenFlow Logical Switches. Other
+                        implementations may assign values to this element only if the OpenFlow Queue
+                        is assigned to an OpenFlow Logical Switch. If no value is currently assigned
+                        to this element then this element MUST NOT be included in replies to NETCONF
+                        &lt;get&gt; requests. Since this element is not configurable with the
+                        NETCONF protocol it MUST NOT be included in replies to NETCONF
+                        &lt;get-config&gt; requests. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="port" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> Reference to port resources in the Capable Switch. This
+                        element associates an OpenFlow Queue with an OpenFlow Port. If the OpenFlow
+                        Queue is associated with an OpenFlow Logical Switch S and this element is
+                        present, then it MUST be set to the value of element resource-id of an
+                        OpenFlow Port which is associated with the OpenFlow Logical Switch S. The
+                        element MUST refer to an element at the following path:
+                        /capable-switch/resources/port/resource-id </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="inet:uri"> </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="properties" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The queue properties currently configured.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="min-rate" minOccurs="0" type="OFTenthOfAPercentType">
+                            <xs:annotation>
+                                <xs:documentation> The minimal rate that is reserved for this queue
+                                    in 1/10 of a percent of the actual rate. This element is
+                                    optional. If not present a min-rate is not set.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="max-rate" minOccurs="0" type="OFTenthOfAPercentType">
+                            <xs:annotation>
+                                <xs:documentation> The maximum rate that is reserved for this queue
+                                    in 1/10 of a percent of the actual rate. This element is
+                                    optional. If not present the max-rate is not set.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="experimenter" minOccurs="0" maxOccurs="unbounded"
+                            type="xs:unsignedInt">
+                            <xs:annotation>
+                                <xs:documentation> A list of experimenter identifiers of queue
+                                    properties used. This element is optional. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFOwnedCertificateType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies a certificate and a private key. It can be
+                used by an OpenFlow Logical Switch for authenticating itself to a controller when a
+                TLS connection is established. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFResourceType"/>
+            <xs:element name="certificate" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation> An X.509 certificate in DER format base64 encoded. This
+                        element MUST be present in the NETCONF data store. If this element is not
+                        present in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or
+                        'replace' and the parent element does not exist, a 'data-missing' error is
+                        returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="private-key">
+                <xs:annotation>
+                    <xs:documentation> This element contains the private key corresponding to the
+                        certificate. The private key is encoded as specified in XML-Signature Syntax
+                        and Processing (http://www.w3.org/TR/2001/PR-xmldsig-core-20010820/).
+                        Currently the specification only support DSA and RSA keys. This element MUST
+                        be present in the NETCONF data store. If this element is not present in a
+                        NETCONF &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the
+                        parent element does not exist, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:group ref="KeyValueType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFExternalCertificateType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies a certificate that can be used by an OpenFlow
+                Logical Switch for authenticating a controller when a TLS connection is established.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFResourceType"/>
+            <xs:element name="certificate" type="xs:string" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> An X.509 certificate in DER format base64 encoded. This
+                        element MUST be present in the NETCONF data store. If this element is not
+                        present in a NETCONF &lt;edit-config&gt; operation 'create', 'merge' or
+                        'replace' and the parent element does not exist, a 'data-missing' error is
+                        returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFConfigurationPointType">
+        <xs:annotation>
+            <xs:documentation> Representation of an OpenFlow Configuration Point. Instances of the
+                Configuration Point class SHOULD be stored persistently across reboots of the
+                OpenFlow Capable Switch. When a connection is established between an OpenFlow
+                Capable Switch and a Configuration Point the switch MUST store the connection
+                information in an instance of the Configuration Point class. If such an instance
+                does not exist, the OpenFlow Capable Switch MUST create an instance where it then
+                stores the connection information. An OpenFlow Capable Switch that cannot initiate a
+                connection to a configuration point does not have to implement the Configuration
+                Point class. It SHOULD block attempts to write to instances of the Configuration
+                Point class with NETCONF &lt;edit-config&gt; operations. NETCONF &lt;edit-config&gt;
+                operations MUST be implemented as follows: * The 'id' element MUST be present at all
+                &lt;edit-config&gt; operations to identify the configuration point. * If the
+                operation is 'merge' or 'replace', the element is created if it does not exist, and
+                its value is set to the value found in the XML RPC data. * If the operation is
+                'create', the element is created if it does not exist. If the element already
+                exists, a 'data‑exists' error is returned. * If the operation is 'delete', the
+                element is deleted if it exists. If the element does not exist, a 'data‑missing'
+                error is returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="id" type="OFConfigId">
+                <xs:annotation>
+                    <xs:documentation> A unique but locally arbitrary identifier that identifies a
+                        Configuration Point within the context of an OpenFlow Capable Switch. This
+                        element MUST be present to identify the configuration point.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="uri" type="inet:uri">
+                <xs:annotation>
+                    <xs:documentation> A locator of the Configuration Point. It identifies the
+                        location of the Configuration Point as a service resource and MUST include
+                        all information necessary for the OpenFlow Capable Switch to connect to the
+                        Configuration Point or re-connect to it should it become disconnected. Such
+                        information MAY include, for example, protocol, fully qualified domain name,
+                        IP address, port number, etc. This element MUST be present in the NETCONF
+                        data store. If this element is not present in a NETCONF &lt;edit-config&gt;
+                        operation 'create', 'merge' or 'replace' and the parent element does not
+                        exist, a 'data-missing' error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="protocol" type="OFConfigurationPointProtocolType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The transport protocol that the Configuration Point uses when
+                        communicating via NETCONF with the OpenFlow Capable Switch. This element is
+                        optional. If it is not present its value defaults to 'ssh'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="RSAKeyValueType">
+        <xs:annotation>
+            <xs:documentation> RSA key values have two fields: Modulus and Exponent.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="Modulus" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element MUST be present in the NETCONF data store. If
+                        this element is not present in a NETCONF &lt;edit-config&gt; operation
+                        'create', 'merge' or 'replace' and the parent element does not exist, a
+                        'data-missing' error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="Exponent" type="xs:base64Binary">
+                <xs:annotation>
+                    <xs:documentation> This element MUST be present in the NETCONF data store. If
+                        this element is not present in a NETCONF &lt;edit-config&gt; operation
+                        'create', 'merge' or 'replace' and the parent element does not exist, a
+                        'data-missing' error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFFlowTableType">
+        <xs:annotation>
+            <xs:documentation> Representation of an OpenFlow Flow Table Resource. Elements in the
+                type OFFlowTableType are not configurable and can only be retrieved by NETCONF
+                &lt;get&gt; operations. Attemps to modify this element and its children with a
+                NETCONF &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
+                error with type 'application'. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFResourceType"/>
+            <xs:element name="max-entries" type="xs:unsignedByte" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The maximum number of flow entries supported by the flow
+                        table. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="next-tables" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> An array of resource-ids of all flow tables that can be
+                        directly reached from this table using the 'goto-table' instruction.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="table-id" maxOccurs="unbounded" type="inet:uri"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="instructions" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all instruction types supported by the flow
+                        table. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFInstructionType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="matches" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all match types supported by the flow table.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="write-actions" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all write action types supported by the flow
+                        table. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="apply-actions" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all apply action types supported by the flow
+                        table. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFActionType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="write-setfields" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all 'set-field' action types supported by the
+                        table using write actions. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="apply-setfields" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all 'set-field' action types supported by the
+                        table using apply actions. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="wildcards" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of all fields for which the table supports
+                        wildcarding. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" maxOccurs="unbounded" type="OFMatchFieldType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="metadata-match" type="hex-binary" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the bits of the metadata field on
+                        which the flow table can match. It is represented as 64-bit integer in
+                        hexadecimal digits([0-9a-fA-F]) format. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="metadata-write" type="hex-binary" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the bits of the metadata field on
+                        which flow table can write using the 'write-metadata' instruction. It is
+                        represented as 64-bit integer in hexadecimal digits([0-9a-fA-F]) format.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFLogicalSwitchType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies all properties of an OpenFlow Logical Switch.
+                Elements of type OFLogicalSwitchType cannot be created or deleted with NETCONF
+                &lt;edit-config&gt; operations 'create' or 'delete'. The other NETCONF
+                &lt;edit-config&gt; operations MUST be implemented as follows: * The 'id' element
+                MUST be present at all &lt;edit-config&gt; operations to identify the OpenFlow
+                Logical Switch. * If the operation is 'merge' or 'replace', and the element does not
+                exist, a 'data-missing' error is returned. If the element exists its value is set to
+                the value found in the XML RPC data. * If the operation is 'create', a
+                'operation-not-supported' error with type 'application' is returned. * If the
+                operation is 'delete', 'operation-not-supported' error with type 'application' is
+                returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="id" type="OFConfigId">
+                <xs:annotation>
+                    <xs:documentation> A unique but locally arbitrary identifier that identifies a
+                        Logical Switch within the context of an OpenFlow Capable Switch. It MUST be
+                        persistent across reboots of the OpenFlow Capable Switch. This element MUST
+                        be present to identify the OpenFlow Logical Switch. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="capabilities" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element contains all capability items that an OpenFlow
+                        Logical Switch MAY implement. This element and its children can only be
+                        retrieved by NETCONF &lt;get&gt; operation since it contain no configuration
+                        data. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:group ref="OFLogicalSwitchCapabilitiesType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="datapath-id" type="datapath-id-type" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The datapath identifier of the Logical Switch that uniquely
+                        identifies this Logical Switch within the context of all OpenFlow
+                        Controllers associated with the OpenFlow Logical Switch. The datapath
+                        identifier is a string value that MUST be formatted as a sequence of 8
+                        2-digit hexadecimal numbers that are separated by colons, for example,
+                        '01:23:45:67:89:ab:cd:ef'. When processing a datapath identifier, the case
+                        of the decimal digits MUST be ignored. This element MUST be present in the
+                        NETCONF data store. If this element is not present in a NETCONF
+                        &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the parent
+                        element does not exist, a 'data-missing' error is returned.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="enabled" type="xs:boolean" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the administrative state of the
+                        OpenFlow Logical Switch. A value of 'false' means the OpenFlow Logical
+                        Switch MUST NOT communicate with any OpenFlow Controllers, MUST NOT conduct
+                        any OpenFlow processing, and SHOULD NOT be utilizing computational or
+                        network resources of the underlying platform. This element is optional. If
+                        this element is not present it defaults to 'false'. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="check-controller-certificate" type="xs:boolean" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the behavior of the OpenFlow Logical
+                        Switch when connecting to an OpenFlow Controller. If set to value 'false',
+                        the logical switch will connect to a controller without checking any
+                        controller certificate. If set to value 'true', then the logical switch will
+                        connect to a controller with element &lt;protocol&gt; set to 'TLS', only if
+                        the controller provides a certificate that can be verified with one of the
+                        certificates stored in the list called external-certificates in the OpenFlow
+                        Capable Switch. If a certificate cannot be validated, the OpenFlow Logical
+                        Switch MUST terminate communication with the corresponding OpenFlow
+                        Controller, MUST NOT conduct any OpenFlow processing on requests of this
+                        OpenFlow controller, and SHOULD NOT further utilize any computational or
+                        network resources of for dealing with this connection. If set to value
+                        'true', the OpenFlow Logical Switch MUST NOT connect to any OpenFlow
+                        Controller that does not provide a certificate. This implies that it cannot
+                        connect to an OpenFlow controller that has the value of element protocol set
+                        to 'TCP'. Only connections with protocol 'TLS' are possible in this case.
+                        This element is optional. If this element is not present it defaults to
+                        'false'. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="lost-connection-behavior" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the the behavior of the OpenFlow
+                        Logical Switch in case it loses contact with all OpenFlow Controllers. There
+                        are two alternative modes in such a case: fails secure mode and fail
+                        standalone mode as defined by the OpenFlow protocol specification version
+                        1.2, section 6.4. These are the only allowed values for this element.
+                        Default is the fail secure mode. This element is optional. If this element
+                        is not present it defaults to 'failSecureMode'. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="failSecureMode"/>
+                        <xs:enumeration value="failStandaloneMode"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="controllers" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of controllers for this Logical switch. The element
+                        'id' of OFControllerType MUST be unique within this list.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="controller" maxOccurs="unbounded">
+                            <xs:annotation>
+                                <xs:documentation> The list of OpenFlow Controllers that are
+                                    assigned to the OpenFlow Logical Switch. The switch MUST NOT
+                                    connect to any OpenFlow Controller that is not contained in this
+                                    list. NETCONF &lt;edit-config&gt; operations MUST be implemented
+                                    as follows: * The 'id' element MUST be present at all
+                                    &lt;editconfig&gt; operations to identify the controller. * If
+                                    the operation is 'merge' or 'replace', the element is created if
+                                    it does not exist, and its value is set to the value found in
+                                    the XML RPC data. * If the operation is 'create', the element is
+                                    created if it does not exist. If the element already exists, a
+                                    'data‑exists' error is returned. * If the operation is 'delete',
+                                    the element is deleted if it exists. If the element does not
+                                    exist, a 'data‑missing' error is returned. </xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:sequence>
+                                    <xs:group ref="OFControllerType"/>
+                                </xs:sequence>
+                                <xs:attribute name="operation" type="xs:string"/>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+                <xs:key name="key_controllers_controller">
+                    <xs:selector xpath="of11-config:controller"/>
+                    <xs:field xpath="of11-config:id"/>
+                </xs:key>
+            </xs:element>
+            <xs:element name="resources" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The list of identifiers of all resources of the OpenFlow
+                        Capable Switch that the OpenFlow Logical Switch has exclusive or
+                        non-exclusive access to. A resource is identified by the value of its
+                        resource-identifier element. For each resource identifier value in this
+                        list, there MUST be an element with a matching resource identifier value in
+                        the resources list of the OpenFlow Capable Switch. Identifiers of this list
+                        are contained in elements indicating the type of resource: 'port', 'queue',
+                        'certificate', or 'flow-table'. Depending on the type, different constraints
+                        apply. These are specified in separate descriptions per type. At present the
+                        elements in this lists are not configurable and can only be retrieved by
+                        NETCONF &lt;get&gt; or &lt;getconfig&gt; operations. Attemps to modify this
+                        element and its children with a NETCONF &lt;edit-config&gt; operation MUST
+                        result in an 'operation-not-supported' error with type 'application'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
+                            <xs:annotation>
+                                <xs:documentation> A resource identifier of a port of the OpenFlow
+                                    Capable Switch that the OpenFlow Logical Switch has exclusive
+                                    access to. The elements in this list MUST refer to elements at
+                                    the following path: /capable-switch/resources/port/resource-id
+                                    Elements in this list MUST be unique. This means each port
+                                    element can only be referenced once. </xs:documentation>
+                            </xs:annotation>
+                            <xs:simpleType>
+                                <xs:restriction base="inet:uri"> </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                        <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
+                            <xs:annotation>
+                                <xs:documentation> A resource identifier of a queue of the OpenFlow
+                                    Capable Switch that the OpenFlow Logical Switch has exclusive
+                                    access to. The elements in this list MUST refer to elements at
+                                    the following path: /capable-switch/resources/queue/resource-id
+                                    Elements in this list MUST be unique. This means each queue
+                                    element can only be referenced once. </xs:documentation>
+                            </xs:annotation>
+                            <xs:simpleType>
+                                <xs:restriction base="inet:uri"> </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                        <xs:element name="certificate" minOccurs="0">
+                            <xs:annotation>
+                                <xs:documentation> The resource identifier of the owned certificate
+                                    in the OpenFlow Capable Switch that the OpenFlow Logical Switch
+                                    uses to identify itself. This element MUST NOT occur more than
+                                    once in an OpenFlow Logical Switch's resource list. If no such
+                                    element is in an OpenFlow Logical Switch's resource list, then
+                                    the OpenFlow Logical Switch does not authenticate itself towards
+                                    an OpenFloe Controller with a certificate. If this element is
+                                    present, then the OpenFlow Logical Switch MUST provide this
+                                    certificate for authentication to an OpenFlow Controller when
+                                    setting up a TLS connection. For TCP connections this element is
+                                    irrelevant. The element MUST refer to an element at the
+                                    following path:
+                                    /capable-switch/resources/owned-certificate/resource-id
+                                </xs:documentation>
+                            </xs:annotation>
+                            <xs:simpleType>
+                                <xs:restriction base="inet:uri"> </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                        <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
+                            <xs:annotation>
+                                <xs:documentation> A resource identifier of a flow table of the
+                                    OpenFlow Capable Switch that the OpenFlow Logical Switch has
+                                    exclusive access to. The elements in this list MUST refer to
+                                    elements at the following path:
+                                    /capable-switch/resources/flow-table/resource-id Elements in
+                                    this list MUST be unique. This means each flow-table element can
+                                    only be referenced once. </xs:documentation>
+                            </xs:annotation>
+                            <xs:simpleType>
+                                <xs:restriction base="inet:uri"> </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="KeyValueType">
+        <xs:annotation>
+            <xs:documentation> The KeyValue element contains a single public key that may be useful
+                in validating the signature. NETCONF &lt;edit-config&gt; operations MUST be
+                implemented as follows: * Exactly one of the elemenst 'DSAKeyValue' or 'RSAKeyValue'
+                all &lt;edit-config&gt; operations. * If the operation is 'merge' or 'replace', the
+                element is created if it does not exist, and its value is set to the value found in
+                the XML RPC data. * If the operation is 'create', the element is created if it does
+                not exist. If the element already exists, a 'data‑exists' error is returned. * If
+                the operation is 'delete', the element is deleted if it exists. If the element does
+                not exist, a 'data‑missing' error is returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:choice>
+                <xs:sequence>
+                    <xs:element name="DSAKeyValue">
+                        <xs:complexType>
+                            <xs:sequence>
+                                <xs:group ref="DSAKeyValueType"/>
+                            </xs:sequence>
+                        </xs:complexType>
+                    </xs:element>
+                </xs:sequence>
+                <xs:sequence>
+                    <xs:element name="RSAKeyValue">
+                        <xs:complexType>
+                            <xs:sequence>
+                                <xs:group ref="RSAKeyValueType"/>
+                            </xs:sequence>
+                        </xs:complexType>
+                    </xs:element>
+                </xs:sequence>
+            </xs:choice>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFLogicalSwitchCapabilitiesType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies all properties of an OpenFlow logical
+                switch's capabilities. Elements in the type OFLogicalSwitchCapabilitiesType are not
+                configurable and can only be retrieved by NETCONF &lt;get&gt; operations. Attemps to
+                modify this element and its children with a NETCONF &lt;edit-config&gt; operation
+                MUST result in an 'operation-not-supported' error with type 'application'.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="max-buffered-packets" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> The maximum number of packets the logical switch can buffer
+                        when sending packets to the controller using packet-in messages.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="max-tables" type="xs:unsignedByte">
+                <xs:annotation>
+                    <xs:documentation> The number of flow tables supported by the logical switch.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="max-ports" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> The number of flow tables supported by the logical switch.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="flow-statistics" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports flow statistics.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="table-statistics" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports table statistics.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="port-statistics" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports port statistics.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="group-statistics" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports group statistics.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="queue-statistics" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports queue statistics.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="reassemble-ip-fragments" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Specifies if the logical switch supports reassemble IP
+                        fragments. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="block-looping-ports" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> 'true' indicates that a switch protocol outside of OpenFlow,
+                        such as 802.1D Spanning Tree, will detect topology loops and block ports to
+                        prevent packet loops. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="reserved-port-types">
+                <xs:annotation>
+                    <xs:documentation> Specify generic forwarding actions such as sending to the
+                        controller, flooding, or forwarding using non-OpenFlow methods, such as
+                        'normal' switch processing. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
+                            <xs:simpleType>
+                                <xs:restriction base="xs:string">
+                                    <xs:enumeration value="all"/>
+                                    <xs:enumeration value="controller"/>
+                                    <xs:enumeration value="table"/>
+                                    <xs:enumeration value="inport"/>
+                                    <xs:enumeration value="any"/>
+                                    <xs:enumeration value="normal"/>
+                                    <xs:enumeration value="flood"/>
+                                </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="group-types">
+                <xs:annotation>
+                    <xs:documentation> Specify the group types supported by the logical switch.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" minOccurs="0" maxOccurs="unbounded">
+                            <xs:simpleType>
+                                <xs:restriction base="xs:string">
+                                    <xs:enumeration value="all"/>
+                                    <xs:enumeration value="select"/>
+                                    <xs:enumeration value="indirect"/>
+                                    <xs:enumeration value="fast-failover"/>
+                                </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="group-capabilities">
+                <xs:annotation>
+                    <xs:documentation> Specify the group capabilities supported by the logical
+                        switch. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="capability" minOccurs="0" maxOccurs="unbounded">
+                            <xs:simpleType>
+                                <xs:restriction base="xs:string">
+                                    <xs:enumeration value="select-weight"/>
+                                    <xs:enumeration value="select-liveness"/>
+                                    <xs:enumeration value="chaining"/>
+                                    <xs:enumeration value="chaining-check"/>
+                                </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="action-types">
+                <xs:annotation>
+                    <xs:documentation> Specify the action types supported by the logical switch.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
+                            type="OFActionType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="instruction-types">
+                <xs:annotation>
+                    <xs:documentation> Specify the instruction types supported by the logical
+                        switch. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="type" minOccurs="0" maxOccurs="unbounded"
+                            type="OFInstructionType"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortType">
+        <xs:annotation>
+            <xs:documentation> This element specifies all properties of an OpenFlow resource of type
+                OpenFlow Port. It represent a physical port or a logical port of the OpenFlow
+                Capable Switch and can be assigned for exclusive use to an OpenFlow Logical Switch.
+                A logical port represents a tunnel endpoint as described in the OpenFlow protocol
+                specification versions 1.3 - 1.3.1. NETCONF &lt;edit-config&gt; operations MUST be
+                implemented as follows: * The 'resource-id' element of OFResoureType MUST be present
+                at all &lt;edit-config&gt; operations to identify the port. * If the operation is
+                'merge' or 'replace', the element is created if it does not exist, and its value is
+                set to the value found in the XML RPC data. * If the operation is 'create', the
+                element is created if it does not exist. If the element already exists, a
+                'data‑exists' error is returned. * If the operation is 'delete', the element is
+                deleted if it exists. If the element does not exist, a 'data‑missing' error is
+                returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFResourceType"/>
+            <xs:element name="number" type="xs:unsignedLong" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This number identifies the OpenFlow Port to OpenFlow
+                        Controllers. It is assigned to an OpenFlow Port latest when the OpenFlow
+                        Port is associated with and OpenFlow Logical Switch. If the OpenFlow Port is
+                        associated with an OpenFlow Logical Switch, this element MUST be unique
+                        within the context of the OpenFlow Logical Switch. OpenFlow Capable Switch
+                        implementations may choose to assign values to OpenFlow Ports that are
+                        unique within the context of the OpenFlow Logical Switch. These numbers can
+                        be used independent of assignments to OpenFlow Logical Switches. Other
+                        implementations may assign values to this element only if the OpenFlow Port
+                        is assigned to an OpenFlow Logical Switch. If no value is currently assigned
+                        to this element then this element MUST NOT be included in replies to NETCONF
+                        &lt;get&gt; requests. Since this element is not configurable with the
+                        NETCONF protocol it MUST NOT be included in replies to NETCONF
+                        &lt;get-config&gt; requests. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="name" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element assists OpenFlow Controllers in identifying
+                        OpenFlow Ports. This element is not to be set by the OP-CONFIG protocol, but
+                        it is set by the switch implementation. It may be set at start-up time of an
+                        OpenFlow Capable Switch or when the OpenFlow Port is assigned to an OpenFlow
+                        Logical Switch. It MAY also be not set at all. If this element is set to a
+                        value other than the empty string when being assigned to an OpenFlow Logical
+                        Switch, then the value of this element MUST be unique within the context of
+                        the OpenFlow Logical Switch. If no value or the empty string is currently
+                        assigned to this element then this element MUST not be included in replies
+                        to NETCONF &lt;get&gt; requests. Since this element is not configurable with
+                        the NETCONF protocol it MUST NOT be included in replies to NETCONF
+                        &lt;get-config&gt; requests. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:minLength value="1"/>
+                        <xs:maxLength value="16"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="current-rate" type="xs:unsignedInt" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the current bit rate of the port. Its
+                        values is to be provided in units of kilobit per second (kbps). This element
+                        is only valid if the element called 'rate' in the current Port Features has
+                        a value of 'other'. Since this element is not configurable with the NETCONF
+                        protocol it MUST NOT be included in replies to NETCONF &lt;get-config&gt;
+                        requests. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="max-rate" type="xs:unsignedInt" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the maximum bit rate of the port. Its
+                        values is to be provided in units of kilobit per second (kbps). This element
+                        is only valid if the element called 'rate' in the current Port Features has
+                        a value of 'other'. Since this element is not configurable with the NETCONF
+                        protocol it MUST NOT be included in replies to NETCONF &lt;get-config&gt;
+                        requests. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="configuration" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element represents the general adminitrative
+                        configuration of the OpenFlow Port. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="admin-state" minOccurs="0" type="OFUpDownStateType">
+                            <xs:annotation>
+                                <xs:documentation> The administrative state of the port. If true,
+                                    the port has been administratively brought down and SHOULD not
+                                    be used by OpenFlow. This element is optional. If this element
+                                    is not present it defaults to 'up'. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="no-receive" minOccurs="0" type="xs:boolean">
+                            <xs:annotation>
+                                <xs:documentation> If true, packets received at this OpenFlow port
+                                    SHOULD be dropped. This element is optional. If this element is
+                                    not present it defaults to 'false'. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="no-forward" minOccurs="0" type="xs:boolean">
+                            <xs:annotation>
+                                <xs:documentation> If true, packets forwarded to this OpenFlow port
+                                    SHOULD be dropped. This element is optional. If this element is
+                                    not present it defaults to 'false'. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="no-packet-in" minOccurs="0" type="xs:boolean">
+                            <xs:annotation>
+                                <xs:documentation> If true, packets received on that port that
+                                    generate a table miss should never trigger a packet-in message
+                                    to the OpenFlow Controller. This element is optional. If this
+                                    element is not present it defaults to 'false'.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:sequence>
+                    <xs:attribute name="operation" type="xs:string"/>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="state" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element represents the general operational state of the
+                        OpenFlow Port. Children of this element are not configurable and can only be
+                        retrieved by NETCONF &lt;get&gt; operations. Attemps to modify this element
+                        and its children with a NETCONF &lt;edit-config&gt; operation MUST result in
+                        an 'operation-not-supported' error with type 'application'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="oper-state" minOccurs="0" type="OFUpDownStateType">
+                            <xs:annotation>
+                                <xs:documentation> If the value of this element is 'down', it
+                                    indicates that there is no physical link present.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="blocked" minOccurs="0" type="xs:boolean">
+                            <xs:annotation>
+                                <xs:documentation> If the value of this element is 'true', it
+                                    indicates that a switch protocol outside of OpenFlow, such as
+                                    802.1D Spanning Tree, is preventing the use of this OpenFlow
+                                    port for OpenFlow flooding. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="live" minOccurs="0" type="xs:boolean">
+                            <xs:annotation>
+                                <xs:documentation> If the value of this element is 'true', it
+                                    indicates that this OpenFlow Port is live and can be used for
+                                    fast failover. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:choice minOccurs="0">
+                <xs:element name="features" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="current" minOccurs="0">
+                                <xs:annotation>
+                                    <xs:documentation> The features (rates, duplex, etc.) of the
+                                        port, that are currently in use. Children of this element
+                                        are not configurable and can only be retrieved by NETCONF
+                                        &lt;get&gt; operations. Attemps to modify this element and
+                                        its children with a NETCONF &lt;edit-config&gt; operation
+                                        MUST result in an 'operation-not-supported' error with type
+                                        'application'. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFPortCurrentFeatureListType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="advertised" minOccurs="0">
+                                <xs:annotation>
+                                    <xs:documentation> The features (rates, duplex, etc.) of the
+                                        port, that are advertised to the peer port. NETCONF
+                                        &lt;edit-config&gt; operations MUST be implemented as
+                                        follows: * The 'resource-id' element of OFResoureType MUST
+                                        be present in the path or in the filter at all
+                                        &lt;edit-config&gt; operations to identify the port. * If
+                                        the operation is 'merge' or 'replace', the element is
+                                        created if it does not exist, and its value is set to the
+                                        value found in the XML RPC data. * If the operation is
+                                        'create', the element is created if it does not exist. If
+                                        the element already exists, a 'data‑exists' error is
+                                        returned. * If the operation is 'delete', the element is
+                                        deleted if it exists. If the element does not exist, a
+                                        'data‑missing' error is returned. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group minOccurs="0" ref="OFPortOtherFeatureListType"/>
+                                    </xs:sequence>
+                                    <xs:attribute name="operation" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="supported" minOccurs="0">
+                                <xs:annotation>
+                                    <xs:documentation> The features (rates, duplex, etc.) of the
+                                        port, that are supported on the port. Children of this
+                                        element are not configurable and can only be retrieved by
+                                        NETCONF &lt;get&gt; operations. Attemps to modify this
+                                        element and its children with a NETCONF &lt;edit-config&gt;
+                                        operation MUST result in an 'operation-not-supported' error
+                                        with type 'application'. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFPortOtherFeatureListType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="advertised-peer" minOccurs="0">
+                                <xs:annotation>
+                                    <xs:documentation> The features (rates, duplex, etc.) that are
+                                        currently advertised by the peer port. Children of this
+                                        element are not configurable and can only be retrieved by
+                                        NETCONF &lt;get&gt; operations. Attemps to modify this
+                                        element and its children with a NETCONF &lt;edit-config&gt;
+                                        operation MUST result in an 'operation-not-supported' error
+                                        with type 'application'. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFPortOtherFeatureListType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                    </xs:complexType>
+                </xs:element>
+                <xs:choice>
+                    <xs:annotation>
+                        <xs:documentation> Tunnels are modeled as logical ports. Elements in this
+                            choice are not configurable and can only be retrieved by NETCONF
+                            &lt;get&gt; operations. Attemps to modify this element and its children
+                            with a NETCONF &lt;edit-config&gt; operation MUST result in an
+                            'operation-not-supported' error with type 'application'. Only elements
+                            from one choice must exist at a time. </xs:documentation>
+                    </xs:annotation>
+                    <xs:sequence>
+                        <xs:element name="tunnel" minOccurs="0">
+                            <xs:annotation>
+                                <xs:documentation> Properties of a basic IP-in-GRE tunnel.
+                                </xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:sequence>
+                                    <xs:group ref="OFPortBaseTunnelType"/>
+                                </xs:sequence>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:sequence>
+                    <xs:sequence>
+                        <xs:element name="ipgre-tunnel" minOccurs="0">
+                            <xs:annotation>
+                                <xs:documentation> Properties of a IP-in-GRE tunnel.
+                                </xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:sequence>
+                                    <xs:group ref="OFPortIPGRETunnelType"/>
+                                </xs:sequence>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:sequence>
+                    <xs:sequence>
+                        <xs:element name="vxlan-tunnel" minOccurs="0">
+                            <xs:annotation>
+                                <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:sequence>
+                                    <xs:group ref="OFPortVXLANTunnelType"/>
+                                </xs:sequence>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:sequence>
+                    <xs:sequence>
+                        <xs:element name="nvgre-tunnel" minOccurs="0">
+                            <xs:annotation>
+                                <xs:documentation> Properties of a NVGRE tunnel. </xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:sequence>
+                                    <xs:group ref="OFPortNVGRETunnelType"/>
+                                </xs:sequence>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:choice>
+            </xs:choice>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFResourceType">
+        <xs:annotation>
+            <xs:documentation> This element specifies a generic OpenFlow resource that is used as a
+                basis for specific resources. Even though this element is not used on its own the
+                following rules for NETCONF operations MUST be obeyed also by elemnts using this
+                element. NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: *
+                The 'id' element MUST be present at all &lt;edit-config&gt; operations to identify
+                the resource. * If the operation is 'merge' or 'replace', the element is created if
+                it does not exist, and its value is set to the value found in the XML RPC data. * If
+                the operation is 'create', the element is created if it does not exist. If the
+                element already exists, a 'data‑exists' error is returned. * If the operation is
+                'delete', the element is deleted if it exists. If the element does not exist, a
+                'data‑missing' error is returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="resource-id" type="inet:uri">
+                <xs:annotation>
+                    <xs:documentation> A unique but locally arbitrary identifier that uniquely
+                        identifies an OpenFlow Port within the context of an OpenFlow Logical
+                        Switch. It MUST be persistent across reboots of the OpenFlow Capable Switch.
+                        This element MUST be present to identify the OpenFlow resource.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFPortVXLANTunnelType">
+        <xs:annotation>
+            <xs:documentation> Properties of a VxLAN tunnel. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:group ref="OFPortBaseTunnelType"/>
+            <xs:element name="vni-valid" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Indicates how the corresponding flag should be set in packets
+                        sent on the tunnel. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="vni" type="xs:unsignedInt">
+                <xs:annotation>
+                    <xs:documentation> Virtual network identifier assigned to all packets sent on
+                        the tunnel. A VxLAN implementation MAY use the this element to set the
+                        OXM_OF_TUNNEL_ID match field metadata in the OpenFlow protocol.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="vni-multicast-group" type="inet:ip-address">
+                <xs:annotation>
+                    <xs:documentation> If IP multicast is used to support broadcast on the tunnel
+                        this specifies the corresponding multicast IP address </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="udp-source-port" type="inet:port-number">
+                <xs:annotation>
+                    <xs:documentation> Specifies the outer UDP source port number. If this element
+                        is absent, the port number MAY be chosen dynamically. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="udp-dest-port" type="inet:port-number">
+                <xs:annotation>
+                    <xs:documentation> Specifies the outer UDP destination port number. It is
+                        intended to reserve a port number for VxLAN at IANA. As soon as this has
+                        been reserved, the reserved number SHOULD become the default value for this
+                        element. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="udp-checksum" type="xs:boolean">
+                <xs:annotation>
+                    <xs:documentation> Boolean flag to indicate whether or not the outer UDP
+                        checksum should be set </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:group name="OFControllerType">
+        <xs:annotation>
+            <xs:documentation> This grouping specifies all properties of an OpenFlow Logical Switch
+                Controller. NETCONF &lt;edit-config&gt; operations MUST be implemented as follows: *
+                The 'id' element MUST be present at all &lt;edit-config&gt; operations to identify
+                the controller. * If the operation is 'merge' or 'replace', the element is created
+                if it does not exist, and its value is set to the value found in the XML RPC data. *
+                If the operation is 'create', the element is created if it does not exist. If the
+                element already exists, a 'data‑exists' error is returned. * If the operation is
+                'delete', the element is deleted if it exists. If the element does not exist, a
+                'data‑missing' error is returned. </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="id" type="OFConfigId">
+                <xs:annotation>
+                    <xs:documentation> A unique but locally arbitrary identifier that uniquely
+                        identifies an OpenFlow Controller within the context of an OpenFlow Capable
+                        Switch. It MUST be persistent across reboots of the OpenFlow Capable Switch.
+                        This element MUST be present to identify the OpenFlow controller.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="role" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This element indicates the role of the OpenFlow Controller.
+                        Semantics of these roles are specified in the OpenFlow specifications 1.0 -
+                        1.3.1. It is RECOMMENDED that the roles of controllers are not configured by
+                        OF-CONFIG 1.1.1 but determined using the OpenFlow protocol. OpenFlow
+                        Controllers configured by OF-CONFIG 1.1.1 have the default role 'equal'. A
+                        role other than 'equal' MAY be assigned to a controller. Roles 'slave' and
+                        'equal' MAY be assigned to multiple controllers. Role 'master' MUST NOT be
+                        assigned to more than one controller. This element is optional. If this
+                        element is not present it defaults to 'equal'. </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="master"/>
+                        <xs:enumeration value="slave"/>
+                        <xs:enumeration value="equal"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="ip-address" type="inet:ip-address" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The IP address of the OpenFlow Controller. This IP address is
+                        used by the OpenFlow Logical Switch when connecting to the OpenFlow
+                        Controller. This element MUST be present in the NETCONF data store. If this
+                        element is not present in a NETCONF &lt;edit-config&gt; operation 'create',
+                        'merge' or 'replace' and the parent element does not exist, a 'data-missing'
+                        error is returned. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="port" type="inet:port-number" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The TCP port number at the OpenFlow Controller. This port
+                        number is used by the OpenFlow Logical Switch when connecting to the
+                        OpenFlow Controller using TCP or TLS. The default value is 6633. This
+                        element is optional. If this element is not present it defaults to 6633.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="local-ip-address" type="inet:ip-address" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The local IP address of the OpenFlow Logical Switch when
+                        connecting to this OpenFlow Controller. It is the source IP address of
+                        packets sent to this OpenFlow Controller. If present, this element overrides
+                        any default IP address. This element is optional. Attempts to set this
+                        element to an IP address that cannot be used by the OpenFlow Logical Switch
+                        MUST result in an 'bad-element' error with type 'application'. The
+                        &lt;error-info&gt; element MUST contain the name of this element in the
+                        &lt;bad-element&gt; element. </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="local-port" type="inet:port-number" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The local TCP port number of the OpenFlow Logical Switch when
+                        connecting to this OpenFlow Controller. It is the source TCP port number of
+                        packets sent to this OpenFlow Controller. If this element is not present,
+                        then the port number is chosen arbitrarily by the OpenFlow Logical Switch.
+                        This element is optional. Attempts to set this element to a port number that
+                        cannot be used by the OpenFlow Logical Switch MUST result in an
+                        'bad-element' error with type 'application'. The &lt;error-info&gt; element
+                        MUST contain the name of this element in the &lt;bad-element&gt; element.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="protocol" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> The default protocol tha the OpenFlow Logical Switch uses to
+                        connect to this OpenFlow Controller. 'tls' is the default value. This
+                        element is optional. If this element is not present it defaults to 'tls'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="tcp"/>
+                        <xs:enumeration value="tls"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+            <xs:element name="state" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation> This container holds connection state information that
+                        indicate the connection state of the OpenFlow Logical Switch and the
+                        OpenFlow protocol version used for the connection. Children of this element
+                        are not configurable and can only be retrieved by NETCONF &lt;get&gt;
+                        operations. Attemps to modify this element and its children with a NETCONF
+                        &lt;edit-config&gt; operation MUST result in an 'operation-not-supported'
+                        error with type 'application'. </xs:documentation>
+                </xs:annotation>
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="connection-state" minOccurs="0" type="OFUpDownStateType">
+                            <xs:annotation>
+                                <xs:documentation> This object indicates the connections state of
+                                    the OpenFlow Logical Switch to this controller.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="current-version" minOccurs="0"
+                            type="OFOpenFlowVersionType">
+                            <xs:annotation>
+                                <xs:documentation> This object indicates the version of the OpenFlow
+                                    protocol used between the OpenFlow Logical Switch and this
+                                    Controller. If element connection-state has value 'up', then
+                                    this element indicates the actual version in use. If element
+                                    connection-state has value 'down', then this element indicates
+                                    the version number of the last established connection with this
+                                    OpenFlow Controller. The value of this element MAY be persistent
+                                    across reboots of the OpenFlow Logical Switch in such a case. If
+                                    element connection-state has value 'down'and there is no
+                                    information about previous connections to this OpenFlow
+                                    controller, then this element is not present or has the value
+                                    '0'. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="supported-versions" minOccurs="0" maxOccurs="unbounded"
+                            type="OFOpenFlowVersionType">
+                            <xs:annotation>
+                                <xs:documentation> This list of elements includes one entry for each
+                                    OpenFlow protocol version that this OpenFlow controller
+                                    supports. It SHOULD contain all </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="local-ip-address-in-use" minOccurs="0"
+                            type="inet:ip-address">
+                            <xs:annotation>
+                                <xs:documentation> The local IP address of the OpenFlow Logical
+                                    Switch when connecting to this OpenFlow Controller. It is the
+                                    source IP address of packets sent to this OpenFlow Controller.
+                                    If present, this element overrides any default IP address.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="local-port-in-use" minOccurs="0" type="inet:port-number">
+                            <xs:annotation>
+                                <xs:documentation> The local TCP port number of the OpenFlow Logical
+                                    Switch. If element connection-state has value 'up', then this
+                                    element indicates the actual port number in use. If element
+                                    connection-state has value 'down', then this element indicates
+                                    the port number used for the last attempt to establish a
+                                    connection with this OpenFlow Controller.??? When connecting to
+                                    this OpenFlow Controller, it is the source TCP port number of
+                                    packets sent to this OpenFlow Controller. If this element has
+                                    its defaqult value 0, then port number is chosen arbitrarily by
+                                    the OpenFlow Logical Switch. </xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:group>
+    <xs:element name="capable-switch">
+        <xs:annotation>
+            <xs:documentation> The OpenFlow Capable Switch serves as the root element for an
+                OpenFlow configuration. It contains logical switches and resources that can be
+                assigned to logical switches. It may have relations to OpenFlow Configuration
+                Points. </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="id" type="inet:uri">
+                    <xs:annotation>
+                        <xs:documentation> A unique but locally arbitrary identifier that uniquely
+                            identifies a Capable Switch within the context of potential OpenFlow
+                            Configuration Points. It MUST be persistent across reboots of the
+                            OpenFlow Capable Switch. This element MUST be present in the NETCONF
+                            data store. If this element is not present in a NETCONF
+                            &lt;edit-config&gt; operation 'create', 'merge' or 'replace' and the
+                            parent element does not exist, a 'data-missing' error is returned.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="config-version" minOccurs="0" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation> The maximum supported OF-CONFIG version that is supported
+                            by the OpenFlow Capable Switch. For switches implementing this version
+                            of the OF-CONFIG protocol this MUST always be 1.1.1. This object can be
+                            used to identify the OF-CONFIG version a capable switch supports
+                            beginning with version 1.1.1 of OF-CONFIG. In addtion the supported
+                            version can be determined by the namespace the OpenFlow Capable Switch
+                            returns to configuration request of an element (like capable-switch)
+                            that is present in all OF-CONFIG versions specified so far. This is the
+                            only possiblity to identify OF-CONFIG versions prior to OF-CONFIG 1.1.1.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="configuration-points" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="configuration-point" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list of all Configuration Points known to
+                                        the OpenFlow Capable Switch that may manage it using
+                                        OF-CONFIG. The element 'id' of OFConfigurationType MUST be
+                                        unique within this list. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFConfigurationPointType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                    </xs:complexType>
+                    <xs:key name="key_configuration-points_capableswitch_configuration-point">
+                        <xs:selector xpath="of11-config:configuration-point"/>
+                        <xs:field xpath="of11-config:id"/>
+                    </xs:key>
+                </xs:element>
+                <xs:element name="resources" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation> A lists containing all resources of the OpenFlow Capable
+                            Switch that can be used by OpenFlow Logical Switches. Resources are
+                            listed here independent of their actual assignment to OpenFlow Logical
+                            Switches. They may be available to be assigned to an OpenFlow Logical
+                            Switch or already in use by an OpenFlow Logical Switch.
+                        </xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="port" minOccurs="0" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list contains all port resources of the
+                                        OpenFlow Capable Switch. The element 'resource-id' of
+                                        OFPortType MUST be unique within this list.
+                                    </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFPortType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list contains all queue resources of the
+                                        OpenFlow Capable Switch. The element 'resource-id' of
+                                        OFQueueType MUST be unique within this list.
+                                    </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFQueueType"/>
+                                    </xs:sequence>
+                                    <xs:attribute name="operation" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="owned-certificate" minOccurs="0" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list contains all owned certificate
+                                        resources of the OpenFlow Capable Switch. The element
+                                        'resource-id' of OFOwnedCertificateType MUST be unique
+                                        within this list. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFOwnedCertificateType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="external-certificate" minOccurs="0"
+                                maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list contains all external certificate
+                                        resources of the OpenFlow Capable Switch. The element
+                                        'resource-id' of OFExternalCertificateType MUST be unique
+                                        within this list. </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFExternalCertificateType"/>
+                                    </xs:sequence>
+                                    <xs:attribute name="operation" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="flow-table" minOccurs="0" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list contains all flow table resources of
+                                        the OpenFlow Capable Switch. The element 'resource-id' of
+                                        OFFlowTableType MUST be unique within this list.
+                                    </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFFlowTableType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                    </xs:complexType>
+                    <xs:key name="key_resources_capable-switch_port">
+                        <xs:selector xpath="of11-config:port"/>
+                        <xs:field xpath="of11-config:resource-id"/>
+                    </xs:key>
+                    <xs:key name="key_resources_capable-switch_queue">
+                        <xs:selector xpath="of11-config:queue"/>
+                        <xs:field xpath="of11-config:resource-id"/>
+                    </xs:key>
+                    <xs:key name="key_resources_capable-switch_owned-certificate">
+                        <xs:selector xpath="of11-config:owned-certificate"/>
+                        <xs:field xpath="of11-config:resource-id"/>
+                    </xs:key>
+                    <xs:key name="key_resources_capable-switch_external-certificate">
+                        <xs:selector xpath="of11-config:external-certificate"/>
+                        <xs:field xpath="of11-config:resource-id"/>
+                    </xs:key>
+                    <xs:key name="key_resources_capable-switch_flow-table">
+                        <xs:selector xpath="of11-config:flow-table"/>
+                        <xs:field xpath="of11-config:resource-id"/>
+                    </xs:key>
+                </xs:element>
+                <xs:element name="logical-switches" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation> This element contains a list of all OpenFlow Logical
+                            Switches available at the OpenFlow Capable Switch. </xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="switch" maxOccurs="unbounded">
+                                <xs:annotation>
+                                    <xs:documentation> The list of all OpenFlow Logical Switches on
+                                        the OpenFlow Capable Switch. The element 'resource-id' of
+                                        OFLogicalSwitchType MUST be unique within this list.
+                                    </xs:documentation>
+                                </xs:annotation>
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:group ref="OFLogicalSwitchType"/>
+                                    </xs:sequence>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                    </xs:complexType>
+                    <xs:key name="key_logical-switches_capable-switch_switch">
+                        <xs:selector xpath="of11-config:switch"/>
+                        <xs:field xpath="of11-config:id"/>
+                    </xs:key>
+                </xs:element>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>