Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
session: move connects to first worker
[vpp.git]
/
src
/
vnet
/
tcp
/
tcp_timer.h
diff --git
a/src/vnet/tcp/tcp_timer.h
b/src/vnet/tcp/tcp_timer.h
index
7f7dbf1
..
c0907ca
100644
(file)
--- a/
src/vnet/tcp/tcp_timer.h
+++ b/
src/vnet/tcp/tcp_timer.h
@@
-17,11
+17,18
@@
#include <vnet/tcp/tcp_types.h>
#include <vnet/tcp/tcp_types.h>
+static inline u8
+tcp_timer_thread_is_valid (tcp_connection_t *tc)
+{
+ return ((tc->c_thread_index == vlib_get_thread_index ()) ||
+ vlib_thread_is_main_w_barrier ());
+}
+
always_inline void
always_inline void
-tcp_timer_set (tcp_timer_wheel_t *
tw, tcp_connection_t *
tc, u8 timer_id,
+tcp_timer_set (tcp_timer_wheel_t *
tw, tcp_connection_t *
tc, u8 timer_id,
u32 interval)
{
u32 interval)
{
- ASSERT (tc
->c_thread_index == vlib_get_thread_index (
));
+ ASSERT (tc
p_timer_thread_is_valid (tc
));
ASSERT (tc->timers[timer_id] == TCP_TIMER_HANDLE_INVALID);
tc->timers[timer_id] = tw_timer_start_tcp_twsl (tw, tc->c_c_index,
timer_id, interval);
ASSERT (tc->timers[timer_id] == TCP_TIMER_HANDLE_INVALID);
tc->timers[timer_id] = tw_timer_start_tcp_twsl (tw, tc->c_c_index,
timer_id, interval);
@@
-30,7
+37,7
@@
tcp_timer_set (tcp_timer_wheel_t * tw, tcp_connection_t * tc, u8 timer_id,
always_inline void
tcp_timer_reset (tcp_timer_wheel_t * tw, tcp_connection_t * tc, u8 timer_id)
{
always_inline void
tcp_timer_reset (tcp_timer_wheel_t * tw, tcp_connection_t * tc, u8 timer_id)
{
- ASSERT (tc
->c_thread_index == vlib_get_thread_index (
));
+ ASSERT (tc
p_timer_thread_is_valid (tc
));
tc->pending_timers &= ~(1 << timer_id);
if (tc->timers[timer_id] == TCP_TIMER_HANDLE_INVALID)
return;
tc->pending_timers &= ~(1 << timer_id);
if (tc->timers[timer_id] == TCP_TIMER_HANDLE_INVALID)
return;
@@
-43,7
+50,7
@@
always_inline void
tcp_timer_update (tcp_timer_wheel_t * tw, tcp_connection_t * tc, u8 timer_id,
u32 interval)
{
tcp_timer_update (tcp_timer_wheel_t * tw, tcp_connection_t * tc, u8 timer_id,
u32 interval)
{
- ASSERT (tc
->c_thread_index == vlib_get_thread_index (
));
+ ASSERT (tc
p_timer_thread_is_valid (tc
));
if (tc->timers[timer_id] != TCP_TIMER_HANDLE_INVALID)
tw_timer_update_tcp_twsl (tw, tc->timers[timer_id], interval);
else
if (tc->timers[timer_id] != TCP_TIMER_HANDLE_INVALID)
tw_timer_update_tcp_twsl (tw, tc->timers[timer_id], interval);
else