[CRIU] [PATCH 0/2] tcp: dump and restore window parameters

Andrey Vagin avagin at openvz.org
Tue Jul 12 19:16:55 PDT 2016


From: Andrew Vagin <avagin at virtuozzo.com>

We found that sometimes a restored tcp socket doesn't work.

A reason of this bug is incorrect window parameters and in this case
tcp_acceptable_seq() returns tcp_wnd_end(tp) instead of tp->snd_nxt. The
other side drops packets with this seq, because seq is less than
tp->rcv_nxt ( tcp_sequence() ).

We need to restore window parameters to avoid such side effects.

https://github.com/xemul/criu/issues/168
Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>

Andrew Vagin (2):
  kerndat: check the TCP_REPAIR_WINDOW option
  tcp: dump and restore window parameters

 criu/Makefile.config      |   2 +-
 criu/cr-check.c           |  17 ++++++++
 criu/include/kerndat.h    |   3 ++
 criu/kerndat.c            |   4 ++
 criu/sk-tcp.c             | 105 ++++++++++++++++++++++++++++++++++++++++++++++
 images/tcp-stream.proto   |   6 +++
 scripts/feature-tests.mak |  14 +++++++
 7 files changed, 150 insertions(+), 1 deletion(-)

-- 
2.7.4



More information about the CRIU mailing list