summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWei CHEN <weichen@astri.org>2019-06-26 11:01:15 +0800
committerDave Barach <openvpp@barachs.net>2019-07-15 11:09:53 +0000
commitf974794e2e47ad2dfa244c2c2408d503e9120e2b (patch)
tree45705fd0a0abd1bcf0dc3a8082914c3a050b74de /src
parent692b9498ee5511a17bfbc3a2c6e87339aa3b8df8 (diff)
interface: fix issue that pcap rx/tx trace not available when there are worker threads
Type: fix Change-Id: Ie9a3a78b45b53344a0a5d7e2027c0e0354a49ebe Signed-off-by: Wei CHEN <weichen@astri.org>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/vnet/ethernet/node.c9
-rw-r--r--src/vnet/interface_output.c9
2 files changed, 10 insertions, 8 deletions
diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c
index eabcf42812c..4640540ac2b 100755
--- a/src/vnet/ethernet/node.c
+++ b/src/vnet/ethernet/node.c
@@ -990,7 +990,7 @@ ethernet_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node,
}
/* rx pcap capture if enabled */
- if (PREDICT_FALSE (vm->pcap[VLIB_RX].pcap_enable))
+ if (PREDICT_FALSE (vlib_global_main.pcap[VLIB_RX].pcap_enable))
{
u32 bi0;
@@ -1003,11 +1003,12 @@ ethernet_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node,
from++;
b0 = vlib_get_buffer (vm, bi0);
- if (vm->pcap[VLIB_RX].pcap_sw_if_index == 0 ||
- vm->pcap[VLIB_RX].pcap_sw_if_index
+ if (vlib_global_main.pcap[VLIB_RX].pcap_sw_if_index == 0 ||
+ vlib_global_main.pcap[VLIB_RX].pcap_sw_if_index
== vnet_buffer (b0)->sw_if_index[VLIB_RX])
{
- pcap_add_buffer (&vm->pcap[VLIB_RX].pcap_main, vm, bi0, 512);
+ pcap_add_buffer (&vlib_global_main.pcap[VLIB_RX].pcap_main, vm,
+ bi0, 512);
}
n_left--;
}
diff --git a/src/vnet/interface_output.c b/src/vnet/interface_output.c
index 2a41271852a..1a9f5dbab8f 100644
--- a/src/vnet/interface_output.c
+++ b/src/vnet/interface_output.c
@@ -800,7 +800,7 @@ static_always_inline void vnet_interface_pcap_tx_trace
u32 n_left_from, *from;
u32 sw_if_index;
- if (PREDICT_TRUE (vm->pcap[VLIB_TX].pcap_enable == 0))
+ if (PREDICT_TRUE (vlib_global_main.pcap[VLIB_TX].pcap_enable == 0))
return;
if (sw_if_index_from_buffer == 0)
@@ -822,9 +822,10 @@ static_always_inline void vnet_interface_pcap_tx_trace
if (sw_if_index_from_buffer)
sw_if_index = vnet_buffer (b0)->sw_if_index[VLIB_TX];
- if (vm->pcap[VLIB_TX].pcap_sw_if_index == 0 ||
- vm->pcap[VLIB_TX].pcap_sw_if_index == sw_if_index)
- pcap_add_buffer (&vm->pcap[VLIB_TX].pcap_main, vm, bi0, 512);
+ if (vlib_global_main.pcap[VLIB_TX].pcap_sw_if_index == 0 ||
+ vlib_global_main.pcap[VLIB_TX].pcap_sw_if_index == sw_if_index)
+ pcap_add_buffer (&vlib_global_main.pcap[VLIB_TX].pcap_main, vm, bi0,
+ 512);
from++;
n_left_from--;
}