| Line 5: |
Line 5: |
| | | | |
| | == Protobuf messages == | | == Protobuf messages == |
| − | criu_req/criu_resp -- wrappers for requests/responses. They are to be used for transferring messages. It is needed to provide compatibility with an older versions of rpc. Field type in them _must_ be set accordingly to type of request/response that is stored. Types of request/response are defined in enum criu_req_type. | + | criu_req/criu_resp -- wrappers for requests/responses. They are to be used for transferring messages and needed to provide compatibility with an older versions of rpc. Field type in them _must_ be set accordingly to type of request/response that is stored. Types of request/response are defined in enum criu_req_type. |
| − | | |
| − | === criu_req_type ===
| |
| − | There is only 1 request/response type for now.
| |
| − | <pre>enum criu_req_type {
| |
| − | EMPTY = 0;
| |
| − | DUMP = 1;
| |
| − | }
| |
| − | </pre>
| |
| − | | |
| | | | |
| | === criu_req === | | === criu_req === |
| Line 22: |
Line 13: |
| | | | |
| | optional criu_dump_req dump = 2; | | optional criu_dump_req dump = 2; |
| | + | } |
| | + | </pre> |
| | + | |
| | + | ==== criu_req_type ==== |
| | + | There is only 1 request/response type for now. |
| | + | <pre>enum criu_req_type { |
| | + | EMPTY = 0; |
| | + | DUMP = 1; |
| | } | | } |
| | </pre> | | </pre> |
| | | | |
| | ==== criu_dump_req ==== | | ==== criu_dump_req ==== |
| − | criu_dump_req is used to store dump options.
| + | It is used to store dump options. |
| | <pre>message criu_dump_req { | | <pre>message criu_dump_req { |
| | required int32 images_dir_fd = 1; | | required int32 images_dir_fd = 1; |
| Line 67: |
Line 66: |
| | Field "restored" is set to "true" if process was restored. | | Field "restored" is set to "true" if process was restored. |
| | | | |
| − | == Server == | + | == Run == |
| | + | === Server === |
| | On a server side, CRIU creates SOCK_SEQPACKET Unix socket and listens for connections on it. After receiving criu_req, CRIU processes it, do what is requested and sends response back. | | On a server side, CRIU creates SOCK_SEQPACKET Unix socket and listens for connections on it. After receiving criu_req, CRIU processes it, do what is requested and sends response back. |
| | | | |
| Line 78: |
Line 78: |
| | For the full list of options, please run "criu -h". | | For the full list of options, please run "criu -h". |
| | | | |
| − | == Client == | + | === Client === |
| | Client, in its turn, must connect to service socket, send criu_msg with request in it, and wait for a criu_resp with response. | | Client, in its turn, must connect to service socket, send criu_msg with request in it, and wait for a criu_resp with response. |
| | You can find examples of client programs in C and Python in test/rpc/. | | You can find examples of client programs in C and Python in test/rpc/. |