Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
reassembly: get number of workers instead of threads (VPP-1435)
[vpp.git]
/
src
/
vnet
/
ip
/
ip4_reassembly.c
diff --git
a/src/vnet/ip/ip4_reassembly.c
b/src/vnet/ip/ip4_reassembly.c
index
e907d84
..
87fb764
100644
(file)
--- a/
src/vnet/ip/ip4_reassembly.c
+++ b/
src/vnet/ip/ip4_reassembly.c
@@
-653,6
+653,7
@@
ip4_reass_update (vlib_main_t * vm, vlib_node_runtime_t * node,
ip4_header_t *fip = vlib_buffer_get_current (fb);
ASSERT (fb->current_length >= sizeof (*fip));
vnet_buffer_opaque_t *fvnb = vnet_buffer (fb);
ip4_header_t *fip = vlib_buffer_get_current (fb);
ASSERT (fb->current_length >= sizeof (*fip));
vnet_buffer_opaque_t *fvnb = vnet_buffer (fb);
+ reass->next_index = fvnb->ip.reass.next_index; // store next_index before it's overwritten
u32 fragment_first = fvnb->ip.reass.fragment_first =
ip4_get_fragment_offset_bytes (fip);
u32 fragment_length =
u32 fragment_first = fvnb->ip.reass.fragment_first =
ip4_get_fragment_offset_bytes (fip);
u32 fragment_length =
@@
-662,7
+663,6
@@
ip4_reass_update (vlib_main_t * vm, vlib_node_runtime_t * node,
int more_fragments = ip4_get_fragment_more (fip);
u32 candidate_range_bi = reass->first_bi;
u32 prev_range_bi = ~0;
int more_fragments = ip4_get_fragment_more (fip);
u32 candidate_range_bi = reass->first_bi;
u32 prev_range_bi = ~0;
- reass->next_index = fvnb->ip.reass.next_index; // store next_index before it's overwritten
fvnb->ip.reass.range_first = fragment_first;
fvnb->ip.reass.range_last = fragment_last;
fvnb->ip.reass.next_range_bi = ~0;
fvnb->ip.reass.range_first = fragment_first;
fvnb->ip.reass.range_last = fragment_last;
fvnb->ip.reass.next_range_bi = ~0;
@@
-961,8
+961,8
@@
ip4_reassembly_inline (vlib_main_t * vm,
n_left_to_next -= 1;
if (is_feature && IP4_ERROR_NONE == error0)
{
n_left_to_next -= 1;
if (is_feature && IP4_ERROR_NONE == error0)
{
- vnet_feature_next (vnet_buffer (b0)->sw_if_index[VLIB_RX],
-
&next0, b0);
+ b0 = vlib_get_buffer (vm, bi0);
+
vnet_feature_next (
&next0, b0);
}
vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next,
n_left_to_next, bi0, next0);
}
vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next,
n_left_to_next, bi0, next0);
@@
-1153,7
+1153,7
@@
ip4_reass_init_function (vlib_main_t * vm)
rm->vlib_main = vm;
rm->vnet_main = vnet_get_main ();
rm->vlib_main = vm;
rm->vnet_main = vnet_get_main ();
- vec_validate (rm->per_thread_data, vlib_num_workers ()
+ 1
);
+ vec_validate (rm->per_thread_data, vlib_num_workers ());
ip4_reass_per_thread_t *rt;
vec_foreach (rt, rm->per_thread_data)
{
ip4_reass_per_thread_t *rt;
vec_foreach (rt, rm->per_thread_data)
{
@@
-1214,7
+1214,7
@@
ip4_reass_walk_expired (vlib_main_t * vm,
uword thread_index = 0;
int index;
uword thread_index = 0;
int index;
- const uword nthreads =
os_get_nthreads ()
;
+ const uword nthreads =
vlib_num_workers () + 1
;
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
ip4_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
ip4_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];
@@
-1287,7
+1287,7
@@
ip4_reass_walk_expired (vlib_main_t * vm,
n_left_to_next -= 1;
IP4_REASS_DEBUG_BUFFER (bi, enqueue_drop_timeout_walk);
}
n_left_to_next -= 1;
IP4_REASS_DEBUG_BUFFER (bi, enqueue_drop_timeout_walk);
}
- f->flags |= (trace_frame * VLIB_FRAME_TRACE);
+ f->f
rame_f
lags |= (trace_frame * VLIB_FRAME_TRACE);
vlib_put_frame_to_node (vm, rm->ip4_drop_idx, f);
}
vlib_put_frame_to_node (vm, rm->ip4_drop_idx, f);
}
@@
-1381,7
+1381,7
@@
show_ip4_reass (vlib_main_t * vm, unformat_input_t * input,
u64 sum_buffers_n = 0;
ip4_reass_t *reass;
uword thread_index;
u64 sum_buffers_n = 0;
ip4_reass_t *reass;
uword thread_index;
- const uword nthreads =
os_get_nthreads ()
;
+ const uword nthreads =
vlib_num_workers () + 1
;
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
ip4_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
ip4_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];