diff options
author | imarom <imarom@cisco.com> | 2016-11-07 18:47:23 +0200 |
---|---|---|
committer | imarom <imarom@cisco.com> | 2016-11-07 18:47:23 +0200 |
commit | f9a0c5e2e1e1135cb0c0e6e192565e5b100c5a41 (patch) | |
tree | f09e19975f324d9c0eb717608473dcdbd334a608 /src/stateless/cp | |
parent | e85ea75669ea39e4f99519138a3a84e4df6eed2d (diff) |
RX features - queueing
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/cp')
-rw-r--r-- | src/stateless/cp/trex_stateless_port.cpp | 26 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.h | 26 |
2 files changed, 40 insertions, 12 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp index 2318061d..691185cd 100644 --- a/src/stateless/cp/trex_stateless_port.cpp +++ b/src/stateless/cp/trex_stateless_port.cpp @@ -947,12 +947,9 @@ TrexStatelessPort::remove_and_delete_all_streams() { void TrexStatelessPort::start_rx_capture(const std::string &pcap_filename, uint64_t limit) { - m_rx_capture_info.enable(pcap_filename, limit); + m_rx_features_info.m_rx_capture_info.enable(pcap_filename, limit); - TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxStartCapture(m_port_id, - pcap_filename, - limit, - &m_rx_capture_info.m_shared_counter); + TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxStartCapture(m_port_id, m_rx_features_info.m_rx_capture_info); send_message_to_rx(msg); } @@ -960,12 +957,23 @@ void TrexStatelessPort::stop_rx_capture() { TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxStopCapture(m_port_id); send_message_to_rx(msg); - m_rx_capture_info.disable(); + m_rx_features_info.m_rx_capture_info.disable(); } -const RXCaptureInfo & -TrexStatelessPort::get_rx_capture_info() { - return m_rx_capture_info; +void +TrexStatelessPort::start_rx_queue(uint64_t size) { + + m_rx_features_info.m_rx_queue_info.enable(size); + + TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxStartQueue(m_port_id, m_rx_features_info.m_rx_queue_info); + send_message_to_rx(msg); +} + +void +TrexStatelessPort::stop_rx_queue() { + TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxStopQueue(m_port_id); + send_message_to_rx(msg); + m_rx_features_info.m_rx_queue_info.disable(); } diff --git a/src/stateless/cp/trex_stateless_port.h b/src/stateless/cp/trex_stateless_port.h index 973a95c6..36f17659 100644 --- a/src/stateless/cp/trex_stateless_port.h +++ b/src/stateless/cp/trex_stateless_port.h @@ -382,11 +382,30 @@ public: */ void stop_rx_capture(); + /** + * start RX queueing of packets + * + * @author imarom (11/7/2016) + * + * @param limit + */ + void start_rx_queue(uint64_t limit); + + /** + * stop RX queueing + * + * @author imarom (11/7/2016) + */ + void stop_rx_queue(); + + /** - * status of the RX capture + * get the RX features info object * */ - const RXCaptureInfo &get_rx_capture_info(); + const RXFeaturesInfo &get_rx_features() { + return m_rx_features_info; + } /** * fetch the RX software packets from the queue @@ -481,7 +500,8 @@ private: int m_pending_async_stop_event; - RXCaptureInfo m_rx_capture_info; + RXFeaturesInfo m_rx_features_info; + }; |