summaryrefslogtreecommitdiffstats
path: root/src/stateless/cp/trex_stateless_port.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-08-10 17:45:36 +0300
committerimarom <imarom@cisco.com>2016-08-15 16:03:59 +0300
commitba7b5dff853a3b11b0cc2e7b29cfc1cd99e606f7 (patch)
tree25a2d72756217ef5d364a4c9b5a6e5e9a9d165a7 /src/stateless/cp/trex_stateless_port.cpp
parentce1de344579505665b88c2d548ca8d2acc135988 (diff)
core mask - first phase
Diffstat (limited to 'src/stateless/cp/trex_stateless_port.cpp')
-rw-r--r--src/stateless/cp/trex_stateless_port.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp
index 376453b9..134d4c98 100644
--- a/src/stateless/cp/trex_stateless_port.cpp
+++ b/src/stateless/cp/trex_stateless_port.cpp
@@ -241,7 +241,7 @@ TrexStatelessPort::release(void) {
*
*/
void
-TrexStatelessPort::start_traffic(const TrexPortMultiplier &mul, double duration, bool force) {
+TrexStatelessPort::start_traffic(const TrexPortMultiplier &mul, double duration, bool force, uint64_t core_mask) {
/* command allowed only on state stream */
verify_state(PORT_STATE_STREAMS);
@@ -262,10 +262,12 @@ TrexStatelessPort::start_traffic(const TrexPortMultiplier &mul, double duration,
std::string fail_msg;
TrexStreamsCompiler compiler;
+ TrexDPCoreMask mask(get_dp_core_count(), core_mask);
+
bool rc = compiler.compile(m_port_id,
feeder.get_streams(),
compiled_objs,
- get_dp_core_count(),
+ mask,
factor,
&fail_msg);
@@ -282,7 +284,7 @@ TrexStatelessPort::start_traffic(const TrexPortMultiplier &mul, double duration,
/* update object status */
m_factor = factor;
- m_last_all_streams_continues = compiled_objs[0]->get_all_streams_continues();
+ m_last_all_streams_continues = compiled_objs[mask.get_active_cores()[0]]->get_all_streams_continues();
m_last_duration = duration;
change_state(PORT_STATE_TX);
@@ -484,7 +486,7 @@ TrexStatelessPort::update_traffic(const TrexPortMultiplier &mul, bool force) {
}
TrexStatelessCpToDpMsgBase *update_msg = new TrexStatelessDpUpdate(m_port_id, factor);
- send_message_to_all_dp(update_msg);
+ send_message_to_all_dp(update_msg, true);
m_factor *= factor;
@@ -820,13 +822,17 @@ TrexStatelessPort::validate(void) {
}
TrexStreamsCompiler compiler;
+
+ /* TODO: think of this mask...*/
+ TrexDPCoreMask core_mask(get_dp_core_count(), TrexDPCoreMask::MASK_ALL);
+
std::vector<TrexStreamsCompiledObj *> compiled_objs;
std::string fail_msg;
bool rc = compiler.compile(m_port_id,
streams,
compiled_objs,
- get_dp_core_count(),
+ core_mask,
1.0,
&fail_msg);
if (!rc) {