mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-25 03:18:36 +00:00
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@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
28 lines
749 B
Protocol Buffer
28 lines
749 B
Protocol Buffer
syntax = "proto2";
|
|
|
|
import "opts.proto";
|
|
|
|
message tcp_stream_entry {
|
|
required uint32 inq_len = 1;
|
|
required uint32 inq_seq = 2;
|
|
required uint32 outq_len = 3; /* unsent and sent data in the send queue*/
|
|
required uint32 outq_seq = 4;
|
|
|
|
required uint32 opt_mask = 5 [(criu).hex = true]; /* TCPI_OPT_ bits */
|
|
required uint32 snd_wscale = 6;
|
|
required uint32 mss_clamp = 7;
|
|
optional uint32 rcv_wscale = 8;
|
|
optional uint32 timestamp = 9;
|
|
|
|
optional bool cork = 10;
|
|
optional bool nodelay = 11;
|
|
|
|
optional uint32 unsq_len = 12; /* unsent data in the send queue */
|
|
|
|
optional uint32 snd_wl1 = 13;
|
|
optional uint32 snd_wnd = 14;
|
|
optional uint32 max_window = 15;
|
|
optional uint32 rcv_wnd = 16;
|
|
optional uint32 rcv_wup = 17;
|
|
}
|