summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xVERSION2
-rwxr-xr-xscripts/automation/trex_control_plane/common/trex_streams.py13
-rwxr-xr-xsrc/main_dpdk.cpp9
-rw-r--r--src/rpc-server/commands/trex_rpc_cmd_stream.cpp17
-rw-r--r--src/rpc-server/commands/trex_rpc_cmds.h2
-rw-r--r--src/stateless/dp/trex_stateless_dp_core.cpp2
6 files changed, 30 insertions, 15 deletions
diff --git a/VERSION b/VERSION
index 5a80abed..ab5cfc9e 100755
--- a/VERSION
+++ b/VERSION
@@ -1,4 +1,4 @@
-v1.84
+v1.84-rand-pkt
diff --git a/scripts/automation/trex_control_plane/common/trex_streams.py b/scripts/automation/trex_control_plane/common/trex_streams.py
index 86eee1f4..007e2464 100755
--- a/scripts/automation/trex_control_plane/common/trex_streams.py
+++ b/scripts/automation/trex_control_plane/common/trex_streams.py
@@ -271,15 +271,12 @@ class CStreamsDB(object):
stream_list = CStreamList()
loaded_obj = stream_list.load_yaml(filename)
- try:
- compiled_streams = stream_list.compile_streams()
- rc = self.load_streams(stream_pack_name,
- LoadedStreamList(loaded_obj,
- [StreamPack(v.stream_id, v.stream.dump())
- for k, v in compiled_streams.items()]))
+ compiled_streams = stream_list.compile_streams()
+ rc = self.load_streams(stream_pack_name,
+ LoadedStreamList(loaded_obj,
+ [StreamPack(v.stream_id, v.stream.dump())
+ for k, v in compiled_streams.items()]))
- except Exception as e:
- return None
return self.get_stream_pack(stream_pack_name)
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index 93161074..acee54bf 100755
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -2076,10 +2076,12 @@ int CCoreEthIF::send_pkt(CCorePerPort * lp_port,
CVirtualIFPerSideStats * lp_stats
){
+ //printf(" %lu \n",(ulong)rte_pktmbuf_pkt_len(m));
//rte_pktmbuf_dump(stdout,m, rte_pktmbuf_pkt_len(m));
- lp_stats->m_tx_pkt +=1;
- lp_stats->m_tx_bytes += (rte_pktmbuf_pkt_len(m)+4);
+ /* too expensive remove this for now */
+ //lp_stats->m_tx_pkt +=1;
+ //lp_stats->m_tx_bytes += (rte_pktmbuf_pkt_len(m)+4);
uint16_t len = lp_port->m_len;
lp_port->m_table[len]=m;
@@ -2144,6 +2146,7 @@ int CCoreEthIFStateless::send_node(CGenNode * no){
m=node_sl->alloc_node_with_vm();
assert(m);
}
+
send_pkt(lp_port,m,lp_stats);
return (0);
@@ -4737,7 +4740,7 @@ int main_test(int argc , char * argv[]){
/* TBD_FDIR */
-#if 1
+#if 0
printf(" test_send \n");
g_trex.test_send();
exit(1);
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");
diff --git a/src/rpc-server/commands/trex_rpc_cmds.h b/src/rpc-server/commands/trex_rpc_cmds.h
index f4651d7b..b1750053 100644
--- a/src/rpc-server/commands/trex_rpc_cmds.h
+++ b/src/rpc-server/commands/trex_rpc_cmds.h
@@ -96,6 +96,8 @@ void parse_vm(const Json::Value &vm, TrexStream *stream, Json::Value &result);
void parse_vm_instr_checksum(const Json::Value &inst, TrexStream *stream, Json::Value &result);
void parse_vm_instr_flow_var(const Json::Value &inst, TrexStream *stream, Json::Value &result);
void parse_vm_instr_tuple_flow_var(const Json::Value &inst, TrexStream *stream, Json::Value &result);
+void parse_vm_instr_trim_pkt_size(const Json::Value &inst, TrexStream *stream, Json::Value &result);
+
void parse_vm_instr_write_flow_var(const Json::Value &inst, TrexStream *stream, Json::Value &result);
);
diff --git a/src/stateless/dp/trex_stateless_dp_core.cpp b/src/stateless/dp/trex_stateless_dp_core.cpp
index 6e936fc8..4e814d4c 100644
--- a/src/stateless/dp/trex_stateless_dp_core.cpp
+++ b/src/stateless/dp/trex_stateless_dp_core.cpp
@@ -171,7 +171,7 @@ rte_mbuf_t * CGenNodeStateless::alloc_node_with_vm(){
rte_mbuf_t * mi= CGlobalInfo::pktmbuf_alloc_small(get_socket_id());
assert(mi);
rte_pktmbuf_attach(mi,m_const);
- utl_rte_pktmbuf_add_after(m,mi);
+ utl_rte_pktmbuf_add_after2(m,mi);
if ( pkt_new_size < m->pkt_len) {
/* need to trim it */