summaryrefslogtreecommitdiffstats
path: root/src/stateless
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2017-02-16 11:38:23 +0200
committerimarom <imarom@cisco.com>2017-02-16 15:20:24 +0200
commitb22e3ed1570f5c36e012022b75d6d025c8cc44d5 (patch)
treef21c92bb16c62e013e924449af56f3ed42ae40a6 /src/stateless
parent17d58dba43eeae9f1519248c1fd62e9e4d2dc302 (diff)
tx_capture - code review
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless')
-rw-r--r--src/stateless/cp/trex_stateless_port.cpp2
-rw-r--r--src/stateless/dp/trex_stateless_dp_core.cpp15
-rw-r--r--src/stateless/dp/trex_stateless_dp_core.h4
-rw-r--r--src/stateless/rx/trex_stateless_capture.cpp2
4 files changed, 15 insertions, 8 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp
index 598577cc..423cd443 100644
--- a/src/stateless/cp/trex_stateless_port.cpp
+++ b/src/stateless/cp/trex_stateless_port.cpp
@@ -1001,7 +1001,7 @@ TrexStatelessPort::set_service_mode(bool enabled) {
assert(0);
}
- /* update the dp cores */
+ /* update the all the relevant dp cores to move to service mode */
TrexStatelessDpServiceMode *dp_msg = new TrexStatelessDpServiceMode(m_port_id, enabled);
send_message_to_all_dp(dp_msg);
}
diff --git a/src/stateless/dp/trex_stateless_dp_core.cpp b/src/stateless/dp/trex_stateless_dp_core.cpp
index 56184aeb..b6aa15be 100644
--- a/src/stateless/dp/trex_stateless_dp_core.cpp
+++ b/src/stateless/dp/trex_stateless_dp_core.cpp
@@ -27,11 +27,16 @@ limitations under the License.
#include "trex_streams_compiler.h"
#include "mbuf.h"
-
-class DPCoreWrapper : public CVirtualIF {
+/**
+ * a wrapper for service mode
+ * it will move the fast send_node virtual call
+ * to send_node_service_mode which does capturing
+ *
+ */
+class ServiceModeWrapper : public CVirtualIF {
public:
-
- DPCoreWrapper() {
+
+ ServiceModeWrapper() {
m_wrapped = nullptr;
}
@@ -644,7 +649,7 @@ TrexStatelessDpCore::TrexStatelessDpCore() {
m_core = NULL;
m_duration = -1;
m_is_service_mode = NULL;
- m_wrapper = new DPCoreWrapper();
+ m_wrapper = new ServiceModeWrapper();
}
TrexStatelessDpCore::~TrexStatelessDpCore() {
diff --git a/src/stateless/dp/trex_stateless_dp_core.h b/src/stateless/dp/trex_stateless_dp_core.h
index 93128906..21a5a665 100644
--- a/src/stateless/dp/trex_stateless_dp_core.h
+++ b/src/stateless/dp/trex_stateless_dp_core.h
@@ -34,7 +34,7 @@ class CGenNodeStateless;
class TrexStreamsCompiledObj;
class TrexStream;
class CGenNodePCAP;
-class DPCoreWrapper;
+class ServiceModeWrapper;
class CDpOneStream {
public:
@@ -340,7 +340,7 @@ private:
double m_duration;
- DPCoreWrapper *m_wrapper;
+ ServiceModeWrapper *m_wrapper;
bool m_is_service_mode;
};
diff --git a/src/stateless/rx/trex_stateless_capture.cpp b/src/stateless/rx/trex_stateless_capture.cpp
index 3b0273a4..bbdb8f63 100644
--- a/src/stateless/rx/trex_stateless_capture.cpp
+++ b/src/stateless/rx/trex_stateless_capture.cpp
@@ -269,7 +269,9 @@ TrexStatelessCaptureMngr::reset() {
}
}
+/* define this macro to stress test the critical section */
//#define STRESS_TEST
+
void
TrexStatelessCaptureMngr::handle_pkt_slow_path(const rte_mbuf_t *m, int port, TrexPkt::origin_e origin) {