diff options
author | 2017-01-23 16:45:01 +0200 | |
---|---|---|
committer | 2017-01-23 16:45:01 +0200 | |
commit | 418fd3d0a7169f2d8934e8be82d11e1a388d681c (patch) | |
tree | 25aa5c50cde307d69e664f0034bb05e8d79b8a0e /src/stateless/messaging/trex_stateless_messaging.cpp | |
parent | 2fd0f893a70649cfb71708c367724c5ba1ca0125 (diff) |
service mode is now by message to RX core
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/messaging/trex_stateless_messaging.cpp')
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp index 2452487c..21fe7a13 100644 --- a/src/stateless/messaging/trex_stateless_messaging.cpp +++ b/src/stateless/messaging/trex_stateless_messaging.cpp @@ -381,3 +381,40 @@ TrexStatelessRxSetL3Mode::handle(CRxCoreStateless *rx_core) { return true; } +bool +TrexStatelessRxQuery::handle(CRxCoreStateless *rx_core) { + + query_rc_e rc = RC_OK; + + switch (m_query_type) { + + case SERVICE_MODE_ON: + /* for service mode on - always allow this */ + rc = RC_OK; + break; + + case SERVICE_MODE_OFF: + /* cannot leave service mode when RX queue is active */ + if (rx_core->get_rx_port_mngr(m_port_id).is_feature_set(RXPortManager::QUEUE)) { + rc = RC_FAIL_RX_QUEUE_ACTIVE; + break; + } + + /* cannot leave service mode if PCAP capturing is active */ + if (TrexStatelessCaptureMngr::getInstance().is_active(m_port_id)) { + rc = RC_FAIL_CAPTURE_ACTIVE; + break; + } + + break; + + default: + assert(0); + break; + + } + + m_reply.set_reply(rc); + + return true; +} |