currently OFP classes takes the Datapath object, which is too complex for this purpose. this class, ProtocolDesc, is intended to be a simpler replacement for that.
Signed-off-by: YAMAMOTO Takashi <[email protected]> --- ryu/ofproto/ofproto_protocol.py | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ryu/ofproto/ofproto_protocol.py diff --git a/ryu/ofproto/ofproto_protocol.py b/ryu/ofproto/ofproto_protocol.py new file mode 100644 index 0000000..cf0495d --- /dev/null +++ b/ryu/ofproto/ofproto_protocol.py @@ -0,0 +1,56 @@ +# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2014 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. + +from . import ofproto_v1_0 +from . import ofproto_v1_0_parser +from . import ofproto_v1_2 +from . import ofproto_v1_2_parser +from . import ofproto_v1_3 +from . import ofproto_v1_3_parser +from . import ofproto_v1_4 +from . import ofproto_v1_4_parser + + +_versions = { + ofproto_v1_0.OFP_VERSION: (ofproto_v1_0, ofproto_v1_0_parser), + ofproto_v1_2.OFP_VERSION: (ofproto_v1_2, ofproto_v1_2_parser), + ofproto_v1_3.OFP_VERSION: (ofproto_v1_3, ofproto_v1_3_parser), + ofproto_v1_4.OFP_VERSION: (ofproto_v1_4, ofproto_v1_4_parser), +} + + +# OF versions supported by every apps in this process (intersection) +_supported_versions = set(_versions.keys()) + + +def set_app_supported_versions(vers): + _versions &= set(vers) + assert _versions, 'No OpenFlow version is available' + + +class ProtocolDesc(object): + """ + OpenFlow protocol version flavor descriptor + """ + + def __init__(self, version=None): + if version is None: + version = max(_supported_versions) + self.set_version(version) + + def set_version(self, version): + assert version in _supported_versions + (self.ofproto, self.ofproto_parser) = _versions[version] -- 1.8.3.1 ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Ryu-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ryu-devel
