summaryrefslogtreecommitdiffstats
path: root/src/stateless/messaging/trex_stateless_messaging.cpp
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2015-11-22 13:02:08 +0200
committerHanoh Haim <hhaim@cisco.com>2015-11-22 13:02:08 +0200
commit3408c03067a85789b2128352fdc2343ab707ae32 (patch)
tree1d9d1f116ce698240c4e77d2a4ea898b4c568953 /src/stateless/messaging/trex_stateless_messaging.cpp
parent36dc8ea51adffce882e542123111baad7a1a7ea7 (diff)
fix stop on duration per port
Diffstat (limited to 'src/stateless/messaging/trex_stateless_messaging.cpp')
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp
index c861d0fa..bbd4b68c 100644
--- a/src/stateless/messaging/trex_stateless_messaging.cpp
+++ b/src/stateless/messaging/trex_stateless_messaging.cpp
@@ -23,6 +23,7 @@ limitations under the License.
#include <trex_stateless_dp_core.h>
#include <trex_streams_compiler.h>
#include <trex_stateless.h>
+#include <bp_sim.h>
#include <string.h>
@@ -60,11 +61,8 @@ TrexStatelessDpStart::~TrexStatelessDpStart() {
bool
TrexStatelessDpStart::handle(TrexStatelessDpCore *dp_core) {
- /* mark the event id for DP response */
- dp_core->get_port_db(m_port_id)->set_event_id(m_event_id);
-
/* staet traffic */
- dp_core->start_traffic(m_obj, m_duration);
+ dp_core->start_traffic(m_obj, m_duration,m_event_id);
return true;
}
@@ -75,17 +73,32 @@ TrexStatelessDpStart::handle(TrexStatelessDpCore *dp_core) {
bool
TrexStatelessDpStop::handle(TrexStatelessDpCore *dp_core) {
- dp_core->stop_traffic(m_port_id);
+
+ dp_core->stop_traffic(m_port_id,m_stop_only_for_event_id,m_event_id);
return true;
}
+
+void TrexStatelessDpStop::on_node_remove(){
+ if ( m_core ) {
+ assert(m_core->m_non_active_nodes>0);
+ m_core->m_non_active_nodes--;
+ }
+}
+
+
/**
* clone for DP stop message
*
*/
TrexStatelessCpToDpMsgBase *
TrexStatelessDpStop::clone() {
- TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpStop(m_port_id);
+ TrexStatelessDpStop *new_msg = new TrexStatelessDpStop(m_port_id);
+
+ new_msg->set_event_id(m_event_id);
+ new_msg->set_wait_for_event_id(m_stop_only_for_event_id);
+ /* set back pointer to master */
+ new_msg->set_core_ptr(m_core);
return new_msg;
}