From a09699652cdb1d68a333dcb9bffb2062d681f441 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Wed, 4 Jan 2017 15:07:52 +0000 Subject: bugfix: Ethernet type and vnf stop fixes Usage of ethernet type for IPv4 was harmonized, to use 0x0800 at all places. Together with this fix a bug during VNF cleanup was removed - VNF started by TestSteps are tested for validity before the call of their stop() method. It avoid vsperf crash in case, that VNF was not properly started. JIRA: VSPERF-436 Change-Id: Ic1a36919f5c9d707aa0aad64b5d96a1214c56cb3 Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Bill Michalowski Reviewed-by: Antonio Fischetti Reviewed-by: Sridhar Rao --- core/vswitch_controller_p2p.py | 4 ++-- core/vswitch_controller_pxp.py | 4 ++-- docs/userguide/teststeps.rst | 4 ++-- testcases/testcase.py | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/vswitch_controller_p2p.py b/core/vswitch_controller_p2p.py index e9ab5cc4..de3fcc0d 100644 --- a/core/vswitch_controller_p2p.py +++ b/core/vswitch_controller_p2p.py @@ -158,14 +158,14 @@ class VswitchControllerP2P(IVswitchController): dst_ip_value = netaddr.IPAddress(self._traffic['l3']['dstip']).value for i in range(int(self._traffic['multistream'])): tmp_ip = netaddr.IPAddress(dst_ip_value + i) - flow_template.update({'dl_type':'0x800', 'nw_dst':tmp_ip}) + flow_template.update({'dl_type':'0x0800', 'nw_dst':tmp_ip}) # optimize flow insertion by usage of cache self._vswitch.add_flow(bridge, flow_template, cache='on') elif self._traffic['stream_type'] == 'L4': # read transport protocol from configuration and iterate through its destination port proto = _PROTO_TCP if self._traffic['l3']['proto'].lower() == 'tcp' else _PROTO_UDP for i in range(int(self._traffic['multistream'])): - flow_template.update({'dl_type':'0x800', 'nw_proto':proto, 'tp_dst':i}) + flow_template.update({'dl_type':'0x0800', 'nw_proto':proto, 'tp_dst':i}) # optimize flow insertion by usage of cache self._vswitch.add_flow(bridge, flow_template, cache='on') else: diff --git a/core/vswitch_controller_pxp.py b/core/vswitch_controller_pxp.py index 6f53b5ac..d4d1e764 100644 --- a/core/vswitch_controller_pxp.py +++ b/core/vswitch_controller_pxp.py @@ -156,9 +156,9 @@ class VswitchControllerPXP(IVswitchController): flow_p.update({'dl_dst':tmp_mac}) elif self._traffic['stream_type'] == 'L3': tmp_ip = netaddr.IPAddress(dst_ip_value + stream) - flow_p.update({'dl_type':'0x800', 'nw_dst':tmp_ip}) + flow_p.update({'dl_type':'0x0800', 'nw_dst':tmp_ip}) elif self._traffic['stream_type'] == 'L4': - flow_p.update({'dl_type':'0x800', 'nw_proto':proto, 'tp_dst':stream}) + flow_p.update({'dl_type':'0x0800', 'nw_proto':proto, 'tp_dst':stream}) else: raise RuntimeError('Unknown stream_type {}'.format(self._traffic['stream_type'])) diff --git a/docs/userguide/teststeps.rst b/docs/userguide/teststeps.rst index c00a2749..5e2d9570 100644 --- a/docs/userguide/teststeps.rst +++ b/docs/userguide/teststeps.rst @@ -633,10 +633,10 @@ and available in both csv and rst report files. ['vswitch', 'add_vport', 'br0'], # priority must be higher than default 32768, otherwise flows won't match ['vswitch', 'add_flow', 'br0', - {'in_port': '1', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x800', + {'in_port': '1', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x0800', 'nw_proto':'17', 'tp_dst':'0', 'priority': '33000'}], ['vswitch', 'add_flow', 'br0', - {'in_port': '2', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x800', + {'in_port': '2', 'actions': ['output:#STEP[-2][1]'], 'idle_timeout': '0', 'dl_type':'0x0800', 'nw_proto':'17', 'tp_dst':'0', 'priority': '33000'}], ['vswitch', 'add_flow', 'br0', {'in_port': '#STEP[-4][1]', 'actions': ['output:1'], 'idle_timeout': '0'}], diff --git a/testcases/testcase.py b/testcases/testcase.py index 18ad4240..55c940a4 100644 --- a/testcases/testcase.py +++ b/testcases/testcase.py @@ -679,7 +679,8 @@ class TestCase(object): """ Stop all VNFs started by TestSteps """ for vnf in self._step_vnf_list: - self._step_vnf_list[vnf].stop() + if self._step_vnf_list[vnf]: + self._step_vnf_list[vnf].stop() @staticmethod def step_eval_param(param, STEP): -- cgit 1.2.3-korg