diff options
Diffstat (limited to 'src/stateless/cp')
-rw-r--r-- | src/stateless/cp/trex_stateless.cpp | 11 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless.h | 11 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.cpp | 13 |
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 & |