summaryrefslogtreecommitdiffstats
path: root/src/stateless
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-04-10 12:52:59 +0300
committerimarom <imarom@cisco.com>2016-04-10 12:52:59 +0300
commit7a3be366c6473203bf9f6d75b945aba75ac3f53a (patch)
treee3809ff89be55a0ca7a9dcc4aca0c309388b7119 /src/stateless
parent9823cf0a2acfa3eed27613bf357d82c241889cba (diff)
some refinements and few refactors
Diffstat (limited to 'src/stateless')
-rw-r--r--src/stateless/cp/trex_stream.h23
-rw-r--r--src/stateless/dp/trex_stateless_dp_core.cpp2
-rw-r--r--src/stateless/dp/trex_stream_node.h4
3 files changed, 23 insertions, 6 deletions
diff --git a/src/stateless/cp/trex_stream.h b/src/stateless/cp/trex_stream.h
index eba5fed0..c5bfdb98 100644
--- a/src/stateless/cp/trex_stream.h
+++ b/src/stateless/cp/trex_stream.h
@@ -22,6 +22,9 @@ limitations under the License.
#ifndef __TREX_STREAM_H__
#define __TREX_STREAM_H__
+#include <stdio.h>
+#include <string.h>
+
#include <unordered_map>
#include <vector>
#include <stdint.h>
@@ -29,9 +32,8 @@ limitations under the License.
#include <json/json.h>
-#include <trex_stream_vm.h>
-#include <stdio.h>
-#include <string.h>
+#include "os_time.h"
+#include "trex_stream_vm.h"
#include <common/captureFile.h>
#include <common/bitMan.h>
@@ -462,6 +464,21 @@ public:
return (1.0 / get_pps());
}
+ /* return the delay before starting a stream */
+ inline double get_start_delay_sec() {
+ return usec_to_sec(m_isg_usec) + m_mc_phase_pre_sec;
+ }
+
+ /* return the delay before starting the next stream */
+ inline double get_next_stream_delay_sec() {
+ return m_mc_phase_post_sec;
+ }
+
+ /* return the delay between scheduling a new burst in a multi burst stream */
+ inline double get_next_burst_delay_sec() {
+ return usec_to_sec(m_ibg_usec) + m_mc_phase_post_sec + m_mc_phase_pre_sec;
+ }
+
void Dump(FILE *fd);
StreamVmDp * getDpVm(){
diff --git a/src/stateless/dp/trex_stateless_dp_core.cpp b/src/stateless/dp/trex_stateless_dp_core.cpp
index 2a4a384b..d3d49a34 100644
--- a/src/stateless/dp/trex_stateless_dp_core.cpp
+++ b/src/stateless/dp/trex_stateless_dp_core.cpp
@@ -602,7 +602,7 @@ TrexStatelessDpCore::add_stream(TrexStatelessDpPerPort * lp_port,
node->m_state =CGenNodeStateless::ss_INACTIVE;
}
- node->m_time = m_core->m_cur_time_sec + usec_to_sec(stream->m_isg_usec) + stream->m_mc_phase_pre_sec;
+ node->m_time = m_core->m_cur_time_sec + stream->get_start_delay_sec();
pkt_dir_t dir = m_core->m_node_gen.m_v_if->port_id_to_dir(stream->m_port_id);
node->m_flags = 0;
diff --git a/src/stateless/dp/trex_stream_node.h b/src/stateless/dp/trex_stream_node.h
index 19a27350..c85bf8b5 100644
--- a/src/stateless/dp/trex_stream_node.h
+++ b/src/stateless/dp/trex_stream_node.h
@@ -232,7 +232,7 @@ public:
set_state(CGenNodeStateless::ss_INACTIVE);
if ( thread->set_stateless_next_node(this,m_next_stream) ){
/* update the next stream time using isg and post phase */
- m_next_stream->update_refresh_time(m_time + m_ref_stream_info->m_mc_phase_post_sec);
+ m_next_stream->update_refresh_time(m_time + m_ref_stream_info->get_next_stream_delay_sec());
thread->m_node_gen.m_p_queue.push( (CGenNode *)m_next_stream);
}else{
@@ -242,7 +242,7 @@ public:
}else{
/* next burst is like starting a new stream - add pre and post phase */
- m_time += get_multi_ibg_sec() + m_ref_stream_info->m_mc_phase_post_sec + m_ref_stream_info->m_mc_phase_pre_sec;
+ m_time += m_ref_stream_info->get_next_burst_delay_sec();
m_single_burst = m_single_burst_refill;
thread->m_node_gen.m_p_queue.push( (CGenNode *)this);
}