From ba7b5dff853a3b11b0cc2e7b29cfc1cd99e606f7 Mon Sep 17 00:00:00 2001 From: imarom Date: Wed, 10 Aug 2016 17:45:36 +0300 Subject: core mask - first phase --- src/stateless/cp/trex_stateless_port.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/stateless/cp/trex_stateless_port.cpp') 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 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) { -- cgit 1.2.3-korg