Signed-off-by: YAMAMOTO Takashi <[email protected]>
---
ryu/base/app_manager.py | 8 ++------
ryu/controller/controller.py | 26 ++------------------------
2 files changed, 4 insertions(+), 30 deletions(-)
diff --git a/ryu/base/app_manager.py b/ryu/base/app_manager.py
index 6fb6013..a546780 100644
--- a/ryu/base/app_manager.py
+++ b/ryu/base/app_manager.py
@@ -25,6 +25,7 @@ from ryu.controller.controller import Datapath
from ryu.controller import event
from ryu.controller.event import EventRequestBase, EventReplyBase
from ryu.lib import hub
+from ryu.ofproto import ofproto_protocol
LOG = logging.getLogger('ryu.base.app_manager')
@@ -343,12 +344,7 @@ class AppManager(object):
LOG.info('instantiating app %s of %s', app_name, cls.__name__)
if hasattr(cls, 'OFP_VERSIONS') and not cls.OFP_VERSIONS is None:
- for k in Datapath.supported_ofp_version.keys():
- if not k in cls.OFP_VERSIONS:
- del Datapath.supported_ofp_version[k]
-
- assert len(Datapath.supported_ofp_version), \
- 'No OpenFlow version is available'
+ ofproto_protocol.set_app_supported_versions(cls.OFP_VERSIONS)
if app_name is not None:
assert app_name not in self.applications
diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py
index 20a9c1d..942b12e 100644
--- a/ryu/controller/controller.py
+++ b/ryu/controller/controller.py
@@ -27,14 +27,8 @@ import ryu.base.app_manager
from ryu.ofproto import ofproto_common
from ryu.ofproto import ofproto_parser
+from ryu.ofproto import ofproto_protocol
from ryu.ofproto import ofproto_v1_0
-from ryu.ofproto import ofproto_v1_0_parser
-from ryu.ofproto import ofproto_v1_2
-from ryu.ofproto import ofproto_v1_2_parser
-from ryu.ofproto import ofproto_v1_3
-from ryu.ofproto import ofproto_v1_3_parser
-from ryu.ofproto import ofproto_v1_4
-from ryu.ofproto import ofproto_v1_4_parser
from ryu.ofproto import nx_match
from ryu.controller import handler
@@ -102,18 +96,7 @@ def _deactivate(method):
return deactivate
-class Datapath(object):
- supported_ofp_version = {
- 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),
- }
-
+class Datapath(ofproto_protocol.ProtocolDesc):
def __init__(self, socket, address):
super(Datapath, self).__init__()
@@ -125,7 +108,6 @@ class Datapath(object):
# prevent it from eating memory up
self.send_q = hub.Queue(16)
- self.set_version(max(self.supported_ofp_version))
self.xid = random.randint(0, self.ofproto.MAX_XID)
self.id = None # datapath_id is unknown yet
self.ports = None
@@ -142,10 +124,6 @@ class Datapath(object):
ev.state = state
self.ofp_brick.send_event_to_observers(ev, state)
- def set_version(self, version):
- assert version in self.supported_ofp_version
- self.ofproto, self.ofproto_parser = self.supported_ofp_version[version]
-
# Low level socket handling layer
@_deactivate
def _recv_loop(self):
--
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