summaryrefslogtreecommitdiffstats
path: root/src/stateless/cp
diff options
context:
space:
mode:
Diffstat (limited to 'src/stateless/cp')
-rw-r--r--src/stateless/cp/trex_stateless.cpp11
-rw-r--r--src/stateless/cp/trex_stateless.h11
-rw-r--r--src/stateless/cp/trex_stateless_port.cpp13
3 files changed, 24 insertions, 11 deletions
diff --git a/src/stateless/cp/trex_stateless.cpp b/src/stateless/cp/trex_stateless.cpp
index 872fdd92..20e001c9 100644
--- a/src/stateless/cp/trex_stateless.cpp
+++ b/src/stateless/cp/trex_stateless.cpp
@@ -63,6 +63,9 @@ void TrexStateless::configure(const TrexStatelessCfg &cfg) {
/* cores */
instance.m_dp_core_count = cfg.m_dp_core_count;
+ for (int i = 0; i < instance.m_dp_core_count; i++) {
+ instance.m_dp_cores.push_back(new TrexStatelessDpCore(i));
+ }
/* done */
instance.m_is_configured = true;
@@ -90,12 +93,8 @@ TrexStateless::launch_control_plane() {
}
void
-TrexStateless::launch_on_dp_core() {
- //std::cout << "\n on DP core \n";
-
- while (true) {
- sleep(1);
- }
+TrexStateless::launch_on_dp_core(uint8_t core_id) {
+ m_dp_cores[core_id - 1]->run();
}
/**
diff --git a/src/stateless/cp/trex_stateless.h b/src/stateless/cp/trex_stateless.h
index 5c674fd6..ef612e84 100644
--- a/src/stateless/cp/trex_stateless.h
+++ b/src/stateless/cp/trex_stateless.h
@@ -26,6 +26,8 @@ limitations under the License.
#include <stdexcept>
#include <trex_stream.h>
+#include <trex_stateless_port.h>
+#include <trex_stateless_dp_core.h>
#include <trex_rpc_server_api.h>
/**
@@ -141,7 +143,7 @@ public:
* launch on a single DP core
*
*/
- void launch_on_dp_core();
+ void launch_on_dp_core(uint8_t core_id);
TrexStatelessPort * get_port_by_id(uint8_t port_id);
uint8_t get_port_count();
@@ -181,11 +183,12 @@ protected:
TrexRpcServer *m_rpc_server;
/* ports */
- std::vector <TrexStatelessPort *> m_ports;
- uint8_t m_port_count;
+ std::vector <TrexStatelessPort *> m_ports;
+ uint8_t m_port_count;
/* cores */
- uint8_t m_dp_core_count;
+ std::vector <TrexStatelessDpCore *> m_dp_cores;
+ uint8_t m_dp_core_count;
/* stats */
TrexStatelessStats m_stats;
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp
index 031efb58..240b7582 100644
--- a/src/stateless/cp/trex_stateless_port.cpp
+++ b/src/stateless/cp/trex_stateless_port.cpp
@@ -22,6 +22,13 @@ limitations under the License.
#include <trex_stateless_port.h>
#include <string>
+// DPDK c++ issue
+#define UINT8_MAX 255
+#define UINT16_MAX 0xFFFF
+// DPDK c++ issue
+
+#include <rte_ethdev.h>
+
using namespace std;
/***************************
@@ -143,7 +150,11 @@ TrexStatelessPort::update_stats() {
#else
/* real update work */
- #endif
+ struct rte_eth_stats stats;
+ rte_eth_stats_get(m_port_id, &stats);
+ printf("ipackets is %u\n", stats.ipackets);
+ printf("opackets is %u\n", stats.opackets);
+ #endif
}
const TrexPortStats &