summaryrefslogtreecommitdiffstats
path: root/src/stateless/messaging
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2017-02-15 18:26:41 +0200
committerimarom <imarom@cisco.com>2017-02-16 15:20:23 +0200
commit17d58dba43eeae9f1519248c1fd62e9e4d2dc302 (patch)
treeffbadffb292b505aea5dad6e524e5cef4bf66154 /src/stateless/messaging
parentd9e19ba46d441b8e208f223add5a612183e5157c (diff)
TX packet capture - zero impact on fast path
(using wrapper when service mode is active) Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/messaging')
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.cpp18
-rw-r--r--src/stateless/messaging/trex_stateless_messaging.h25
2 files changed, 42 insertions, 1 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp
index f89ca343..0a3fbfde 100644
--- a/src/stateless/messaging/trex_stateless_messaging.cpp
+++ b/src/stateless/messaging/trex_stateless_messaging.cpp
@@ -233,6 +233,24 @@ TrexStatelessDpBarrier::clone() {
return new_msg;
}
+/*************************
+ service mode message
+ ************************/
+
+bool
+TrexStatelessDpServiceMode::handle(TrexStatelessDpCore *dp_core) {
+ dp_core->set_service_mode(m_port_id, m_enabled);
+ return true;
+}
+
+TrexStatelessCpToDpMsgBase *
+TrexStatelessDpServiceMode::clone() {
+
+ TrexStatelessCpToDpMsgBase *new_msg = new TrexStatelessDpServiceMode(m_port_id, m_enabled);
+
+ return new_msg;
+}
+
/************************* messages from DP to CP **********************/
bool
TrexDpPortEventMsg::handle() {
diff --git a/src/stateless/messaging/trex_stateless_messaging.h b/src/stateless/messaging/trex_stateless_messaging.h
index cd79d6e7..7871a754 100644
--- a/src/stateless/messaging/trex_stateless_messaging.h
+++ b/src/stateless/messaging/trex_stateless_messaging.h
@@ -140,7 +140,7 @@ protected:
class TrexStatelessDpStart : public TrexStatelessCpToDpMsgBase {
public:
- TrexStatelessDpStart(uint8_t m_port_id, int m_event_id, TrexStreamsCompiledObj *obj, double duration);
+ TrexStatelessDpStart(uint8_t port_id, int event_id, TrexStreamsCompiledObj *obj, double duration);
~TrexStatelessDpStart();
@@ -369,6 +369,29 @@ private:
};
+/**
+ * move a DP core in/out of service mode (slower as it might do
+ * capturing and etc.)
+ *
+ */
+class TrexStatelessDpServiceMode : public TrexStatelessCpToDpMsgBase {
+public:
+
+ TrexStatelessDpServiceMode(uint8_t port_id, bool enabled) {
+ m_port_id = port_id;
+ m_enabled = enabled;
+ }
+
+ virtual TrexStatelessCpToDpMsgBase * clone();
+
+ virtual bool handle(TrexStatelessDpCore *dp_core);
+
+private:
+
+ uint8_t m_port_id;
+ bool m_enabled;
+};
+
/************************* messages from DP to CP **********************/
/**