mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-05-12 08:06:49 +02:00
of_config: import XML schema files for OF config.
Import XML schema files for OF config. They are stolen from flowflowarding of_config. NOTE: They adds operation attribute where they accepts. When we supports another OF-config capable switch, they needs to be updated. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
cf8520eefc
commit
df5de86b1f
7
ryu/lib/of_config/README.rst
Normal file
7
ryu/lib/of_config/README.rst
Normal file
@ -0,0 +1,7 @@
|
||||
XML schema for OFConfig
|
||||
=======================
|
||||
Those files of XML schema for OFConfig are stolen from LINC.
|
||||
It supports only part of it so that its schema files are limited as operation
|
||||
attributes are allowed only in several places.
|
||||
Once tested with other OFConfig switches , the schema files should be updasted
|
||||
to allow more operation attribute.
|
||||
389
ryu/lib/of_config/ietf-inet-types.xsd
Normal file
389
ryu/lib/of_config/ietf-inet-types.xsd
Normal file
@ -0,0 +1,389 @@
|
||||
<?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:ietf:params:xml:ns:yang:ietf-inet-types"
|
||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-inet-types"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="2010-09-24"
|
||||
xml:lang="en"
|
||||
xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
This schema was generated from the YANG module ietf-inet-types
|
||||
by pyang version 1.0.
|
||||
|
||||
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>
|
||||
This module contains a collection of generally useful derived
|
||||
YANG data types for Internet addresses and related things.
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, is permitted pursuant to, and subject to the license
|
||||
terms contained in, the Simplified BSD License set forth in Section
|
||||
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6021; see
|
||||
the RFC itself for full legal notices.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<!-- YANG typedefs -->
|
||||
|
||||
<xs:simpleType name="ip-version">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
This value represents the version of the IP protocol.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetVersion textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="unknown"/>
|
||||
<xs:enumeration value="ipv4"/>
|
||||
<xs:enumeration value="ipv6"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="dscp">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The dscp type represents a Differentiated Services Code-Point
|
||||
that may be used for marking packets in a traffic stream.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Dscp textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="63"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ipv6-flow-label">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The flow-label type represents flow identifier or Flow Label
|
||||
in an IPv6 packet header that may be used to discriminate
|
||||
traffic flows.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the IPv6FlowLabel textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedInt">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="1048575"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="port-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The port-number type represents a 16-bit port number of an
|
||||
Internet transport layer protocol such as UDP, TCP, DCCP, or
|
||||
SCTP. Port numbers are assigned by IANA. A current list of
|
||||
all assignments is available from <http://www.iana.org/>.
|
||||
|
||||
Note that the port number value zero is reserved by IANA. In
|
||||
situations where the value zero does not make sense, it can
|
||||
be excluded by subtyping the port-number type.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetPortNumber textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedShort">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="65535"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="as-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The as-number type represents autonomous system numbers
|
||||
which identify an Autonomous System (AS). An AS is a set
|
||||
of routers under a single technical administration, using
|
||||
an interior gateway protocol and common metrics to route
|
||||
packets within the AS, and using an exterior gateway
|
||||
protocol to route packets to other ASs'. IANA maintains
|
||||
the AS number space and has delegated large parts to the
|
||||
regional registries.
|
||||
|
||||
Autonomous system numbers were originally limited to 16
|
||||
bits. BGP extensions have enlarged the autonomous system
|
||||
number space to 32 bits. This type therefore uses an uint32
|
||||
base type without a range restriction in order to support
|
||||
a larger autonomous system number space.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetAutonomousSystemNumber textual convention of
|
||||
the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedInt">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ip-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ip-address type represents an IP address and is IP
|
||||
version neutral. The format of the textual representations
|
||||
implies the IP version.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:union memberTypes="inet:ipv4-address inet:ipv6-address">
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ipv4-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ipv4-address type represents an IPv4 address in
|
||||
dotted-quad notation. The IPv4 address may include a zone
|
||||
index, separated by a % sign.
|
||||
|
||||
The zone index is used to disambiguate identical address
|
||||
values. For link-local addresses, the zone index will
|
||||
typically be the interface index number or the name of an
|
||||
interface. If the zone index is not present, the default
|
||||
zone of the device will be used.
|
||||
|
||||
The canonical format for the zone index is the numerical
|
||||
format
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\p{N}\p{L}]+)?"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ipv6-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ipv6-address type represents an IPv6 address in full,
|
||||
mixed, shortened, and shortened-mixed notation. The IPv6
|
||||
address may include a zone index, separated by a % sign.
|
||||
|
||||
The zone index is used to disambiguate identical address
|
||||
values. For link-local addresses, the zone index will
|
||||
typically be the interface index number or the name of an
|
||||
interface. If the zone index is not present, the default
|
||||
zone of the device will be used.
|
||||
|
||||
The canonical format of IPv6 addresses uses the compressed
|
||||
format described in RFC 4291, Section 2.2, item 2 with the
|
||||
following additional rules: the :: substitution must be
|
||||
applied to the longest sequence of all-zero 16-bit chunks
|
||||
in an IPv6 address. If there is a tie, the first sequence
|
||||
of all-zero 16-bit chunks is replaced by ::. Single
|
||||
all-zero 16-bit chunks are not compressed. The canonical
|
||||
format uses lowercase characters and leading zeros are
|
||||
not allowed. The canonical format for the zone index is
|
||||
the numerical format as described in RFC 4007, Section
|
||||
11.2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\p{N}\p{L}]+)?)|((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?)"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ip-prefix">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ip-prefix type represents an IP prefix and is IP
|
||||
version neutral. The format of the textual representations
|
||||
implies the IP version.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:union memberTypes="inet:ipv4-prefix inet:ipv6-prefix">
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ipv4-prefix">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ipv4-prefix type represents an IPv4 address prefix.
|
||||
The prefix length is given by the number following the
|
||||
slash character and must be less than or equal to 32.
|
||||
|
||||
A prefix length value of n corresponds to an IP address
|
||||
mask that has n contiguous 1-bits from the most
|
||||
significant bit (MSB) and all other bits set to 0.
|
||||
|
||||
The canonical format of an IPv4 prefix has all bits of
|
||||
the IPv4 address set to zero that are not part of the
|
||||
IPv4 prefix.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="ipv6-prefix">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The ipv6-prefix type represents an IPv6 address prefix.
|
||||
The prefix length is given by the number following the
|
||||
slash character and must be less than or equal 128.
|
||||
|
||||
A prefix length value of n corresponds to an IP address
|
||||
mask that has n contiguous 1-bits from the most
|
||||
significant bit (MSB) and all other bits set to 0.
|
||||
|
||||
The IPv6 address should have all bits that do not belong
|
||||
to the prefix set to zero.
|
||||
|
||||
The canonical format of an IPv6 prefix has all bits of
|
||||
the IPv6 address set to zero that are not part of the
|
||||
IPv6 prefix. Furthermore, IPv6 address is represented
|
||||
in the compressed format described in RFC 4291, Section
|
||||
2.2, item 2 with the following additional rules: the ::
|
||||
substitution must be applied to the longest sequence of
|
||||
all-zero 16-bit chunks in an IPv6 address. If there is
|
||||
a tie, the first sequence of all-zero 16-bit chunks is
|
||||
replaced by ::. Single all-zero 16-bit chunks are not
|
||||
compressed. The canonical format uses lowercase
|
||||
characters and leading zeros are not allowed.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8]))))|((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+))"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="domain-name">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The domain-name type represents a DNS domain name. The
|
||||
name SHOULD be fully qualified whenever possible.
|
||||
|
||||
Internet domain names are only loosely specified. Section
|
||||
3.5 of RFC 1034 recommends a syntax (modified in Section
|
||||
2.1 of RFC 1123). The pattern above is intended to allow
|
||||
for current practice in domain name use, and some possible
|
||||
future expansion. It is designed to hold various types of
|
||||
domain names, including names used for A or AAAA records
|
||||
(host names) and other records, such as SRV records. Note
|
||||
that Internet host names have a stricter syntax (described
|
||||
in RFC 952) than the DNS recommendations in RFCs 1034 and
|
||||
1123, and that systems that want to store host names in
|
||||
schema nodes using the domain-name type are recommended to
|
||||
adhere to this stricter standard to ensure interoperability.
|
||||
|
||||
The encoding of DNS names in the DNS protocol is limited
|
||||
to 255 characters. Since the encoding consists of labels
|
||||
prefixed by a length bytes and there is a trailing NULL
|
||||
byte, only 253 characters can appear in the textual dotted
|
||||
notation.
|
||||
|
||||
The description clause of schema nodes using the domain-name
|
||||
type MUST describe when and how these names are resolved to
|
||||
IP addresses. Note that the resolution of a domain-name value
|
||||
may require to query multiple DNS records (e.g., A for IPv4
|
||||
and AAAA for IPv6). The order of the resolution process and
|
||||
which DNS record takes precedence can either be defined
|
||||
explicitely or it may depend on the configuration of the
|
||||
resolver.
|
||||
|
||||
Domain-name values use the US-ASCII encoding. Their canonical
|
||||
format uses lowercase US-ASCII characters. Internationalized
|
||||
domain names MUST be encoded in punycode as described in RFC
|
||||
3492
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="t0">
|
||||
<xs:minLength value="1"/>
|
||||
<xs:maxLength value="253"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="host">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The host type represents either an IP address or a DNS
|
||||
domain name.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:union memberTypes="inet:ip-address inet:domain-name">
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="uri">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The uri type represents a Uniform Resource Identifier
|
||||
(URI) as defined by STD 66.
|
||||
|
||||
Objects using the uri type MUST be in US-ASCII encoding,
|
||||
and MUST be normalized as described by RFC 3986 Sections
|
||||
6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary
|
||||
percent-encoding is removed, and all case-insensitive
|
||||
characters are set to lowercase except for hexadecimal
|
||||
digits, which are normalized to uppercase as described in
|
||||
Section 6.2.2.1.
|
||||
|
||||
The purpose of this normalization is to help provide
|
||||
unique URIs. Note that this normalization is not
|
||||
sufficient to provide uniqueness. Two URIs that are
|
||||
textually distinct after this normalization may still be
|
||||
equivalent.
|
||||
|
||||
Objects using the uri type may restrict the schemes that
|
||||
they permit. For example, 'data:' and 'urn:' schemes
|
||||
might not be appropriate.
|
||||
|
||||
A zero-length URI is not a valid URI. This can be used to
|
||||
express 'URI absent' where required.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Uri SMIv2 textual convention defined in RFC 5017.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
|
||||
<!-- locally generated simpleType helpers -->
|
||||
|
||||
<xs:simpleType name="t0">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)|\."/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
</xs:schema>
|
||||
408
ryu/lib/of_config/ietf-yang-types.xsd
Normal file
408
ryu/lib/of_config/ietf-yang-types.xsd
Normal file
@ -0,0 +1,408 @@
|
||||
<?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:ietf:params:xml:ns:yang:ietf-yang-types"
|
||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-types"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="2010-09-24"
|
||||
xml:lang="en"
|
||||
xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
This schema was generated from the YANG module ietf-yang-types
|
||||
by pyang version 1.0.
|
||||
|
||||
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>
|
||||
This module contains a collection of generally useful derived
|
||||
YANG data types.
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, is permitted pursuant to, and subject to the license
|
||||
terms contained in, the Simplified BSD License set forth in Section
|
||||
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6021; see
|
||||
the RFC itself for full legal notices.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<!-- YANG typedefs -->
|
||||
|
||||
<xs:simpleType name="counter32">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The counter32 type represents a non-negative integer
|
||||
that monotonically increases until it reaches a
|
||||
maximum value of 2^32-1 (4294967295 decimal), when it
|
||||
wraps around and starts increasing again from zero.
|
||||
|
||||
Counters have no defined 'initial' value, and thus, a
|
||||
single value of a counter has (in general) no information
|
||||
content. Discontinuities in the monotonically increasing
|
||||
value normally occur at re-initialization of the
|
||||
management system, and at other times as specified in the
|
||||
description of a schema node using this type. If such
|
||||
other times can occur, for example, the creation of
|
||||
a schema node of type counter32 at times other than
|
||||
re-initialization, then a corresponding schema node
|
||||
should be defined, with an appropriate type, to indicate
|
||||
the last discontinuity.
|
||||
|
||||
The counter32 type should not be used for configuration
|
||||
schema nodes. A default statement SHOULD NOT be used in
|
||||
combination with the type counter32.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Counter32 type of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedInt">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="zero-based-counter32">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The zero-based-counter32 type represents a counter32
|
||||
that has the defined 'initial' value zero.
|
||||
|
||||
A schema node of this type will be set to zero (0) on creation
|
||||
and will thereafter increase monotonically until it reaches
|
||||
a maximum value of 2^32-1 (4294967295 decimal), when it
|
||||
wraps around and starts increasing again from zero.
|
||||
|
||||
Provided that an application discovers a new schema node
|
||||
of this type within the minimum time to wrap, it can use the
|
||||
'initial' value as a delta. It is important for a management
|
||||
station to be aware of this minimum time and the actual time
|
||||
between polls, and to discard data if the actual time is too
|
||||
long or there is no defined minimum time.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the ZeroBasedCounter32 textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="yang:counter32">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="counter64">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The counter64 type represents a non-negative integer
|
||||
that monotonically increases until it reaches a
|
||||
maximum value of 2^64-1 (18446744073709551615 decimal),
|
||||
when it wraps around and starts increasing again from zero.
|
||||
|
||||
Counters have no defined 'initial' value, and thus, a
|
||||
single value of a counter has (in general) no information
|
||||
content. Discontinuities in the monotonically increasing
|
||||
value normally occur at re-initialization of the
|
||||
management system, and at other times as specified in the
|
||||
description of a schema node using this type. If such
|
||||
other times can occur, for example, the creation of
|
||||
a schema node of type counter64 at times other than
|
||||
re-initialization, then a corresponding schema node
|
||||
should be defined, with an appropriate type, to indicate
|
||||
the last discontinuity.
|
||||
|
||||
The counter64 type should not be used for configuration
|
||||
schema nodes. A default statement SHOULD NOT be used in
|
||||
combination with the type counter64.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Counter64 type of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedLong">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="zero-based-counter64">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The zero-based-counter64 type represents a counter64 that
|
||||
has the defined 'initial' value zero.
|
||||
|
||||
A schema node of this type will be set to zero (0) on creation
|
||||
and will thereafter increase monotonically until it reaches
|
||||
a maximum value of 2^64-1 (18446744073709551615 decimal),
|
||||
when it wraps around and starts increasing again from zero.
|
||||
|
||||
Provided that an application discovers a new schema node
|
||||
of this type within the minimum time to wrap, it can use the
|
||||
'initial' value as a delta. It is important for a management
|
||||
station to be aware of this minimum time and the actual time
|
||||
between polls, and to discard data if the actual time is too
|
||||
long or there is no defined minimum time.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the ZeroBasedCounter64 textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="yang:counter64">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="gauge32">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The gauge32 type represents a non-negative integer, which
|
||||
may increase or decrease, but shall never exceed a maximum
|
||||
value, nor fall below a minimum value. The maximum value
|
||||
cannot be greater than 2^32-1 (4294967295 decimal), and
|
||||
the minimum value cannot be smaller than 0. The value of
|
||||
a gauge32 has its maximum value whenever the information
|
||||
being modeled is greater than or equal to its maximum
|
||||
value, and has its minimum value whenever the information
|
||||
being modeled is smaller than or equal to its minimum value.
|
||||
If the information being modeled subsequently decreases
|
||||
below (increases above) the maximum (minimum) value, the
|
||||
gauge32 also decreases (increases).
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Gauge32 type of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedInt">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="gauge64">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The gauge64 type represents a non-negative integer, which
|
||||
may increase or decrease, but shall never exceed a maximum
|
||||
value, nor fall below a minimum value. The maximum value
|
||||
cannot be greater than 2^64-1 (18446744073709551615), and
|
||||
the minimum value cannot be smaller than 0. The value of
|
||||
a gauge64 has its maximum value whenever the information
|
||||
being modeled is greater than or equal to its maximum
|
||||
value, and has its minimum value whenever the information
|
||||
being modeled is smaller than or equal to its minimum value.
|
||||
If the information being modeled subsequently decreases
|
||||
below (increases above) the maximum (minimum) value, the
|
||||
gauge64 also decreases (increases).
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the CounterBasedGauge64 SMIv2 textual convention defined
|
||||
in RFC 2856
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedLong">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="object-identifier">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The object-identifier type represents administratively
|
||||
assigned names in a registration-hierarchical-name tree.
|
||||
|
||||
Values of this type are denoted as a sequence of numerical
|
||||
non-negative sub-identifier values. Each sub-identifier
|
||||
value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers
|
||||
are separated by single dots and without any intermediate
|
||||
whitespace.
|
||||
|
||||
The ASN.1 standard restricts the value space of the first
|
||||
sub-identifier to 0, 1, or 2. Furthermore, the value space
|
||||
of the second sub-identifier is restricted to the range
|
||||
0 to 39 if the first sub-identifier is 0 or 1. Finally,
|
||||
the ASN.1 standard requires that an object identifier
|
||||
has always at least two sub-identifier. The pattern
|
||||
captures these restrictions.
|
||||
|
||||
Although the number of sub-identifiers is not limited,
|
||||
module designers should realize that there may be
|
||||
implementations that stick with the SMIv2 limit of 128
|
||||
sub-identifiers.
|
||||
|
||||
This type is a superset of the SMIv2 OBJECT IDENTIFIER type
|
||||
since it is not restricted to 128 sub-identifiers. Hence,
|
||||
this type SHOULD NOT be used to represent the SMIv2 OBJECT
|
||||
IDENTIFIER type, the object-identifier-128 type SHOULD be
|
||||
used instead.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))(\.(0|([1-9]\d*)))*"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="object-identifier-128">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
This type represents object-identifiers restricted to 128
|
||||
sub-identifiers.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the OBJECT IDENTIFIER type of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="object-identifier">
|
||||
<xs:pattern value="\d*(\.\d*){1,127}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="date-and-time">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The date-and-time type is a profile of the ISO 8601
|
||||
standard for representation of dates and times using the
|
||||
Gregorian calendar. The profile is defined by the
|
||||
date-time production in Section 5.6 of RFC 3339.
|
||||
|
||||
The date-and-time type is compatible with the dateTime XML
|
||||
schema type with the following notable exceptions:
|
||||
|
||||
(a) The date-and-time type does not allow negative years.
|
||||
|
||||
(b) The date-and-time time-offset -00:00 indicates an unknown
|
||||
time zone (see RFC 3339) while -00:00 and +00:00 and Z all
|
||||
represent the same time zone in dateTime.
|
||||
|
||||
(c) The canonical format (see below) of data-and-time values
|
||||
differs from the canonical format used by the dateTime XML
|
||||
schema type, which requires all times to be in UTC using the
|
||||
time-offset 'Z'.
|
||||
|
||||
This type is not equivalent to the DateAndTime textual
|
||||
convention of the SMIv2 since RFC 3339 uses a different
|
||||
separator between full-date and full-time and provides
|
||||
higher resolution of time-secfrac.
|
||||
|
||||
The canonical format for date-and-time values with a known time
|
||||
zone uses a numeric time zone offset that is calculated using
|
||||
the device's configured known offset to UTC time. A change of
|
||||
the device's offset to UTC time will cause date-and-time values
|
||||
to change accordingly. Such changes might happen periodically
|
||||
in case a server follows automatically daylight saving time
|
||||
(DST) time zone offset changes. The canonical format for
|
||||
date-and-time values with an unknown time zone (usually referring
|
||||
to the notion of local time) uses the time-offset -00:00.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[\+\-]\d{2}:\d{2})"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="timeticks">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The timeticks type represents a non-negative integer that
|
||||
represents the time, modulo 2^32 (4294967296 decimal), in
|
||||
hundredths of a second between two epochs. When a schema
|
||||
node is defined that uses this type, the description of
|
||||
the schema node identifies both of the reference epochs.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the TimeTicks type of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:unsignedInt">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="timestamp">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The timestamp type represents the value of an associated
|
||||
timeticks schema node at which a specific occurrence happened.
|
||||
The specific occurrence must be defined in the description
|
||||
of any schema node defined using this type. When the specific
|
||||
occurrence occurred prior to the last time the associated
|
||||
timeticks attribute was zero, then the timestamp value is
|
||||
zero. Note that this requires all timestamp values to be
|
||||
reset to zero when the value of the associated timeticks
|
||||
attribute reaches 497+ days and wraps around to zero.
|
||||
|
||||
The associated timeticks schema node must be specified
|
||||
in the description of any schema node using this type.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the TimeStamp textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="yang:timeticks">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="phys-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Represents media- or physical-level addresses represented
|
||||
as a sequence octets, each octet represented by two hexadecimal
|
||||
numbers. Octets are separated by colons. The canonical
|
||||
representation uses lowercase characters.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the PhysAddress textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="mac-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The mac-address type represents an IEEE 802 MAC address.
|
||||
The canonical representation uses lowercase characters.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the MacAddress textual convention of the SMIv2.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="xpath1.0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
This type represents an XPATH 1.0 expression.
|
||||
|
||||
When a schema node is defined that uses this type, the
|
||||
description of the schema node MUST specify the XPath
|
||||
context in which the XPath expression is evaluated.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:restriction base="xs:string">
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
|
||||
</xs:schema>
|
||||
432
ryu/lib/of_config/of-config-1.0.xsd
Normal file
432
ryu/lib/of_config/of-config-1.0.xsd
Normal file
@ -0,0 +1,432 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
targetNamespace="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns:of12-config="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
|
||||
<xs:import namespace="urn:ietf:params:xml:ns:yang:ietf-inet-types"
|
||||
schemaLocation="ietf-inet-types.xsd"/>
|
||||
<xs:element name="capable-switch" type="OFCapableSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The OpenFlow Capable Switch and its configuration points, logical
|
||||
switches and resources available to logical switches. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:simpleType name="OFConfigID">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFCapableSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Capable Switch.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies a
|
||||
Capable Switch towards management systems and that is persistent across
|
||||
reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="configuration-points" type="OFConfigurationPointListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of all configuration points known to the OpenFlow
|
||||
Capable Switch that may manage it using OF-CONFIG. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="resources" type="OFCapableSwitchResourceListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element contains lists of all resources of the OpenFlow
|
||||
Capable Switch that can be used by OpenFlow Logical Switches.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="logical-switches" type="OFLogicalSwitchListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>List of all OpenFlow Logical Switches available on the
|
||||
OpenFlow Capable Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFConfigurationPointListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="configuration-point" type="OFConfigurationPointType"
|
||||
maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFCapableSwitchResourceListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="port" type="OFPortType" maxOccurs="unbounded"/>
|
||||
<xs:element name="queue" type="OFQueueType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFLogicalSwitchListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="logical-switch" type="OFLogicalSwitchType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFConfigurationPointType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Configuration Point. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An identifier that identifies a Configuration Point of the
|
||||
OpenFlow Capable Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="uri" type="inet:uri">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A locator of the Configuration Point. This element MAY contain
|
||||
a locator of the configuration point including, for example, an IP address
|
||||
and a port number. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="protocol" type="OFConfigurationPointProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The transport protocol that the Configuration Point uses when
|
||||
communicating via NETCONF with the OpenFlow Capable Switch.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFConfigurationPointProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The mappings of NETCONF to different transport protocols are defined
|
||||
in RFC 6242 for SSH, RFC 4743 for SOAP, RFC 4744 for BEEP, and RFC 5539 for TLS.
|
||||
</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:complexType name="OFLogicalSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The representation of an OpenFlow Logical Switch </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies an
|
||||
OpenFlow Logical Switch within an OpenFlow Capable Switch. It is persistent
|
||||
across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="datapath-id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A unique identifier that identifiers an OpenFlow Logical
|
||||
Switch within the context of an OpenFlow Controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="enabled" type="xs:boolean"/>
|
||||
<xs:element name="lost-connection-behavior"
|
||||
type="OFLogicalSwitchLostConnnectionBehavior"/>
|
||||
<xs:element name="controllers" type="OFControllerListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of controllers that are assigned to the OpenFlow
|
||||
Logical Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="resources" type="OFLogicalSwitchResourceListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of references to all resources of the OpenFlow
|
||||
Capable Switch that the OpenFlow Logical Switch has exclusive access to.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFLogicalSwitchLostConnnectionBehavior">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="failSecureMode"/>
|
||||
<xs:enumeration value="failStandaloneMode"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFControllerListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="controller" type="OFControllerType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFLogicalSwitchResourceListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="port" type="OFConfigID" maxOccurs="unbounded"/>
|
||||
<xs:element name="queue" type="OFConfigID" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFControllerType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Controller </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies an
|
||||
OpenFlow Controller within the context of an OpenFlow Capable Switch. It is
|
||||
persistent across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="role" type="OFControllerRoleType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The predefined role of the controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ip-address" type="inet:ip-prefix">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The remote IP of the controller to connect
|
||||
to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="port" type="inet:port-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The port number the controller listens on. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="local-ip-address" type="inet:ip-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This specifies the source IP for packets sent to this
|
||||
controller and overrides the default IP used. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="local-port" type="inet:port-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The port number the controller listens on. If 0 the port is
|
||||
chosen dynamically. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="protocol" type="OFControllerProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The protocol used for connecting to the controller. Both sides
|
||||
must support the chosen protocol for a successful establishment of a
|
||||
connection. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="state" type="OFControllerOpenFlowStateType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element represents the state of the OpenFlow protocol
|
||||
connection to the controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFControllerRoleType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="master"/>
|
||||
<xs:enumeration value="slave"/>
|
||||
<xs:enumeration value="equal"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFControllerProtocolType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="tcp"/>
|
||||
<xs:enumeration value="tls"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFControllerOpenFlowStateType">
|
||||
<xs:sequence>
|
||||
<xs:element name="connection-state" type="OFControllerConnectionStateType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element represents the run-time state of the OpenFlow
|
||||
connection to the Contoller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="current-version" type="OFOpenFlowVersionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element denotes the version of OpenFlow that Contoller is
|
||||
currently communicating with. It is only relevant when the connection-state
|
||||
element is set to "up". </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="supported-versions" type="OFOpenFlowSupportedVersionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element denotes all of the versions of the OpenFlow
|
||||
protocol that the contoller supports. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFControllerConnectionStateType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="up"/>
|
||||
<xs:enumeration value="down"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFOpenFlowSupportedVersionsType">
|
||||
<xs:sequence>
|
||||
<xs:element name="version" type="OFOpenFlowVersionType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFOpenFlowVersionType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="1.2"/>
|
||||
<xs:enumeration value="1.1"/>
|
||||
<xs:enumeration value="1.0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFResourceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A Base Class for OpenFlow Resources. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="resource-id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies a
|
||||
resource within the context of and OpenFlow Capable Switch and is persistent
|
||||
across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence>
|
||||
<xs:element name="number" type="xs:unsignedInt"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="current-rate" type="xs:unsignedLong"/>
|
||||
<xs:element name="max-rate" type="xs:unsignedLong"/>
|
||||
<xs:element name="configuration" type="OFPortConfigurationType"/>
|
||||
<xs:element name="state" type="OFPortStateType"/>
|
||||
<xs:element name="features" type="OFPortFeatureMasterList"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortFeatureMasterList">
|
||||
<xs:sequence>
|
||||
<xs:element name="current" type="OFPortCurrentFeatureListType"/>
|
||||
<xs:element name="advertised" type="OFPortOtherFeatureListType"/>
|
||||
<xs:element name="supported" type="OFPortOtherFeatureListType"/>
|
||||
<xs:element name="advertised-peer" type="OFPortOtherFeatureListType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortConfigurationType">
|
||||
<xs:sequence>
|
||||
<xs:element name="admin-state" type="OFPortStateOptionsType"/>
|
||||
<xs:element name="no-receive" type="xs:boolean"/>
|
||||
<xs:element name="no-forward" type="xs:boolean"/>
|
||||
<xs:element name="no-packet-in" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortStateType">
|
||||
<xs:sequence>
|
||||
<xs:element name="oper-state" type="OFPortStateOptionsType"/>
|
||||
<xs:element name="blocked" type="xs:boolean"/>
|
||||
<xs:element name="live" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFPortStateOptionsType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="up"/>
|
||||
<xs:enumeration value="down"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFPortCurrentFeatureListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="rate" type="OFPortRateType"/>
|
||||
<xs:element name="auto-negotiate" type="OFPortAutoNegotiateType"/>
|
||||
<xs:element name="medium" type="OFPortMediumType"/>
|
||||
<xs:element name="pause" type="OFPortPauseType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortOtherFeatureListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="rate" type="OFPortRateType" maxOccurs="unbounded"/>
|
||||
<xs:element name="auto-negotiate" type="OFPortAutoNegotiateType"/>
|
||||
<xs:element name="medium" type="OFPortMediumType" maxOccurs="unbounded"/>
|
||||
<xs:element name="pause" type="OFPortPauseType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFPortRateType">
|
||||
<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="1 Tb"/>
|
||||
<xs:enumeration value="Other"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortAutoNegotiateType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="enabled"/>
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortMediumType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="copper"/>
|
||||
<xs:enumeration value="fiber"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortPauseType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="unsupported"/>
|
||||
<xs:enumeration value="symmetric"/>
|
||||
<xs:enumeration value="asymmetric"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFQueueType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence maxOccurs="1" minOccurs="1">
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary number that identifies
|
||||
a queue within the context of and OpenFlow Logical Switch and is
|
||||
persistent across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="port" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Port in the context of the same Logical Switch which
|
||||
this Queue is associated with. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="properties" type="OFQueuePropertiesType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Properties of the Queue. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFQueuePropertiesType">
|
||||
<xs:sequence>
|
||||
<xs:element name="min-rate" type="OFQueueMinRateType" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The minimal rate that is reserved for this queue in 1/10 of a
|
||||
percent of the actual rate. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="max-rate" type="OFQueueMaxRateType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The maximum rate that is reserved for this queue in 1/10 of a
|
||||
percent of the actual rate. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" name="experimenter" type="xs:unsignedLong">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Experimental Properties</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFQueueMinRateType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFQueueMaxRateType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
||||
2009
ryu/lib/of_config/of-config-1.1.1.xsd
Normal file
2009
ryu/lib/of_config/of-config-1.1.1.xsd
Normal file
File diff suppressed because it is too large
Load Diff
738
ryu/lib/of_config/of-config-1.1.xsd
Normal file
738
ryu/lib/of_config/of-config-1.1.xsd
Normal file
@ -0,0 +1,738 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||
elementFormDefault="qualified"
|
||||
targetNamespace="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns:of12-config="urn:onf:params:xml:ns:onf:of12:config"
|
||||
xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
|
||||
<xs:element name="capable-switch" type="OFCapableSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The OpenFlow Capable Switch and its configurationpoints, logical
|
||||
switches and resources available to logicalswitches. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:simpleType name="OFConfigID">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFCapableSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Capable Switch.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies a
|
||||
Capable Switch towards management systems and that is persistent across
|
||||
reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="configuration-points" minOccurs="0" type="OFConfigurationPointListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of all configuration points known to the OpenFlow
|
||||
Capable Switch that may manage it using OF-CONFIG. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="resources" minOccurs="0" type="OFCapableSwitchResourceListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element contains lists of all resources of the OpenFlow
|
||||
Capable Switch that can be used by OpenFlow Logical Switches.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="logical-switches" minOccurs="0" type="OFLogicalSwitchListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>List of all OpenFlow Logical Switches available on the
|
||||
OpenFlow Capable Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFConfigurationPointListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="configuration-point" type="OFConfigurationPointType"
|
||||
maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFCapableSwitchResourceListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="port" type="OFPortType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="queue" type="OFQueueType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="owned-certificate" type="OFOwnedCertificateType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="external-certificate" type="OFExternalCertificateType"
|
||||
minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="flow-table" type="OFFlowTableType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFLogicalSwitchListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="logical-switch" type="OFLogicalSwitchType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFConfigurationPointType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Configuration Point. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An identifier that identifies a Configuration Point of the
|
||||
OpenFlow Capable Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="uri" type="inet:uri">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A locator of the Configuration Point. This element MAY contain
|
||||
a locator of the configuration point including, for example, an IP address
|
||||
and a port number. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="protocol" type="OFConfigurationPointProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The transport protocol that the Configuration Point uses when
|
||||
communicating via NETCONF with the OpenFlow Capable Switch.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFConfigurationPointProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The mappings of NETCONF to different transport protocols are defined
|
||||
in RFC 6242 for SSH, RFC 4743 for SOAP, RFC 4744 for BEEP, and RFC 5539 for TLS.
|
||||
</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:complexType name="OFLogicalSwitchType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The representation of an OpenFlow Logical Switch </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" minOccurs="0" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies an
|
||||
OpenFlow Logical Switch within an OpenFlow Capable Switch. It is persistent
|
||||
across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="capabilities" minOccurs="0" type="OFLogicalSwitchCapabilitiesType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Capability items of logical switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="datapath-id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A unique identifier that identifiers an OpenFlow Logical
|
||||
Switch within the context of an OpenFlow Controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="enabled" minOccurs="0" type="xs:boolean"/>
|
||||
<xs:element name="check-controller-certificate" minOccurs="0" type="xs:boolean"/>
|
||||
<xs:element name="lost-connection-behavior" minOccurs="0"
|
||||
type="OFLogicalSwitchLostConnnectionBehavior"/>
|
||||
<xs:element name="controllers" minOccurs="0" type="OFControllerListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of controllers that are assigned to the OpenFlow
|
||||
Logical Switch. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="resources" minOccurs="0" type="OFLogicalSwitchResourceListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The list of references to all resources of the OpenFlow
|
||||
Capable Switch that the OpenFlow Logical Switch has exclusive access to.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFLogicalSwitchLostConnnectionBehavior">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="failSecureMode"/>
|
||||
<xs:enumeration value="failStandaloneMode"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFControllerListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="controller" type="OFControllerType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFLogicalSwitchResourceListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="port" type="OFConfigID" maxOccurs="unbounded"/>
|
||||
<xs:element name="queue" type="OFConfigID" maxOccurs="unbounded"/>
|
||||
<xs:element name="certificate" type="OFConfigID" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="flow-table" type="OFConfigID" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFLogicalSwitchCapabilitiesType">
|
||||
<xs:sequence>
|
||||
<xs:element name="max-buffered-packets" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The maximum number of packets the switch can buffer when
|
||||
sending packets to the controller using packet-in messages. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="max-tables" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation> The number of flow tables supported by the switch. See
|
||||
OpenFlow protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="max-ports" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation> The number of ports supported by the switch. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="flow-statistics" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation> Whether the switch supports flow statistics. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="table-statistics" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation> Whether the switch supports table statistics. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="port-statistics" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Whether the switch supports port statistics. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="group-statistics" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation> Whether the switch supports group statistics. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="queue-statistics" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Whether the switch supports queue statistics. See OpenFlow
|
||||
protocol 1.2 section A.3.1 </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="reassemble-ip-fragments" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Whether the switch supports reassemble IP fragments. See
|
||||
OpenFlow protocol 1.2 section A.3.1 </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. See OpenFlow protocol 1.2 section A.3.1
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="reserved-port-types" type="OFReservedPortTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Specify generic forwarding actions such as sending to the
|
||||
controller, ooding, or forwarding using non-OpenFlow methods, such as
|
||||
"normal" switch processing. SeeOpenFlow protocol 1.2 section 4.5.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="group-types" type="OFGroupTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The group types supported by the switch. SeeOpenFlow protocol
|
||||
1.2 section 5.4.1. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="group-capabilities" type="OFGroupCapabilities">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The group capabilities supported by the switch. SeeOpenFlow
|
||||
protocol 1.2 section A.3.5.9. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="action-types" type="OFActionTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The action types supported by the switch. See OpenFlow
|
||||
protocol 1.2 section 5.9 and A.2.5. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="instruction-types" type="OFInstructionTypes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The instruction types supported by the switch. See OpenFlow
|
||||
protocol 1.2 section 5.6. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFReservedPortTypes">
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="type" type="OFReservedPortType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFReservedPortType">
|
||||
<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="local"/>
|
||||
<xs:enumeration value="normal"/>
|
||||
<xs:enumeration value="flood"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFGroupTypes">
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="type" type="OFGroupType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFGroupType">
|
||||
<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:complexType name="OFGroupCapabilities">
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="capability" type="OFGroupCapability"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFGroupCapability">
|
||||
<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:complexType name="OFActionTypes">
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="type" type="OFActionType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFActionType">
|
||||
<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="pop-mpls"/>
|
||||
<xs:enumeration value="set-field"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFInstructionTypes">
|
||||
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="type" type="OFInstructionType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFInstructionType">
|
||||
<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:complexType name="OFControllerType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Representation of an OpenFlow Controller </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies an
|
||||
OpenFlow Controller within the context of an OpenFlow Capable Switch. It is
|
||||
persistent across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="role" minOccurs="0" type="OFControllerRoleType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The predefined role of the controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ip-address" minOccurs="0" type="inet:ip-prefix">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The remote IP of the controller to connect
|
||||
to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="port" minOccurs="0" type="inet:port-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The port number the controller listens on. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="local-ip-address" minOccurs="0" type="inet:ip-address">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This specifies the source IP for packets sent to this
|
||||
controller and overrides the default IP used. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="local-port" minOccurs="0" type="inet:port-number">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The port number the controller listens on. If 0 the port is
|
||||
chosen dynamically. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="protocol" minOccurs="0" type="OFControllerProtocolType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The protocol used for connecting to the controller. Both sides
|
||||
must support the chosen protocol for a successful establishment of a
|
||||
connection. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="state" minOccurs="0" type="OFControllerOpenFlowStateType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element represents the state of the OpenFlow protocol
|
||||
connection to the controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="operation" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFControllerRoleType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="master"/>
|
||||
<xs:enumeration value="slave"/>
|
||||
<xs:enumeration value="equal"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFControllerProtocolType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="tcp"/>
|
||||
<xs:enumeration value="tls"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFControllerOpenFlowStateType">
|
||||
<xs:sequence>
|
||||
<xs:element name="connection-state" type="OFControllerConnectionStateType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element represents the run-time state of the OpenFlow
|
||||
connection to the Controller. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="current-version" type="OFOpenFlowVersionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element denotes the version of OpenFlow that Controller
|
||||
is currently communicating with. It is only relevant when the
|
||||
connection-state element is set to "up". </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="supported-versions" type="OFOpenFlowSupportedVersionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This element denotes all of the versions of the OpenFlow
|
||||
protocol that the controller supports. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFControllerConnectionStateType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="up"/>
|
||||
<xs:enumeration value="down"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFOpenFlowSupportedVersionsType">
|
||||
<xs:sequence>
|
||||
<xs:element name="version" type="OFOpenFlowVersionType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFOpenFlowVersionType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="1.2"/>
|
||||
<xs:enumeration value="1.1"/>
|
||||
<xs:enumeration value="1.0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFResourceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A Base Class for OpenFlow Resources. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="resource-id" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary identifier that identifies a
|
||||
resource within the context of and OpenFlow Capable Switch and is persistent
|
||||
across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence>
|
||||
<xs:element name="number" minOccurs="0" type="xs:unsignedInt"/>
|
||||
<xs:element name="name" minOccurs="0" type="xs:string"/>
|
||||
<xs:element name="current-rate" minOccurs="0" type="xs:unsignedLong"/>
|
||||
<xs:element name="max-rate" minOccurs="0" type="xs:unsignedLong"/>
|
||||
<xs:element name="configuration" minOccurs="0" type="OFPortConfigurationType"/>
|
||||
<xs:element name="state" minOccurs="0" type="OFPortStateType"/>
|
||||
<xs:element name="features" minOccurs="0" type="OFPortFeatureMasterList"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortFeatureMasterList">
|
||||
<xs:sequence>
|
||||
<xs:element name="current" minOccurs="0" type="OFPortCurrentFeatureListType"/>
|
||||
<xs:element name="advertised" minOccurs="0" type="OFPortOtherFeatureListType"/>
|
||||
<xs:element name="supported" minOccurs="0" type="OFPortOtherFeatureListType"/>
|
||||
<xs:element name="advertised-peer" minOccurs="0" type="OFPortOtherFeatureListType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortConfigurationType">
|
||||
<xs:sequence>
|
||||
<xs:element name="admin-state" minOccurs="0" type="OFPortStateOptionsType"/>
|
||||
<xs:element name="no-receive" minOccurs="0" type="xs:boolean"/>
|
||||
<xs:element name="no-forward" minOccurs="0" type="xs:boolean"/>
|
||||
<xs:element name="no-packet-in" minOccurs="0" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="operation" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortStateType">
|
||||
<xs:sequence>
|
||||
<xs:element name="oper-state" minOccurs="0" type="OFPortStateOptionsType"/>
|
||||
<xs:element name="blocked" minOccurs="0" type="xs:boolean"/>
|
||||
<xs:element name="live" minOccurs="0" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFPortStateOptionsType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="up"/>
|
||||
<xs:enumeration value="down"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFPortCurrentFeatureListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="rate" type="OFPortRateType"/>
|
||||
<xs:element name="auto-negotiate" type="OFPortAutoNegotiateType"/>
|
||||
<xs:element name="medium" type="OFPortMediumType"/>
|
||||
<xs:element name="pause" type="OFPortPauseType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFPortOtherFeatureListType">
|
||||
<xs:sequence>
|
||||
<xs:element name="rate" type="OFPortRateType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="auto-negotiate" type="OFPortAutoNegotiateType" minOccurs="0"/>
|
||||
<xs:element name="medium" type="OFPortMediumType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="pause" type="OFPortPauseType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="operation" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFPortRateType">
|
||||
<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="1 Tb"/>
|
||||
<xs:enumeration value="Other"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortAutoNegotiateType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="enabled"/>
|
||||
<xs:enumeration value="disabled"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortMediumType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="copper"/>
|
||||
<xs:enumeration value="fiber"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFPortPauseType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="unsupported"/>
|
||||
<xs:enumeration value="symmetric"/>
|
||||
<xs:enumeration value="asymmetric"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFQueueType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence maxOccurs="1" minOccurs="1">
|
||||
<xs:element name="id" minOccurs="0" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An unique but locally arbitrary number that identifies
|
||||
a queue within the context of and OpenFlow Logical Switch and is
|
||||
persistent across reboots of the system. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="port" minOccurs="0" type="OFConfigID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Port in the context of the same Logical Switch which
|
||||
this Queue is associated with. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="properties" type="OFQueuePropertiesType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Properties of the Queue. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="operation" type="xs:string"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFQueuePropertiesType">
|
||||
<xs:sequence>
|
||||
<xs:element name="min-rate" type="OFQueueMinRateType" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The minimal rate that is reserved for this queue in 1/10 of a
|
||||
percent of the actual rate. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="max-rate" type="OFQueueMaxRateType" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The maximum rate that is reserved for this queue in 1/10 of a
|
||||
percent of the actual rate. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="experimenter" type="xs:unsignedLong">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Experimental Properties</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFQueueMinRateType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="OFQueueMaxRateType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFExternalCertificateType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence maxOccurs="1" minOccurs="1">
|
||||
<xs:element name="certificate" minOccurs="0" type="OFX509CertificateType"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="operation" type="xs:string"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFOwnedCertificateType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence maxOccurs="1" minOccurs="1">
|
||||
<xs:element name="certificate" type="OFX509CertificateType"/>
|
||||
<xs:element name="private-key" type="ds:KeyValueType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFX509CertificateType">
|
||||
<xs:restriction base="xs:base64Binary"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="OFFlowTableType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="OFResourceType">
|
||||
<xs:sequence maxOccurs="1" minOccurs="1">
|
||||
<xs:element name="max-entries" type="xs:integer"/>
|
||||
<xs:element name="next-tables" type="OFNextFlowTables"/>
|
||||
<xs:element name="instructions" type="OFFlowTableInstructions"/>
|
||||
<xs:element name="matches" type="OFFlowTableMatchFields"/>
|
||||
<xs:element name="write-actions" type="OFFlowTableWriteActions"/>
|
||||
<xs:element name="apply-actions" type="OFFlowTableApplyActions"/>
|
||||
<xs:element name="write-setfields" type="OFFlowTableMatchFields"/>
|
||||
<xs:element name="apply-setfields" type="OFFlowTableMatchFields"/>
|
||||
<xs:element name="wildcards" type="OFFlowTableMatchFields"/>
|
||||
<xs:element name="metadata-match" type="xs:hexBinary"/>
|
||||
<xs:element name="metadata-write" type="xs:hexBinary"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFNextFlowTables">
|
||||
<xs:sequence minOccurs="1" maxOccurs="10">
|
||||
<xs:element name="table-id" type="OFConfigID"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFFlowTableInstructions">
|
||||
<xs:sequence minOccurs="1" maxOccurs="10">
|
||||
<xs:element name="type" type="OFInstructionType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFFlowTableMatchFields">
|
||||
<xs:sequence minOccurs="1" maxOccurs="10">
|
||||
<xs:element name="type" type="OFMatchFieldType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFFlowTableWriteActions">
|
||||
<xs:sequence minOccurs="1" maxOccurs="10">
|
||||
<xs:element name="type" type="OFActionType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="OFFlowTableApplyActions">
|
||||
<xs:sequence minOccurs="1" maxOccurs="10">
|
||||
<xs:element name="type" type="OFActionType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="OFMatchFieldType">
|
||||
<xs:annotation>
|
||||
<xs:documentation> The open flow match field types. See OpenFlow protocol 1.2 section
|
||||
A.2.3.7 </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:schema>
|
||||
318
ryu/lib/of_config/xmldsig-core-schema.xsd
Normal file
318
ryu/lib/of_config/xmldsig-core-schema.xsd
Normal file
@ -0,0 +1,318 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE schema
|
||||
PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
|
||||
[
|
||||
<!ATTLIST schema
|
||||
xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
|
||||
<!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
|
||||
<!ENTITY % p ''>
|
||||
<!ENTITY % s ''>
|
||||
]>
|
||||
|
||||
<!-- Schema for XML Signatures
|
||||
http://www.w3.org/2000/09/xmldsig#
|
||||
$Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
|
||||
|
||||
Copyright 2001 The Internet Society and W3C (Massachusetts Institute
|
||||
of Technology, Institut National de Recherche en Informatique et en
|
||||
Automatique, Keio University). All Rights Reserved.
|
||||
http://www.w3.org/Consortium/Legal/
|
||||
|
||||
This document is governed by the W3C Software License [1] as described
|
||||
in the FAQ [2].
|
||||
|
||||
[1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
|
||||
[2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
|
||||
-->
|
||||
|
||||
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
||||
targetNamespace="http://www.w3.org/2000/09/xmldsig#"
|
||||
version="0.1" elementFormDefault="qualified">
|
||||
|
||||
<!-- Basic Types Defined for Signatures -->
|
||||
|
||||
<simpleType name="CryptoBinary">
|
||||
<restriction base="base64Binary">
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<!-- Start Signature -->
|
||||
|
||||
<element name="Signature" type="ds:SignatureType"/>
|
||||
<complexType name="SignatureType">
|
||||
<sequence>
|
||||
<element ref="ds:SignedInfo"/>
|
||||
<element ref="ds:SignatureValue"/>
|
||||
<element ref="ds:KeyInfo" minOccurs="0"/>
|
||||
<element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureValue" type="ds:SignatureValueType"/>
|
||||
<complexType name="SignatureValueType">
|
||||
<simpleContent>
|
||||
<extension base="base64Binary">
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!-- Start SignedInfo -->
|
||||
|
||||
<element name="SignedInfo" type="ds:SignedInfoType"/>
|
||||
<complexType name="SignedInfoType">
|
||||
<sequence>
|
||||
<element ref="ds:CanonicalizationMethod"/>
|
||||
<element ref="ds:SignatureMethod"/>
|
||||
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
|
||||
<complexType name="CanonicalizationMethodType" mixed="true">
|
||||
<sequence>
|
||||
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<!-- (0,unbounded) elements from (1,1) namespace -->
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureMethod" type="ds:SignatureMethodType"/>
|
||||
<complexType name="SignatureMethodType" mixed="true">
|
||||
<sequence>
|
||||
<element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
|
||||
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<!-- (0,unbounded) elements from (1,1) external namespace -->
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!-- Start Reference -->
|
||||
|
||||
<element name="Reference" type="ds:ReferenceType"/>
|
||||
<complexType name="ReferenceType">
|
||||
<sequence>
|
||||
<element ref="ds:Transforms" minOccurs="0"/>
|
||||
<element ref="ds:DigestMethod"/>
|
||||
<element ref="ds:DigestValue"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<attribute name="URI" type="anyURI" use="optional"/>
|
||||
<attribute name="Type" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="Transforms" type="ds:TransformsType"/>
|
||||
<complexType name="TransformsType">
|
||||
<sequence>
|
||||
<element ref="ds:Transform" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<element name="Transform" type="ds:TransformType"/>
|
||||
<complexType name="TransformType" mixed="true">
|
||||
<choice minOccurs="0" maxOccurs="unbounded">
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||
<element name="XPath" type="string"/>
|
||||
</choice>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<!-- End Reference -->
|
||||
|
||||
<element name="DigestMethod" type="ds:DigestMethodType"/>
|
||||
<complexType name="DigestMethodType" mixed="true">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Algorithm" type="anyURI" use="required"/>
|
||||
</complexType>
|
||||
|
||||
<element name="DigestValue" type="ds:DigestValueType"/>
|
||||
<simpleType name="DigestValueType">
|
||||
<restriction base="base64Binary"/>
|
||||
</simpleType>
|
||||
|
||||
<!-- End SignedInfo -->
|
||||
|
||||
<!-- Start KeyInfo -->
|
||||
|
||||
<element name="KeyInfo" type="ds:KeyInfoType"/>
|
||||
<complexType name="KeyInfoType" mixed="true">
|
||||
<choice maxOccurs="unbounded">
|
||||
<element ref="ds:KeyName"/>
|
||||
<element ref="ds:KeyValue"/>
|
||||
<element ref="ds:RetrievalMethod"/>
|
||||
<element ref="ds:X509Data"/>
|
||||
<element ref="ds:PGPData"/>
|
||||
<element ref="ds:SPKIData"/>
|
||||
<element ref="ds:MgmtData"/>
|
||||
<any processContents="lax" namespace="##other"/>
|
||||
<!-- (1,1) elements from (0,unbounded) namespaces -->
|
||||
</choice>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="KeyName" type="string"/>
|
||||
<element name="MgmtData" type="string"/>
|
||||
|
||||
<element name="KeyValue" type="ds:KeyValueType"/>
|
||||
<complexType name="KeyValueType" mixed="false">
|
||||
<choice>
|
||||
<element ref="ds:DSAKeyValue"/>
|
||||
<element ref="ds:RSAKeyValue"/>
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
|
||||
<complexType name="RetrievalMethodType">
|
||||
<sequence>
|
||||
<element ref="ds:Transforms" minOccurs="0"/>
|
||||
</sequence>
|
||||
<attribute name="URI" type="anyURI"/>
|
||||
<attribute name="Type" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<!-- Start X509Data -->
|
||||
|
||||
<element name="X509Data" type="ds:X509DataType"/>
|
||||
<complexType name="X509DataType">
|
||||
<sequence maxOccurs="unbounded">
|
||||
<choice>
|
||||
<element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
|
||||
<element name="X509SKI" type="base64Binary"/>
|
||||
<element name="X509SubjectName" type="string"/>
|
||||
<element name="X509Certificate" type="base64Binary"/>
|
||||
<element name="X509CRL" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
</choice>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="X509IssuerSerialType">
|
||||
<sequence>
|
||||
<element name="X509IssuerName" type="string"/>
|
||||
<element name="X509SerialNumber" type="integer"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End X509Data -->
|
||||
|
||||
<!-- Begin PGPData -->
|
||||
|
||||
<element name="PGPData" type="ds:PGPDataType"/>
|
||||
<complexType name="PGPDataType">
|
||||
<choice>
|
||||
<sequence>
|
||||
<element name="PGPKeyID" type="base64Binary"/>
|
||||
<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<sequence>
|
||||
<element name="PGPKeyPacket" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0"
|
||||
maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</choice>
|
||||
</complexType>
|
||||
|
||||
<!-- End PGPData -->
|
||||
|
||||
<!-- Begin SPKIData -->
|
||||
|
||||
<element name="SPKIData" type="ds:SPKIDataType"/>
|
||||
<complexType name="SPKIDataType">
|
||||
<sequence maxOccurs="unbounded">
|
||||
<element name="SPKISexp" type="base64Binary"/>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End SPKIData -->
|
||||
|
||||
<!-- End KeyInfo -->
|
||||
|
||||
<!-- Start Object (Manifest, SignatureProperty) -->
|
||||
|
||||
<element name="Object" type="ds:ObjectType"/>
|
||||
<complexType name="ObjectType" mixed="true">
|
||||
<sequence minOccurs="0" maxOccurs="unbounded">
|
||||
<any namespace="##any" processContents="lax"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
<attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
|
||||
<attribute name="Encoding" type="anyURI" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="Manifest" type="ds:ManifestType"/>
|
||||
<complexType name="ManifestType">
|
||||
<sequence>
|
||||
<element ref="ds:Reference" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
|
||||
<complexType name="SignaturePropertiesType">
|
||||
<sequence>
|
||||
<element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<element name="SignatureProperty" type="ds:SignaturePropertyType"/>
|
||||
<complexType name="SignaturePropertyType" mixed="true">
|
||||
<choice maxOccurs="unbounded">
|
||||
<any namespace="##other" processContents="lax"/>
|
||||
<!-- (1,1) elements from (1,unbounded) namespaces -->
|
||||
</choice>
|
||||
<attribute name="Target" type="anyURI" use="required"/>
|
||||
<attribute name="Id" type="ID" use="optional"/>
|
||||
</complexType>
|
||||
|
||||
<!-- End Object (Manifest, SignatureProperty) -->
|
||||
|
||||
<!-- Start Algorithm Parameters -->
|
||||
|
||||
<simpleType name="HMACOutputLengthType">
|
||||
<restriction base="integer"/>
|
||||
</simpleType>
|
||||
|
||||
<!-- Start KeyValue Element-types -->
|
||||
|
||||
<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
|
||||
<complexType name="DSAKeyValueType">
|
||||
<sequence>
|
||||
<sequence minOccurs="0">
|
||||
<element name="P" type="ds:CryptoBinary"/>
|
||||
<element name="Q" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
|
||||
<element name="Y" type="ds:CryptoBinary"/>
|
||||
<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
|
||||
<sequence minOccurs="0">
|
||||
<element name="Seed" type="ds:CryptoBinary"/>
|
||||
<element name="PgenCounter" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
|
||||
<complexType name="RSAKeyValueType">
|
||||
<sequence>
|
||||
<element name="Modulus" type="ds:CryptoBinary"/>
|
||||
<element name="Exponent" type="ds:CryptoBinary"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<!-- End KeyValue Element-types -->
|
||||
|
||||
<!-- End Signature -->
|
||||
|
||||
</schema>
|
||||
Loading…
x
Reference in New Issue
Block a user