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
/
ip6_reassembly.c
diff --git
a/src/vnet/ip/ip6_reassembly.c
b/src/vnet/ip/ip6_reassembly.c
index
ff62b01
..
e62f9e5
100644
(file)
--- a/
src/vnet/ip/ip6_reassembly.c
+++ b/
src/vnet/ip/ip6_reassembly.c
@@
-663,6
+663,7
@@
ip6_reass_update (vlib_main_t * vm, vlib_node_runtime_t * node,
int consumed = 0;
vlib_buffer_t *fb = vlib_get_buffer (vm, *bi0);
vnet_buffer_opaque_t *fvnb = vnet_buffer (fb);
int consumed = 0;
vlib_buffer_t *fb = vlib_get_buffer (vm, *bi0);
vnet_buffer_opaque_t *fvnb = vnet_buffer (fb);
+ reass->next_index = fvnb->ip.reass.next_index; // store next_index before it's overwritten
fvnb->ip.reass.ip6_frag_hdr_offset =
(u8 *) frag_hdr - (u8 *) vlib_buffer_get_current (fb);
ip6_header_t *fip = vlib_buffer_get_current (fb);
fvnb->ip.reass.ip6_frag_hdr_offset =
(u8 *) frag_hdr - (u8 *) vlib_buffer_get_current (fb);
ip6_header_t *fip = vlib_buffer_get_current (fb);
@@
-989,8
+990,8
@@
ip6_reassembly_inline (vlib_main_t * vm,
n_left_to_next -= 1;
if (is_feature && IP6_ERROR_NONE == error0)
{
n_left_to_next -= 1;
if (is_feature && IP6_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);
@@
-1192,7
+1193,7
@@
ip6_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 ());
ip6_reass_per_thread_t *rt;
vec_foreach (rt, rm->per_thread_data)
{
ip6_reass_per_thread_t *rt;
vec_foreach (rt, rm->per_thread_data)
{
@@
-1261,7
+1262,7
@@
ip6_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
;
u32 *vec_icmp_bi = NULL;
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
u32 *vec_icmp_bi = NULL;
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
@@
-1341,7
+1342,7
@@
ip6_reass_walk_expired (vlib_main_t * vm,
to_next += 1;
n_left_to_next -= 1;
}
to_next += 1;
n_left_to_next -= 1;
}
- f->flags |= (trace_frame * VLIB_FRAME_TRACE);
+ f->f
rame_f
lags |= (trace_frame * VLIB_FRAME_TRACE);
vlib_put_frame_to_node (vm, rm->ip6_drop_idx, f);
}
vlib_put_frame_to_node (vm, rm->ip6_drop_idx, f);
}
@@
-1375,7
+1376,7
@@
ip6_reass_walk_expired (vlib_main_t * vm,
to_next += 1;
n_left_to_next -= 1;
}
to_next += 1;
n_left_to_next -= 1;
}
- f->flags |= (trace_frame * VLIB_FRAME_TRACE);
+ f->f
rame_f
lags |= (trace_frame * VLIB_FRAME_TRACE);
vlib_put_frame_to_node (vm, rm->ip6_icmp_error_idx, f);
}
vlib_put_frame_to_node (vm, rm->ip6_icmp_error_idx, f);
}
@@
-1471,7
+1472,7
@@
show_ip6_reass (vlib_main_t * vm, unformat_input_t * input,
u64 sum_buffers_n = 0;
ip6_reass_t *reass;
uword thread_index;
u64 sum_buffers_n = 0;
ip6_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)
{
ip6_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];
for (thread_index = 0; thread_index < nthreads; ++thread_index)
{
ip6_reass_per_thread_t *rt = &rm->per_thread_data[thread_index];