summaryrefslogtreecommitdiffstats
path: root/src/rpc-server/commands/trex_rpc_cmd_stream.cpp
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2015-12-29 00:30:09 +0200
committerHanoh Haim <hhaim@cisco.com>2015-12-29 00:30:09 +0200
commit9e16960d1502524ae00df83e3d1c05ddbb2487c7 (patch)
tree8085fa93b41e5c943763fe7e1035672c9e11a361 /src/rpc-server/commands/trex_rpc_cmd_stream.cpp
parentfbcdbcdf05f495a02e62ee8bb6146d266147aefa (diff)
trim packet size command works
Diffstat (limited to 'src/rpc-server/commands/trex_rpc_cmd_stream.cpp')
-rw-r--r--src/rpc-server/commands/trex_rpc_cmd_stream.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp
index 51db0b20..95cd895b 100644
--- a/src/rpc-server/commands/trex_rpc_cmd_stream.cpp
+++ b/src/rpc-server/commands/trex_rpc_cmd_stream.cpp
@@ -175,6 +175,16 @@ TrexRpcCmdAddStream::parse_vm_instr_checksum(const Json::Value &inst, TrexStream
stream->m_vm.add_instruction(new StreamVmInstructionFixChecksumIpv4(pkt_offset));
}
+
+void
+TrexRpcCmdAddStream::parse_vm_instr_trim_pkt_size(const Json::Value &inst, TrexStream *stream, Json::Value &result){
+
+ std::string flow_var_name = parse_string(inst, "name", result);
+
+ stream->m_vm.add_instruction(new StreamVmInstructionChangePktSize(flow_var_name));
+}
+
+
void
TrexRpcCmdAddStream::parse_vm_instr_tuple_flow_var(const Json::Value &inst, TrexStream *stream, Json::Value &result){
@@ -255,7 +265,7 @@ TrexRpcCmdAddStream::parse_vm(const Json::Value &vm, TrexStream *stream, Json::V
for (int i = 0; i < instructions.size(); i++) {
const Json::Value & inst = parse_object(instructions, i, result);
- auto vm_types = {"fix_checksum_ipv4", "flow_var", "write_flow_var","tuple_flow_var"};
+ auto vm_types = {"fix_checksum_ipv4", "flow_var", "write_flow_var","tuple_flow_var","trim_pkt_size"};
std::string vm_type = parse_choice(inst, "type", vm_types, result);
// checksum instruction
@@ -269,7 +279,10 @@ TrexRpcCmdAddStream::parse_vm(const Json::Value &vm, TrexStream *stream, Json::V
parse_vm_instr_write_flow_var(inst, stream, result);
} else if (vm_type == "tuple_flow_var") {
- parse_vm_instr_tuple_flow_var(inst, stream, result);
+ parse_vm_instr_tuple_flow_var(inst, stream, result);
+
+ } else if (vm_type == "trim_pkt_size") {
+ parse_vm_instr_trim_pkt_size(inst, stream, result);
} else {
/* internal error */
throw TrexRpcException("internal error");