diff options
author | Christian Trautman <ctrautma@redhat.com> | 2018-05-17 17:46:29 -0400 |
---|---|---|
committer | Christian Trautman <ctrautma@redhat.com> | 2018-06-18 07:22:40 -0400 |
commit | 11be4868b77d49174afafcd515d1037325796d04 (patch) | |
tree | 968e6be0f63bd79f5c1c2896d96a5829da28701c /tools/pkt_gen/xena/xena.py | |
parent | 7224efa9539584690236218f5243b6b5c81daca9 (diff) |
Xena_Flow_Fix: Fixes multistream of greater than 64k values
Adds calculations to deal with values greater than 64k by doing
a square root of the multistream value and using two mods
to create the closet possible value that will work within the
current implementation of multistream in VSPerf.
JIRA: VSPERF-575
Change-Id: I9dab4bbac094a394a11ed74fe2cd88fbe7079fc7
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
Diffstat (limited to 'tools/pkt_gen/xena/xena.py')
-rwxr-xr-x | tools/pkt_gen/xena/xena.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/tools/pkt_gen/xena/xena.py b/tools/pkt_gen/xena/xena.py index 33864079..3adc8294 100755 --- a/tools/pkt_gen/xena/xena.py +++ b/tools/pkt_gen/xena/xena.py @@ -39,6 +39,7 @@ from tools.pkt_gen.trafficgen.trafficgen import ITrafficGenerator from tools.pkt_gen.xena.XenaDriver import ( aggregate_stats, line_percentage, + ModSet, XenaSocketDriver, XenaManager, ) @@ -283,6 +284,9 @@ class Xena(ITrafficGenerator): j_file = XenaJSONBlocks() elif bonding_test: j_file = XenaJSONPairs() + else: # just default to mesh config + self._logger.error('Invalid traffic type defaulting to Mesh config') + j_file = XenaJSONMesh() j_file.set_chassis_info( settings.getValue('TRAFFICGEN_XENA_IP'), @@ -346,7 +350,7 @@ class Xena(ITrafficGenerator): id=self._params['traffic']['vlan']['cfi'], prio=self._params['traffic']['vlan']['priority']) j_file.add_header_segments( - flows=self._params['traffic']['multistream'], + flows=self._params['traffic']['multistream'] - 1, multistream_layer=self._params['traffic']['stream_type']) j_file.write_config(os.path.join( @@ -454,9 +458,17 @@ class Xena(ITrafficGenerator): port.micro_tpld_enable() if self._params['traffic']['multistream']: + if self._params['traffic']['stream_type'] == 'L2': + modobj = ModSet(mod_src_mac=True, mod_dst_mac=True) + elif self._params['traffic']['stream_type'] == 'L3': + modobj = ModSet(mod_src_ip=True, mod_dst_ip=True) + elif self._params['traffic']['stream_type'] == 'L4': + modobj = ModSet(mod_src_port=True, mod_dst_port=True) + else: + self._logger.error('Invalid segment for multistream. Using L2..') + modobj = ModSet(mod_src_mac=True, mod_dst_mac=True) stream.enable_multistream( - flows=self._params['traffic']['multistream'], - layer=self._params['traffic']['stream_type']) + flows=self._params['traffic']['multistream'], mod_class=modobj) s1_p0 = self.xmanager.ports[0].add_stream() setup_stream(s1_p0, self.xmanager.ports[0], 0) |