summaryrefslogtreecommitdiffstats
path: root/src/stateless/messaging/trex_stateless_messaging.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2015-11-19 22:13:55 +0200
committerimarom <imarom@cisco.com>2015-11-19 22:28:51 +0200
commitb094110ef86889a0694dc71503c5610abaf47ebe (patch)
treedc7e98f0fdcdee176b6bdbcfdc7736364e020608 /src/stateless/messaging/trex_stateless_messaging.cpp
parent90e283923e5d860803eae5996a1247b1390ea36a (diff)
BUG: didn't do all the states per port on the DP - now fixed
Diffstat (limited to 'src/stateless/messaging/trex_stateless_messaging.cpp')
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp
index c92ad68a..629fe24c 100644
--- a/src/stateless/messaging/trex_stateless_messaging.cpp
+++ b/src/stateless/messaging/trex_stateless_messaging.cpp
@@ -29,7 +29,8 @@ limitations under the License.
/*************************
start traffic message
************************/
-TrexStatelessDpStart::TrexStatelessDpStart(int event_id, TrexStreamsCompiledObj *obj, double duration) {
+TrexStatelessDpStart::TrexStatelessDpStart(uint8_t port_id, int event_id, TrexStreamsCompiledObj *obj, double duration) {
+ m_port_id = port_id;
m_event_id = event_id;
m_obj = obj;
m_duration = duration;
@@ -45,7 +46,7 @@ TrexStatelessDpStart::clone() {
TrexStreamsCompiledObj *new_obj = m_obj->clone();
- TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpStart(m_event_id, new_obj, m_duration);
+ TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpStart(m_port_id, m_event_id, new_obj, m_duration);
return new_msg;
}
@@ -60,7 +61,7 @@ bool
TrexStatelessDpStart::handle(TrexStatelessDpCore *dp_core) {
/* mark the event id for DP response */
- dp_core->set_event_id(m_event_id);
+ dp_core->get_port_db(m_port_id)->set_event_id(m_event_id);
/* staet traffic */
dp_core->start_traffic(m_obj, m_duration);
@@ -73,6 +74,10 @@ TrexStatelessDpStart::handle(TrexStatelessDpCore *dp_core) {
************************/
bool
TrexStatelessDpStop::handle(TrexStatelessDpCore *dp_core) {
+ if (dp_core->get_port_db(m_port_id)->get_state() == TrexStatelessDpPerPort::ppSTATE_IDLE) {
+ return true;
+ }
+
dp_core->stop_traffic(m_port_id);
return true;
}