summaryrefslogtreecommitdiffstats
path: root/src/stateless/cp
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-02-23 15:32:19 +0200
committerHanoh Haim <hhaim@cisco.com>2016-02-23 15:32:19 +0200
commit36cc1ecef32dcee3640e6ddf96422c07d89777b3 (patch)
tree6a9eadb662ad0f98395886077fe32943512fd040 /src/stateless/cp
parent68ebd739646a27f1bb92ce8eacb5bb76f6399580 (diff)
parent81059eb5df274efe48ad3914039ddb657c3285ab (diff)
Merge ipv4 checksum issue
Diffstat (limited to 'src/stateless/cp')
-rw-r--r--src/stateless/cp/trex_stateless_port.cpp16
-rw-r--r--src/stateless/cp/trex_stateless_port.h15
-rw-r--r--src/stateless/cp/trex_stream.cpp28
-rw-r--r--src/stateless/cp/trex_stream.h233
-rw-r--r--src/stateless/cp/trex_stream_vm.h16
-rw-r--r--src/stateless/cp/trex_streams_compiler.cpp36
-rw-r--r--src/stateless/cp/trex_streams_compiler.h16
7 files changed, 281 insertions, 79 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp
index 8ee46d29..99b6565c 100644
--- a/src/stateless/cp/trex_stateless_port.cpp
+++ b/src/stateless/cp/trex_stateless_port.cpp
@@ -631,7 +631,10 @@ TrexStatelessPort::validate(void) {
void
-TrexStatelessPort::get_port_effective_rate(uint64_t &bps, uint64_t &pps) {
+TrexStatelessPort::get_port_effective_rate(double &pps,
+ double &bps_L1,
+ double &bps_L2,
+ double &percentage) {
if (get_stream_count() == 0) {
return;
@@ -641,8 +644,11 @@ TrexStatelessPort::get_port_effective_rate(uint64_t &bps, uint64_t &pps) {
generate_streams_graph();
}
- bps = m_graph_obj->get_max_bps_l2() * m_factor;
- pps = m_graph_obj->get_max_pps() * m_factor;
+ pps = m_graph_obj->get_max_pps() * m_factor;
+ bps_L1 = m_graph_obj->get_max_bps_l1() * m_factor;
+ bps_L2 = m_graph_obj->get_max_bps_l2() * m_factor;
+ percentage = (bps_L1 / get_port_speed_bps()) * 100.0;
+
}
/************* Trex Port Owner **************/
@@ -651,7 +657,7 @@ TrexPortOwner::TrexPortOwner() {
m_is_free = true;
/* for handlers random generation */
- srand(time(NULL));
+ m_seed = time(NULL);
}
/**
@@ -669,7 +675,7 @@ TrexPortOwner::generate_handler() {
/* generate 8 bytes of random handler */
for (int i = 0; i < 8; ++i) {
- ss << alphanum[rand() % (sizeof(alphanum) - 1)];
+ ss << alphanum[rand_r(&m_seed) % (sizeof(alphanum) - 1)];
}
return (ss.str());
diff --git a/src/stateless/cp/trex_stateless_port.h b/src/stateless/cp/trex_stateless_port.h
index b0b0ddf3..49e69757 100644
--- a/src/stateless/cp/trex_stateless_port.h
+++ b/src/stateless/cp/trex_stateless_port.h
@@ -93,6 +93,8 @@ private:
/* handler genereated internally */
std::string m_handler;
+ /* seed for generating random values */
+ unsigned int m_seed;
/* just references defaults... */
static const std::string g_unowned_name;
@@ -316,10 +318,11 @@ public:
*
* @author imarom (07-Jan-16)
*
- * @param bps
- * @param pps
*/
- void get_port_effective_rate(uint64_t &bps, uint64_t &pps);
+ void get_port_effective_rate(double &pps,
+ double &bps_L1,
+ double &bps_L2,
+ double &percentage);
private:
@@ -441,9 +444,9 @@ public:
static const std::initializer_list<std::string> g_types;
static const std::initializer_list<std::string> g_ops;
- mul_type_e m_type;
- mul_op_e m_op;
- double m_value;
+ mul_type_e m_type;
+ mul_op_e m_op;
+ double m_value;
};
#endif /* __TREX_STATELESS_PORT_H__ */
diff --git a/src/stateless/cp/trex_stream.cpp b/src/stateless/cp/trex_stream.cpp
index 05c14cba..f1c93a11 100644
--- a/src/stateless/cp/trex_stream.cpp
+++ b/src/stateless/cp/trex_stream.cpp
@@ -22,6 +22,7 @@ limitations under the License.
#include <cstddef>
#include <string.h>
#include <assert.h>
+#include <trex_stateless.h>
/**************************************
* stream
@@ -93,25 +94,30 @@ void TrexStream::Dump(FILE *fd){
fprintf(fd," type : %s \n",get_stream_type_str(m_type).c_str());
if ( m_type == TrexStream::stCONTINUOUS ) {
- fprintf(fd," pps : %f \n",m_pps);
}
if (m_type == TrexStream::stSINGLE_BURST) {
- fprintf(fd," pps : %f \n",m_pps);
fprintf(fd," burst : %lu \n",(ulong)m_burst_total_pkts);
}
if (m_type == TrexStream::stMULTI_BURST) {
- fprintf(fd," pps : %f \n",m_pps);
fprintf(fd," burst : %lu \n",(ulong)m_burst_total_pkts);
fprintf(fd," mburst : %lu \n",(ulong)m_num_bursts);
if (m_ibg_usec>0.0) {
fprintf(fd," m_ibg_usec : %f \n",m_ibg_usec);
}
}
+
+ fprintf(fd," rate :\n\n");
+
+ fprintf(fd," pps : %f\n", m_rate.get_pps());
+ fprintf(fd," bps L1 : %f\n", m_rate.get_bps_L1());
+ fprintf(fd," bps L2 : %f\n", m_rate.get_bps_L2());
+ fprintf(fd," percentage : %f\n", m_rate.get_percentage());
+
}
TrexStream::TrexStream(uint8_t type,
- uint8_t port_id, uint32_t stream_id) : m_port_id(port_id), m_stream_id(stream_id) {
+ uint8_t port_id, uint32_t stream_id) : m_port_id(port_id), m_stream_id(stream_id) , m_rate(*this) {
/* default values */
m_type = type;
@@ -127,7 +133,6 @@ TrexStream::TrexStream(uint8_t type,
m_rx_check.m_enable = false;
- m_pps=-1.0;
m_burst_total_pkts=0;
m_num_bursts=1;
m_ibg_usec=0.0;
@@ -238,3 +243,16 @@ int TrexStreamTable::size() {
}
+/**************************************
+ * TrexStreamRate
+ *************************************/
+uint64_t
+TrexStreamRate::get_line_speed_bps() {
+ TrexStatelessPort *port = get_stateless_obj()->get_port_by_id(m_stream.m_port_id);
+ return port->get_port_speed_bps();
+}
+
+double
+TrexStreamRate::get_pkt_size() {
+ return m_stream.get_pkt_size();
+}
diff --git a/src/stateless/cp/trex_stream.h b/src/stateless/cp/trex_stream.h
index 5240e96d..cc05c198 100644
--- a/src/stateless/cp/trex_stream.h
+++ b/src/stateless/cp/trex_stream.h
@@ -107,12 +107,184 @@ public:
}
};
+class TrexStream;
+
+/**
+ * describes a stream rate
+ *
+ * @author imarom (18-Feb-16)
+ */
+class TrexStreamRate {
+
+
+public:
+
+ enum rate_type_e {
+ RATE_INVALID,
+ RATE_PPS,
+ RATE_BPS_L1,
+ RATE_BPS_L2,
+ RATE_PERCENTAGE
+ };
+
+ TrexStreamRate(TrexStream &stream) : m_stream(stream) {
+ m_pps = 0;
+ m_bps_L1 = 0;
+ m_bps_L2 = 0;
+ m_percentage = 0;
+ }
+
+
+ TrexStreamRate& operator=(const TrexStreamRate& other) {
+ m_pps = other.m_pps;
+ m_bps_L1 = other.m_bps_L1;
+ m_bps_L2 = other.m_bps_L2;
+ m_percentage = other.m_percentage;
+
+ return (*this);
+ }
+
+ /**
+ * set the base rate
+ * other values will be dervied from this value
+ *
+ */
+ void set_base_rate(rate_type_e type, double value) {
+ m_pps = 0;
+ m_bps_L1 = 0;
+ m_bps_L2 = 0;
+ m_percentage = 0;
+
+ assert(value > 0);
+
+ switch (type) {
+ case RATE_PPS:
+ m_pps = value;
+ break;
+ case RATE_BPS_L1:
+ m_bps_L1 = value;
+ break;
+ case RATE_BPS_L2:
+ m_bps_L2 = value;
+ break;
+ case RATE_PERCENTAGE:
+ m_percentage = value;
+ break;
+
+ default:
+ assert(0);
+
+ }
+ }
+
+ double get_pps() {
+ if (m_pps == 0) {
+ calculate();
+ }
+ return (m_pps);
+ }
+
+ double get_bps_L1() {
+ if (m_bps_L1 == 0) {
+ calculate();
+ }
+ return (m_bps_L1);
+ }
+
+ double get_bps_L2() {
+ if (m_bps_L2 == 0) {
+ calculate();
+ }
+ return m_bps_L2;
+ }
+
+ double get_percentage() {
+ if (m_percentage == 0) {
+ calculate();
+ }
+ return m_percentage;
+ }
+
+
+
+ /* update the rate by a factor */
+ void update_factor(double factor) {
+ /* if all are non zero - it works, if only one (base) is also works */
+ m_pps *= factor;
+ m_bps_L1 *= factor;
+ m_bps_L2 *= factor;
+ m_percentage *= factor;
+ }
+
+
+
+private:
+
+ /**
+ * calculates all the rates from the base rate
+ *
+ */
+ void calculate() {
+
+ if (m_pps != 0) {
+ calculate_from_pps();
+ } else if (m_bps_L1 != 0) {
+ calculate_from_bps_L1();
+ } else if (m_bps_L2 != 0) {
+ calculate_from_bps_L2();
+ } else if (m_percentage != 0) {
+ calculate_from_percentage();
+ } else {
+ assert(0);
+ }
+ }
+
+
+ uint64_t get_line_speed_bps();
+ double get_pkt_size();
+
+ void calculate_from_pps() {
+ m_bps_L1 = m_pps * (get_pkt_size() + 24) * 8;
+ m_bps_L2 = m_pps * (get_pkt_size() + 4) * 8;
+ m_percentage = (m_bps_L1 / get_line_speed_bps()) * 100.0;
+ }
+
+
+ void calculate_from_bps_L1() {
+ m_bps_L2 = m_bps_L1 * ( (get_pkt_size() + 4.0) / (get_pkt_size() + 24.0) );
+ m_pps = m_bps_L2 / (8 * (get_pkt_size() + 4));
+ m_percentage = (m_bps_L1 / get_line_speed_bps()) * 100.0;
+ }
+
+
+ void calculate_from_bps_L2() {
+ m_bps_L1 = m_bps_L2 * ( (get_pkt_size() + 24.0) / (get_pkt_size() + 4.0));
+ m_pps = m_bps_L2 / (8 * (get_pkt_size() + 4));
+ m_percentage = (m_bps_L1 / get_line_speed_bps()) * 100.0;
+ }
+
+ void calculate_from_percentage() {
+ m_bps_L1 = (m_percentage / 100.0) * get_line_speed_bps();
+ m_bps_L2 = m_bps_L1 * ( (get_pkt_size() + 4.0) / (get_pkt_size() + 24.0) );
+ m_pps = m_bps_L2 / (8 * (get_pkt_size() + 4));
+
+ }
+
+ double m_pps;
+ double m_bps_L1;
+ double m_bps_L2;
+ double m_percentage;
+
+ /* reference to the owner class */
+ TrexStream &m_stream;
+};
/**
* Stateless Stream
*
*/
class TrexStream {
+friend class TrexStreamRate;
public:
enum STREAM_TYPE {
@@ -155,12 +327,29 @@ public:
m_next_stream_id = next_stream_id;
}
- double get_pps() const {
- return m_pps;
+
+ double get_pps() {
+ return m_rate.get_pps();
+ }
+
+ double get_bps_L1() {
+ return m_rate.get_bps_L1();
}
- void set_pps(double pps){
- m_pps = pps;
+ double get_bps_L2() {
+ return m_rate.get_bps_L2();
+ }
+
+ double get_bw_percentage() {
+ return m_rate.get_percentage();
+ }
+
+ void set_rate(TrexStreamRate::rate_type_e type, double value) {
+ m_rate.set_base_rate(type, value);
+ }
+
+ void update_rate_factor(double factor) {
+ m_rate.update_factor(factor);
}
void set_type(uint8_t type){
@@ -227,13 +416,14 @@ public:
dp->m_expected_pkt_len = m_expected_pkt_len;
dp->m_rx_check = m_rx_check;
- dp->m_pps = m_pps;
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_action_count = m_action_count;
+ dp->m_rate = m_rate;
+
return(dp);
}
@@ -245,19 +435,11 @@ public:
}
}
- double get_burst_length_usec() const {
- return ( (m_burst_total_pkts / m_pps) * 1000 * 1000);
+ double get_burst_length_usec() {
+ return ( (m_burst_total_pkts / get_pps()) * 1000 * 1000);
}
- double get_bps_l2() {
- return get_bps(false);
- }
-
- double get_bps_l1() {
- return get_bps(true);
- }
-
-
+
void Dump(FILE *fd);
StreamVmDp * getDpVm(){
@@ -325,8 +507,6 @@ public:
} m_rx_check;
- double m_pps;
-
uint32_t m_burst_total_pkts; /* valid in case of burst stSINGLE_BURST,stMULTI_BURST*/
uint32_t m_num_bursts; /* valid in case of stMULTI_BURST */
@@ -338,8 +518,7 @@ public:
private:
- double get_bps(bool layer1) {
-
+ double get_pkt_size() {
/* lazy calculate the expected packet length */
if (m_expected_pkt_len == 0) {
/* if we have a VM - it might have changed the packet (even random) */
@@ -349,17 +528,13 @@ private:
m_expected_pkt_len = m_vm.calc_expected_pkt_size(m_pkt.len);
}
}
-
-
- /* packet length + 4 CRC bytes to bits and multiplied by PPS */
- if (layer1) {
- /* layer one includes preamble, frame delimiter and interpacket gap */
- return (m_pps * (m_expected_pkt_len + 4 + 8 + 12) * 8);
- } else {
- return (m_pps * (m_expected_pkt_len + 4) * 8);
- }
+ return m_expected_pkt_len;
}
+
+
+ /* no access to this without a lazy build method */
+ TrexStreamRate m_rate;
};
diff --git a/src/stateless/cp/trex_stream_vm.h b/src/stateless/cp/trex_stream_vm.h
index c16545d9..0bd00711 100644
--- a/src/stateless/cp/trex_stream_vm.h
+++ b/src/stateless/cp/trex_stream_vm.h
@@ -227,7 +227,7 @@ public:
inline void run_inc(uint8_t * flow_var) {
uint8_t *p = (flow_var + m_flow_offset);
- if (*p >= (m_max_val-m_step)) {
+ if (*p > (m_max_val-m_step)) {
*p = m_min_val;
} else {
*p = *p + m_step;
@@ -236,7 +236,7 @@ public:
inline void run_dec(uint8_t * flow_var) {
uint8_t *p = (flow_var + m_flow_offset);
- if (*p <= (m_min_val+m_step)) {
+ if (*p < (m_min_val+m_step)) {
*p = m_max_val;
} else {
*p = *p - m_step;
@@ -257,7 +257,7 @@ public:
inline void run_inc(uint8_t * flow_var) {
uint16_t *p = (uint16_t *)(flow_var + m_flow_offset);
- if (*p >= (m_max_val-m_step)) {
+ if (*p > (m_max_val-m_step)) {
*p = m_min_val;
} else {
*p = *p + m_step;
@@ -266,7 +266,7 @@ public:
inline void run_dec(uint8_t * flow_var) {
uint16_t *p = (uint16_t *)(flow_var + m_flow_offset);
- if (*p <= (m_min_val+m_step)) {
+ if (*p < (m_min_val+m_step)) {
*p = m_max_val;
} else {
*p = *p - m_step;
@@ -286,7 +286,7 @@ public:
inline void run_inc(uint8_t * flow_var) {
uint32_t *p = (uint32_t *)(flow_var + m_flow_offset);
- if (*p >= (m_max_val-m_step)) {
+ if (*p > (m_max_val-m_step)) {
*p = m_min_val;
} else {
*p = *p + m_step;
@@ -295,7 +295,7 @@ public:
inline void run_dec(uint8_t * flow_var) {
uint32_t *p = (uint32_t *)(flow_var + m_flow_offset);
- if (*p <= (m_min_val+m_step)) {
+ if (*p < (m_min_val+m_step)) {
*p = m_max_val;
} else {
*p = *p - m_step;
@@ -315,7 +315,7 @@ public:
inline void run_inc(uint8_t * flow_var) {
uint64_t *p = (uint64_t *)(flow_var + m_flow_offset);
- if (*p >= (m_max_val-m_step) ) {
+ if (*p > (m_max_val-m_step) ) {
*p = m_min_val;
} else {
*p = *p + m_step;
@@ -324,7 +324,7 @@ public:
inline void run_dec(uint8_t * flow_var) {
uint64_t *p = (uint64_t *)(flow_var + m_flow_offset);
- if (*p <= m_min_val+m_step) {
+ if (*p < m_min_val+m_step) {
*p = m_max_val;
} else {
*p = *p - m_step;
diff --git a/src/stateless/cp/trex_streams_compiler.cpp b/src/stateless/cp/trex_streams_compiler.cpp
index 9d048dbd..aca74498 100644
--- a/src/stateless/cp/trex_streams_compiler.cpp
+++ b/src/stateless/cp/trex_streams_compiler.cpp
@@ -459,7 +459,7 @@ TrexStreamsCompiler::compile_internal(uint8_t por
*
*/
void
-TrexStreamsCompiler::compile_stream(const TrexStream *stream,
+TrexStreamsCompiler::compile_stream(TrexStream *stream,
double factor,
uint8_t dp_core_count,
std::vector<TrexStreamsCompiledObj *> &objs,
@@ -500,7 +500,7 @@ TrexStreamsCompiler::compile_stream(const TrexStream *stream,
*
*/
void
-TrexStreamsCompiler::compile_stream_on_all_cores(const TrexStream *stream,
+TrexStreamsCompiler::compile_stream_on_all_cores(TrexStream *stream,
double factor,
uint8_t dp_core_count,
std::vector<TrexStreamsCompiledObj *> &objs,
@@ -509,7 +509,7 @@ TrexStreamsCompiler::compile_stream_on_all_cores(const TrexStream *stream,
std::vector<TrexStream *> core_streams(dp_core_count);
- double per_core_rate = (stream->m_pps * (factor / dp_core_count));
+ double per_core_factor = (factor / dp_core_count);
int per_core_burst_total_pkts = (stream->m_burst_total_pkts / dp_core_count);
/* for each core - creates its own version of the stream */
@@ -521,7 +521,7 @@ TrexStreamsCompiler::compile_stream_on_all_cores(const TrexStream *stream,
/* adjust rate and packets count */
- dp_stream->m_pps = per_core_rate;
+ dp_stream->update_rate_factor(per_core_factor);
dp_stream->m_burst_total_pkts = per_core_burst_total_pkts;
core_streams[i] = dp_stream;
@@ -547,7 +547,7 @@ TrexStreamsCompiler::compile_stream_on_all_cores(const TrexStream *stream,
*
*/
void
-TrexStreamsCompiler::compile_stream_on_single_core(const TrexStream *stream,
+TrexStreamsCompiler::compile_stream_on_single_core(TrexStream *stream,
double factor,
TrexStreamsCompiledObj *obj,
int new_id,
@@ -560,7 +560,7 @@ TrexStreamsCompiler::compile_stream_on_single_core(const TrexStream *stream,
/* compile the VM if exists */
if (!stream->m_vm.is_vm_empty()) {
- ((TrexStream *)stream)->vm_compile();
+ stream->vm_compile();
dp_stream->m_vm_dp = stream->m_vm_dp->clone();
}
@@ -581,7 +581,7 @@ TrexStreamsCompiler::compile_stream_on_single_core(const TrexStream *stream,
* @param stream
*/
void
-TrexStreamsGraph::add_rate_events_for_stream(double &offset_usec, const TrexStream *stream) {
+TrexStreamsGraph::add_rate_events_for_stream(double &offset_usec, TrexStream *stream) {
switch (stream->get_type()) {
@@ -604,7 +604,7 @@ TrexStreamsGraph::add_rate_events_for_stream(double &offset_usec, const TrexStre
*
*/
void
-TrexStreamsGraph::add_rate_events_for_stream_cont(double &offset_usec, const TrexStream *stream) {
+TrexStreamsGraph::add_rate_events_for_stream_cont(double &offset_usec, TrexStream *stream) {
TrexStreamsGraphObj::rate_event_st start_event;
@@ -613,8 +613,8 @@ TrexStreamsGraph::add_rate_events_for_stream_cont(double &offset_usec, const Tre
start_event.time = offset_usec + stream->m_isg_usec;
start_event.diff_pps = stream->get_pps();
- start_event.diff_bps_l2 = ((TrexStream *)stream)->get_bps_l2();
- start_event.diff_bps_l1 = ((TrexStream *)stream)->get_bps_l1();
+ start_event.diff_bps_l2 = stream->get_bps_L2();
+ start_event.diff_bps_l1 = stream->get_bps_L1();
m_graph_obj->add_rate_event(start_event);
/* no more events after this stream */
@@ -629,7 +629,7 @@ TrexStreamsGraph::add_rate_events_for_stream_cont(double &offset_usec, const Tre
*
*/
void
-TrexStreamsGraph::add_rate_events_for_stream_single_burst(double &offset_usec, const TrexStream *stream) {
+TrexStreamsGraph::add_rate_events_for_stream_single_burst(double &offset_usec, TrexStream *stream) {
TrexStreamsGraphObj::rate_event_st start_event;
TrexStreamsGraphObj::rate_event_st stop_event;
@@ -640,9 +640,9 @@ TrexStreamsGraph::add_rate_events_for_stream_single_burst(double &offset_usec, c
/* start event */
start_event.time = offset_usec + stream->m_isg_usec;
- start_event.diff_pps = stream->get_pps();
- start_event.diff_bps_l2 = ((TrexStream *)stream)->get_bps_l2();
- start_event.diff_bps_l1 = ((TrexStream *)stream)->get_bps_l1();
+ start_event.diff_pps = stream->get_pps();
+ start_event.diff_bps_l2 = stream->get_bps_L2();
+ start_event.diff_bps_l1 = stream->get_bps_L1();
m_graph_obj->add_rate_event(start_event);
/* stop event */
@@ -662,7 +662,7 @@ TrexStreamsGraph::add_rate_events_for_stream_single_burst(double &offset_usec, c
*
*/
void
-TrexStreamsGraph::add_rate_events_for_stream_multi_burst(double &offset_usec, const TrexStream *stream) {
+TrexStreamsGraph::add_rate_events_for_stream_multi_burst(double &offset_usec, TrexStream *stream) {
TrexStreamsGraphObj::rate_event_st start_event;
TrexStreamsGraphObj::rate_event_st stop_event;
@@ -672,8 +672,8 @@ TrexStreamsGraph::add_rate_events_for_stream_multi_burst(double &offset_usec, co
/* for debug purposes */
start_event.diff_pps = stream->get_pps();
- start_event.diff_bps_l2 = ((TrexStream *)stream)->get_bps_l2();
- start_event.diff_bps_l1 = ((TrexStream *)stream)->get_bps_l1();
+ start_event.diff_bps_l2 = stream->get_bps_L2();
+ start_event.diff_bps_l1 = stream->get_bps_L1();
start_event.stream_id = stream->m_stream_id;
stop_event.diff_pps = -(start_event.diff_pps);
@@ -714,7 +714,7 @@ TrexStreamsGraph::generate_graph_for_one_root(uint32_t root_stream_id) {
double offset = 0;
while (true) {
- const TrexStream *stream;
+ TrexStream *stream;
/* fetch the stream from the hash - if it is not present, report an error */
try {
diff --git a/src/stateless/cp/trex_streams_compiler.h b/src/stateless/cp/trex_streams_compiler.h
index a3a1f8f7..b8b0be37 100644
--- a/src/stateless/cp/trex_streams_compiler.h
+++ b/src/stateless/cp/trex_streams_compiler.h
@@ -123,19 +123,19 @@ private:
void add_warning(const std::string &warning);
void err(const std::string &err);
- void compile_stream(const TrexStream *stream,
+ void compile_stream(TrexStream *stream,
double factor,
uint8_t dp_core_count,
std::vector<TrexStreamsCompiledObj *> &objs,
GraphNodeMap &nodes);
- void compile_stream_on_single_core(const TrexStream *stream,
+ void compile_stream_on_single_core(TrexStream *stream,
double factor,
TrexStreamsCompiledObj *obj,
int new_id,
int new_next_id);
- void compile_stream_on_all_cores(const TrexStream *stream,
+ void compile_stream_on_all_cores(TrexStream *stream,
double factor,
uint8_t dp_core_count,
std::vector<TrexStreamsCompiledObj *> &objs,
@@ -245,13 +245,13 @@ private:
void generate_graph_for_one_root(uint32_t root_stream_id);
- void add_rate_events_for_stream(double &offset, const TrexStream *stream);
- void add_rate_events_for_stream_cont(double &offset_usec, const TrexStream *stream);
- void add_rate_events_for_stream_single_burst(double &offset_usec, const TrexStream *stream);
- void add_rate_events_for_stream_multi_burst(double &offset_usec, const TrexStream *stream);
+ void add_rate_events_for_stream(double &offset, TrexStream *stream);
+ void add_rate_events_for_stream_cont(double &offset_usec, TrexStream *stream);
+ void add_rate_events_for_stream_single_burst(double &offset_usec, TrexStream *stream);
+ void add_rate_events_for_stream_multi_burst(double &offset_usec, TrexStream *stream);
/* for fast processing of streams */
- std::unordered_map<uint32_t, const TrexStream *> m_streams_hash;
+ std::unordered_map<uint32_t, TrexStream *> m_streams_hash;
/* main object to hold the graph - returned to the user */
TrexStreamsGraphObj *m_graph_obj;