"Description": "RFC2544 Phy2Phy Continuous Stream",
"biDirectional": "True",
},
+ {
+ "Name": "phy2phy_scalability",
+ "Traffic Type": "rfc2544",
+ "Collector": "cpu",
+ "Deployment": "p2p",
+ "biDirectional": "True",
+ "Description": "LTD.Scalability.RFC2544.0PacketLoss",
+ # MultiStream defines number of flows simulated by traffic generator
+ # allowed range: 0-65535; value 0 disables MultiStream feature
+ "MultiStream": "8000",
+ },
]
* Verified on CentOS7
* Install & Quickstart documentation
+* Implementation of LTD.Scalability.RFC2544.0PacketLoss testcase
* Better support for mixing tests types with Deployment Scenarios
* Re-work based on community feedback of TOIT
* Framework support for other vSwitches
if self._frame_mod:
self._frame_mod = self._frame_mod.lower()
self._results_dir = results_dir
+ self._multistream = cfg.get('MultiStream', 0)
def run(self):
"""Run the test
with vswitch_ctl:
if vnf_ctl:
vnf_ctl.start()
- traffic = {'traffic_type': self._traffic_type, 'bidir': self._bidir}
+ traffic = {'traffic_type': self._traffic_type,
+ 'bidir': self._bidir,
+ 'multistream': self._multistream}
vswitch = vswitch_ctl.get_vswitch()
if self._frame_mod == "vlan":
flow = {'table':'2', 'priority':'1000', 'metadata':'2', 'actions': ['push_vlan:0x8100','goto_table:3']}
#TODO - implement Burst results setting via TrafficgenResults.
- def send_cont_traffic(self, traffic=None, time=20, framerate=100,
- multistream=False):
+ def send_cont_traffic(self, traffic=None, time=20, framerate=100):
"""See ITrafficGenerator for description
"""
flow = {
'time': time,
'type': 'contPacket',
'framerate': framerate,
- 'multipleStreams': multistream,
+ 'multipleStreams': traffic['multistream'],
}
result = self._send_traffic(flow, traffic)
return Ixia._create_result(result)
- def start_cont_traffic(self, traffic=None, time=20, framerate=100,
- multistream=False):
+ def start_cont_traffic(self, traffic=None, time=20, framerate=100):
"""See ITrafficGenerator for description
"""
return self.send_cont_traffic(traffic, 0, framerate)
return self.run_tcl('stopTraffic')
def send_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""See ITrafficGenerator for description
"""
params = {}
'trials': trials,
'duration': duration,
'lossrate': lossrate,
- 'multipleStreams': multistream,
+ 'multipleStreams': traffic['multistream'],
}
params['traffic'] = self.traffic_defaults.copy()
"""
pass
- def send_cont_traffic(self, traffic=None, time=30, framerate=100,
- multistream=False):
+ def send_cont_traffic(self, traffic=None, time=30, framerate=100):
"""See ITrafficGenerator for description
"""
- self.start_cont_traffic(traffic, time, framerate, multistream)
+ self.start_cont_traffic(traffic, time, framerate)
return self.stop_cont_traffic()
- def start_cont_traffic(self, traffic=None, time=30, framerate=100,
- multistream=False):
+ def start_cont_traffic(self, traffic=None, time=30, framerate=100):
"""Start transmission.
"""
self._bidir = traffic['bidir']
'binary': False, # don't do binary search and send one stream
'time': time,
'framerate': framerate,
- 'multipleStreams': multistream,
+ 'multipleStreams': traffic['multistream'],
'rfc2544TestType': 'throughput',
}
self._params['traffic'] = self.traffic_defaults.copy()
return self._wait_result()
def send_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""See ITrafficGenerator for description
"""
- self.start_rfc2544_throughput(traffic, trials, duration, lossrate,
- multistream)
+ self.start_rfc2544_throughput(traffic, trials, duration, lossrate)
return self.wait_rfc2544_throughput()
def start_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Start transmission.
"""
self._bidir = traffic['bidir']
'trials': trials,
'duration': duration,
'lossrate': lossrate,
- 'multipleStreams': multistream,
+ 'multipleStreams': traffic['multistream'],
'rfc2544TestType': 'throughput',
}
self._params['traffic'] = self.traffic_defaults.copy()
return parse_ixnet_rfc_results(parse_result_string(output[0]))
def send_rfc2544_back2back(self, traffic=None, trials=1, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""See ITrafficGenerator for description
"""
- self.start_rfc2544_back2back(traffic, trials, duration, lossrate,
- multistream)
+ self.start_rfc2544_back2back(traffic, trials, duration, lossrate)
return self.wait_rfc2544_back2back()
def start_rfc2544_back2back(self, traffic=None, trials=1, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Start transmission.
"""
self._bidir = traffic['bidir']
'trials': trials,
'duration': duration,
'lossrate': lossrate,
- 'multipleStreams': multistream,
+ 'multipleStreams': traffic['multistream'],
'rfc2544TestType': 'back2back',
}
self._params['traffic'] = self.traffic_defaults.copy()
}
set multipleStreams [dict get $testSpec multipleStreams]
+ if {($multipleStreams < 0)} {
+ set multipleStreams 0
+ }
+ set numflows 64000
if {$multipleStreams} {
+ if {($multipleStreams > 65535)} {
+ set numflows 65535
+ } else {
+ set numflows $multipleStreams
+ }
set multipleStreams increment
} else {
set multipleStreams singleValue
-valueType $multipleStreams \
-activeFieldChoice False \
-startValue {0} \
- -countValue {64000}
+ -countValue $numflows
sg_commit
set sg_field [lindex [ixNet remapIds $sg_field] 0]
-valueType $multipleStreams \
-activeFieldChoice False \
-startValue {0} \
- -countValue {64000}
+ -countValue $numflows
sg_commit
set sg_field [lindex [ixNet remapIds $sg_field] 0]
"""
raise NotImplementedError('Please call an implementation.')
- def send_cont_traffic(self, traffic=None, time=20, framerate=0,
- multistream=False):
+ def send_cont_traffic(self, traffic=None, time=20, framerate=0):
"""Send a continuous flow of traffic.
Send packets at ``framerate``, using ``traffic`` configuration,
"""
raise NotImplementedError('Please call an implementation.')
- def start_cont_traffic(self, traffic=None, time=20, framerate=0,
- multistream=False):
+ def start_cont_traffic(self, traffic=None, time=20, framerate=0):
"""Non-blocking version of 'send_cont_traffic'.
Start transmission and immediately return. Do not wait for
raise NotImplementedError('Please call an implementation.')
def send_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Send traffic per RFC2544 throughput test specifications.
Send packets at a variable rate, using ``traffic``
raise NotImplementedError('Please call an implementation.')
def start_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Non-blocking version of 'send_rfc2544_throughput'.
Start transmission and immediately return. Do not wait for
raise NotImplementedError('Please call an implementation.')
def send_rfc2544_back2back(self, traffic=None, trials=1, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Send traffic per RFC2544 back2back test specifications.
Send packets at a fixed rate, using ``traffic``
raise NotImplementedError('Please call an implementation.')
def start_rfc2544_back2back(self, traffic=None, trials=1, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""Non-blocking version of 'send_rfc2544_back2back'.
Start transmission and immediately return. Do not wait for