diff options
author | 2016-11-07 18:47:23 +0200 | |
---|---|---|
committer | 2016-11-07 18:47:23 +0200 | |
commit | f9a0c5e2e1e1135cb0c0e6e192565e5b100c5a41 (patch) | |
tree | f09e19975f324d9c0eb717608473dcdbd334a608 /src/stateless/messaging | |
parent | e85ea75669ea39e4f99519138a3a84e4df6eed2d (diff) |
RX features - queueing
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/messaging')
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.cpp | 14 | ||||
-rw-r--r-- | src/stateless/messaging/trex_stateless_messaging.h | 40 |
2 files changed, 47 insertions, 7 deletions
diff --git a/src/stateless/messaging/trex_stateless_messaging.cpp b/src/stateless/messaging/trex_stateless_messaging.cpp index bd444dff..95168c4d 100644 --- a/src/stateless/messaging/trex_stateless_messaging.cpp +++ b/src/stateless/messaging/trex_stateless_messaging.cpp @@ -276,6 +276,20 @@ TrexStatelessRxStopCapture::handle(CRxCoreStateless *rx_core) { return true; } +bool +TrexStatelessRxStartQueue::handle(CRxCoreStateless *rx_core) { + rx_core->start_queue(m_port_id, m_size, m_shared_counter); + + return true; +} + +bool +TrexStatelessRxStopQueue::handle(CRxCoreStateless *rx_core) { + rx_core->stop_queue(m_port_id); + + return true; +} + bool TrexStatelessRxSwGetPkts::handle(CRxCoreStateless *rx_core) { RxPacketBuffer *pkt_buffer = rx_core->get_rx_sw_pkt_buffer(m_port_id); diff --git a/src/stateless/messaging/trex_stateless_messaging.h b/src/stateless/messaging/trex_stateless_messaging.h index f35d9da6..b598a6d6 100644 --- a/src/stateless/messaging/trex_stateless_messaging.h +++ b/src/stateless/messaging/trex_stateless_messaging.h @@ -423,13 +423,11 @@ class TrexStatelessRxQuit : public TrexStatelessCpToRxMsgBase { class TrexStatelessRxStartCapture : public TrexStatelessCpToRxMsgBase { public: - TrexStatelessRxStartCapture(uint8_t port_id, - const std::string &pcap_filename, - uint64_t limit, - uint64_t *shared_counter) : m_pcap_filename(pcap_filename) { - m_port_id = port_id; - m_limit = limit; - m_shared_counter = shared_counter; + TrexStatelessRxStartCapture(uint8_t port_id, RXCaptureInfo &rx_capture_info) { + m_port_id = port_id; + m_limit = rx_capture_info.m_limit; + m_pcap_filename = rx_capture_info.m_pcap_filename; + m_shared_counter = &rx_capture_info.m_shared_counter; } virtual bool handle(CRxCoreStateless *rx_core); @@ -454,6 +452,34 @@ private: uint8_t m_port_id; }; +class TrexStatelessRxStartQueue : public TrexStatelessCpToRxMsgBase { +public: + TrexStatelessRxStartQueue(uint8_t port_id, RXQueueInfo &rx_queue_info) { + m_port_id = port_id; + m_size = rx_queue_info.m_size; + m_shared_counter = &rx_queue_info.m_shared_counter; + } + + virtual bool handle(CRxCoreStateless *rx_core); + +private: + uint8_t m_port_id; + uint64_t m_size; + uint64_t *m_shared_counter; +}; + +class TrexStatelessRxStopQueue : public TrexStatelessCpToRxMsgBase { +public: + TrexStatelessRxStopQueue(uint8_t port_id) { + m_port_id = port_id; + } + + virtual bool handle(CRxCoreStateless *rx_core); + +private: + uint8_t m_port_id; +}; + template<typename T> class TrexStatelessMsgReply { public: |