add support for dp mac replace mode-golden were changed
authorHanoh Haim <[email protected]>
Mon, 15 Feb 2016 12:19:03 +0000 (14:19 +0200)
committerHanoh Haim <[email protected]>
Mon, 15 Feb 2016 12:19:03 +0000 (14:19 +0200)
140 files changed:
.gitignore
scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py
scripts/exp/burst_1000_pkt.pcap
scripts/exp/burst_1pkt_1burst.pcap
scripts/exp/burst_1pkt_vm.pcap
scripts/exp/dns-0-ex.erf
scripts/exp/dns-0.erf
scripts/exp/dns_e-0-ex.erf
scripts/exp/dns_e-0.erf
scripts/exp/dns_flip-0-ex.erf
scripts/exp/dns_flip-0.erf
scripts/exp/dns_ipv6-0-ex.erf
scripts/exp/dns_ipv6-0.erf
scripts/exp/dns_one_server-0-ex.erf
scripts/exp/dns_one_server-0.erf
scripts/exp/dns_p-0-ex.erf
scripts/exp/dns_p-0.erf
scripts/exp/dyn_pyld1-0-ex.erf
scripts/exp/dyn_pyld1-0.erf
scripts/exp/hlt_udp_inc_dec_len_9k.pcap
scripts/exp/http_plugin-0-ex.erf
scripts/exp/http_plugin-0.erf
scripts/exp/http_plugin_v6-0-ex.erf
scripts/exp/http_plugin_v6-0.erf
scripts/exp/ignore-0-ex.erf
scripts/exp/ignore-0.erf
scripts/exp/imix-0-ex.erf
scripts/exp/imix-0.erf
scripts/exp/imix.pcap
scripts/exp/imix_1pkt.pcap
scripts/exp/imix_1pkt_2.pcap
scripts/exp/imix_1pkt_tuple_gen.pcap
scripts/exp/imix_1pkt_vm.pcap
scripts/exp/imix_3pkt.pcap [new file with mode: 0644]
scripts/exp/imix_3pkt_vm.pcap [new file with mode: 0644]
scripts/exp/imix_v6-0-ex.erf
scripts/exp/imix_v6-0.erf
scripts/exp/ipv4_vlan-0-ex.erf
scripts/exp/ipv4_vlan-0.erf
scripts/exp/ipv6-0-ex.erf
scripts/exp/ipv6-0.erf
scripts/exp/ipv6_vlan-0-ex.erf
scripts/exp/ipv6_vlan-0.erf
scripts/exp/limit_multi_pkt-0-ex.erf
scripts/exp/limit_multi_pkt-0.erf
scripts/exp/limit_single_pkt-0-ex.erf
scripts/exp/limit_single_pkt-0.erf
scripts/exp/multi_burst_2st_1000pkt.pcap
scripts/exp/pcap_mode1-0-ex.erf
scripts/exp/pcap_mode1-0.erf
scripts/exp/pcap_mode2-0-ex.erf
scripts/exp/pcap_mode2-0.erf
scripts/exp/rtsp_short1-0-ex.erf
scripts/exp/rtsp_short1-0.erf
scripts/exp/rtsp_short1_v6-0-ex.erf
scripts/exp/rtsp_short1_v6-0.erf
scripts/exp/rtsp_short2-0-ex.erf
scripts/exp/rtsp_short2-0.erf
scripts/exp/rtsp_short2_v6-0-ex.erf
scripts/exp/rtsp_short2_v6-0.erf
scripts/exp/rtsp_short3-0-ex.erf
scripts/exp/rtsp_short3-0.erf
scripts/exp/rtsp_short3_v6-0-ex.erf
scripts/exp/rtsp_short3_v6-0.erf
scripts/exp/sfr2-0-ex.erf
scripts/exp/sfr2-0.erf
scripts/exp/sfr3-0-ex.erf
scripts/exp/sfr3-0.erf
scripts/exp/sfr_4-0-ex.erf
scripts/exp/sfr_4-0.erf
scripts/exp/sip_short1-0-ex.erf
scripts/exp/sip_short1-0.erf
scripts/exp/sip_short1_v6-0-ex.erf
scripts/exp/sip_short1_v6-0.erf
scripts/exp/sip_short2-0-ex.erf
scripts/exp/sip_short2-0.erf
scripts/exp/sip_short2_v6-0-ex.erf
scripts/exp/sip_short2_v6-0.erf
scripts/exp/sip_short3-0-ex.erf
scripts/exp/sip_short3-0.erf
scripts/exp/sip_short3_v6-0-ex.erf
scripts/exp/sip_short3_v6-0.erf
scripts/exp/stl_basic_pause_resume0-0-ex.erf
scripts/exp/stl_bb_start_stop2-0-ex.erf
scripts/exp/stl_bb_start_stop_delay1-0-ex.erf
scripts/exp/stl_bb_start_stop_delay2-0-ex.erf
scripts/exp/stl_multi_burst1-0-ex.erf
scripts/exp/stl_multi_pkt1-0-ex.erf
scripts/exp/stl_multi_pkt2-0-ex.erf
scripts/exp/stl_simple_prog1-0-ex.erf
scripts/exp/stl_simple_prog2-0-ex.erf
scripts/exp/stl_simple_prog3-0-ex.erf
scripts/exp/stl_simple_prog4-0-ex.erf
scripts/exp/stl_single_pkt_burst1-0-ex.erf
scripts/exp/stl_single_stream-0-ex.erf
scripts/exp/stl_single_stream_mac0-0-ex.erf [new file with mode: 0644]
scripts/exp/stl_single_stream_mac01-0-ex.erf [new file with mode: 0644]
scripts/exp/stl_single_stream_mac10-0-ex.erf [new file with mode: 0644]
scripts/exp/stl_single_stream_mac11-0-ex.erf [new file with mode: 0644]
scripts/exp/stl_vm_enable0-0-ex.erf
scripts/exp/stl_vm_enable1-0-ex.erf
scripts/exp/stl_vm_enable2-0-ex.erf
scripts/exp/stl_vm_split_client_var.erf-0-ex.erf
scripts/exp/stl_vm_split_client_var.erf-0.erf
scripts/exp/stl_vm_split_flow_var_big_range.erf-0-ex.erf
scripts/exp/stl_vm_split_flow_var_big_range.erf-0.erf
scripts/exp/stl_vm_split_flow_var_inc.erf-0-ex.erf
scripts/exp/stl_vm_split_flow_var_inc.erf-0.erf
scripts/exp/stl_vm_split_flow_var_small_range.erf-0-ex.erf
scripts/exp/stl_vm_split_flow_var_small_range.erf-0.erf
scripts/exp/syn_attack.pcap [new file with mode: 0644]
scripts/exp/udp_1pkt.pcap
scripts/exp/udp_1pkt_1mac.pcap
scripts/exp/udp_1pkt_1mac_override.pcap
scripts/exp/udp_1pkt_ipv6_in_ipv4.pcap
scripts/exp/udp_1pkt_mac.pcap
scripts/exp/udp_1pkt_mpls.pcap
scripts/exp/udp_1pkt_mpls_vm.pcap
scripts/exp/udp_1pkt_pcap.pcap
scripts/exp/udp_1pkt_pcap_relative_path.pcap
scripts/exp/udp_1pkt_range_clients.pcap
scripts/exp/udp_1pkt_range_clients_split.pcap
scripts/exp/udp_1pkt_tuple_gen.pcap
scripts/exp/udp_1pkt_tuple_gen_split.pcap
scripts/exp/udp_1pkt_vxlan.pcap
scripts/exp/udp_3pkt_pcap.pcap
scripts/exp/udp_inc_len_9k.pcap
scripts/exp/udp_rand_len_9k.pcap
src/bp_gtest.cpp
src/bp_sim.cpp
src/bp_sim.h
src/common/captureFile.cpp
src/common/captureFile.h
src/gtest/trex_stateless_gtest.cpp
src/main.cpp
src/stateless/cp/trex_stream.cpp
src/stateless/cp/trex_stream.h
src/stateless/dp/trex_stateless_dp_core.cpp
src/stateless/dp/trex_stateless_dp_core.h
src/stateless/dp/trex_stream_node.h

index 0ce1a5b..856d3da 100644 (file)
@@ -58,6 +58,11 @@ scripts/exp/stl_vm_rand_size_64_128.pcap
 scripts/exp/stl_vm_random_size_64_128.pcap
 scripts/automation/regression/reports/unit_test.xml
 scripts/automation/regression/unit_tests/functional_tests/test.pcap
+scripts/exp/stl_single_stream_mac0-0.erf
+scripts/exp/stl_single_stream_mac01-0.erf
+scripts/exp/stl_single_stream_mac10-0.erf
+scripts/exp/stl_single_stream_mac11-0.erf
+
 
 #files generated by global
 src/GPATH
index fd372ae..ec1b6e9 100644 (file)
@@ -126,6 +126,10 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
         try:
             rc = self.run_sim(input_file, output_cap, options, silent)
             assert_equal(rc, True)
+            #s='cp  '+output_cap+' '+golden_file;
+            #print s
+            #os.system(s)
+
             if compare:
                 self.compare_caps(output_cap, golden_file)
         finally:
@@ -133,19 +137,6 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
                 os.unlink(output_cap)
 
 
-
-    # test for IMIX
-    def test_imix (self):
-        self.golden_run("basic_imix", "imix_3pkt", "-m 50kpps --limit 500 --cores 8", silent = False)
-
-
-    def test_vm (self):
-        self.golden_run("basic_imix_vm", "imix_3pkt_vm", "-m 50kpps --limit 500 --cores 8", silent = False)
-
-
-    def test_tuple_gen (self):
-        self.golden_run("basic_tuple_gen", "imix_tuple_gen", "-m 50kpps --limit 500 --cores 8", silent = False)
-
     def test_stl_profiles (self):
 
         p = [ 
@@ -178,11 +169,22 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
             ["udp_1pkt_tuple_gen_split.py","-m 1 -c 2 -l 100",True],
             ["udp_1pkt_range_clients_split.py","-m 1 -c 2 -l 100",True],
             ["udp_1pkt_vxlan.py","-m 1 -c 1 -l 17",True],
-            ["udp_1pkt_ipv6_in_ipv4.py","-m 1 -c 1 -l 17",True]
+            ["udp_1pkt_ipv6_in_ipv4.py","-m 1 -c 1 -l 17",True],
+            ["yaml/imix_3pkt.yaml","-m 50kpps --limit 20 --cores 2",True],
+            ["yaml/imix_3pkt_vm.yaml","-m 50kpps --limit 20 --cores 2",True],
+            #["yaml/imix_1pkt_tuple_gen.yaml","-m 50kpps --limit 20 --cores 2",True]
+
+            #imix_1pkt_tuple_gen.yaml
           ];
 
 
-        p1  = [ ["udp_1pkt_ipv6_in_ipv4.py","-m 1 -c 1 -l 17",True] ]
+          #self.profiles['imix_3pkt'] = os.path.join(self.profiles_path, "imix_3pkt.yaml")
+          #self.profiles['imix_3pkt_vm'] = os.path.join(self.profiles_path, "imix_3pkt_vm.yaml")
+          #self.profiles['random_size_9k'] = os.path.join(self.profiles_path, "../udp_rand_len_9k.py")
+          #self.profiles['imix_tuple_gen'] = os.path.join(self.profiles_path, "imix_1pkt_tuple_gen.yaml")
+
+
+        p1  = [ ["yaml/imix_1pkt_tuple_gen.yaml","-m 50kpps --limit 20 --cores 2",True] ]
         
 
         for obj in p:
index bbf1547..b9eb15e 100644 (file)
Binary files a/scripts/exp/burst_1000_pkt.pcap and b/scripts/exp/burst_1000_pkt.pcap differ
index bbf1547..b9eb15e 100644 (file)
Binary files a/scripts/exp/burst_1pkt_1burst.pcap and b/scripts/exp/burst_1pkt_1burst.pcap differ
index 06010c4..b2d89ad 100644 (file)
Binary files a/scripts/exp/burst_1pkt_vm.pcap and b/scripts/exp/burst_1pkt_vm.pcap differ
index fdb1900..08a0207 100755 (executable)
Binary files a/scripts/exp/dns-0-ex.erf and b/scripts/exp/dns-0-ex.erf differ
index fdb1900..08a0207 100644 (file)
Binary files a/scripts/exp/dns-0.erf and b/scripts/exp/dns-0.erf differ
index e0de09f..6ac25df 100755 (executable)
Binary files a/scripts/exp/dns_e-0-ex.erf and b/scripts/exp/dns_e-0-ex.erf differ
index e0de09f..6ac25df 100644 (file)
Binary files a/scripts/exp/dns_e-0.erf and b/scripts/exp/dns_e-0.erf differ
index 774f0fd..b9b61e5 100755 (executable)
Binary files a/scripts/exp/dns_flip-0-ex.erf and b/scripts/exp/dns_flip-0-ex.erf differ
index 774f0fd..b9b61e5 100644 (file)
Binary files a/scripts/exp/dns_flip-0.erf and b/scripts/exp/dns_flip-0.erf differ
index e0d33ef..4284cc9 100755 (executable)
Binary files a/scripts/exp/dns_ipv6-0-ex.erf and b/scripts/exp/dns_ipv6-0-ex.erf differ
index e0d33ef..4284cc9 100644 (file)
Binary files a/scripts/exp/dns_ipv6-0.erf and b/scripts/exp/dns_ipv6-0.erf differ
index 1532301..f1b4d7f 100755 (executable)
Binary files a/scripts/exp/dns_one_server-0-ex.erf and b/scripts/exp/dns_one_server-0-ex.erf differ
index 1532301..f1b4d7f 100644 (file)
Binary files a/scripts/exp/dns_one_server-0.erf and b/scripts/exp/dns_one_server-0.erf differ
index 7d93c1d..3849dbc 100755 (executable)
Binary files a/scripts/exp/dns_p-0-ex.erf and b/scripts/exp/dns_p-0-ex.erf differ
index 7d93c1d..3849dbc 100644 (file)
Binary files a/scripts/exp/dns_p-0.erf and b/scripts/exp/dns_p-0.erf differ
index 6a0028d..ef05444 100755 (executable)
Binary files a/scripts/exp/dyn_pyld1-0-ex.erf and b/scripts/exp/dyn_pyld1-0-ex.erf differ
index 6a0028d..ef05444 100644 (file)
Binary files a/scripts/exp/dyn_pyld1-0.erf and b/scripts/exp/dyn_pyld1-0.erf differ
index 698c5fb..5ece738 100644 (file)
Binary files a/scripts/exp/hlt_udp_inc_dec_len_9k.pcap and b/scripts/exp/hlt_udp_inc_dec_len_9k.pcap differ
index f195e6a..6c0accd 100755 (executable)
Binary files a/scripts/exp/http_plugin-0-ex.erf and b/scripts/exp/http_plugin-0-ex.erf differ
index e2320ee..6c0accd 100644 (file)
Binary files a/scripts/exp/http_plugin-0.erf and b/scripts/exp/http_plugin-0.erf differ
index a0b4375..2b5e716 100755 (executable)
Binary files a/scripts/exp/http_plugin_v6-0-ex.erf and b/scripts/exp/http_plugin_v6-0-ex.erf differ
index 96e79ea..2b5e716 100644 (file)
Binary files a/scripts/exp/http_plugin_v6-0.erf and b/scripts/exp/http_plugin_v6-0.erf differ
index 9288371..f51431c 100644 (file)
Binary files a/scripts/exp/ignore-0-ex.erf and b/scripts/exp/ignore-0-ex.erf differ
index 9288371..f51431c 100644 (file)
Binary files a/scripts/exp/ignore-0.erf and b/scripts/exp/ignore-0.erf differ
index 07fb2ac..4e9a685 100755 (executable)
Binary files a/scripts/exp/imix-0-ex.erf and b/scripts/exp/imix-0-ex.erf differ
index 07fb2ac..4e9a685 100644 (file)
Binary files a/scripts/exp/imix-0.erf and b/scripts/exp/imix-0.erf differ
index 13ac06e..aec8dac 100644 (file)
Binary files a/scripts/exp/imix.pcap and b/scripts/exp/imix.pcap differ
index bbf1547..b9eb15e 100644 (file)
Binary files a/scripts/exp/imix_1pkt.pcap and b/scripts/exp/imix_1pkt.pcap differ
index 38aa3ce..cebf6ff 100644 (file)
Binary files a/scripts/exp/imix_1pkt_2.pcap and b/scripts/exp/imix_1pkt_2.pcap differ
index 77096de..3ad5067 100644 (file)
Binary files a/scripts/exp/imix_1pkt_tuple_gen.pcap and b/scripts/exp/imix_1pkt_tuple_gen.pcap differ
index ec57dfb..73fdd22 100644 (file)
Binary files a/scripts/exp/imix_1pkt_vm.pcap and b/scripts/exp/imix_1pkt_vm.pcap differ
diff --git a/scripts/exp/imix_3pkt.pcap b/scripts/exp/imix_3pkt.pcap
new file mode 100644 (file)
index 0000000..29e84d6
Binary files /dev/null and b/scripts/exp/imix_3pkt.pcap differ
diff --git a/scripts/exp/imix_3pkt_vm.pcap b/scripts/exp/imix_3pkt_vm.pcap
new file mode 100644 (file)
index 0000000..5af466d
Binary files /dev/null and b/scripts/exp/imix_3pkt_vm.pcap differ
index c5f247d..1b6b6bb 100755 (executable)
Binary files a/scripts/exp/imix_v6-0-ex.erf and b/scripts/exp/imix_v6-0-ex.erf differ
index c5f247d..1b6b6bb 100644 (file)
Binary files a/scripts/exp/imix_v6-0.erf and b/scripts/exp/imix_v6-0.erf differ
index abbdb65..1ec8a1f 100755 (executable)
Binary files a/scripts/exp/ipv4_vlan-0-ex.erf and b/scripts/exp/ipv4_vlan-0-ex.erf differ
index 3a9ec6d..1ec8a1f 100644 (file)
Binary files a/scripts/exp/ipv4_vlan-0.erf and b/scripts/exp/ipv4_vlan-0.erf differ
index 85d3037..21e0eab 100755 (executable)
Binary files a/scripts/exp/ipv6-0-ex.erf and b/scripts/exp/ipv6-0-ex.erf differ
index 50f89ec..21e0eab 100644 (file)
Binary files a/scripts/exp/ipv6-0.erf and b/scripts/exp/ipv6-0.erf differ
index ac7cc39..b97d760 100755 (executable)
Binary files a/scripts/exp/ipv6_vlan-0-ex.erf and b/scripts/exp/ipv6_vlan-0-ex.erf differ
index 771f5c0..b97d760 100644 (file)
Binary files a/scripts/exp/ipv6_vlan-0.erf and b/scripts/exp/ipv6_vlan-0.erf differ
index 23d536f..5bf3a5b 100755 (executable)
Binary files a/scripts/exp/limit_multi_pkt-0-ex.erf and b/scripts/exp/limit_multi_pkt-0-ex.erf differ
index a2ff881..5bf3a5b 100644 (file)
Binary files a/scripts/exp/limit_multi_pkt-0.erf and b/scripts/exp/limit_multi_pkt-0.erf differ
index adc6fd4..5438fee 100755 (executable)
Binary files a/scripts/exp/limit_single_pkt-0-ex.erf and b/scripts/exp/limit_single_pkt-0-ex.erf differ
index adc6fd4..5438fee 100644 (file)
Binary files a/scripts/exp/limit_single_pkt-0.erf and b/scripts/exp/limit_single_pkt-0.erf differ
index 2da71e0..ba4546b 100644 (file)
Binary files a/scripts/exp/multi_burst_2st_1000pkt.pcap and b/scripts/exp/multi_burst_2st_1000pkt.pcap differ
index 245b5ff..e8d0f20 100755 (executable)
Binary files a/scripts/exp/pcap_mode1-0-ex.erf and b/scripts/exp/pcap_mode1-0-ex.erf differ
index ad5469f..e8d0f20 100644 (file)
Binary files a/scripts/exp/pcap_mode1-0.erf and b/scripts/exp/pcap_mode1-0.erf differ
index e19274f..d8432f8 100755 (executable)
Binary files a/scripts/exp/pcap_mode2-0-ex.erf and b/scripts/exp/pcap_mode2-0-ex.erf differ
index 348d1a4..d8432f8 100644 (file)
Binary files a/scripts/exp/pcap_mode2-0.erf and b/scripts/exp/pcap_mode2-0.erf differ
index 7a7522b..2f65a39 100755 (executable)
Binary files a/scripts/exp/rtsp_short1-0-ex.erf and b/scripts/exp/rtsp_short1-0-ex.erf differ
index 09e180c..2f65a39 100644 (file)
Binary files a/scripts/exp/rtsp_short1-0.erf and b/scripts/exp/rtsp_short1-0.erf differ
index 1b6d639..cc2e1fc 100755 (executable)
Binary files a/scripts/exp/rtsp_short1_v6-0-ex.erf and b/scripts/exp/rtsp_short1_v6-0-ex.erf differ
index 57373ba..cc2e1fc 100644 (file)
Binary files a/scripts/exp/rtsp_short1_v6-0.erf and b/scripts/exp/rtsp_short1_v6-0.erf differ
index 7a7522b..2f65a39 100755 (executable)
Binary files a/scripts/exp/rtsp_short2-0-ex.erf and b/scripts/exp/rtsp_short2-0-ex.erf differ
index 09e180c..2f65a39 100644 (file)
Binary files a/scripts/exp/rtsp_short2-0.erf and b/scripts/exp/rtsp_short2-0.erf differ
index 1b6d639..cc2e1fc 100755 (executable)
Binary files a/scripts/exp/rtsp_short2_v6-0-ex.erf and b/scripts/exp/rtsp_short2_v6-0-ex.erf differ
index 57373ba..cc2e1fc 100644 (file)
Binary files a/scripts/exp/rtsp_short2_v6-0.erf and b/scripts/exp/rtsp_short2_v6-0.erf differ
index bae3498..be1027d 100755 (executable)
Binary files a/scripts/exp/rtsp_short3-0-ex.erf and b/scripts/exp/rtsp_short3-0-ex.erf differ
index 93ad0fa..be1027d 100644 (file)
Binary files a/scripts/exp/rtsp_short3-0.erf and b/scripts/exp/rtsp_short3-0.erf differ
index e68dc78..08ae1be 100755 (executable)
Binary files a/scripts/exp/rtsp_short3_v6-0-ex.erf and b/scripts/exp/rtsp_short3_v6-0-ex.erf differ
index 281bd36..08ae1be 100644 (file)
Binary files a/scripts/exp/rtsp_short3_v6-0.erf and b/scripts/exp/rtsp_short3_v6-0.erf differ
index e5dfc4c..b0b93a2 100755 (executable)
Binary files a/scripts/exp/sfr2-0-ex.erf and b/scripts/exp/sfr2-0-ex.erf differ
index e5dfc4c..b0b93a2 100644 (file)
Binary files a/scripts/exp/sfr2-0.erf and b/scripts/exp/sfr2-0.erf differ
index fa9b100..ec8e3f9 100755 (executable)
Binary files a/scripts/exp/sfr3-0-ex.erf and b/scripts/exp/sfr3-0-ex.erf differ
index bd14de4..ec8e3f9 100644 (file)
Binary files a/scripts/exp/sfr3-0.erf and b/scripts/exp/sfr3-0.erf differ
index a0cddc9..89ca013 100755 (executable)
Binary files a/scripts/exp/sfr_4-0-ex.erf and b/scripts/exp/sfr_4-0-ex.erf differ
index 8cbf427..89ca013 100644 (file)
Binary files a/scripts/exp/sfr_4-0.erf and b/scripts/exp/sfr_4-0.erf differ
index 762fc15..e642442 100755 (executable)
Binary files a/scripts/exp/sip_short1-0-ex.erf and b/scripts/exp/sip_short1-0-ex.erf differ
index c78c215..e642442 100644 (file)
Binary files a/scripts/exp/sip_short1-0.erf and b/scripts/exp/sip_short1-0.erf differ
index cb02704..000d393 100755 (executable)
Binary files a/scripts/exp/sip_short1_v6-0-ex.erf and b/scripts/exp/sip_short1_v6-0-ex.erf differ
index a77b5c6..000d393 100644 (file)
Binary files a/scripts/exp/sip_short1_v6-0.erf and b/scripts/exp/sip_short1_v6-0.erf differ
index 762fc15..e642442 100755 (executable)
Binary files a/scripts/exp/sip_short2-0-ex.erf and b/scripts/exp/sip_short2-0-ex.erf differ
index c78c215..e642442 100644 (file)
Binary files a/scripts/exp/sip_short2-0.erf and b/scripts/exp/sip_short2-0.erf differ
index cb02704..000d393 100755 (executable)
Binary files a/scripts/exp/sip_short2_v6-0-ex.erf and b/scripts/exp/sip_short2_v6-0-ex.erf differ
index a77b5c6..000d393 100644 (file)
Binary files a/scripts/exp/sip_short2_v6-0.erf and b/scripts/exp/sip_short2_v6-0.erf differ
index f6b0d5b..1eb3881 100755 (executable)
Binary files a/scripts/exp/sip_short3-0-ex.erf and b/scripts/exp/sip_short3-0-ex.erf differ
index 26f3841..1eb3881 100644 (file)
Binary files a/scripts/exp/sip_short3-0.erf and b/scripts/exp/sip_short3-0.erf differ
index 431fab0..aa9d656 100755 (executable)
Binary files a/scripts/exp/sip_short3_v6-0-ex.erf and b/scripts/exp/sip_short3_v6-0-ex.erf differ
index 1f347a2..aa9d656 100644 (file)
Binary files a/scripts/exp/sip_short3_v6-0.erf and b/scripts/exp/sip_short3_v6-0.erf differ
index 7f83392..0c92f26 100644 (file)
Binary files a/scripts/exp/stl_basic_pause_resume0-0-ex.erf and b/scripts/exp/stl_basic_pause_resume0-0-ex.erf differ
index 0eff960..a83c0ae 100644 (file)
Binary files a/scripts/exp/stl_bb_start_stop2-0-ex.erf and b/scripts/exp/stl_bb_start_stop2-0-ex.erf differ
index 08afdf4..558c1af 100644 (file)
Binary files a/scripts/exp/stl_bb_start_stop_delay1-0-ex.erf and b/scripts/exp/stl_bb_start_stop_delay1-0-ex.erf differ
index 01a7746..e435dff 100644 (file)
Binary files a/scripts/exp/stl_bb_start_stop_delay2-0-ex.erf and b/scripts/exp/stl_bb_start_stop_delay2-0-ex.erf differ
index c5cc748..3416117 100644 (file)
Binary files a/scripts/exp/stl_multi_burst1-0-ex.erf and b/scripts/exp/stl_multi_burst1-0-ex.erf differ
index de10919..8d6532a 100644 (file)
Binary files a/scripts/exp/stl_multi_pkt1-0-ex.erf and b/scripts/exp/stl_multi_pkt1-0-ex.erf differ
index eec3311..a1625ee 100644 (file)
Binary files a/scripts/exp/stl_multi_pkt2-0-ex.erf and b/scripts/exp/stl_multi_pkt2-0-ex.erf differ
index 374256c..5d37423 100644 (file)
Binary files a/scripts/exp/stl_simple_prog1-0-ex.erf and b/scripts/exp/stl_simple_prog1-0-ex.erf differ
index 3ec46e2..3c3fe91 100644 (file)
Binary files a/scripts/exp/stl_simple_prog2-0-ex.erf and b/scripts/exp/stl_simple_prog2-0-ex.erf differ
index 4da3438..239f0b3 100644 (file)
Binary files a/scripts/exp/stl_simple_prog3-0-ex.erf and b/scripts/exp/stl_simple_prog3-0-ex.erf differ
index 62da468..b5b19f8 100644 (file)
Binary files a/scripts/exp/stl_simple_prog4-0-ex.erf and b/scripts/exp/stl_simple_prog4-0-ex.erf differ
index 08afdf4..558c1af 100644 (file)
Binary files a/scripts/exp/stl_single_pkt_burst1-0-ex.erf and b/scripts/exp/stl_single_pkt_burst1-0-ex.erf differ
index 9288371..f51431c 100644 (file)
Binary files a/scripts/exp/stl_single_stream-0-ex.erf and b/scripts/exp/stl_single_stream-0-ex.erf differ
diff --git a/scripts/exp/stl_single_stream_mac0-0-ex.erf b/scripts/exp/stl_single_stream_mac0-0-ex.erf
new file mode 100644 (file)
index 0000000..f51431c
Binary files /dev/null and b/scripts/exp/stl_single_stream_mac0-0-ex.erf differ
diff --git a/scripts/exp/stl_single_stream_mac01-0-ex.erf b/scripts/exp/stl_single_stream_mac01-0-ex.erf
new file mode 100644 (file)
index 0000000..eb15f45
Binary files /dev/null and b/scripts/exp/stl_single_stream_mac01-0-ex.erf differ
diff --git a/scripts/exp/stl_single_stream_mac10-0-ex.erf b/scripts/exp/stl_single_stream_mac10-0-ex.erf
new file mode 100644 (file)
index 0000000..5d6046b
Binary files /dev/null and b/scripts/exp/stl_single_stream_mac10-0-ex.erf differ
diff --git a/scripts/exp/stl_single_stream_mac11-0-ex.erf b/scripts/exp/stl_single_stream_mac11-0-ex.erf
new file mode 100644 (file)
index 0000000..89f1f28
Binary files /dev/null and b/scripts/exp/stl_single_stream_mac11-0-ex.erf differ
index c6285be..1a0ba1f 100644 (file)
Binary files a/scripts/exp/stl_vm_enable0-0-ex.erf and b/scripts/exp/stl_vm_enable0-0-ex.erf differ
index 3ccf49a..7610d3e 100644 (file)
Binary files a/scripts/exp/stl_vm_enable1-0-ex.erf and b/scripts/exp/stl_vm_enable1-0-ex.erf differ
index d099c14..f4f55e9 100644 (file)
Binary files a/scripts/exp/stl_vm_enable2-0-ex.erf and b/scripts/exp/stl_vm_enable2-0-ex.erf differ
index 12e68c0..25b2a2b 100644 (file)
Binary files a/scripts/exp/stl_vm_split_client_var.erf-0-ex.erf and b/scripts/exp/stl_vm_split_client_var.erf-0-ex.erf differ
index a9f330f..25b2a2b 100644 (file)
Binary files a/scripts/exp/stl_vm_split_client_var.erf-0.erf and b/scripts/exp/stl_vm_split_client_var.erf-0.erf differ
index 8f4fe29..d5ad29d 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_big_range.erf-0-ex.erf and b/scripts/exp/stl_vm_split_flow_var_big_range.erf-0-ex.erf differ
index 8e62aca..d5ad29d 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_big_range.erf-0.erf and b/scripts/exp/stl_vm_split_flow_var_big_range.erf-0.erf differ
index 8202597..a938b37 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_inc.erf-0-ex.erf and b/scripts/exp/stl_vm_split_flow_var_inc.erf-0-ex.erf differ
index acd31a6..a938b37 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_inc.erf-0.erf and b/scripts/exp/stl_vm_split_flow_var_inc.erf-0.erf differ
index 5dac989..94e493f 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_small_range.erf-0-ex.erf and b/scripts/exp/stl_vm_split_flow_var_small_range.erf-0-ex.erf differ
index 4cf58e6..94e493f 100644 (file)
Binary files a/scripts/exp/stl_vm_split_flow_var_small_range.erf-0.erf and b/scripts/exp/stl_vm_split_flow_var_small_range.erf-0.erf differ
diff --git a/scripts/exp/syn_attack.pcap b/scripts/exp/syn_attack.pcap
new file mode 100644 (file)
index 0000000..d1aa5f6
Binary files /dev/null and b/scripts/exp/syn_attack.pcap differ
index e75bdd8..6479009 100644 (file)
Binary files a/scripts/exp/udp_1pkt.pcap and b/scripts/exp/udp_1pkt.pcap differ
index 4141830..7cee57e 100644 (file)
Binary files a/scripts/exp/udp_1pkt_1mac.pcap and b/scripts/exp/udp_1pkt_1mac.pcap differ
index 350f3e2..4ee63b0 100644 (file)
Binary files a/scripts/exp/udp_1pkt_1mac_override.pcap and b/scripts/exp/udp_1pkt_1mac_override.pcap differ
index a46888e..2433d1c 100644 (file)
Binary files a/scripts/exp/udp_1pkt_ipv6_in_ipv4.pcap and b/scripts/exp/udp_1pkt_ipv6_in_ipv4.pcap differ
index 840cee5..2f4695d 100644 (file)
Binary files a/scripts/exp/udp_1pkt_mac.pcap and b/scripts/exp/udp_1pkt_mac.pcap differ
index 4b6e068..bcf93ec 100644 (file)
Binary files a/scripts/exp/udp_1pkt_mpls.pcap and b/scripts/exp/udp_1pkt_mpls.pcap differ
index cfa6942..f205b33 100644 (file)
Binary files a/scripts/exp/udp_1pkt_mpls_vm.pcap and b/scripts/exp/udp_1pkt_mpls_vm.pcap differ
index f150434..2890021 100644 (file)
Binary files a/scripts/exp/udp_1pkt_pcap.pcap and b/scripts/exp/udp_1pkt_pcap.pcap differ
index 56ae1ba..2d8b777 100644 (file)
Binary files a/scripts/exp/udp_1pkt_pcap_relative_path.pcap and b/scripts/exp/udp_1pkt_pcap_relative_path.pcap differ
index d0e6d92..203de6e 100644 (file)
Binary files a/scripts/exp/udp_1pkt_range_clients.pcap and b/scripts/exp/udp_1pkt_range_clients.pcap differ
index b4b7b7c..fc5572a 100644 (file)
Binary files a/scripts/exp/udp_1pkt_range_clients_split.pcap and b/scripts/exp/udp_1pkt_range_clients_split.pcap differ
index e993ddc..b279cfa 100644 (file)
Binary files a/scripts/exp/udp_1pkt_tuple_gen.pcap and b/scripts/exp/udp_1pkt_tuple_gen.pcap differ
index bbaa456..08377c6 100644 (file)
Binary files a/scripts/exp/udp_1pkt_tuple_gen_split.pcap and b/scripts/exp/udp_1pkt_tuple_gen_split.pcap differ
index 601185a..6fe39e1 100644 (file)
Binary files a/scripts/exp/udp_1pkt_vxlan.pcap and b/scripts/exp/udp_1pkt_vxlan.pcap differ
index f9ee2dc..9e332a2 100644 (file)
Binary files a/scripts/exp/udp_3pkt_pcap.pcap and b/scripts/exp/udp_3pkt_pcap.pcap differ
index bf36795..ca64cb1 100644 (file)
Binary files a/scripts/exp/udp_inc_len_9k.pcap and b/scripts/exp/udp_inc_len_9k.pcap differ
index ecddbe3..5e3a06d 100644 (file)
Binary files a/scripts/exp/udp_rand_len_9k.pcap and b/scripts/exp/udp_rand_len_9k.pcap differ
index 8d6a7b8..e312abc 100755 (executable)
@@ -200,6 +200,7 @@ public:
             lpt->m_node_gen.DumpHist(stdout);
 
             cmp.d_sec = m_time_diff;
+            //compare
             if ( cmp.compare(std::string(buf),std::string(buf_ex)) != true ) {
                 res=false;
             }
@@ -686,14 +687,14 @@ bool
 verify_latency_pkt(uint8_t *p, uint8_t proto, uint16_t icmp_seq, uint8_t icmp_type) {
     EthernetHeader *eth = (EthernetHeader *)p;
     IPHeader *ip = (IPHeader *)(p + 14);
-    uint8_t  srcmac[]={0,0,0,1,0,0};    
-    uint8_t  dstmac[]={0,0,0,1,0,0};
+    uint8_t  srcmac[]={0x10,0x10,0x10,0x10,0x10,0x10};    
+    //uint8_t  dstmac[]={0x0,0x0,0x0,0x0,0x0,0x0};
     latency_header * h;
  
     // eth
     EXPECT_EQ_UINT32(eth->getNextProtocol(), 0x0800)<< "Failed ethernet next protocol check";
     EXPECT_EQ_UINT32(memcmp(p, srcmac, 6), 0)<<  "Failed ethernet source MAC check";
-    EXPECT_EQ_UINT32(memcmp(p, dstmac, 6), 0)<<  "Failed ethernet dest MAC check";
+    //EXPECT_EQ_UINT32(memcmp(p, dstmac, 6), 0)<<  "Failed ethernet dest MAC check";
     // IP
     EXPECT_EQ_UINT32(ip->getSourceIp(), l_pkt_test_s_ip)<<  "Failed IP src check";
     EXPECT_EQ_UINT32(ip->getDestIp(), l_pkt_test_d_ip)<<  "Failed IP dst check";
index 72ad109..a1851b5 100755 (executable)
@@ -4726,6 +4726,17 @@ void CErfIF::fill_raw_packet(rte_mbuf_t * m,CGenNode * node,pkt_dir_t dir){
 }
 
 
+pkt_dir_t CErfIFStl::port_id_to_dir(uint8_t port_id) {
+     return ((pkt_dir_t)(port_id&1));
+}
+
+
+int CErfIFStl::update_mac_addr_from_global_cfg(pkt_dir_t  dir, uint8_t * p){
+    memcpy(p,CGlobalInfo::m_options.get_dst_src_mac_addr(dir),12);
+    return (0);
+}
+
+
 int CErfIFStl::send_node(CGenNode * _no_to_use){
 
     if ( m_preview_mode->getFileWrite() ){
@@ -4757,6 +4768,7 @@ int CErfIFStl::send_node(CGenNode * _no_to_use){
 }
 
 
+
 int CErfIF::send_node(CGenNode * node){
 
     if ( m_preview_mode->getFileWrite() ){
index 9f08cdc..a51a520 100755 (executable)
@@ -1846,6 +1846,12 @@ class CErfIFStl : public CErfIF {
 public:
 
     virtual int send_node(CGenNode * node);
+
+    virtual int update_mac_addr_from_global_cfg(pkt_dir_t       dir, uint8_t * p);
+
+    virtual pkt_dir_t port_id_to_dir(uint8_t port_id);
+
+
 };
 
 /**
@@ -1872,9 +1878,6 @@ public:
 
     }
 
-    virtual int update_mac_addr_from_global_cfg(pkt_dir_t       dir, uint8_t * p){
-        return (0);
-    }
 
 
     virtual int flush_tx_queue(void){
index 0062518..e73c37a 100755 (executable)
@@ -157,6 +157,33 @@ bool CCapPktRaw::Compare(CCapPktRaw * obj,int dump,double dsec){
     }
 }
 
+#define  CPY_BUFSIZE 1024
+
+bool CErfCmp::cpy(std::string src,std::string dst){
+
+    char mybuf[CPY_BUFSIZE] ;
+    FILE *ifd = NULL;
+    FILE *ofd = NULL;
+    ifd = fopen( src.c_str(), "rb" );
+    ofd = fopen( dst.c_str(), "w+");
+    assert(ifd!=NULL);
+    assert(ofd!=NULL);
+
+    int n;
+    while ( true){
+        n = fread(mybuf, sizeof(char), CPY_BUFSIZE ,ifd);
+        if (n>0) {
+            fwrite(mybuf, sizeof(char),n,ofd);
+        }else{
+            break;
+        }
+    }
+
+    fclose(ifd);
+    fclose(ofd);
+    return true;
+}
+
 
 bool CErfCmp::compare(std::string f1, std::string f2 ){
 
index 16a6120..3be8343 100755 (executable)
@@ -279,6 +279,8 @@ public:
         d_sec=0.001;
     }
     bool compare(std::string f1, std::string f2 );
+
+    bool cpy(std::string src,std::string dst);
 public:
     bool dump;
     double d_sec;
index fc6c815..68f9a4b 100644 (file)
@@ -1437,6 +1437,7 @@ public:
         //lpt->m_node_gen.DumpHist(stdout);
 
         cmp.d_sec = m_time_diff;
+
         if ( cmp.compare(std::string(buf),std::string(buf_ex)) != true ) {
             res=false;
         }
@@ -2221,6 +2222,7 @@ TEST_F(basic_stl, single_pkt_burst1) {
 
 
 
+
 TEST_F(basic_stl, single_pkt) {
 
     CBasicStl t1;
@@ -2267,6 +2269,84 @@ TEST_F(basic_stl, single_pkt) {
      EXPECT_EQ_UINT32(1, res?1:0)<< "pass";
 }
 
+void test_mac_replace(bool replace_src_by_pkt,
+                      int replace_dst_mode,
+                      std::string file){
+    CBasicStl t1;
+    CParserOption * po =&CGlobalInfo::m_options;
+    po->preview.setVMode(7);
+    po->preview.setFileWrite(true);
+    po->out_file = file;
+
+     TrexStreamsCompiler compile;
+
+     uint8_t port_id=0;
+
+     std::vector<TrexStream *> streams;
+
+     TrexStream * stream1 = new TrexStream(TrexStream::stCONTINUOUS,0,0);
+     stream1->set_override_src_mac_by_pkt_data(replace_src_by_pkt);
+     stream1->set_override_dst_mac_mode((TrexStream::stream_dst_mac_t)replace_dst_mode);
+
+     stream1->set_pps(1.0);
+
+
+     stream1->m_enabled = true;
+     stream1->m_self_start = true;
+     stream1->m_port_id= port_id;
+
+
+     CPcapLoader pcap;
+     pcap.load_pcap_file("cap2/udp_64B.pcap",0);
+     pcap.update_ip_src(0x10000001);
+     pcap.clone_packet_into_stream(stream1);
+
+     streams.push_back(stream1);
+
+     // stream - clean 
+
+     std::vector<TrexStreamsCompiledObj *>objs;
+     assert(compile.compile(port_id, streams, objs));
+     TrexStatelessDpStart *lpstart = new TrexStatelessDpStart(port_id, 0, objs[0], 10.0 /*sec */ );
+
+
+     t1.m_msg = lpstart;
+
+     bool res=t1.init();
+
+     delete stream1 ;
+
+     EXPECT_EQ_UINT32(1, res?1:0)<< "pass";
+}
+
+TEST_F(basic_stl, single_pkt_mac0) {
+
+    test_mac_replace(false,
+                     TrexStream::stCFG_FILE,
+                     "exp/stl_single_stream_mac0");
+}
+
+TEST_F(basic_stl, single_pkt_mac11) {
+
+    test_mac_replace(true,
+                     TrexStream::stPKT,
+                     "exp/stl_single_stream_mac11");
+}
+
+TEST_F(basic_stl, single_pkt_mac10) {
+
+    test_mac_replace(false,
+                     TrexStream::stPKT,
+                     "exp/stl_single_stream_mac01");
+}
+
+TEST_F(basic_stl, single_pkt_mac01) {
+
+    test_mac_replace(true,
+                     TrexStream::stCFG_FILE,
+                     "exp/stl_single_stream_mac10");
+}
+
 
 TEST_F(basic_stl, multi_pkt1) {
 
index a2d0606..6ee3a03 100755 (executable)
@@ -238,6 +238,15 @@ static int parse_options(int argc,
     return 0;
 }
 
+void set_default_mac_addr(){
+
+    int i;
+    for (i=0; i<4; i++) {
+        memset(CGlobalInfo::m_options.get_dst_src_mac_addr(i),((i+1)<<4),6);
+        memset(CGlobalInfo::m_options.get_src_mac_addr(i),((i+1)<<4)+8,6);
+    }
+}
+
 
 int main(int argc , char * argv[]){
 
@@ -246,6 +255,7 @@ int main(int argc , char * argv[]){
     if ( parse_options(argc, argv, &CGlobalInfo::m_options , params) != 0) {
         exit(-1);
     }
+    set_default_mac_addr();
 
     opt_type_e type = (opt_type_e) params["type"];
 
index 256f7de..af35dbe 100644 (file)
@@ -130,6 +130,8 @@ TrexStream::TrexStream(uint8_t type,
     m_num_bursts=1; 
     m_ibg_usec=0.0;  
     m_vm_dp = NULL;
+    m_flags=0;
+    m_stream_count=0;
 }
 
 TrexStream::~TrexStream() {
index 72e7bb8..0f2a16c 100644 (file)
@@ -33,6 +33,8 @@ limitations under the License.
 #include <stdio.h>
 #include <string.h>
 #include <common/captureFile.h>
+#include <common/bitMan.h> 
+
 
 
 class TrexRpcCmdAddStream;
@@ -118,6 +120,15 @@ public:
 
     typedef uint8_t stream_type_t ;
 
+    enum DST_MAC_TYPE {
+        stCFG_FILE     = 0,
+        stPKT          = 1,
+        stARP          = 2
+    };
+
+    typedef uint8_t stream_dst_mac_t ;
+
+
     static std::string get_stream_type_str(stream_type_t stream_type);
 
 public:
@@ -163,8 +174,6 @@ public:
             return (true);
         }
     }
-
-
     /* can this stream be split ? */
     bool is_splitable(uint8_t dp_core_count) const {
 
@@ -218,6 +227,8 @@ public:
         dp->m_burst_total_pkts      =   m_burst_total_pkts;
         dp->m_num_bursts            =   m_num_bursts;
         dp->m_ibg_usec              =   m_ibg_usec;
+        dp->m_flags                 =   m_flags;
+        dp->m_stream_count          =   m_stream_count;
 
         return(dp);
     }
@@ -255,11 +266,31 @@ public:
      */
     void vm_compile();
 
+public:
+
+    void set_override_src_mac_by_pkt_data(bool enable){
+        btSetMaskBit16(m_flags,0,0,enable?1:0);
+    }
+
+    bool get_override_src_mac_by_pkt_data(){
+        return (btGetMaskBit16(m_flags,0,0) ?true:false);
+    }
+
+    void set_override_dst_mac_mode(stream_dst_mac_t  val){
+        btSetMaskBit16(m_flags,2,1,val&0x3);
+    }
+
+    stream_dst_mac_t get_override_dst_mac_mode(){
+        return ((stream_dst_mac_t)btGetMaskBit16(m_flags,2,1));
+    }
+
 public:
     /* basic */
     uint8_t       m_type;
     uint8_t       m_port_id;
+    uint16_t      m_flags;
     uint32_t      m_stream_id;              /* id from RPC can be anything */
+    uint16_t      m_stream_count;       
     
 
     /* config fields */
index a80efc0..a84269a 100644 (file)
@@ -506,6 +506,43 @@ TrexStatelessDpCore::add_port_duration(double duration,
 }
 
 
+void TrexStatelessDpCore::update_mac_addr(TrexStream * stream,
+                                          CGenNodeStateless *node,
+                                          pkt_dir_t dir,
+                                          char *raw_pkt){
+    bool              ov_src = stream->get_override_src_mac_by_pkt_data();
+    TrexStream::stream_dst_mac_t  ov_dst = stream->get_override_dst_mac_mode();
+
+
+    if ( (ov_src == true) && (ov_dst == TrexStream::stPKT) ) {
+        /* nothing to do, take from the packet both */
+        return;
+    }
+
+        /* take from cfg_file */
+    if ( (ov_src == false) && 
+         (ov_dst == TrexStream::stCFG_FILE) ){
+
+          m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir,(uint8_t*)raw_pkt);
+          return;
+    }
+
+    /* save the pkt*/
+    char tmp_pkt[12];
+    memcpy(tmp_pkt,raw_pkt,12);
+
+    m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir,(uint8_t*)raw_pkt);
+
+    if ((ov_src == true) && (ov_dst == TrexStream::stCFG_FILE)) {
+        memcpy(raw_pkt+6,tmp_pkt+6,6);
+    }
+
+    if ((ov_src == false) && (ov_dst == TrexStream::stPKT)) {
+        memcpy(raw_pkt,tmp_pkt,6);
+    }
+}
+
+
 void
 TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
                                 TrexStream * stream,
@@ -561,7 +598,6 @@ TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
         node->m_single_burst=0;
         node->m_single_burst_refill=0;
         node->m_multi_bursts=0;
-        node->m_ibg_sec                 = 0.0;
         break;
 
     case TrexStream::stSINGLE_BURST :
@@ -569,14 +605,12 @@ TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
         node->m_single_burst            = stream->m_burst_total_pkts;
         node->m_single_burst_refill     = stream->m_burst_total_pkts;
         node->m_multi_bursts            = 1;  /* single burst in multi burst of 1 */
-        node->m_ibg_sec                 = 0.0;
         break;
 
     case TrexStream::stMULTI_BURST :
         node->m_single_burst        = stream->m_burst_total_pkts;
         node->m_single_burst_refill = stream->m_burst_total_pkts;
         node->m_multi_bursts        = stream->m_num_bursts;
-        node->m_ibg_sec             = usec_to_sec( stream->m_ibg_usec );
         break;
     default:
 
@@ -605,8 +639,7 @@ TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
         /* copy the packet */
         memcpy(p,stream_pkt,pkt_size);
     
-        /* TBD repace the mac if req we should add flag  */
-        m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir,(uint8_t*) p);
+        update_mac_addr(stream,node,dir,p);
     
         /* set the packet as a readonly */
         node->set_cache_mbuf(m);
@@ -659,8 +692,8 @@ TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
         assert(p);
 
         memcpy(p,stream_pkt , header_size);
-        /* TBD repace the mac if req we should add flag  */
-        m_core->m_node_gen.m_v_if->update_mac_addr_from_global_cfg(dir, p);
+
+        update_mac_addr(stream,node,dir,(char *)p);
     }
 
 
index c8a5eff..3d21465 100644 (file)
@@ -271,6 +271,11 @@ private:
 
     void add_global_duration(double duration);
 
+    void update_mac_addr(TrexStream * stream,
+                         CGenNodeStateless *node,
+                         uint8_t dir,
+                         char *raw_pkt);
+
     void add_stream(TrexStatelessDpPerPort * lp_port,
                     TrexStream * stream,
                     TrexStreamsCompiledObj *comp);
index dfa4cc1..db7f19e 100644 (file)
@@ -81,8 +81,8 @@ private:
     void *              m_cache_mbuf;
 
     double              m_next_time_offset; /* in sec */
-    double              m_ibg_sec; /* inter burst time in sec */
-
+    uint32_t            m_pad11;
+    uint32_t            m_pad12;
 
     stream_state_t      m_state;
     uint8_t             m_port_id;
@@ -167,7 +167,7 @@ public:
     }
 
     inline double   get_multi_ibg_sec(){
-        return (m_ibg_sec);
+        return (usec_to_sec(m_ref_stream_info->m_ibg_usec));
     }
 
     inline uint32_t   get_multi_burst_cnt(){
@@ -222,7 +222,7 @@ public:
                 }
 
             }else{
-                m_time += m_ibg_sec;
+                m_time += get_multi_ibg_sec();
                 m_single_burst = m_single_burst_refill;
                 thread->m_node_gen.m_p_queue.push( (CGenNode *)this);
             }