X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FTrafficGenerator.py;h=8387ce2b3c6ae58a504693df5a7d21e48e1b352a;hp=47008bc22aef1fcc4380ff62e444e35a3d6a7082;hb=refs%2Fchanges%2F28%2F5728%2F71;hpb=b468094f7c9e2ecd32712fde46de46eeef4acc8f diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py index 47008bc22a..8387ce2b3c 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.17" + trex_path = "/opt/trex-core-2.22" ssh = SSH() ssh.connect(tg_node) @@ -273,7 +273,8 @@ class TrafficGenerator(object): # get T-rex server info (ret, _, _) = ssh.exec_command( - "sh -c '{0}/resources/tools/t-rex/t-rex-server-info.py'"\ + "sh -c 'sleep 3; " + "{0}/resources/tools/t-rex/t-rex-server-info.py'"\ .format(Constants.REMOTE_FW_DIR), timeout=120) if int(ret) == 0: @@ -285,7 +286,6 @@ class TrafficGenerator(object): # critical error occured raise RuntimeError('t-rex-64 startup failed') - @staticmethod def teardown_traffic_generator(node): """TG teardown. @@ -302,7 +302,7 @@ class TrafficGenerator(object): ssh = SSH() ssh.connect(node) (ret, stdout, stderr) = ssh.exec_command( - "sh -c 'sudo pkill t-rex'") + "sh -c 'sudo pkill t-rex && sleep 3'") if int(ret) != 0: logger.error('pkill t-rex failed: {0}'.format(stdout + stderr)) raise RuntimeError('pkill t-rex failed') @@ -393,6 +393,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 "