summaryrefslogtreecommitdiffstats
path: root/src/stateless/rx/trex_stateless_rx_core.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-10-31 11:58:27 +0200
committerimarom <imarom@cisco.com>2016-11-02 15:08:35 +0200
commit0337db2b07c2c054ee5c5ea49cab6cfce5d5a897 (patch)
treeea29f13937170a989697356ed9f777dc4db4670f /src/stateless/rx/trex_stateless_rx_core.cpp
parent02ab06b1cf8886be0a6fde5360497b4fa968d3a3 (diff)
draft: RX software feature
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/rx/trex_stateless_rx_core.cpp')
-rw-r--r--src/stateless/rx/trex_stateless_rx_core.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/stateless/rx/trex_stateless_rx_core.cpp b/src/stateless/rx/trex_stateless_rx_core.cpp
index d162c5b3..e8d5857e 100644
--- a/src/stateless/rx/trex_stateless_rx_core.cpp
+++ b/src/stateless/rx/trex_stateless_rx_core.cpp
@@ -26,6 +26,8 @@
#include "pal/linux/sanb_atomic.h"
#include "trex_stateless_messaging.h"
#include "trex_stateless_rx_core.h"
+#include "trex_stateless.h"
+
void CRFC2544Info::create() {
m_latency.Create();
@@ -128,6 +130,7 @@ bool CRxCoreStateless::periodic_check_for_cp_messages() {
}
+
void CRxCoreStateless::idle_state_loop() {
const int SHORT_DELAY_MS = 2;
const int LONG_DELAY_MS = 50;
@@ -371,6 +374,7 @@ void CRxCoreStateless::flush_rx() {
}// all ports
}
+
int CRxCoreStateless::try_rx() {
rte_mbuf_t * rx_pkts[64];
int i, total_pkts = 0;
@@ -385,7 +389,8 @@ int CRxCoreStateless::try_rx() {
int j;
for (j = 0; j < cnt_p; j++) {
m = rx_pkts[j];
- handle_rx_pkt(lp, m);
+ //handle_rx_pkt(lp, m);
+ m_rx_port_mngr[i].handle_pkt(m);
rte_pktmbuf_free(m);
}
/* commit only if there was work to do ! */
@@ -472,3 +477,11 @@ void CRxCoreStateless::update_cpu_util(){
double CRxCoreStateless::get_cpu_util() {
return m_cpu_cp_u.GetVal();
}
+
+
+void
+CRxCoreStateless::set_rx_filter_mode(uint8_t port_id, rx_filter_mode_e filter_mode) {
+ const TrexPlatformApi *api = get_stateless_obj()->get_platform_api();
+ api->set_rx_filter_mode(port_id, filter_mode);
+}
+