-# Copyright 2015 Intel Corporation.
+# Copyright 2015-2016 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
"""
raise NotImplementedError()
- def add_switch(self, switch_name):
+ def add_switch(self, switch_name, params):
"""Create a new logical switch with no ports
:param switch_name: The name of the new logical switch
+ :param params: Optional parameters to configure switch
+
:returns: None
"""
raise NotImplementedError()
"""
raise NotImplementedError()
+ def add_tunnel_port(self, switch_name, remote_ip, tunnel_type, params=None):
+ """Create a new port to the logical switch for tunneling
+
+ :param switch_name: The switch where the port is attached to
+ :returns: (port name, OpenFlow port number)
+ """
+ raise NotImplementedError()
+
def get_ports(self, switch_name):
"""Return a list of tuples describing the ports of the logical switch
"""
raise NotImplementedError()
- def add_flow(self, switch_name, flow):
+ def add_flow(self, switch_name, flow, cache='off'):
"""Add a flow rule to the logical switch
:param switch_name: The switch on which to operate
:param flow: Flow description as a dictionary
+ :param cache: Optional. Specifies if flow should be inserted
+ to the switch or cached to increase performance during manipulation
+ with large number of flows.
+ Values:
+ 'off' - cache is off and flow is inserted directly to the switch
+ 'on' - cache is on and flow is inserted into the cache
+ 'flush' - cache content will be inserted into the switch
Example flow dictionary:
flow = {
:param switch_name: The switch on which to operate
"""
raise NotImplementedError()
+
+ def add_route(self, switch_name, network, destination):
+ """Add a route for tunneling routing table
+
+ :param switch_name: The switch on which to operate
+ :param network: Target destination network
+ :param destination: Gateway IP
+ """
+ raise NotImplementedError()
+
+ def set_tunnel_arp(self, ip_addr, mac_addr, switch_name):
+ """Add arp entry for tunneling
+
+ :param ip_addr: IP of bridge
+ :param mac_addr: MAC address of the bridge
+ :param switch_name: Name of the bridge
+ """
+ raise NotImplementedError()