summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/flow_stat.cpp6
-rw-r--r--src/main_dpdk.cpp6
-rw-r--r--src/rpc-server/commands/trex_rpc_cmd_general.cpp2
3 files changed, 11 insertions, 3 deletions
diff --git a/src/flow_stat.cpp b/src/flow_stat.cpp
index ba125df2..e1e2f011 100644
--- a/src/flow_stat.cpp
+++ b/src/flow_stat.cpp
@@ -804,7 +804,6 @@ int CFlowStatRuleMgr::start_stream(TrexStream * stream) {
if (m_num_started_streams == 0) {
send_start_stop_msg_to_rx(true); // First transmitting stream. Rx core should start reading packets;
- assert(m_rx_core->is_working());
//also good time to zero global counters
memset(m_rx_cant_count_err, 0, sizeof(m_rx_cant_count_err));
@@ -981,7 +980,10 @@ void CFlowStatRuleMgr::send_start_stop_msg_to_rx(bool is_start) {
m_ring_to_rx->Enqueue((CGenNode *)msg);
/* hold until message was ack'ed - otherwise we might lose packets */
- reply.wait_for_reply();
+ if (m_rx_core) {
+ reply.wait_for_reply();
+ assert(m_rx_core->is_working());
+ }
} else {
msg = new TrexStatelessRxDisableLatency();
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index c02d6760..2fa5af85 100644
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -132,7 +132,7 @@ static char global_master_id_str[10];
class CTRexExtendedDriverBase {
public:
-
+
/* by default NIC driver adds CRC */
virtual bool has_crc_added() {
return true;
@@ -7341,6 +7341,10 @@ TRexPortAttr *TrexDpdkPlatformApi::getPortAttrObj(uint8_t port_id) const {
int DpdkTRexPortAttr::set_rx_filter_mode(rx_filter_mode_e rx_filter_mode) {
+ if (rx_filter_mode == m_rx_filter_mode) {
+ return (0);
+ }
+
CPhyEthIF *_if = &g_trex.m_ports[m_port_id];
bool recv_all = (rx_filter_mode == RX_FILTER_MODE_ALL);
int rc = CTRexExtendedDriverDb::Ins()->get_drv()->set_rcv_all(_if, recv_all);
diff --git a/src/rpc-server/commands/trex_rpc_cmd_general.cpp b/src/rpc-server/commands/trex_rpc_cmd_general.cpp
index 107b7b4b..3d541fe5 100644
--- a/src/rpc-server/commands/trex_rpc_cmd_general.cpp
+++ b/src/rpc-server/commands/trex_rpc_cmd_general.cpp
@@ -820,6 +820,8 @@ TrexRpcCmdGetRxQueuePkts::_run(const Json::Value &params, Json::Value &result) {
const RXPacketBuffer *pkt_buffer = port->get_rx_queue_pkts();
if (pkt_buffer) {
result["result"]["pkts"] = pkt_buffer->to_json();
+ delete pkt_buffer;
+
} else {
result["result"]["pkts"] = Json::arrayValue;
}