summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJason Kölker <jason@koelker.net>2016-03-04 00:41:23 +0000
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-03-11 23:44:47 +0900
commit8ae807ff66cfede9d2f7cfd5e3f7bb1c951f1508 (patch)
tree4a375f2e9db340cbe1a42814a0cd3844a799fc5f
parent57c68972108697c54b6c82bc252a4556d648f823 (diff)
protocols/ovsdb: Allow setting probe interval
Signed-off-by: Jason Kölker <jason@koelker.net> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/services/protocols/ovsdb/client.py6
-rw-r--r--ryu/services/protocols/ovsdb/manager.py5
2 files changed, 9 insertions, 2 deletions
diff --git a/ryu/services/protocols/ovsdb/client.py b/ryu/services/protocols/ovsdb/client.py
index 525b4328..ef532b38 100644
--- a/ryu/services/protocols/ovsdb/client.py
+++ b/ryu/services/protocols/ovsdb/client.py
@@ -192,7 +192,7 @@ class RemoteOvsdb(app_manager.RyuApp):
event.EventPortUpdated]
@classmethod
- def factory(cls, sock, address, *args, **kwargs):
+ def factory(cls, sock, address, probe_interval=None, *args, **kwargs):
ovs_stream = stream.Stream(sock, None, None)
connection = jsonrpc.Connection(ovs_stream)
schemas = discover_schemas(connection)
@@ -205,6 +205,10 @@ class RemoteOvsdb(app_manager.RyuApp):
fsm.enable(now())
fsm.set_passive(True, now())
fsm.set_max_tries(-1)
+
+ if probe_interval is not None:
+ fsm.set_probe_interval(probe_interval)
+
fsm.connected(now())
session = jsonrpc.Session(fsm, connection)
diff --git a/ryu/services/protocols/ovsdb/manager.py b/ryu/services/protocols/ovsdb/manager.py
index afe949fc..631f28bd 100644
--- a/ryu/services/protocols/ovsdb/manager.py
+++ b/ryu/services/protocols/ovsdb/manager.py
@@ -26,6 +26,7 @@ from ryu.controller import handler
opts = (cfg.StrOpt('address', default='0.0.0.0', help='OVSDB address'),
cfg.IntOpt('port', default=6640, help='OVSDB port'),
+ cfg.IntOpt('probe-interval', help='OVSDB reconnect probe interval'),
cfg.StrOpt('mngr-privkey', default=None, help='manager private key'),
cfg.StrOpt('mngr-cert', default=None, help='manager certificate'),
cfg.ListOpt('whitelist', default=[],
@@ -43,6 +44,7 @@ class OVSDB(app_manager.RyuApp):
super(OVSDB, self).__init__(*args, **kwargs)
self._address = self.CONF.ovsdb.address
self._port = self.CONF.ovsdb.port
+ self._probe_interval = self.CONF.ovsdb.probe_interval
self._clients = {}
def _accept(self, server):
@@ -89,7 +91,8 @@ class OVSDB(app_manager.RyuApp):
return self.send_event(client_name, ev)
def _start_remote(self, sock, client_address):
- app = client.RemoteOvsdb.factory(sock, client_address)
+ app = client.RemoteOvsdb.factory(sock, client_address,
+ probe_interval=self._probe_interval)
if app:
self._clients[app.name] = app