summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2017-01-04 15:07:52 +0000
committerMartin Klozik <martinx.klozik@intel.com>2017-01-04 18:05:42 +0000
commita09699652cdb1d68a333dcb9bffb2062d681f441 (patch)
treef8d047ab56d7686d0cacf6c8f24ffcc34ae6005a
parentfe97f17b0eed7e192b84edfa01177a23671887be (diff)
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 <martinx.klozik@intel.com> Reviewed-by: Al Morton <acmorton@att.com> Reviewed-by: Christian Trautman <ctrautma@redhat.com> Reviewed-by: Bill Michalowski <bmichalo@redhat.com> Reviewed-by: Antonio Fischetti <antonio.fischetti@intel.com> Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com>
-rw-r--r--core/vswitch_controller_p2p.py4
-rw-r--r--core/vswitch_controller_pxp.py4
-rw-r--r--docs/userguide/teststeps.rst4
-rw-r--r--testcases/testcase.py3
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):