diff options
author | 2016-02-24 16:09:23 +0200 | |
---|---|---|
committer | 2016-02-24 16:09:23 +0200 | |
commit | e5ebdb928a0cdd2f32c319df0a9094321e3dad35 (patch) | |
tree | d37278c0e051fc37fe2c3d436b5bfeb356f584ed /src | |
parent | 4ae35508f6b448162aa4707264895b4dc42dd0de (diff) | |
parent | 235a14fce2503d2592f9fe58bd8611e97f99f7df (diff) |
Merge random_seed per stream
Diffstat (limited to 'src')
-rw-r--r-- | src/flow_stat.cpp | 6 | ||||
-rw-r--r-- | src/rpc-server/commands/trex_rpc_cmd_general.cpp | 4 | ||||
-rw-r--r-- | src/rpc-server/commands/trex_rpc_cmd_stream.cpp | 15 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.cpp | 3 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.h | 14 |
5 files changed, 36 insertions, 6 deletions
diff --git a/src/flow_stat.cpp b/src/flow_stat.cpp index 298bcb52..e97586f7 100644 --- a/src/flow_stat.cpp +++ b/src/flow_stat.cpp @@ -587,7 +587,11 @@ bool CFlowStatRuleMgr::dump_json(std::string & json) { // read hw counters, and update data_section["timestamp"] = Json::Value::UInt64(os_get_hr_tick_64()); for (uint8_t port = 0; port < m_num_ports; port++) { - m_api->get_rx_stats(port, stats, -1, false); + int rc = m_api->get_rx_stats(port, stats, -1, false); + if (rc == -1) { + continue; + } + for (int i = 0; i < TREX_FDIR_STAT_SIZE; i++) { if (stats[i] != 0) { m_user_id_map.find_user_id(m_hw_id_map.get_user_id(i))->set_rx_counter(port, stats[i]); diff --git a/src/rpc-server/commands/trex_rpc_cmd_general.cpp b/src/rpc-server/commands/trex_rpc_cmd_general.cpp index 6ac88352..9b3b59a7 100644 --- a/src/rpc-server/commands/trex_rpc_cmd_general.cpp +++ b/src/rpc-server/commands/trex_rpc_cmd_general.cpp @@ -178,6 +178,10 @@ TrexRpcCmdGetSysInfo::_run(const Json::Value ¶ms, Json::Value &result) { section["ports"][i]["driver"] = driver; + section["ports"][i]["rx"]["caps"] = port->get_rx_caps(); + section["ports"][i]["rx"]["counters"] = port->get_rx_count_num(); + + switch (speed) { case TrexPlatformApi::SPEED_1G: section["ports"][i]["speed"] = 1; diff --git a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp index 5e23b813..cf11f8c6 100644 --- a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp +++ b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp @@ -105,18 +105,23 @@ TrexRpcCmdAddStream::_run(const Json::Value ¶ms, Json::Value &result) { stream->m_rx_check.m_enabled = parse_bool(rx, "enabled", result); + TrexStatelessPort *port = get_stateless_obj()->get_port_by_id(stream->m_port_id); + /* if it is enabled - we need more fields */ if (stream->m_rx_check.m_enabled) { - stream->m_rx_check.m_user_id = parse_int(rx, "stream_id", result); - stream->m_rx_check.m_seq_enabled = parse_bool(rx, "seq_enabled", result); - stream->m_rx_check.m_latency = parse_bool(rx, "latency_enabled", result); + + if (port->get_rx_caps() == 0) { + generate_parse_err(result, "RX stats is not supported on this interface"); + } + + stream->m_rx_check.m_user_id = parse_int(rx, "stream_id", result); + stream->m_rx_check.m_seq_enabled = parse_bool(rx, "seq_enabled", result); + stream->m_rx_check.m_latency = parse_bool(rx, "latency_enabled", result); } /* make sure this is a valid stream to add */ validate_stream(stream, result); - TrexStatelessPort *port = get_stateless_obj()->get_port_by_id(stream->m_port_id); - try { port->add_stream(stream.get()); stream.release(); diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp index 88c38112..d2463925 100644 --- a/src/stateless/cp/trex_stateless_port.cpp +++ b/src/stateless/cp/trex_stateless_port.cpp @@ -61,6 +61,9 @@ TrexStatelessPort::TrexStatelessPort(uint8_t port_id, const TrexPlatformApi *api /* get the platform specific data */ api->get_interface_info(port_id, m_driver_name, m_speed, m_has_crc); + /* get RX caps */ + api->get_interface_stat_info(port_id, m_rx_count_num, m_rx_caps); + /* get the DP cores belonging to this port */ api->port_id_to_cores(m_port_id, core_pair_list); diff --git a/src/stateless/cp/trex_stateless_port.h b/src/stateless/cp/trex_stateless_port.h index 434181c4..a956c421 100644 --- a/src/stateless/cp/trex_stateless_port.h +++ b/src/stateless/cp/trex_stateless_port.h @@ -284,6 +284,18 @@ public: uint64_t get_port_speed_bps() const; /** + * return RX caps + * + */ + int get_rx_caps() const { + return m_rx_caps; + } + + uint16_t get_rx_count_num() const { + return m_rx_count_num; + } + + /** * return true if port adds CRC to a packet (not occurs for * VNICs) * @@ -376,6 +388,8 @@ private: port_state_e m_port_state; std::string m_driver_name; bool m_has_crc; + uint16_t m_rx_count_num; + uint16_t m_rx_caps; TrexPlatformApi::driver_speed_e m_speed; |