2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-25 03:18:36 +00:00
criu/images/tcp-stream.proto
Andrew Vagin 7d95face06 tcp: dump and restore window parameters
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>
2016-08-08 15:20:47 +03:00

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;
}