double duration = parse_double(params, "duration", result);
bool force = parse_bool(params, "force", result);
- uint64_t core_mask = parse_uint64(params, "core_mask", result);
+ uint64_t core_mask = parse_uint64(params, "core_mask", result, TrexDPCoreMask::MASK_ALL);
if (!TrexDPCoreMask::is_valid_mask(port->get_dp_core_count(), core_mask)) {
generate_parse_err(result, "invalid core mask provided");
-TREX_RPC_CMD_DEFINE(TrexRpcCmdStartTraffic, "start_traffic", 5, true, APIClass::API_CLASS_TYPE_CORE);
+TREX_RPC_CMD_DEFINE(TrexRpcCmdStartTraffic, "start_traffic", 4, true, APIClass::API_CLASS_TYPE_CORE);
TREX_RPC_CMD_DEFINE(TrexRpcCmdStopTraffic, "stop_traffic", 1, true, APIClass::API_CLASS_TYPE_CORE);
TREX_RPC_CMD_DEFINE(TrexRpcCmdRemoveRXFilters, "remove_rx_filters", 1, true, APIClass::API_CLASS_TYPE_CORE);
TREX_RPC_CMD_DEFINE(TrexRpcCmdPauseTraffic, "pause_traffic", 1, true, APIClass::API_CLASS_TYPE_CORE);
void
TrexRpcCommand::check_param_count(const Json::Value ¶ms, int expected, Json::Value &result) {
- if (params.size() != expected) {
+ if (expected == TrexRpcCommand::PARAM_COUNT_IGNORE) {
+ return;
+ }
+
+ if (params.size() < expected) {
std::stringstream ss;
- ss << "method expects '" << expected << "' parameter(s), '" << params.size() << "' provided";
+ ss << "method expects at least '" << expected << "' parameter(s), '" << params.size() << "' provided";
generate_parse_err(result, ss.str());
}
}
virtual ~TrexRpcCommand() {}
protected:
+ static const int PARAM_COUNT_IGNORE = -1;
/**
* different types of fields
public:
- TrexDPCoreMask(uint8_t dp_core_count, uint64_t dp_core_mask = UINT64_MAX) {
+ TrexDPCoreMask(uint8_t dp_core_count, uint64_t dp_core_mask = MASK_ALL) {
assert(is_valid_mask(dp_core_count, dp_core_mask));
m_dp_core_count = dp_core_count;