os-ken/ryu/lib/of_config/of-config-1.1.1.xsd
Isaku Yamahata 281c8134b9 of_config/schema: add missing import
Otherwise lxml.etree.XMLSchema complains.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2013-03-08 07:21:03 +09:00

2016 lines
121 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;editconfig&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
'dataexists' error is returned. * If the operation is 'delete', the element is
deleted if it exists. If the element does not exist, a 'datamissing' 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 'dataexists' error is returned. * If the operation
is 'delete', the element is deleted if it exists. If the element does not exist, a
'datamissing' 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 'dataexists' error is returned. * If the operation is 'delete', the
element is deleted if it exists. If the element does not exist, a 'datamissing'
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
'dataexists' error is returned. * If the operation is 'delete',
the element is deleted if it exists. If the element does not
exist, a 'datamissing' 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 'dataexists' error is returned. * If
the operation is 'delete', the element is deleted if it exists. If the element does
not exist, a 'datamissing' 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
'dataexists' error is returned. * If the operation is 'delete', the element is
deleted if it exists. If the element does not exist, a 'datamissing' 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 'dataexists' error is
returned. * If the operation is 'delete', the element is
deleted if it exists. If the element does not exist, a
'datamissing' 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 'dataexists' error is returned. * If the operation is
'delete', the element is deleted if it exists. If the element does not exist, a
'datamissing' 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 'dataexists' error is returned. * If the operation is
'delete', the element is deleted if it exists. If the element does not exist, a
'datamissing' 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>