f45f534758
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Reviewed-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
163 lines
5.0 KiB
Python
163 lines
5.0 KiB
Python
# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
|
|
# Copyright (C) 2013 YAMAMOTO Takashi <yamamoto at valinux co jp>
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# NOTE: this file is intendend to be replaced with mechanically generated
|
|
# file if/when OF-Config yang specification is available with a suitable
|
|
# license.
|
|
|
|
from ryu.lib.of_config.base import _Base, _e, _ct
|
|
|
|
|
|
class OFPortConfigurationType(_Base):
|
|
_ELEMENTS = [
|
|
_e('admin-state', is_list=False),
|
|
_e('no-receive', is_list=False),
|
|
_e('no-forward', is_list=False),
|
|
_e('no-packet-in', is_list=False),
|
|
]
|
|
|
|
|
|
class OFPortStateType(_Base):
|
|
_ELEMENTS = [
|
|
_e('oper-state', is_list=False),
|
|
_e('blocked', is_list=False),
|
|
_e('live', is_list=False),
|
|
]
|
|
|
|
|
|
class OFPortType(_Base):
|
|
_ELEMENTS = [
|
|
_e('resource-id', is_list=False),
|
|
_e('number', is_list=False),
|
|
_e('name', is_list=False),
|
|
_e('current-rate', is_list=False),
|
|
_e('max-rate', is_list=False),
|
|
_ct('configuration', OFPortConfigurationType, is_list=False),
|
|
_ct('state', OFPortStateType, is_list=False),
|
|
_ct('features', None, is_list=False),
|
|
_ct('tunnel-type', None, is_list=False),
|
|
]
|
|
|
|
|
|
class OFQueuePropertiesType(_Base):
|
|
_ELEMENTS = [
|
|
_e('min-rate', is_list=False),
|
|
_e('max-rate', is_list=False),
|
|
_e('experimenter', is_list=True),
|
|
]
|
|
|
|
|
|
class OFQueueType(_Base):
|
|
_ELEMENTS = [
|
|
_e('resource-id', is_list=False),
|
|
_e('id', is_list=False),
|
|
_e('port', is_list=False),
|
|
_ct('properties', OFQueuePropertiesType, is_list=False),
|
|
]
|
|
|
|
|
|
class OFCapableSwitchResourcesType(_Base):
|
|
_ELEMENTS = [
|
|
_ct('port', OFPortType, is_list=True),
|
|
_ct('queue', OFQueueType, is_list=True),
|
|
_ct('owned-certificate', None, is_list=True),
|
|
_ct('external-certificate', None, is_list=True),
|
|
_ct('flow-table', None, is_list=True),
|
|
]
|
|
|
|
|
|
class OFControllerStateType(_Base):
|
|
_ELEMENTS = [
|
|
_e('connection-state', is_list=False),
|
|
_e('current-version', is_list=False),
|
|
|
|
# XXX OF-Config 1.1.1 is inconsistent about supported-versions.
|
|
#
|
|
# according to its xml schema (p.43), i believe this should look
|
|
# like the following. it's what linc/of_config does, too.
|
|
# <supported-versions>1.3</supported-versions>
|
|
#
|
|
# on the other hand, it has an example (p.45) like the following.
|
|
# this one is compatible with OF-Config 1.1.
|
|
# <supported-versions>
|
|
# <version>1.2</version>
|
|
# <version>1.1</version>
|
|
# </supported-versions>
|
|
|
|
_e('supported-versions', is_list=True),
|
|
_e('local-ip-address-in-use', is_list=False),
|
|
_e('local-port-in-use', is_list=False),
|
|
]
|
|
|
|
|
|
class OFControllerType(_Base):
|
|
_ELEMENTS = [
|
|
_e('id', is_list=False),
|
|
_e('role', is_list=False),
|
|
_e('ip-address', is_list=False),
|
|
_e('port', is_list=False),
|
|
_e('local-ip-address', is_list=False),
|
|
_e('local-port', is_list=False),
|
|
_e('protocol', is_list=False),
|
|
_ct('state', OFControllerStateType, is_list=False),
|
|
]
|
|
|
|
|
|
class OFLogicalSwitchControllersType(_Base):
|
|
_ELEMENTS = [
|
|
_ct('controller', OFControllerType, is_list=True),
|
|
]
|
|
|
|
|
|
class OFLogicalSwitchResourcesType(_Base):
|
|
_ELEMENTS = [
|
|
_e('port', is_list=True),
|
|
_e('queue', is_list=True),
|
|
_e('certificate', is_list=False),
|
|
_e('flow-table', is_list=True),
|
|
]
|
|
|
|
|
|
class OFLogicalSwitchType(_Base):
|
|
_ELEMENTS = [
|
|
_e('id', is_list=False),
|
|
_ct('capabilities', None, is_list=False),
|
|
_e('datapath-id', is_list=False),
|
|
_e('enabled', is_list=False),
|
|
_e('check-controller-certificate', is_list=False),
|
|
_e('lost-connection-behavior', is_list=False),
|
|
_ct('controllers', OFLogicalSwitchControllersType, is_list=False),
|
|
_ct('resources', OFLogicalSwitchResourcesType, is_list=False),
|
|
]
|
|
|
|
|
|
class OFCapableSwitchLogicalSwitchesType(_Base):
|
|
_ELEMENTS = [
|
|
# this is named 'logical-switch' for OF-Config 1.1.
|
|
_ct('switch', OFLogicalSwitchType, is_list=True),
|
|
]
|
|
|
|
|
|
class OFCapableSwitchType(_Base):
|
|
_ELEMENTS = [
|
|
_e('id', is_list=False),
|
|
_e('config-version', is_list=False),
|
|
_ct('configuration-points', None, is_list=False),
|
|
_ct('resources', OFCapableSwitchResourcesType, is_list=False),
|
|
_ct('logical-switches', OFCapableSwitchLogicalSwitchesType,
|
|
is_list=False),
|
|
]
|