From c3e4dd5641210ba3372d63dab1cbc5c9253e3a23 Mon Sep 17 00:00:00 2001 From: Isaku Yamahata Date: Tue, 5 Feb 2013 20:10:46 +0900 Subject: [PATCH] app/client: add tunnel client Signed-off-by: Isaku Yamahata Signed-off-by: FUJITA Tomonori --- ryu/app/client.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/ryu/app/client.py b/ryu/app/client.py index fcf12839..01a482c5 100644 --- a/ryu/app/client.py +++ b/ryu/app/client.py @@ -96,3 +96,49 @@ class OFPClientV1_0(RyuClientBase): OFPClient = OFPClientV1_0 + + +class TunnelClientV1_0(RyuClientBase): + version = 'v1.0' + + # /tunnels/networks/{network-id}/key/{tunnel_key} + # /tunnels/switches/{dpid}/ports/{port-id}/{remote_dpip} + path_tunnels = 'tunnels' + path_key = path_tunnels + '/networks/%(network_id)s/key' + path_tunnel_key = path_key + '/%(tunnel_key)s' + path_ports = path_tunnels + '/switches/%(dpid)s/ports' + path_port = path_ports + '/%(port_no)s' + path_remote_dpid = path_port + '/%(remote_dpid)s' + + def __init__(self, address): + super(TunnelClientV1_0, self).__init__(self.version, address) + + def get_tunnel_key(self, network_id): + return self._do_request_read('GET', self.path_key % locals()) + + def delete_tunnel_key(self, network_id): + return self._do_request_read('DELETE', self.path_key % locals()) + + def create_tunnel_key(self, network_id, tunnel_key): + self._do_request('POST', self.path_tunnel_key % locals()) + + def update_tunnel_key(self, network_id, tunnel_key): + self._do_request('PUT', self.path_tunnel_key % locals()) + + def list_ports(self, dpid): + return self._do_request_read('GET', self.path_ports % locals()) + + def delete_port(self, dpid, port_no): + return self._do_request_read('DELETE', self.path_port % locals()) + + def get_remote_dpid(self, dpid, port_no): + return self._do_request_read('GET', self.path_port % locals()) + + def create_remote_dpid(self, dpid, port_no, remote_dpid): + self._do_request('POST', self.path_remote_dpid % locals()) + + def update_remote_dpid(self, dpid, port_no, remote_dpid): + self._do_request('PUT', self.path_remote_dpid % locals()) + + +TunnelClient = TunnelClientV1_0