summaryrefslogtreecommitdiffstats
path: root/src/stateless/cp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-11-07 18:47:23 +0200
committerimarom <imarom@cisco.com>2016-11-07 18:47:23 +0200
commitf9a0c5e2e1e1135cb0c0e6e192565e5b100c5a41 (patch)
treef09e19975f324d9c0eb717608473dcdbd334a608 /src/stateless/cp
parente85ea75669ea39e4f99519138a3a84e4df6eed2d (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.cpp26
-rw-r--r--src/stateless/cp/trex_stateless_port.h26
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;
+
};