syntax = "proto2"; import "opts.proto"; import "fown.proto"; import "sk-opts.proto"; message ip_opts_raw_entry { optional bool hdrincl = 1; optional bool nodefrag = 2; optional bool checksum = 3; repeated uint32 icmpv_filter = 4; } message ip_opts_entry { optional bool freebind = 1; // Fields 2 and 3 are reserved for vz7 use optional ip_opts_raw_entry raw = 4; } message inet_sk_entry { /* * We have two IDs here -- id and ino. The first one * is used when restoring socket behind a file descriprot. * The fdinfo image's id is it. The second one is used * in sk-inet.c internally, in particular we identify * a TCP stream to restore into this socket using the * ino value. */ required uint32 id = 1; required uint32 ino = 2; required uint32 family = 3 [(criu).dict = "sk"]; required uint32 type = 4 [(criu).dict = "sk"]; required uint32 proto = 5 [(criu).dict = "sk"]; required uint32 state = 6 [(criu).dict = "sk"]; required uint32 src_port = 7; required uint32 dst_port = 8; required uint32 flags = 9 [(criu).hex = true]; required uint32 backlog = 10; repeated uint32 src_addr = 11 [(criu).ipadd = true]; repeated uint32 dst_addr = 12 [(criu).ipadd = true]; required fown_entry fown = 13; required sk_opts_entry opts = 14; optional bool v6only = 15; optional ip_opts_entry ip_opts = 16; /* for ipv6, we need to send the ifindex to bind(); we keep the ifname * here and convert it on restore */ optional string ifname = 17; optional uint32 ns_id = 18; optional sk_shutdown shutdown = 19; }