diff options
author | 2017-02-15 18:26:41 +0200 | |
---|---|---|
committer | 2017-02-16 15:20:23 +0200 | |
commit | 17d58dba43eeae9f1519248c1fd62e9e4d2dc302 (patch) | |
tree | ffbadffb292b505aea5dad6e524e5cef4bf66154 /src/stateless/messaging | |
parent | d9e19ba46d441b8e208f223add5a612183e5157c (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.cpp | 18 | ||||
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.h | 25 |
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 **********************/ /** |