From 9b590e2282714e3b5aae26c3ac2d8c857b1ddb82 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Fri, 2 Oct 2015 02:18:09 +0100 Subject: Enable PVP and PVVP deployments for Vanilla OVS Support for PVP and PVVP scenerios using Vanilla OVS was added. VMs are configured to forward traffic between virtual interfaces by standard linux capabilities. Traffic generator script was updated to accept MAC and IP address configuration to allow VM forwarding configuration. VSPERF-66, VSPERF-70 Change-Id: Ia70ab6be547b39928a1eae319faba779d4e29284 Signed-off-by: Martin Klozik Signed-off-by: Dino Simeon Madarang Reviewed-by: Maryam Tahhan Reviewed-by: Brian Castelli Reviewed-by: Gene Snider Reviewed-by: Al Morton Reviewed-by: Tv Rao --- core/traffic_controller_rfc2544.py | 10 ++++++++-- core/vnf_controller.py | 5 +++++ core/vswitch_controller.py | 7 +++++++ core/vswitch_controller_p2p.py | 5 +++++ core/vswitch_controller_pvp.py | 5 +++++ core/vswitch_controller_pvvp.py | 5 +++++ 6 files changed, 35 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/traffic_controller_rfc2544.py b/core/traffic_controller_rfc2544.py index fa4a9c35..5659569f 100644 --- a/core/traffic_controller_rfc2544.py +++ b/core/traffic_controller_rfc2544.py @@ -49,7 +49,7 @@ class TrafficControllerRFC2544(ITrafficController, IResults): packet_sizes_cli = get_test_param('pkt_sizes') if packet_sizes_cli: self._packet_sizes = [int(x.strip()) - for x in packet_sizes_cli.split(',')] + for x in packet_sizes_cli.split(',')] else: self._packet_sizes = settings.getValue('TRAFFICGEN_PKT_SIZES') @@ -91,7 +91,13 @@ class TrafficControllerRFC2544(ITrafficController, IResults): str(self._traffic_gen_class)) for packet_size in self._packet_sizes: - traffic['l2'] = {'framesize': packet_size} + # Merge framesize with the default traffic definition + if 'l2' in traffic: + traffic['l2'] = dict(traffic['l2'], + **{'framesize': packet_size}) + else: + traffic['l2'] = {'framesize': packet_size} + if traffic['traffic_type'] == 'back2back': result = self._traffic_gen_class.send_rfc2544_back2back( traffic, trials=self._trials, diff --git a/core/vnf_controller.py b/core/vnf_controller.py index 3d3be040..3313e9e3 100644 --- a/core/vnf_controller.py +++ b/core/vnf_controller.py @@ -15,6 +15,7 @@ """ import logging +from vnfs.vnf.vnf import IVnf class VnfController(object): """VNF controller class @@ -33,6 +34,10 @@ class VnfController(object): :param vnf_class: The VNF class to be used. """ + # reset VNF ID counter for each testcase + IVnf.reset_vnf_counter() + + # setup controller with requested number of VNFs self._logger = logging.getLogger(__name__) self._vnf_class = vnf_class self._deployment_scenario = deployment_scenario.upper() diff --git a/core/vswitch_controller.py b/core/vswitch_controller.py index 619e1d8b..855de8b2 100644 --- a/core/vswitch_controller.py +++ b/core/vswitch_controller.py @@ -49,3 +49,10 @@ class IVswitchController(object): raise NotImplementedError( "The VswitchController does not implement the \"get_ports_info\" " "function.") + + def dump_vswitch_flows(self): + """ Dumps flows from vswitch + """ + raise NotImplementedError( + "The VswitchController does not implement the " + "\"dump_vswitch_flows\" function.") diff --git a/core/vswitch_controller_p2p.py b/core/vswitch_controller_p2p.py index c15f7ef8..35600e1b 100644 --- a/core/vswitch_controller_p2p.py +++ b/core/vswitch_controller_p2p.py @@ -114,3 +114,8 @@ class VswitchControllerP2P(IVswitchController): """ self._logger.debug('get_ports_info using ' + str(self._vswitch_class)) return self._vswitch.get_ports(settings.getValue('VSWITCH_BRIDGE_NAME')) + + def dump_vswitch_flows(self): + """See IVswitchController for description + """ + self._vswitch.dump_flows(settings.getValue('VSWITCH_BRIDGE_NAME')) diff --git a/core/vswitch_controller_pvp.py b/core/vswitch_controller_pvp.py index 80c0fdb2..b2337bd6 100644 --- a/core/vswitch_controller_pvp.py +++ b/core/vswitch_controller_pvp.py @@ -104,3 +104,8 @@ class VswitchControllerPVP(IVswitchController): """ self._logger.debug('get_ports_info using ' + str(self._vswitch_class)) return self._vswitch.get_ports(settings.getValue('VSWITCH_BRIDGE_NAME')) + + def dump_vswitch_flows(self): + """See IVswitchController for description + """ + self._vswitch.dump_flows(settings.getValue('VSWITCH_BRIDGE_NAME')) diff --git a/core/vswitch_controller_pvvp.py b/core/vswitch_controller_pvvp.py index b445f9bd..43cf8a35 100644 --- a/core/vswitch_controller_pvvp.py +++ b/core/vswitch_controller_pvvp.py @@ -112,3 +112,8 @@ class VswitchControllerPVVP(IVswitchController): """ self._logger.debug('get_ports_info using ' + str(self._vswitch_class)) return self._vswitch.get_ports(settings.getValue('VSWITCH_BRIDGE_NAME')) + + def dump_vswitch_flows(self): + """See IVswitchController for description + """ + self._vswitch.dump_flows(settings.getValue('VSWITCH_BRIDGE_NAME')) -- cgit 1.2.3-korg