Looks good to me.
2014-02-03 YAMAMOTO Takashi <[email protected]>:
> 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
>
------------------------------------------------------------------------------
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