#include <vector>
#include <string>
#include <string.h>
+#include "trex_defs.h"
/**
* Global stats
virtual void set_promiscuous(uint8_t port_id, bool enabled) const = 0;
virtual bool get_promiscuous(uint8_t port_id) const = 0;
virtual void flush_dp_messages() const = 0;
-
+ virtual int get_active_pgids(flow_stat_active_t &result) const = 0;
virtual ~TrexPlatformApi() {}
};
void set_promiscuous(uint8_t port_id, bool enabled) const;
bool get_promiscuous(uint8_t port_id) const;
void flush_dp_messages() const;
+ int get_active_pgids(flow_stat_active_t &result) const;
};
void flush_dp_messages() const {
}
+ int get_active_pgids(flow_stat_active_t &result) {/*??? implement*/ return 0;};
private:
int m_dp_core_count;
/**
* ping command
*/
-trex_rpc_cmd_rc_e
+trex_rpc_cmd_rc_e
TrexRpcCmdPing::_run(const Json::Value ¶ms, Json::Value &result) {
result["result"] = Json::objectValue;
/**
* query command
*/
-trex_rpc_cmd_rc_e
+trex_rpc_cmd_rc_e
TrexRpcCmdGetCmds::_run(const Json::Value ¶ms, Json::Value &result) {
vector<string> cmds;
/**
* get version
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcCmdGetVersion::_run(const Json::Value ¶ms, Json::Value &result) {
return (TREX_RPC_CMD_OK);
}
+trex_rpc_cmd_rc_e
+TrexRpcCmdGetActivePGIds::_run(const Json::Value ¶ms, Json::Value &result) {
+ flow_stat_active_t active_flow_stat;
+ flow_stat_active_it_t it;
+ int i = 0;
+
+ Json::Value §ion = result["result"];
+ section["ids"] = Json::arrayValue;
+
+ if (get_stateless_obj()->get_platform_api()->get_active_pgids(active_flow_stat) < 0)
+ return TREX_RPC_CMD_INTERNAL_ERR;
+
+ for (it = active_flow_stat.begin(); it != active_flow_stat.end(); it++) {
+ section["ids"][i++] = *it;
+ }
+
+ return (TREX_RPC_CMD_OK);
+}
+
/**
* get the CPU model
- *
+ *
*/
-std::string
+std::string
TrexRpcCmdGetSysInfo::get_cpu_model() {
static const string cpu_prefix = "model name";
/**
* get system info
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcCmdGetSysInfo::_run(const Json::Value ¶ms, Json::Value &result) {
section["core_type"] = get_cpu_model();
/* ports */
-
+
section["port_count"] = main->get_port_count();
string dst_macaddr;
string pci_addr;
int numa;
-
+
TrexStatelessPort *port = main->get_port_by_id(i);
port->get_properties(driver, speed);
port->get_macaddr(hw_macaddr, src_macaddr, dst_macaddr);
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:
/**
* set port commands
- *
+ *
* @author imarom (24-Feb-16)
- *
- * @param params
- * @param result
- *
- * @return trex_rpc_cmd_rc_e
+ *
+ * @param params
+ * @param result
+ *
+ * @return trex_rpc_cmd_rc_e
*/
trex_rpc_cmd_rc_e
TrexRpcCmdSetPortAttr::_run(const Json::Value ¶ms, Json::Value &result) {
if (name == "promiscuous") {
bool enabled = parse_bool(attr[name], "enabled", result);
port->set_promiscuous(enabled);
- }
+ }
}
-
+
result["result"] = Json::objectValue;
return (TREX_RPC_CMD_OK);
}
/**
* returns the current owner of the device
- *
+ *
* @author imarom (08-Sep-15)
- *
- * @param params
- * @param result
- *
- * @return trex_rpc_cmd_rc_e
+ *
+ * @param params
+ * @param result
+ *
+ * @return trex_rpc_cmd_rc_e
*/
trex_rpc_cmd_rc_e
TrexRpcCmdGetOwner::_run(const Json::Value ¶ms, Json::Value &result) {
/**
* acquire device
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcCmdAcquire::_run(const Json::Value ¶ms, Json::Value &result) {
/**
* release device
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcCmdRelease::_run(const Json::Value ¶ms, Json::Value &result) {
/**
* get port stats
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcCmdGetPortStats::_run(const Json::Value ¶ms, Json::Value &result) {
/**
* fetch the port status
- *
+ *
* @author imarom (09-Dec-15)
- *
- * @param params
- * @param result
- *
- * @return trex_rpc_cmd_rc_e
+ *
+ * @param params
+ * @param result
+ *
+ * @return trex_rpc_cmd_rc_e
*/
trex_rpc_cmd_rc_e
TrexRpcCmdGetPortStatus::_run(const Json::Value ¶ms, Json::Value &result) {
/**
* publish async data now (fast flush)
- *
+ *
*/
trex_rpc_cmd_rc_e
TrexRpcPublishNow::_run(const Json::Value ¶ms, Json::Value &result) {
TREX_RPC_CMD_DEFINE(TrexRpcPublishNow, "publish_now", 1, false);
TREX_RPC_CMD_DEFINE(TrexRpcCmdGetCmds, "get_supported_cmds", 0, false);
TREX_RPC_CMD_DEFINE(TrexRpcCmdGetVersion, "get_version", 0, false);
+TREX_RPC_CMD_DEFINE(TrexRpcCmdGetActivePGIds, "get_active_pgids",0, false);
TREX_RPC_CMD_DEFINE_EXTENDED(TrexRpcCmdGetSysInfo, "get_system_info", 0, false,