X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FTrafficGenerator.py;h=8fb91910637e50048d5b6043d72556f038a6d86d;hp=68bd372b84ea49e9b548990a0745316b928fc808;hb=afa3def247a11985b17f310e58b6f5fae16dc306;hpb=ec059708c78fe3563bc89507739a2712adc062f3 diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py index 68bd372b84..8fb9191063 100644 --- a/resources/libraries/python/TrafficGenerator.py +++ b/resources/libraries/python/TrafficGenerator.py @@ -184,7 +184,7 @@ class TrafficGenerator(object): self._node = tg_node if tg_node['subtype'] == NodeSubTypeTG.TREX: - trex_path = "/opt/trex-core-2.22" + trex_path = "/opt/trex-core-2.25" ssh = SSH() ssh.connect(tg_node) @@ -286,7 +286,6 @@ class TrafficGenerator(object): # critical error occured raise RuntimeError('t-rex-64 startup failed') - @staticmethod def teardown_traffic_generator(node): """TG teardown. @@ -323,9 +322,6 @@ class TrafficGenerator(object): (ret, stdout, stderr) = ssh.exec_command( "sh -c '{}/resources/tools/t-rex/" "t-rex-stateless-stop.py'".format(Constants.REMOTE_FW_DIR)) - logger.trace(ret) - logger.trace(stdout) - logger.trace(stderr) if int(ret) != 0: raise RuntimeError('T-rex stateless runtime error') @@ -394,6 +390,206 @@ class TrafficGenerator(object): _p0, _p1, _async, _latency, warmup_time), timeout=int(duration)+60) + elif traffic_type in ["3-node-IPv4-dst-1"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 10.0.0.1 " + "--p{4}_dst_start_ip 20.0.0.0 " + "--p{4}_dst_end_ip 20.0.0.0 " + "--p{5}_src_start_ip 20.0.0.1 " + "--p{5}_dst_start_ip 10.0.0.0 " + "--p{5}_dst_end_ip 10.0.0.0 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + elif traffic_type in ["3-node-IPv4-dst-100"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 10.0.0.1 " + "--p{4}_dst_start_ip 20.0.0.0 " + "--p{4}_dst_end_ip 20.0.0.99 " + "--p{5}_src_start_ip 20.0.0.1 " + "--p{5}_dst_start_ip 10.0.0.0 " + "--p{5}_dst_end_ip 10.0.0.99 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + elif traffic_type in ["3-node-IPv4-dst-1000"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 10.0.0.1 " + "--p{4}_dst_start_ip 20.0.0.0 " + "--p{4}_dst_end_ip 20.0.3.231 " + "--p{5}_src_start_ip 20.0.0.1 " + "--p{5}_dst_start_ip 10.0.0.0 " + "--p{5}_dst_end_ip 10.0.3.231 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-1u-1p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.0.0 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1024 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1028 " + "--p{5}_dst_end_udp_port 1028 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-1u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.0.0 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 1038 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-10u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.0.9 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 1173 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-100u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.0.99 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 2523 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration) + 60) + + elif traffic_type in ["3-node-IPv4-SNAT-1000u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.3.231 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 16023 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-2000u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.7.207 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 31022 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + + elif traffic_type in ["3-node-IPv4-SNAT-4000u-15p"]: + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_src_start_ip 20.0.0.0 " + "--p{4}_src_end_ip 20.0.15.159 " + "--p{4}_dst_start_ip 12.0.0.2 " + "--p{5}_src_start_ip 12.0.0.2 " + "--p{5}_src_end_ip 12.0.0.2 " + "--p{5}_dst_start_ip 200.0.0.0 " + "--p{4}_src_start_udp_port 1024 " + "--p{4}_src_end_udp_port 1038 " + "--p{4}_dst_start_udp_port 1024 " + "--p{5}_src_start_udp_port 1024 " + "--p{5}_dst_start_udp_port 1024 " + "--p{5}_dst_end_udp_port 61022 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) + elif traffic_type in ["3-node-IPv4-dst-10000"]: (ret, stdout, stderr) = ssh.exec_command( "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " @@ -514,13 +710,26 @@ class TrafficGenerator(object): _p0, _p1, _async, _latency, warmup_time), timeout = int(duration) + 60) + elif traffic_type in ["3-node-IPv4-l3fwd"]: + # add for the DPDK l3fwd routing test + # please make sure the TG port 0 connect to the DUT port 0 + (ret, stdout, stderr) = ssh.exec_command( + "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py " + "--duration={1} -r {2} -s {3} " + "--p{4}_dst_start_ip 2.1.1.2 " + "--p{4}_dst_end_ip 2.1.1.254 " + "--p{4}_src_start_ip 20.20.20.2 " + "--p{5}_dst_start_ip 1.1.1.2 " + "--p{5}_dst_end_ip 1.1.1.254 " + "--p{5}_src_start_ip 10.10.10.2 " + "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR, + duration, rate, framesize, + _p0, _p1, _async, _latency, + warmup_time), + timeout=int(duration)+60) else: raise NotImplementedError('Unsupported traffic type') - logger.trace(ret) - logger.trace(stdout) - logger.trace(stderr) - if int(ret) != 0: raise RuntimeError('T-rex stateless runtime error') elif async_call: