From 6e7cf79f7c1cdf46ab805df7433557e49c021ecb Mon Sep 17 00:00:00 2001 From: root Date: Mon, 15 Jun 2020 12:09:13 -0400 Subject: [PATCH 01/17] Upgraded firecracker submodule. Orch repo test pass. Signed-off-by: Plamen Petrov --- _submodules/firecracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_submodules/firecracker b/_submodules/firecracker index fc2a7ed50..57f4c7ca1 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit fc2a7ed50e2c5c6df9572f54bcf2a1cc161dd321 +Subproject commit 57f4c7ca14a31c5536f188cacb669d2cad32b9ca From bf6cbe36bc6a56d3ea76b9ba34d1906cb48c6ec7 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 16 Jun 2020 08:29:08 -0400 Subject: [PATCH 02/17] Implemented resume and pause call chain. Signed-off-by: Plamen Petrov --- firecracker-control/local.go | 36 ++++++++++++ go.mod | 4 ++ go.sum | 58 +++++++++++++++++++ runtime/service.go | 109 +++++++++++++++++++++++------------ 4 files changed, 171 insertions(+), 36 deletions(-) diff --git a/firecracker-control/local.go b/firecracker-control/local.go index fca73143d..5d58f1b7a 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -596,3 +596,39 @@ func setShimOOMScore(shimPid int) error { return nil } + +// PauseVM Pauses a VM +func (s *local) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) { + client, err := s.shimFirecrackerClient(ctx, req.VMID) + if err != nil { + return nil, err + } + + defer client.Close() + + resp, err := client.PauseVM(ctx, req) + if err != nil { + s.logger.WithError(err).Error() + return nil, err + } + + return resp, nil +} + +// ResumeVM Resumes a VM +func (s *local) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) { + client, err := s.shimFirecrackerClient(ctx, req.VMID) + if err != nil { + return nil, err + } + + defer client.Close() + + resp, err := client.ResumeVM(ctx, req) + if err != nil { + s.logger.WithError(err).Error() + return nil, err + } + + return resp, nil +} diff --git a/go.mod b/go.mod index 9647fa5c8..fff7d75bb 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,7 @@ module github.com/firecracker-microvm/firecracker-containerd require ( + github.com/Microsoft/go-winio v0.4.14 // indirect github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 // indirect github.com/awslabs/tc-redirect-tap v0.0.0-20200708224642-a0300978797d github.com/containerd/containerd v1.5.2 @@ -12,15 +13,18 @@ require ( github.com/containernetworking/plugins v0.9.1 github.com/firecracker-microvm/firecracker-go-sdk v0.22.1-0.20210520223842-abd0815b8bf9 github.com/go-ole/go-ole v1.2.4 // indirect + github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384 // indirect github.com/gofrs/uuid v3.3.0+incompatible github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.4.3 github.com/hashicorp/go-multierror v1.1.0 + github.com/imdario/mergo v0.3.8 // indirect github.com/mdlayher/vsock v0.0.0-20190329173812-a92c53d5dcab github.com/miekg/dns v1.1.16 github.com/opencontainers/runc v1.0.0-rc93 github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d github.com/pkg/errors v0.9.1 + github.com/prometheus/client_golang v0.9.2 // indirect github.com/shirou/gopsutil v2.18.12+incompatible github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect github.com/sirupsen/logrus v1.8.0 diff --git a/go.sum b/go.sum index fbc25741f..85752d793 100644 --- a/go.sum +++ b/go.sum @@ -724,10 +724,16 @@ github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +<<<<<<< HEAD github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +======= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= +>>>>>>> Implemented resume and pause call chain. github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= @@ -739,6 +745,7 @@ github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852 h1:cPXZWzzG0 github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +<<<<<<< HEAD github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= @@ -761,6 +768,16 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +======= +<<<<<<< HEAD +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +======= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +>>>>>>> Implemented resume and pause call chain. +go.etcd.io/bbolt v1.3.1-etcd.8 h1:6J7QAKqfFBGnU80KRnuQxfjjeE5xAGE/qB810I3FQHQ= +go.etcd.io/bbolt v1.3.1-etcd.8/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +>>>>>>> Implemented resume and pause call chain. go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= @@ -789,6 +806,7 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +<<<<<<< HEAD golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -826,6 +844,18 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +======= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +>>>>>>> Implemented resume and pause call chain. golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -841,6 +871,7 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +<<<<<<< HEAD golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -849,12 +880,19 @@ golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +======= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +<<<<<<< HEAD +>>>>>>> Implemented resume and pause call chain. golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +<<<<<<< HEAD golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -862,6 +900,12 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +======= +======= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +>>>>>>> Implemented resume and pause call chain. +>>>>>>> Implemented resume and pause call chain. golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -973,7 +1017,9 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190617190820-da514acc4774 h1:CQVOmarCBFzTx0kbOU0ru54Cvot8SdSrNYjZPhQl+gk= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +<<<<<<< HEAD golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -999,6 +1045,18 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +======= +<<<<<<< HEAD +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +======= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9 h1:cwgUY+1ja2qxWb2dyaCoixaA66WGWmrijSlxaM+JM/g= +golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +>>>>>>> Implemented resume and pause call chain. +>>>>>>> Implemented resume and pause call chain. golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/runtime/service.go b/runtime/service.go index 8f05ce2c4..350ad5ef2 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -14,11 +14,13 @@ package main import ( + "bytes" "context" "encoding/json" "fmt" "math" "net" + "net/http" "os" "runtime/debug" "strconv" @@ -64,6 +66,7 @@ import ( drivemount "github.com/firecracker-microvm/firecracker-containerd/proto/service/drivemount/ttrpc" fccontrolTtrpc "github.com/firecracker-microvm/firecracker-containerd/proto/service/fccontrol/ttrpc" ioproxy "github.com/firecracker-microvm/firecracker-containerd/proto/service/ioproxy/ttrpc" + "github.com/tv42/httpunix" ) func init() { @@ -157,6 +160,9 @@ type service struct { // fifos have stdio FIFOs containerd passed to the shim. The key is [taskID][execID]. fifos map[string]map[string]cio.Config fifosMu sync.Mutex + + // httpControlClient is to send pause/resume/snapshot commands to the microVM + httpControlClient *http.Client } func shimOpts(shimCtx context.Context) (*shim.Opts, error) { @@ -620,6 +626,8 @@ func (s *service) createVM(requestCtx context.Context, request *proto.CreateVMRe return err } + s.createHTTPControlClient() + s.logger.Info("successfully started the VM") return nil } @@ -657,42 +665,6 @@ func (s *service) StopVM(requestCtx context.Context, request *proto.StopVMReques return &empty.Empty{}, nil } -// ResumeVM resumes a VM -func (s *service) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) { - defer logPanicAndDie(s.logger) - - err := s.waitVMReady() - if err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - if err := s.machine.ResumeVM(ctx); err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - return &empty.Empty{}, nil -} - -// PauseVM pauses a VM -func (s *service) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) { - defer logPanicAndDie(s.logger) - - err := s.waitVMReady() - if err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - if err := s.machine.PauseVM(ctx); err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - return &empty.Empty{}, nil -} - // GetVMInfo returns metadata for the VM being managed by this shim. If the VM has not been created yet, this // method will wait for up to a hardcoded timeout for it to exist, returning an error if the timeout is reached. func (s *service) GetVMInfo(requestCtx context.Context, request *proto.GetVMInfoRequest) (*proto.GetVMInfoResponse, error) { @@ -1712,3 +1684,68 @@ func (s *service) monitorVMExit() { s.logger.WithError(err).Error("failed to clean up the VM") } } + +func (s *service) createHTTPControlClient() { + u := &httpunix.Transport{ + DialTimeout: 100 * time.Millisecond, + RequestTimeout: 10 * time.Second, + ResponseHeaderTimeout: 10 * time.Second, + } + u.RegisterLocation("firecracker", s.shimDir.FirecrackerSockPath()) + + t := &http.Transport{} + t.RegisterProtocol(httpunix.Scheme, u) + + var client = http.Client{ + Transport: t, + } + + s.httpControlClient = &client +} + +func formResumeReq() (*http.Request, error) { + var req *http.Request + + data := map[string]string{ + "state": "Resumed", + } + json, err := json.Marshal(data) + if err != nil { + logrus.WithError(err).Error("Failed to marshal json data") + return nil, err + } + + req, err = http.NewRequest("PATCH", "http+unix://firecracker/vm", bytes.NewBuffer(json)) + if err != nil { + logrus.WithError(err).Error("Failed to create new HTTP request in formResumeReq") + return nil, err + } + req.Header.Add("accept", "application/json") + req.Header.Add("Content-Type", "application/json") + + return req, nil +} + +func formPauseReq() (*http.Request, error) { + var req *http.Request + + data := map[string]string{ + "state": "Paused", + } + json, err := json.Marshal(data) + if err != nil { + logrus.WithError(err).Error("Failed to marshal json data") + return nil, err + } + + req, err = http.NewRequest("PATCH", "http+unix://firecracker/vm", bytes.NewBuffer(json)) + if err != nil { + logrus.WithError(err).Error("Failed to create new HTTP request in formPauseReq") + return nil, err + } + req.Header.Add("accept", "application/json") + req.Header.Add("Content-Type", "application/json") + + return req, nil +} + From 443bcef7c23ce734b3e91e736c083ad9e28ed749 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Thu, 18 Jun 2020 04:21:58 -0600 Subject: [PATCH 03/17] Added support for creating and loading snapshots of VM. Notes: 1. Uses logging-only branch from ustiugov/firecracker-go-sdk 2. Firecracker logs path is hard-coded. Signed-off-by: Plamen Petrov --- firecracker-control/local.go | 57 +++++ firecracker-control/service.go | 15 ++ go.sum | 28 +++ proto/firecracker.pb.go | 228 ++++++++++++++++++ proto/firecracker.proto | 17 ++ proto/service/fccontrol/ttrpc/fccontrol.pb.go | 139 +++++++++++ runtime/service.go | 132 +++++++++- 7 files changed, 615 insertions(+), 1 deletion(-) diff --git a/firecracker-control/local.go b/firecracker-control/local.go index 5d58f1b7a..4464719bf 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -632,3 +632,60 @@ func (s *local) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empt return resp, nil } + +// CreateSnapshot Creates a snapshot of a VM +func (s *local) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (*empty.Empty, error) { + client, err := s.shimFirecrackerClient(ctx, req.VMID) + if err != nil { + return nil, err + } + + defer client.Close() + + resp, err := client.CreateSnapshot(ctx, req) + if err != nil { + s.logger.WithError(err).Error() + return nil, err + } + + return resp, nil +} + +// LoadSnapshot Loads a snapshot of a VM +func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { + client, err := s.shimFirecrackerClient(ctx, req.VMID) + if err != nil { + return nil, err + } + + defer client.Close() + + resp, err := client.LoadSnapshot(ctx, req) + if err != nil { + s.logger.WithError(err).Error() + return nil, err + } + + return resp, nil +} + +// Offload Shuts down a VM started through the firecracker go sdk and deletes +// the corresponding firecracker socket. All of the other resources (shim, other sockets) +// will persist. +func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { + client, err := s.shimFirecrackerClient(ctx, req.VMID) + if err != nil { + return nil, err + } + + defer client.Close() + + resp, err := client.Offload(ctx, req) + if err != nil { + s.logger.WithError(err).Error() + return nil, err + } + + return resp, nil +} + diff --git a/firecracker-control/service.go b/firecracker-control/service.go index 4d9c80422..e9dc2bf17 100644 --- a/firecracker-control/service.go +++ b/firecracker-control/service.go @@ -126,3 +126,18 @@ func (s *service) UpdateBalloonStats(ctx context.Context, req *proto.UpdateBallo log.G(ctx).Debug("Updating balloon device statistics polling interval") return s.local.UpdateBalloonStats(ctx, req) } + +func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { + log.G(ctx).Debugf("load snapshot request: %+v", req) + return s.local.LoadSnapshot(ctx, req) +} + +func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (*empty.Empty, error) { + log.G(ctx).Debugf("create snapshot request: %+v", req) + return s.local.CreateSnapshot(ctx, req) +} + +func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { + log.G(ctx).Debugf("offload request: %+v", req) + return s.local.Offload(ctx, req) +} diff --git a/go.sum b/go.sum index 85752d793..4b3dcd974 100644 --- a/go.sum +++ b/go.sum @@ -735,9 +735,14 @@ github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9 github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= >>>>>>> Implemented resume and pause call chain. github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +<<<<<<< HEAD github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +======= +github.com/ustiugov/firecracker-go-sdk v0.20.1-0.20200625102438-8edf287b0123 h1:RmVkdn3XSJSVUy/yStvqVJGQ8yw93mUtJn4N+8Aytlw= +github.com/ustiugov/firecracker-go-sdk v0.20.1-0.20200625102438-8edf287b0123/go.mod h1:zyc9BrKGePpNLbQ5y2ZtdzXEfpMJeHPeFNVpyo0S1WQ= +>>>>>>> Added support for creating and loading snapshots of VM. github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -774,7 +779,11 @@ github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhe github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= ======= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +<<<<<<< HEAD >>>>>>> Implemented resume and pause call chain. +======= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +>>>>>>> Added support for creating and loading snapshots of VM. go.etcd.io/bbolt v1.3.1-etcd.8 h1:6J7QAKqfFBGnU80KRnuQxfjjeE5xAGE/qB810I3FQHQ= go.etcd.io/bbolt v1.3.1-etcd.8/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= >>>>>>> Implemented resume and pause call chain. @@ -847,6 +856,8 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r ======= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -854,6 +865,7 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= >>>>>>> Implemented resume and pause call chain. golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -904,8 +916,16 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v ======= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +<<<<<<< HEAD >>>>>>> Implemented resume and pause call chain. +<<<<<<< HEAD >>>>>>> Implemented resume and pause call chain. +======= +======= +golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +>>>>>>> Added support for creating and loading snapshots of VM. +>>>>>>> Added support for creating and loading snapshots of VM. golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -918,10 +938,16 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +<<<<<<< HEAD golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +======= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +>>>>>>> Added support for creating and loading snapshots of VM. golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180928133829-e4b3c5e90611/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1053,6 +1079,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9 h1:cwgUY+1ja2qxWb2dyaCoixaA66WGWmrijSlxaM+JM/g= golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c h1:Jt8nybBNSGn80qEV8fQLwCam6RQeX4dsxit8if67Sfc= +golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= >>>>>>> Implemented resume and pause call chain. diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index 4cd8c2f56..92ab3540e 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -669,6 +669,231 @@ func (m *GetVMMetadataResponse) GetMetadata() string { return "" } +<<<<<<< HEAD +======= +type PauseVMRequest struct { + VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PauseVMRequest) Reset() { *m = PauseVMRequest{} } +func (m *PauseVMRequest) String() string { return proto.CompactTextString(m) } +func (*PauseVMRequest) ProtoMessage() {} +func (*PauseVMRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{9} +} +func (m *PauseVMRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PauseVMRequest.Unmarshal(m, b) +} +func (m *PauseVMRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PauseVMRequest.Marshal(b, m, deterministic) +} +func (m *PauseVMRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PauseVMRequest.Merge(m, src) +} +func (m *PauseVMRequest) XXX_Size() int { + return xxx_messageInfo_PauseVMRequest.Size(m) +} +func (m *PauseVMRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PauseVMRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PauseVMRequest proto.InternalMessageInfo + +func (m *PauseVMRequest) GetVMID() string { + if m != nil { + return m.VMID + } + return "" +} + +type ResumeVMRequest struct { + VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResumeVMRequest) Reset() { *m = ResumeVMRequest{} } +func (m *ResumeVMRequest) String() string { return proto.CompactTextString(m) } +func (*ResumeVMRequest) ProtoMessage() {} +func (*ResumeVMRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{10} +} +func (m *ResumeVMRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResumeVMRequest.Unmarshal(m, b) +} +func (m *ResumeVMRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResumeVMRequest.Marshal(b, m, deterministic) +} +func (m *ResumeVMRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResumeVMRequest.Merge(m, src) +} +func (m *ResumeVMRequest) XXX_Size() int { + return xxx_messageInfo_ResumeVMRequest.Size(m) +} +func (m *ResumeVMRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ResumeVMRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ResumeVMRequest proto.InternalMessageInfo + +func (m *ResumeVMRequest) GetVMID() string { + if m != nil { + return m.VMID + } + return "" +} + +type CreateSnapshotRequest struct { + VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` + SnapshotFilePath string `protobuf:"bytes,2,opt,name=SnapshotFilePath,json=snapshotFilePath,proto3" json:"SnapshotFilePath,omitempty"` + MemFilePath string `protobuf:"bytes,3,opt,name=MemFilePath,json=memFilePath,proto3" json:"MemFilePath,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } +func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{11} +} +func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *CreateSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotRequest.Merge(m, src) +} +func (m *CreateSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotRequest.Size(m) +} +func (m *CreateSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotRequest proto.InternalMessageInfo + +func (m *CreateSnapshotRequest) GetVMID() string { + if m != nil { + return m.VMID + } + return "" +} + +func (m *CreateSnapshotRequest) GetSnapshotFilePath() string { + if m != nil { + return m.SnapshotFilePath + } + return "" +} + +func (m *CreateSnapshotRequest) GetMemFilePath() string { + if m != nil { + return m.MemFilePath + } + return "" +} + +type LoadSnapshotRequest struct { + VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` + SnapshotFilePath string `protobuf:"bytes,2,opt,name=SnapshotFilePath,json=snapshotFilePath,proto3" json:"SnapshotFilePath,omitempty"` + MemFilePath string `protobuf:"bytes,3,opt,name=MemFilePath,json=memFilePath,proto3" json:"MemFilePath,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadSnapshotRequest) Reset() { *m = LoadSnapshotRequest{} } +func (m *LoadSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*LoadSnapshotRequest) ProtoMessage() {} +func (*LoadSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{12} +} +func (m *LoadSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadSnapshotRequest.Unmarshal(m, b) +} +func (m *LoadSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *LoadSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadSnapshotRequest.Merge(m, src) +} +func (m *LoadSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_LoadSnapshotRequest.Size(m) +} +func (m *LoadSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LoadSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadSnapshotRequest proto.InternalMessageInfo + +func (m *LoadSnapshotRequest) GetVMID() string { + if m != nil { + return m.VMID + } + return "" +} + +func (m *LoadSnapshotRequest) GetSnapshotFilePath() string { + if m != nil { + return m.SnapshotFilePath + } + return "" +} + +func (m *LoadSnapshotRequest) GetMemFilePath() string { + if m != nil { + return m.MemFilePath + } + return "" +} + +type OffloadRequest struct { + VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OffloadRequest) Reset() { *m = OffloadRequest{} } +func (m *OffloadRequest) String() string { return proto.CompactTextString(m) } +func (*OffloadRequest) ProtoMessage() {} +func (*OffloadRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{13} +} +func (m *OffloadRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OffloadRequest.Unmarshal(m, b) +} +func (m *OffloadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OffloadRequest.Marshal(b, m, deterministic) +} +func (m *OffloadRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_OffloadRequest.Merge(m, src) +} +func (m *OffloadRequest) XXX_Size() int { + return xxx_messageInfo_OffloadRequest.Size(m) +} +func (m *OffloadRequest) XXX_DiscardUnknown() { + xxx_messageInfo_OffloadRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_OffloadRequest proto.InternalMessageInfo + +func (m *OffloadRequest) GetVMID() string { + if m != nil { + return m.VMID + } + return "" +} + +>>>>>>> Added support for creating and loading snapshots of VM. type JailerConfig struct { NetNS string `protobuf:"bytes,1,opt,name=NetNS,json=netNS,proto3" json:"NetNS,omitempty"` // List of the physical numbers of the CPUs on which processes in that @@ -1154,6 +1379,9 @@ func init() { proto.RegisterType((*UpdateVMMetadataRequest)(nil), "UpdateVMMetadataRequest") proto.RegisterType((*GetVMMetadataRequest)(nil), "GetVMMetadataRequest") proto.RegisterType((*GetVMMetadataResponse)(nil), "GetVMMetadataResponse") + proto.RegisterType((*CreateSnapshotRequest)(nil), "CreateSnapshotRequest") + proto.RegisterType((*LoadSnapshotRequest)(nil), "LoadSnapshotRequest") + proto.RegisterType((*OffloadRequest)(nil), "OffloadRequest") proto.RegisterType((*JailerConfig)(nil), "JailerConfig") proto.RegisterType((*UpdateBalloonRequest)(nil), "UpdateBalloonRequest") proto.RegisterType((*GetBalloonConfigRequest)(nil), "GetBalloonConfigRequest") diff --git a/proto/firecracker.proto b/proto/firecracker.proto index 7d42aefeb..df94a04cc 100644 --- a/proto/firecracker.proto +++ b/proto/firecracker.proto @@ -103,6 +103,23 @@ enum DriveExposePolicy { BIND = 1; } +message CreateSnapshotRequest { + string VMID = 1; + string SnapshotFilePath = 2; + string MemFilePath = 3; +} + +message LoadSnapshotRequest { + string VMID = 1; + string SnapshotFilePath = 2; + string MemFilePath = 3; +} + +message OffloadRequest { + string VMID = 1; +} + + message JailerConfig { string NetNS = 1; // List of the physical numbers of the CPUs on which processes in that diff --git a/proto/service/fccontrol/ttrpc/fccontrol.pb.go b/proto/service/fccontrol/ttrpc/fccontrol.pb.go index c6409dca9..d3f0028d3 100644 --- a/proto/service/fccontrol/ttrpc/fccontrol.pb.go +++ b/proto/service/fccontrol/ttrpc/fccontrol.pb.go @@ -27,6 +27,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("fccontrol.proto", fileDescriptor_b99f53e2bf82c5ef) } var fileDescriptor_b99f53e2bf82c5ef = []byte{ +<<<<<<< HEAD // 357 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x3f, 0x4f, 0xf2, 0x50, 0x14, 0xc6, 0xe9, 0xf0, 0xf2, 0xc2, 0x35, 0x08, 0xdc, 0x04, 0x45, 0x4c, 0xba, 0xb8, 0x1f, 0x0c, @@ -51,6 +52,53 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ 0xc2, 0x67, 0x62, 0x1a, 0x8b, 0xc4, 0x34, 0xbe, 0x12, 0xd3, 0xf8, 0x49, 0x4c, 0xe3, 0xb5, 0xbc, 0xf9, 0x95, 0xc6, 0xc5, 0xf5, 0xd0, 0xcd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x66, 0x43, 0x0c, 0x39, 0x5e, 0x03, 0x00, 0x00, +======= +<<<<<<< HEAD + // 290 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4b, 0x4e, 0xce, + 0xcf, 0x2b, 0x29, 0xca, 0xcf, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x97, 0x92, 0x4e, 0xcf, 0xcf, + 0x4f, 0xcf, 0x49, 0xd5, 0x07, 0xf3, 0x92, 0x4a, 0xd3, 0xf4, 0x53, 0x73, 0x0b, 0x4a, 0x2a, 0xa1, + 0x92, 0x82, 0x69, 0x99, 0x45, 0xa9, 0xc9, 0x45, 0x89, 0xc9, 0xd9, 0xa9, 0x45, 0x10, 0x21, 0xa3, + 0x2b, 0xcc, 0x5c, 0xdc, 0x6e, 0x08, 0x51, 0x21, 0x7d, 0x2e, 0x0e, 0xe7, 0xa2, 0xd4, 0xc4, 0x92, + 0xd4, 0x30, 0x5f, 0x21, 0x01, 0x3d, 0x18, 0x33, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x44, 0x4a, + 0x10, 0x49, 0xa4, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x55, 0xc8, 0x88, 0x8b, 0x3d, 0x20, 0xb1, 0xb4, + 0x18, 0xa4, 0x9e, 0x5f, 0x0f, 0xca, 0x82, 0x29, 0x17, 0xd3, 0x83, 0xb8, 0x46, 0x0f, 0xe6, 0x1a, + 0x3d, 0x57, 0x90, 0x6b, 0x84, 0x4c, 0xb8, 0x38, 0x82, 0x52, 0x8b, 0x4b, 0x73, 0x21, 0x96, 0xc0, + 0x98, 0x84, 0x74, 0x19, 0x70, 0xb1, 0x05, 0x97, 0xe4, 0x17, 0x84, 0xf9, 0x0a, 0xf1, 0xe9, 0x41, + 0x18, 0x84, 0x74, 0x18, 0x71, 0x71, 0xba, 0xa7, 0x96, 0x84, 0xf9, 0x7a, 0xe6, 0xa5, 0xe5, 0x0b, + 0x09, 0xea, 0xc1, 0xd9, 0x30, 0x7d, 0x42, 0xc8, 0x42, 0x50, 0xff, 0xd8, 0x71, 0xf1, 0x06, 0x83, + 0x04, 0x7d, 0x53, 0x4b, 0x12, 0x53, 0x12, 0x4b, 0x12, 0x85, 0x44, 0xf5, 0x50, 0xf8, 0x84, 0xec, + 0x74, 0xe1, 0x12, 0x08, 0x2d, 0x48, 0x01, 0x87, 0x11, 0xdc, 0x08, 0x09, 0x3d, 0x74, 0x21, 0x42, + 0xa6, 0xd8, 0x71, 0xf1, 0xba, 0xa3, 0xb9, 0xc2, 0x1d, 0xbb, 0x2b, 0xd0, 0x84, 0x21, 0xbe, 0x70, + 0x52, 0x3e, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, + 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x14, 0x27, 0x3c, 0xc5, 0x24, + 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x26, 0xe6, 0x13, 0x45, 0x02, + 0x00, 0x00, +======= + // 336 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xbb, 0x4e, 0xf3, 0x40, + 0x10, 0x85, 0xe3, 0xe2, 0xcf, 0x65, 0x7e, 0x72, 0x5b, 0x41, 0x84, 0x82, 0xe4, 0x86, 0x7e, 0x82, + 0x02, 0x25, 0x8a, 0x10, 0xb7, 0x08, 0x09, 0x0b, 0x94, 0x88, 0x14, 0x74, 0x1b, 0x7b, 0x1c, 0x10, + 0x89, 0xc7, 0xd8, 0xeb, 0x82, 0x8e, 0x92, 0x47, 0x4b, 0x49, 0x49, 0x49, 0xfc, 0x24, 0x28, 0xf1, + 0x85, 0x24, 0x42, 0xda, 0xee, 0xcc, 0x67, 0x9f, 0x99, 0xb3, 0x3b, 0x0b, 0x75, 0xd7, 0xb6, 0xd9, + 0x53, 0x01, 0x4f, 0xd1, 0x0f, 0x58, 0x71, 0xfb, 0x60, 0xc2, 0x3c, 0x99, 0x52, 0x67, 0x55, 0x8d, + 0x23, 0xb7, 0x43, 0x33, 0x5f, 0xbd, 0xa5, 0x1f, 0x9b, 0xee, 0x73, 0x40, 0x76, 0x20, 0xed, 0x17, + 0x0a, 0x12, 0xd4, 0xfd, 0xf8, 0x07, 0xff, 0xaf, 0x7f, 0xa9, 0xe8, 0x40, 0xf9, 0x22, 0x20, 0xa9, + 0x68, 0x64, 0x89, 0x06, 0x66, 0x72, 0x40, 0xaf, 0x11, 0x85, 0xaa, 0xdd, 0x5c, 0x23, 0xa1, 0xcf, + 0x5e, 0x48, 0xe2, 0x08, 0x8a, 0x43, 0xc5, 0xfe, 0xc8, 0x12, 0x35, 0x4c, 0x44, 0xf6, 0x73, 0x0b, + 0x93, 0x2c, 0x98, 0x65, 0xc1, 0xab, 0x65, 0x16, 0xd1, 0x85, 0x4a, 0x9f, 0xd4, 0xc8, 0xba, 0xf1, + 0x5c, 0x16, 0x4d, 0xcc, 0x75, 0xe6, 0x13, 0xeb, 0x28, 0x9d, 0xd2, 0x83, 0xea, 0x70, 0x09, 0x2d, + 0x52, 0xd2, 0x91, 0x4a, 0x8a, 0x3d, 0xdc, 0xa8, 0x75, 0x33, 0x2f, 0xa1, 0xf1, 0xe0, 0x3b, 0xab, + 0xe4, 0x79, 0x8b, 0x7d, 0xdc, 0x46, 0xba, 0x2e, 0x3d, 0xa8, 0xf6, 0xb7, 0x52, 0xf4, 0xff, 0x4e, + 0xb1, 0x85, 0xd3, 0x53, 0x74, 0xa1, 0x74, 0x2f, 0xa3, 0x70, 0x79, 0xb7, 0x75, 0x4c, 0x95, 0x6e, + 0xe6, 0x09, 0x94, 0x07, 0x14, 0x46, 0xb3, 0x64, 0x21, 0x99, 0xd4, 0xb9, 0x4e, 0x61, 0xe7, 0x96, + 0xa5, 0x33, 0xf4, 0xa4, 0x1f, 0x3e, 0xb1, 0x12, 0xbb, 0xb8, 0x5e, 0xea, 0xdc, 0x67, 0x50, 0x4b, + 0xf6, 0x9c, 0xfb, 0x5b, 0xb8, 0x09, 0xf4, 0x3b, 0x2e, 0xdd, 0xb9, 0xee, 0x94, 0xa5, 0x23, 0xea, + 0x98, 0x2a, 0x8d, 0xe7, 0xfc, 0x70, 0xbe, 0x30, 0x0b, 0x5f, 0x0b, 0xb3, 0xf0, 0x1e, 0x9b, 0xc6, + 0x3c, 0x36, 0x8d, 0xcf, 0xd8, 0x34, 0xbe, 0x63, 0xd3, 0x78, 0xac, 0xe4, 0xaf, 0x7c, 0x5c, 0x5c, + 0x99, 0x8e, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xe9, 0x16, 0xe0, 0xf9, 0x02, 0x00, 0x00, +>>>>>>> Added support for creating and loading snapshots of VM. +>>>>>>> Added support for creating and loading snapshots of VM. } type FirecrackerService interface { @@ -62,10 +110,21 @@ type FirecrackerService interface { SetVMMetadata(ctx context.Context, req *proto1.SetVMMetadataRequest) (*empty.Empty, error) UpdateVMMetadata(ctx context.Context, req *proto1.UpdateVMMetadataRequest) (*empty.Empty, error) GetVMMetadata(ctx context.Context, req *proto1.GetVMMetadataRequest) (*proto1.GetVMMetadataResponse, error) +<<<<<<< HEAD GetBalloonConfig(ctx context.Context, req *proto1.GetBalloonConfigRequest) (*proto1.GetBalloonConfigResponse, error) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) GetBalloonStats(ctx context.Context, req *proto1.GetBalloonStatsRequest) (*proto1.GetBalloonStatsResponse, error) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) +======= +<<<<<<< HEAD +======= + PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) + ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) + LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) + CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) + Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) +>>>>>>> Added support for creating and loading snapshots of VM. +>>>>>>> Added support for creating and loading snapshots of VM. } func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc FirecrackerService) { @@ -126,6 +185,7 @@ func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc Fir } return svc.GetVMMetadata(ctx, &req) }, +<<<<<<< HEAD "GetBalloonConfig": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { var req proto1.GetBalloonConfigRequest if err := unmarshal(&req); err != nil { @@ -154,6 +214,46 @@ func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc Fir } return svc.UpdateBalloonStats(ctx, &req) }, +======= +<<<<<<< HEAD +======= + "PauseVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { + var req proto1.PauseVMRequest + if err := unmarshal(&req); err != nil { + return nil, err + } + return svc.PauseVM(ctx, &req) + }, + "ResumeVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { + var req proto1.ResumeVMRequest + if err := unmarshal(&req); err != nil { + return nil, err + } + return svc.ResumeVM(ctx, &req) + }, + "LoadSnapshot": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { + var req proto1.LoadSnapshotRequest + if err := unmarshal(&req); err != nil { + return nil, err + } + return svc.LoadSnapshot(ctx, &req) + }, + "CreateSnapshot": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { + var req proto1.CreateSnapshotRequest + if err := unmarshal(&req); err != nil { + return nil, err + } + return svc.CreateSnapshot(ctx, &req) + }, + "Offload": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { + var req proto1.OffloadRequest + if err := unmarshal(&req); err != nil { + return nil, err + } + return svc.Offload(ctx, &req) + }, +>>>>>>> Added support for creating and loading snapshots of VM. +>>>>>>> Added support for creating and loading snapshots of VM. }) } @@ -230,35 +330,74 @@ func (c *firecrackerClient) GetVMMetadata(ctx context.Context, req *proto1.GetVM } return &resp, nil } +<<<<<<< HEAD func (c *firecrackerClient) GetBalloonConfig(ctx context.Context, req *proto1.GetBalloonConfigRequest) (*proto1.GetBalloonConfigResponse, error) { var resp proto1.GetBalloonConfigResponse if err := c.client.Call(ctx, "Firecracker", "GetBalloonConfig", req, &resp); err != nil { +======= +<<<<<<< HEAD +======= + +func (c *firecrackerClient) PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) { + var resp empty.Empty + if err := c.client.Call(ctx, "Firecracker", "PauseVM", req, &resp); err != nil { return nil, err } return &resp, nil } +func (c *firecrackerClient) ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) { + var resp empty.Empty + if err := c.client.Call(ctx, "Firecracker", "ResumeVM", req, &resp); err != nil { +>>>>>>> Added support for creating and loading snapshots of VM. + return nil, err + } + return &resp, nil +} + +<<<<<<< HEAD func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { var resp empty.Empty if err := c.client.Call(ctx, "Firecracker", "UpdateBalloon", req, &resp); err != nil { +======= +func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { + var resp empty.Empty + if err := c.client.Call(ctx, "Firecracker", "LoadSnapshot", req, &resp); err != nil { +>>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } +<<<<<<< HEAD func (c *firecrackerClient) GetBalloonStats(ctx context.Context, req *proto1.GetBalloonStatsRequest) (*proto1.GetBalloonStatsResponse, error) { var resp proto1.GetBalloonStatsResponse if err := c.client.Call(ctx, "Firecracker", "GetBalloonStats", req, &resp); err != nil { +======= +func (c *firecrackerClient) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) { + var resp empty.Empty + if err := c.client.Call(ctx, "Firecracker", "CreateSnapshot", req, &resp); err != nil { +>>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } +<<<<<<< HEAD func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) { var resp empty.Empty if err := c.client.Call(ctx, "Firecracker", "UpdateBalloonStats", req, &resp); err != nil { +======= +func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) { + var resp empty.Empty + if err := c.client.Call(ctx, "Firecracker", "Offload", req, &resp); err != nil { +>>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } +<<<<<<< HEAD +======= +>>>>>>> Added support for creating and loading snapshots of VM. +>>>>>>> Added support for creating and loading snapshots of VM. diff --git a/runtime/service.go b/runtime/service.go index 350ad5ef2..f0c897043 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -22,6 +22,7 @@ import ( "net" "net/http" "os" + "os/exec" "runtime/debug" "strconv" "strings" @@ -163,6 +164,8 @@ type service struct { // httpControlClient is to send pause/resume/snapshot commands to the microVM httpControlClient *http.Client + firecrackerPid int + taskDrivePathOnHost string } func shimOpts(shimCtx context.Context) (*shim.Opts, error) { @@ -500,7 +503,11 @@ func (s *service) CreateVM(requestCtx context.Context, request *proto.CreateVMRe s.logger.WithError(err).Error("failed to publish start VM event") } - go s.monitorVMExit() + // Commented out because its execution cancels the shim, and + // it would get executed on Offload if we leave it, killing the shim, + // and making snapshots impossible. + //go s.monitorVMExit() + // let all the other methods know that the VM is ready for tasks close(s.vmReady) @@ -628,7 +635,14 @@ func (s *service) createVM(requestCtx context.Context, request *proto.CreateVMRe s.createHTTPControlClient() + if pid, err := s.machine.PID(); err != nil { + s.logger.WithError(err).Error("Failed to get PID of firecracker process") + return err + } else { + s.firecrackerPid = pid + } s.logger.Info("successfully started the VM") + return nil } @@ -1142,6 +1156,8 @@ func (s *service) Create(requestCtx context.Context, request *taskAPI.CreateTask } rootfsMnt := request.Rootfs[0] + s.taskDrivePathOnHost = rootfsMnt.Source + err = s.containerStubHandler.Reserve(requestCtx, request.ID, rootfsMnt.Source, vmBundleDir.RootfsPath(), "ext4", nil, s.driveMountClient, s.machine) if err != nil { @@ -1749,3 +1765,117 @@ func formPauseReq() (*http.Request, error) { return req, nil } +func formLoadSnapReq(snapshotPath, memPath string) (*http.Request, error) { + var req *http.Request + + data := map[string]string{ + "snapshot_path": snapshotPath, + "mem_file_path": memPath, + } + json, err := json.Marshal(data) + if err != nil { + logrus.WithError(err).Error("Failed to marshal json data") + return nil, err + } + + req, err = http.NewRequest("PUT", "http+unix://firecracker/snapshot/load", bytes.NewBuffer(json)) + if err != nil { + logrus.WithError(err).Error("Failed to create new HTTP request in formLoadSnapReq") + return nil, err + } + req.Header.Add("accept", "application/json") + req.Header.Add("Content-Type", "application/json") + + return req, nil +} + +func formCreateSnapReq(snapshotPath, memPath string) (*http.Request, error) { + var req *http.Request + + data := map[string]string{ + "snapshot_type": "Full", + "snapshot_path": snapshotPath, + "mem_file_path": memPath, + } + json, err := json.Marshal(data) + if err != nil { + logrus.WithError(err).Error("Failed to marshal json data") + return nil, err + } + + req, err = http.NewRequest("PUT", "http+unix://firecracker/snapshot/create", bytes.NewBuffer(json)) + if err != nil { + logrus.WithError(err).Error("Failed to create new HTTP request in formCreateSnapReq") + return nil, err + } + req.Header.Add("accept", "application/json") + req.Header.Add("Content-Type", "application/json") + + return req, nil +} + +func formPatchDriveReq(drive_id, path_on_host string) (*http.Request, error) { + var req *http.Request + + data := map[string]string{ + "drive_id": drive_id, + "path_on_host": path_on_host, + } + json, err := json.Marshal(data) + if err != nil { + logrus.WithError(err).Error("Failed to marshal json data") + return nil, err + } + + req, err = http.NewRequest("PATCH", fmt.Sprintf("http+unix://firecracker/drives/%s", drive_id), bytes.NewBuffer(json)) + if err != nil { + logrus.WithError(err).Error("Failed to create new HTTP request in formPauseReq") + return nil, err + } + + req.Header.Add("accept", "application/json") + req.Header.Add("Content-Type", "application/json") + + return req, nil +} + +func (s *service) startFirecrackerProcess() error { + firecPath, err := exec.LookPath("firecracker") + if err != nil { + logrus.WithError(err).Error("failed to look up firecracker binary") + return err + } + + + // TODO: Remove hardcoding and make a parameter + logFilePath := fmt.Sprintf("/tmp/log_%s_after.logs", s.vmID) + if err := os.RemoveAll(logFilePath); err != nil { + s.logger.WithError(err).Errorf("Failed to delete %s", logFilePath) + return err + } + if _, err := os.OpenFile(logFilePath, os.O_RDONLY|os.O_CREATE, 0666); err != nil { + s.logger.WithError(err).Errorf("Failed to create %s", logFilePath) + return err + } + + args := []string{ + "--api-sock", s.shimDir.FirecrackerSockPath(), + "--log-path", logFilePath, + "--level", s.config.DebugHelper.GetFirecrackerLogLevel(), + "--show-level", + "--show-log-origin", + } + + firecrackerCmd := exec.Command(firecPath, args...) + firecrackerCmd.Dir = s.shimDir.RootPath() + + if err := firecrackerCmd.Start(); err != nil { + logrus.WithError(err).Error("Failed to start firecracker process") + } + + go firecrackerCmd.Wait() + + s.firecrackerPid = firecrackerCmd.Process.Pid + + return nil +} From 767db51cdf0c4f20cefbfc72f0a7ef9eabaeb102 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Fri, 10 Jul 2020 09:12:17 -0400 Subject: [PATCH 04/17] Altered buildVMConfiguration tests Signed-off-by: Plamen Petrov --- firecracker-control/local.go | 1 - go.sum | 10 ++++++++++ runtime/service.go | 28 ++++++++++++++++------------ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/firecracker-control/local.go b/firecracker-control/local.go index 4464719bf..37e9e6409 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -688,4 +688,3 @@ func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty. return resp, nil } - diff --git a/go.sum b/go.sum index 4b3dcd974..30e7fc734 100644 --- a/go.sum +++ b/go.sum @@ -865,6 +865,7 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= >>>>>>> Implemented resume and pause call chain. @@ -1081,10 +1082,19 @@ golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9 h1:cwgUY+1ja2qxWb2dyaCoixa golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c h1:Jt8nybBNSGn80qEV8fQLwCam6RQeX4dsxit8if67Sfc= golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1 h1:rD1FcWVsRaMY+l8biE9jbWP5MS/CJJ/90a9TMkMgNrM= +golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +<<<<<<< HEAD >>>>>>> Implemented resume and pause call chain. +<<<<<<< HEAD >>>>>>> Implemented resume and pause call chain. +======= +======= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +>>>>>>> Altered buildVMConfiguration tests +>>>>>>> Altered buildVMConfiguration tests golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/runtime/service.go b/runtime/service.go index f0c897043..9992c1b9b 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -163,8 +163,8 @@ type service struct { fifosMu sync.Mutex // httpControlClient is to send pause/resume/snapshot commands to the microVM - httpControlClient *http.Client - firecrackerPid int + httpControlClient *http.Client + firecrackerPid int taskDrivePathOnHost string } @@ -503,7 +503,7 @@ func (s *service) CreateVM(requestCtx context.Context, request *proto.CreateVMRe s.logger.WithError(err).Error("failed to publish start VM event") } - // Commented out because its execution cancels the shim, and + // Commented out because its execution cancels the shim, and // it would get executed on Offload if we leave it, killing the shim, // and making snapshots impossible. //go s.monitorVMExit() @@ -635,12 +635,14 @@ func (s *service) createVM(requestCtx context.Context, request *proto.CreateVMRe s.createHTTPControlClient() - if pid, err := s.machine.PID(); err != nil { + pid, err := s.machine.PID() + if err != nil { s.logger.WithError(err).Error("Failed to get PID of firecracker process") return err - } else { - s.firecrackerPid = pid } + + s.firecrackerPid = pid + s.logger.Info("successfully started the VM") return nil @@ -1690,6 +1692,8 @@ func (s *service) cleanup() error { } // monitorVMExit watches the VM and cleanup resources when it terminates. +// Comment out because unused +/* func (s *service) monitorVMExit() { // Block until the VM exits if err := s.machine.Wait(s.shimCtx); err != nil && err != context.Canceled { @@ -1700,6 +1704,7 @@ func (s *service) monitorVMExit() { s.logger.WithError(err).Error("failed to clean up the VM") } } +*/ func (s *service) createHTTPControlClient() { u := &httpunix.Transport{ @@ -1814,12 +1819,12 @@ func formCreateSnapReq(snapshotPath, memPath string) (*http.Request, error) { return req, nil } -func formPatchDriveReq(drive_id, path_on_host string) (*http.Request, error) { +func formPatchDriveReq(driveID, pathOnHost string) (*http.Request, error) { var req *http.Request data := map[string]string{ - "drive_id": drive_id, - "path_on_host": path_on_host, + "drive_id": driveID, + "path_on_host": pathOnHost, } json, err := json.Marshal(data) if err != nil { @@ -1827,7 +1832,7 @@ func formPatchDriveReq(drive_id, path_on_host string) (*http.Request, error) { return nil, err } - req, err = http.NewRequest("PATCH", fmt.Sprintf("http+unix://firecracker/drives/%s", drive_id), bytes.NewBuffer(json)) + req, err = http.NewRequest("PATCH", fmt.Sprintf("http+unix://firecracker/drives/%s", driveID), bytes.NewBuffer(json)) if err != nil { logrus.WithError(err).Error("Failed to create new HTTP request in formPauseReq") return nil, err @@ -1846,14 +1851,13 @@ func (s *service) startFirecrackerProcess() error { return err } - // TODO: Remove hardcoding and make a parameter logFilePath := fmt.Sprintf("/tmp/log_%s_after.logs", s.vmID) if err := os.RemoveAll(logFilePath); err != nil { s.logger.WithError(err).Errorf("Failed to delete %s", logFilePath) return err } - if _, err := os.OpenFile(logFilePath, os.O_RDONLY|os.O_CREATE, 0666); err != nil { + if _, err := os.OpenFile(logFilePath, os.O_RDONLY|os.O_CREATE, 0600); err != nil { s.logger.WithError(err).Errorf("Failed to create %s", logFilePath) return err } From 83bb855f048fcfab1357dadb533b9f7b7c944d23 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Wed, 15 Jul 2020 05:42:46 -0400 Subject: [PATCH 05/17] Added dialer for firecracker socket Signed-off-by: Plamen Petrov --- runtime/service.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/runtime/service.go b/runtime/service.go index 9992c1b9b..d2cabc88c 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -1883,3 +1883,28 @@ func (s *service) startFirecrackerProcess() error { return nil } + +func (s *service) dialFirecrackerSocket() error { + for { + var d net.Dialer + ctx, cancel := context.WithTimeout(context.Background(), 50*time.Millisecond) + defer cancel() + + c, err := d.DialContext(ctx, "unix", s.shimDir.FirecrackerSockPath()) + if err != nil { + if ctx.Err() != nil { + s.logger.WithError(ctx.Err()).Error("timed out while waiting for firecracker socket") + return ctx.Err() + } + + time.Sleep(1 * time.Millisecond) + continue + } + + c.Close() + + break + } + + return nil +} From b973d80fd91ee2b6f47815b16989b0fa934230a3 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Wed, 15 Jul 2020 05:55:31 -0400 Subject: [PATCH 06/17] updated firecracker to upf Signed-off-by: Plamen Petrov --- .gitmodules | 2 +- _submodules/firecracker | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 78f932a86..587dc5a49 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/opencontainers/runc [submodule "firecracker"] path = _submodules/firecracker - url = https://github.com/firecracker-microvm/firecracker.git + url = https://github.com/ustiugov/firecracker.git diff --git a/_submodules/firecracker b/_submodules/firecracker index 57f4c7ca1..9f7db23a9 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit 57f4c7ca14a31c5536f188cacb669d2cad32b9ca +Subproject commit 9f7db23a9dad6d9bd46ce0df50f449e02129fce8 From 886b20a8cf624cb5aed82b7f639f55268446bf1f Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Wed, 15 Jul 2020 06:51:15 -0400 Subject: [PATCH 07/17] Extended LoadSnapshot and Offload Signed-off-by: Plamen Petrov --- internal/common.go | 2 + internal/vm/dir.go | 6 +++ proto/firecracker.pb.go | 105 ++++++++++++++++++++++++++++++++++++++++ proto/firecracker.proto | 1 + runtime/service.go | 18 +++++-- 5 files changed, 128 insertions(+), 4 deletions(-) diff --git a/internal/common.go b/internal/common.go index 9e7a78b48..1acc5dc3c 100644 --- a/internal/common.go +++ b/internal/common.go @@ -34,6 +34,8 @@ const ( // FirecrackerVSockName is the name of the Firecracker VSock unix path used for communication // between the runtime and the agent FirecrackerVSockName = "firecracker.vsock" + // FirecrackerUPFSockName is the name of the Firecracker UPF socker + FirecrackerUPFSockName = "firecracker.upfsock" // FirecrackerLogFifoName is the name of the Firecracker VMM log FIFO FirecrackerLogFifoName = "fc-logs.fifo" // FirecrackerMetricsFifoName is the name of the Firecracker VMM metrics FIFO diff --git a/internal/vm/dir.go b/internal/vm/dir.go index 228350a35..0550a71c0 100644 --- a/internal/vm/dir.go +++ b/internal/vm/dir.go @@ -95,6 +95,12 @@ func (d Dir) FirecrackerSockRelPath() (string, error) { return relPathTo(d.FirecrackerSockPath()) } +// FirecrackerUPFSockPath returns the path to the user page faults +// socket of the firecracker process +func (d Dir) FirecrackerUPFSockPath() string { + return filepath.Join(d.RootPath(), internal.FirecrackerUPFSockName) +} + // FirecrackerVSockPath returns the path to the vsock unix socket that the runtime uses // to communicate with the VM agent. func (d Dir) FirecrackerVSockPath() string { diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index 92ab3540e..158a2db8d 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -805,6 +805,7 @@ type LoadSnapshotRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` SnapshotFilePath string `protobuf:"bytes,2,opt,name=SnapshotFilePath,json=snapshotFilePath,proto3" json:"SnapshotFilePath,omitempty"` MemFilePath string `protobuf:"bytes,3,opt,name=MemFilePath,json=memFilePath,proto3" json:"MemFilePath,omitempty"` + EnableUserPF bool `protobuf:"varint,4,opt,name=EnableUserPF,json=enableUserPF,proto3" json:"EnableUserPF,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -855,6 +856,13 @@ func (m *LoadSnapshotRequest) GetMemFilePath() string { return "" } +func (m *LoadSnapshotRequest) GetEnableUserPF() bool { + if m != nil { + return m.EnableUserPF + } + return false +} + type OffloadRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1394,6 +1402,7 @@ func init() { func init() { proto.RegisterFile("firecracker.proto", fileDescriptor_a73317e9fb8da571) } var fileDescriptor_a73317e9fb8da571 = []byte{ +<<<<<<< HEAD // 1032 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, 0x17, 0xfe, 0xa9, 0xb2, 0x93, 0xf8, 0x38, 0x76, 0x62, 0x22, 0x69, 0xd5, 0xa2, 0x08, 0x0c, 0xe1, @@ -1460,4 +1469,100 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ 0x4a, 0xef, 0xfd, 0xf0, 0xa7, 0xdd, 0xff, 0xa9, 0x7f, 0x27, 0xce, 0x59, 0x7f, 0xd7, 0x38, 0xd9, 0xfc, 0xb9, 0xaa, 0xbf, 0x22, 0xaf, 0x36, 0xf4, 0xcf, 0xf1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x28, 0xec, 0xce, 0x6b, 0x6e, 0x0a, 0x00, 0x00, +======= +<<<<<<< HEAD + // 693 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xdf, 0x4f, 0xdb, 0x48, + 0x10, 0x3e, 0x13, 0x07, 0x92, 0x31, 0xf9, 0xb5, 0x82, 0x3b, 0x0b, 0x9d, 0x90, 0x15, 0xdd, 0x71, + 0x16, 0x0f, 0x91, 0x0e, 0x5e, 0x4e, 0xf7, 0x04, 0xc4, 0x80, 0x0c, 0x75, 0x1a, 0x6d, 0x08, 0x52, + 0xfb, 0xe6, 0x3a, 0x93, 0xe0, 0x26, 0xf6, 0xa6, 0xbb, 0x6b, 0x0a, 0xff, 0x56, 0xfb, 0x9f, 0xf4, + 0x9f, 0xe9, 0x6b, 0xe5, 0x4d, 0x48, 0x9c, 0x90, 0xa6, 0x48, 0x7d, 0xea, 0x53, 0x76, 0xbf, 0xf9, + 0x66, 0xe6, 0xd3, 0x7c, 0xb3, 0x31, 0xd4, 0xfa, 0x21, 0xc7, 0x80, 0xfb, 0xc1, 0x10, 0x79, 0x63, + 0xcc, 0x99, 0x64, 0x7b, 0x86, 0x7c, 0x1c, 0xa3, 0x98, 0x5c, 0xea, 0x5f, 0x75, 0xa8, 0x34, 0x39, + 0xfa, 0x12, 0x6f, 0x3d, 0x8a, 0x1f, 0x12, 0x14, 0x92, 0x10, 0xd0, 0x6f, 0x3d, 0xd7, 0x31, 0x35, + 0x4b, 0xb3, 0x8b, 0x54, 0xbf, 0xf7, 0x5c, 0x87, 0x9c, 0x00, 0x78, 0x7e, 0x70, 0x17, 0xc6, 0xd8, + 0xec, 0x0f, 0xcc, 0x0d, 0x4b, 0xb3, 0x8d, 0x23, 0xab, 0x71, 0x31, 0x2f, 0xfe, 0x14, 0x65, 0x71, + 0x3f, 0x1c, 0x24, 0xdc, 0x97, 0x21, 0x8b, 0x29, 0x44, 0xb3, 0x1c, 0x62, 0x43, 0xe5, 0x1a, 0x79, + 0x8c, 0x23, 0x37, 0xf2, 0x07, 0xd8, 0xf6, 0xe5, 0x9d, 0x99, 0x53, 0x0d, 0x2a, 0xc3, 0x45, 0x98, + 0xec, 0x03, 0x4c, 0x98, 0xa7, 0x7c, 0x20, 0x4c, 0x5d, 0x91, 0x60, 0x38, 0x43, 0xc8, 0x31, 0x14, + 0x29, 0x63, 0xd2, 0xe1, 0xe1, 0x3d, 0x9a, 0x79, 0x25, 0x65, 0x37, 0x2b, 0x65, 0x16, 0xa4, 0x45, + 0xfe, 0x74, 0x24, 0xff, 0x81, 0xa1, 0x0e, 0x1e, 0x4b, 0x62, 0x29, 0xcc, 0x4d, 0x2b, 0x67, 0x1b, + 0x47, 0xbf, 0x67, 0xd3, 0xe6, 0x61, 0x6a, 0xf4, 0xe6, 0x54, 0x72, 0x05, 0xb5, 0x16, 0xca, 0x8f, + 0x8c, 0x0f, 0xdd, 0x58, 0x22, 0xef, 0xfb, 0x01, 0x0a, 0x73, 0x4b, 0xe5, 0xff, 0x99, 0xcd, 0x5f, + 0x26, 0xd1, 0x5a, 0xbc, 0x9c, 0x46, 0x0e, 0xa0, 0xdc, 0x64, 0xb1, 0xf4, 0xc3, 0x18, 0x79, 0x33, + 0x2d, 0x6f, 0x16, 0x2c, 0xcd, 0xce, 0xd3, 0x72, 0xb0, 0x80, 0x92, 0xff, 0xc1, 0x3c, 0x7f, 0x08, + 0xe5, 0x69, 0x5f, 0x22, 0x3f, 0x1d, 0x8d, 0x6e, 0x7c, 0x31, 0x14, 0x0e, 0x8e, 0x50, 0x62, 0xcf, + 0x2c, 0x5a, 0x9a, 0x5d, 0xa0, 0x26, 0x7e, 0x27, 0x4e, 0xfe, 0x85, 0xed, 0x2b, 0x3f, 0x1c, 0xa5, + 0xa5, 0x52, 0x2f, 0x4c, 0x50, 0x13, 0x2a, 0x35, 0xb2, 0x20, 0xdd, 0x7e, 0x9f, 0xb9, 0xa5, 0xb2, + 0x6e, 0xc2, 0x08, 0x59, 0x22, 0x3b, 0x18, 0xb0, 0xb8, 0x27, 0x4c, 0xc3, 0xd2, 0xec, 0x12, 0x2d, + 0xcb, 0x05, 0x94, 0x58, 0x60, 0xbc, 0x62, 0x83, 0x8b, 0xb0, 0xcf, 0x94, 0x7f, 0xdb, 0xca, 0x1a, + 0x63, 0x34, 0x87, 0x52, 0x97, 0x3d, 0x94, 0x3c, 0x0c, 0xc4, 0x8c, 0x55, 0x9a, 0xb8, 0x1c, 0x2d, + 0xc2, 0xf5, 0x4f, 0x1a, 0x54, 0xe7, 0x9b, 0x27, 0xc6, 0x2c, 0x16, 0xb8, 0x72, 0xf5, 0xf6, 0x01, + 0x3a, 0x2c, 0x18, 0xa2, 0x54, 0xd5, 0x36, 0x26, 0xeb, 0x20, 0x66, 0xc8, 0xb2, 0xa8, 0xdc, 0x8b, + 0x44, 0xe9, 0x2b, 0x45, 0xa5, 0xbd, 0x9a, 0x03, 0xce, 0x92, 0xb1, 0x22, 0xe5, 0x27, 0xbd, 0x82, + 0x19, 0x52, 0xff, 0x0b, 0xca, 0x6d, 0x3f, 0x11, 0xeb, 0x1f, 0x4b, 0xfd, 0x6f, 0xa8, 0x50, 0x14, + 0x49, 0xf4, 0x03, 0xda, 0x35, 0x94, 0x3a, 0x92, 0x8d, 0xd7, 0x3f, 0xbc, 0xe7, 0xd6, 0x6c, 0xac, + 0xb2, 0xa6, 0x7e, 0x00, 0xd5, 0x4b, 0x94, 0xb7, 0x9e, 0x1b, 0xf7, 0xd9, 0xba, 0xa6, 0x9f, 0x35, + 0xa8, 0x65, 0x88, 0xbf, 0xc8, 0xdc, 0x2f, 0x60, 0xa7, 0x93, 0x8a, 0xf6, 0x50, 0xfa, 0x3d, 0x5f, + 0xfa, 0xeb, 0x26, 0xb6, 0x07, 0x85, 0x27, 0xda, 0x54, 0x75, 0x21, 0x9a, 0xde, 0xeb, 0x2e, 0xfc, + 0xd1, 0x1d, 0xf7, 0xd4, 0xce, 0xfd, 0x6c, 0xa9, 0x43, 0xd8, 0xb9, 0x7c, 0xa1, 0xa4, 0xfa, 0x31, + 0xec, 0x2e, 0x71, 0xa7, 0x73, 0xcf, 0x36, 0xd0, 0x96, 0x1a, 0x7c, 0xd1, 0x16, 0x1f, 0x32, 0xd9, + 0x81, 0x7c, 0x0b, 0x65, 0xab, 0x33, 0x65, 0xe6, 0xe3, 0xf4, 0x92, 0xf6, 0x6b, 0xb6, 0xbb, 0x62, + 0xaa, 0x4f, 0x0f, 0xda, 0x5d, 0x91, 0x62, 0x1e, 0x46, 0x62, 0xea, 0x89, 0x1e, 0x61, 0x24, 0x48, + 0x15, 0x72, 0x5d, 0xd7, 0x51, 0x06, 0x94, 0x68, 0x2e, 0x71, 0x9d, 0x14, 0xb9, 0x74, 0x1d, 0x35, + 0xed, 0x12, 0xcd, 0x0d, 0x26, 0x96, 0x67, 0x6c, 0xd8, 0x5c, 0xb6, 0x81, 0x9c, 0x40, 0x4d, 0xfd, + 0x4b, 0x9e, 0x3f, 0x8c, 0x99, 0xc0, 0x36, 0x1b, 0x85, 0xc1, 0xa3, 0xb9, 0x65, 0x69, 0x76, 0xf9, + 0x88, 0x34, 0x9e, 0x45, 0x68, 0xad, 0xb7, 0x0c, 0x1d, 0xfe, 0xb3, 0xa2, 0x02, 0x29, 0x80, 0xde, + 0x7c, 0xdd, 0x7e, 0x53, 0xfd, 0x2d, 0x3d, 0x9d, 0xb9, 0x2d, 0xa7, 0xaa, 0x9d, 0x6d, 0xbd, 0xcd, + 0xab, 0x2f, 0xd4, 0xbb, 0x4d, 0xf5, 0x73, 0xfc, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x74, 0xd8, + 0x91, 0xca, 0x06, 0x00, 0x00, +======= + // 711 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x6f, 0xd3, 0x4a, + 0x14, 0x95, 0x9b, 0xa4, 0x4d, 0xae, 0xf3, 0xe9, 0xd7, 0xbe, 0x67, 0x55, 0x4f, 0x95, 0x65, 0x41, + 0x15, 0x75, 0x51, 0x89, 0x76, 0x83, 0x58, 0x51, 0x92, 0xa6, 0x72, 0x5b, 0x97, 0x68, 0xd2, 0x74, + 0xc1, 0x6e, 0xea, 0x5c, 0xa7, 0x26, 0xf6, 0x4c, 0x98, 0x19, 0x17, 0xfa, 0x2f, 0xd8, 0xf3, 0x13, + 0xd8, 0xc1, 0x1f, 0x44, 0x76, 0xbe, 0x9c, 0x50, 0x02, 0x12, 0x12, 0x12, 0xab, 0x78, 0xce, 0x9c, + 0x7b, 0xef, 0xc9, 0x99, 0x33, 0x36, 0x34, 0xfc, 0x40, 0xa0, 0x27, 0xa8, 0x37, 0x42, 0x71, 0x38, + 0x16, 0x5c, 0xf1, 0x5d, 0x5d, 0x3d, 0x8c, 0x51, 0x4e, 0x16, 0xf6, 0xe7, 0x3c, 0xd4, 0x5a, 0x02, + 0xa9, 0xc2, 0x1b, 0x97, 0xe0, 0xbb, 0x18, 0xa5, 0x32, 0x0c, 0xc8, 0xdf, 0xb8, 0x4e, 0xdb, 0xd4, + 0x2c, 0xad, 0x59, 0x22, 0xf9, 0x7b, 0xd7, 0x69, 0x1b, 0x2f, 0x01, 0x5c, 0xea, 0xdd, 0x05, 0x0c, + 0x5b, 0xfe, 0xd0, 0xdc, 0xb0, 0xb4, 0xa6, 0x7e, 0x64, 0x1d, 0x76, 0x16, 0xcd, 0x67, 0xbb, 0x9c, + 0xf9, 0xc1, 0x30, 0x16, 0x54, 0x05, 0x9c, 0x11, 0x88, 0xe6, 0x35, 0x46, 0x13, 0x6a, 0x17, 0x28, + 0x18, 0x86, 0x4e, 0x44, 0x87, 0xd8, 0xa5, 0xea, 0xce, 0xcc, 0xa5, 0x03, 0x6a, 0xa3, 0x65, 0xd8, + 0xd8, 0x03, 0x98, 0x30, 0x4f, 0xc4, 0x50, 0x9a, 0xf9, 0x94, 0x04, 0xa3, 0x39, 0x62, 0x1c, 0x43, + 0x89, 0x70, 0xae, 0xda, 0x22, 0xb8, 0x47, 0xb3, 0x90, 0x4a, 0xd9, 0xc9, 0x4a, 0x99, 0x6f, 0x92, + 0x92, 0x98, 0x3d, 0x1a, 0xcf, 0x41, 0x4f, 0x1f, 0x5c, 0x1e, 0x33, 0x25, 0xcd, 0x4d, 0x2b, 0xd7, + 0xd4, 0x8f, 0xfe, 0xcd, 0x96, 0x2d, 0xb6, 0x89, 0x3e, 0x58, 0x50, 0x8d, 0x73, 0x68, 0x5c, 0xa1, + 0x7a, 0xcf, 0xc5, 0xc8, 0x61, 0x0a, 0x85, 0x4f, 0x3d, 0x94, 0xe6, 0x56, 0x5a, 0xff, 0x7f, 0xb6, + 0x7e, 0x95, 0x44, 0x1a, 0x6c, 0xb5, 0xcc, 0xd8, 0x87, 0x6a, 0x8b, 0x33, 0x45, 0x03, 0x86, 0xa2, + 0x95, 0xb4, 0x37, 0x8b, 0x96, 0xd6, 0x2c, 0x90, 0xaa, 0xb7, 0x84, 0x1a, 0x2f, 0xc0, 0x3c, 0xfd, + 0x10, 0xa8, 0x13, 0x5f, 0xa1, 0x38, 0x09, 0xc3, 0x6b, 0x2a, 0x47, 0xb2, 0x8d, 0x21, 0x2a, 0x1c, + 0x98, 0x25, 0x4b, 0x6b, 0x16, 0x89, 0x89, 0x3f, 0xd8, 0x37, 0x9e, 0x41, 0xf9, 0x9c, 0x06, 0x61, + 0xd2, 0x2a, 0x39, 0x0b, 0x13, 0x52, 0x87, 0x2a, 0x87, 0x59, 0x90, 0x94, 0xdf, 0x66, 0x56, 0x89, + 0xac, 0xeb, 0x20, 0x42, 0x1e, 0xab, 0x1e, 0x7a, 0x9c, 0x0d, 0xa4, 0xa9, 0x5b, 0x5a, 0xb3, 0x42, + 0xaa, 0x6a, 0x09, 0xb5, 0xbf, 0x68, 0x50, 0x5f, 0xa4, 0x45, 0x8e, 0x39, 0x93, 0xf8, 0x68, 0x5c, + 0xf6, 0x00, 0x7a, 0xdc, 0x1b, 0xa1, 0x4a, 0xcf, 0x79, 0x63, 0x72, 0x84, 0x72, 0x8e, 0x18, 0x16, + 0xe8, 0x97, 0x7c, 0xd8, 0x09, 0x7c, 0x9e, 0x09, 0x82, 0x1e, 0x2e, 0xa0, 0x24, 0x2e, 0x2e, 0x2a, + 0x11, 0x78, 0x72, 0xce, 0x9a, 0x24, 0xa1, 0x16, 0x2d, 0xc3, 0xc9, 0xac, 0xd6, 0x50, 0xf0, 0x78, + 0x9c, 0x92, 0x0a, 0x93, 0x59, 0xde, 0x1c, 0xb1, 0x2f, 0xa0, 0xd2, 0x53, 0x7c, 0xbc, 0x3e, 0xdf, + 0xdf, 0x3b, 0xb0, 0xf1, 0xa8, 0x03, 0xfb, 0x50, 0x3f, 0x43, 0x75, 0xe3, 0x3a, 0xcc, 0xe7, 0x6b, + 0xfa, 0xd9, 0x5f, 0x35, 0x68, 0x64, 0x88, 0x7f, 0x89, 0x55, 0x1d, 0xd8, 0xee, 0x25, 0xa2, 0x5d, + 0x54, 0x74, 0x40, 0x15, 0x5d, 0xe7, 0xd8, 0x2e, 0x14, 0x67, 0xb4, 0xa9, 0xea, 0x62, 0x34, 0x5d, + 0xdb, 0x0e, 0xfc, 0xd7, 0x1f, 0x0f, 0xd2, 0x98, 0xfc, 0x6e, 0xab, 0x03, 0xd8, 0x3e, 0xfb, 0x45, + 0x49, 0xf6, 0x31, 0xec, 0xac, 0x70, 0xa7, 0xbe, 0x67, 0x07, 0x68, 0x2b, 0x03, 0x9e, 0x40, 0xb5, + 0x4b, 0x63, 0xb9, 0xfe, 0xfd, 0x67, 0x3f, 0x85, 0x1a, 0x41, 0x19, 0x47, 0x3f, 0xa1, 0x3d, 0xc0, + 0xce, 0xe4, 0x7e, 0xf4, 0x18, 0x1d, 0xcb, 0x3b, 0xae, 0xd6, 0xfd, 0xed, 0x03, 0xa8, 0xcf, 0x68, + 0x9d, 0x20, 0xc4, 0xcc, 0xf9, 0xd7, 0xe5, 0x0a, 0x9e, 0xa4, 0xc0, 0xc5, 0x68, 0x4e, 0x9b, 0xa6, + 0x20, 0x5a, 0x40, 0xf6, 0x27, 0x0d, 0xfe, 0xb9, 0xe4, 0x74, 0xf0, 0xc7, 0x27, 0x1b, 0x36, 0x94, + 0x4f, 0x19, 0xbd, 0x0d, 0xb1, 0x2f, 0x51, 0x74, 0x3b, 0x69, 0xf8, 0x8a, 0xa4, 0x8c, 0x19, 0x2c, + 0x71, 0xf9, 0xb5, 0xef, 0x87, 0x9c, 0x0e, 0xd6, 0xd9, 0xf7, 0x51, 0x5b, 0x7e, 0x77, 0x19, 0xdb, + 0x50, 0xb8, 0x42, 0x75, 0xd5, 0x9b, 0xb2, 0x0a, 0x2c, 0x59, 0x24, 0xa5, 0xad, 0x6e, 0x5f, 0x4e, + 0x25, 0xe7, 0xbd, 0x6e, 0x5f, 0x26, 0x98, 0x8b, 0x91, 0x9c, 0xea, 0xcb, 0x47, 0x18, 0x49, 0xa3, + 0x0e, 0xb9, 0xbe, 0xd3, 0x4e, 0xf5, 0x54, 0x48, 0x2e, 0x76, 0xda, 0x09, 0x72, 0xe6, 0xb4, 0xd3, + 0xe4, 0x57, 0x48, 0x6e, 0x38, 0xb9, 0x7e, 0x99, 0x2b, 0xb1, 0xb9, 0x7a, 0x25, 0x5e, 0x6d, 0xbd, + 0x29, 0xa4, 0x5f, 0xca, 0xdb, 0xcd, 0xf4, 0xe7, 0xf8, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, + 0x0e, 0x26, 0x48, 0x52, 0x07, 0x00, 0x00, +>>>>>>> Extended LoadSnapshot and Offload +>>>>>>> Extended LoadSnapshot and Offload } diff --git a/proto/firecracker.proto b/proto/firecracker.proto index df94a04cc..9d9d64758 100644 --- a/proto/firecracker.proto +++ b/proto/firecracker.proto @@ -113,6 +113,7 @@ message LoadSnapshotRequest { string VMID = 1; string SnapshotFilePath = 2; string MemFilePath = 3; + bool EnableUserPF = 4; } message OffloadRequest { diff --git a/runtime/service.go b/runtime/service.go index d2cabc88c..a7caca997 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -106,6 +106,13 @@ var ( _ shim.Init = NewService ) +type loadSnapReq struct { + SnapshotPath string `json:"snapshot_path"` + MemFilePath string `json:"mem_file_path"` + SendSockAddr string `json:"sock_file_path"` + EnableUserPageFaults bool `json:"enable_user_page_faults"` +} + // implements shimapi type service struct { taskManager vm.TaskManager @@ -1770,13 +1777,16 @@ func formPauseReq() (*http.Request, error) { return req, nil } -func formLoadSnapReq(snapshotPath, memPath string) (*http.Request, error) { +func formLoadSnapReq(snapshotPath, memPath, sendSockAddr string, isUpf bool) (*http.Request, error) { var req *http.Request - data := map[string]string{ - "snapshot_path": snapshotPath, - "mem_file_path": memPath, + data := loadSnapReq{ + SnapshotPath: snapshotPath, + MemFilePath: memPath, + SendSockAddr: sendSockAddr, + EnableUserPageFaults: isUpf, } + json, err := json.Marshal(data) if err != nil { logrus.WithError(err).Error("Failed to marshal json data") From 2311767db024173982c56b00bbae0be5eafdc102 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Wed, 15 Jul 2020 09:41:31 -0400 Subject: [PATCH 08/17] UPF sock pass back to orch Signed-off-by: Plamen Petrov --- firecracker-control/local.go | 2 +- firecracker-control/service.go | 2 +- proto/firecracker.pb.go | 100 +++++++++++++++++- proto/firecracker.proto | 4 + proto/service/fccontrol/ttrpc/fccontrol.pb.go | 38 ++++++- 5 files changed, 142 insertions(+), 4 deletions(-) diff --git a/firecracker-control/local.go b/firecracker-control/local.go index 37e9e6409..d9582d504 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -652,7 +652,7 @@ func (s *local) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotReq } // LoadSnapshot Loads a snapshot of a VM -func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { +func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadSnapshotResponse, error) { client, err := s.shimFirecrackerClient(ctx, req.VMID) if err != nil { return nil, err diff --git a/firecracker-control/service.go b/firecracker-control/service.go index e9dc2bf17..65b6662af 100644 --- a/firecracker-control/service.go +++ b/firecracker-control/service.go @@ -127,7 +127,7 @@ func (s *service) UpdateBalloonStats(ctx context.Context, req *proto.UpdateBallo return s.local.UpdateBalloonStats(ctx, req) } -func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { +func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadSnapshotResponse, error) { log.G(ctx).Debugf("load snapshot request: %+v", req) return s.local.LoadSnapshot(ctx, req) } diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index 158a2db8d..979b8200c 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -863,6 +863,44 @@ func (m *LoadSnapshotRequest) GetEnableUserPF() bool { return false } +type LoadSnapshotResponse struct { + SendSockPath string `protobuf:"bytes,1,opt,name=SendSockPath,json=sendSockPath,proto3" json:"SendSockPath,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LoadSnapshotResponse) Reset() { *m = LoadSnapshotResponse{} } +func (m *LoadSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*LoadSnapshotResponse) ProtoMessage() {} +func (*LoadSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_a73317e9fb8da571, []int{13} +} +func (m *LoadSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadSnapshotResponse.Unmarshal(m, b) +} +func (m *LoadSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *LoadSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadSnapshotResponse.Merge(m, src) +} +func (m *LoadSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_LoadSnapshotResponse.Size(m) +} +func (m *LoadSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LoadSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LoadSnapshotResponse proto.InternalMessageInfo + +func (m *LoadSnapshotResponse) GetSendSockPath() string { + if m != nil { + return m.SendSockPath + } + return "" +} + type OffloadRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -874,7 +912,7 @@ func (m *OffloadRequest) Reset() { *m = OffloadRequest{} } func (m *OffloadRequest) String() string { return proto.CompactTextString(m) } func (*OffloadRequest) ProtoMessage() {} func (*OffloadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{13} + return fileDescriptor_a73317e9fb8da571, []int{14} } func (m *OffloadRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OffloadRequest.Unmarshal(m, b) @@ -942,7 +980,11 @@ func (m *JailerConfig) Reset() { *m = JailerConfig{} } func (m *JailerConfig) String() string { return proto.CompactTextString(m) } func (*JailerConfig) ProtoMessage() {} func (*JailerConfig) Descriptor() ([]byte, []int) { +<<<<<<< HEAD return fileDescriptor_a73317e9fb8da571, []int{11} +======= + return fileDescriptor_a73317e9fb8da571, []int{15} +>>>>>>> UPF sock pass back to orch } func (m *JailerConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JailerConfig.Unmarshal(m, b) @@ -1389,6 +1431,7 @@ func init() { proto.RegisterType((*GetVMMetadataResponse)(nil), "GetVMMetadataResponse") proto.RegisterType((*CreateSnapshotRequest)(nil), "CreateSnapshotRequest") proto.RegisterType((*LoadSnapshotRequest)(nil), "LoadSnapshotRequest") + proto.RegisterType((*LoadSnapshotResponse)(nil), "LoadSnapshotResponse") proto.RegisterType((*OffloadRequest)(nil), "OffloadRequest") proto.RegisterType((*JailerConfig)(nil), "JailerConfig") proto.RegisterType((*UpdateBalloonRequest)(nil), "UpdateBalloonRequest") @@ -1402,6 +1445,7 @@ func init() { func init() { proto.RegisterFile("firecracker.proto", fileDescriptor_a73317e9fb8da571) } var fileDescriptor_a73317e9fb8da571 = []byte{ +<<<<<<< HEAD <<<<<<< HEAD // 1032 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, @@ -1470,6 +1514,8 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ 0xfc, 0xb9, 0xaa, 0xbf, 0x22, 0xaf, 0x36, 0xf4, 0xcf, 0xf1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x28, 0xec, 0xce, 0x6b, 0x6e, 0x0a, 0x00, 0x00, ======= +======= +>>>>>>> UPF sock pass back to orch <<<<<<< HEAD // 693 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xdf, 0x4f, 0xdb, 0x48, @@ -1564,5 +1610,57 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ 0x29, 0xa4, 0x5f, 0xca, 0xdb, 0xcd, 0xf4, 0xe7, 0xf8, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x0e, 0x26, 0x48, 0x52, 0x07, 0x00, 0x00, >>>>>>> Extended LoadSnapshot and Offload +<<<<<<< HEAD >>>>>>> Extended LoadSnapshot and Offload +======= +======= + // 733 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x4f, 0xe3, 0x46, + 0x18, 0x96, 0x49, 0x02, 0xc9, 0xeb, 0x7c, 0xba, 0xa1, 0xb5, 0x50, 0x85, 0x2c, 0xab, 0x45, 0x11, + 0x07, 0xa4, 0xc2, 0xa5, 0xe2, 0x54, 0x9a, 0x10, 0x64, 0xc0, 0x34, 0x72, 0x08, 0x87, 0xde, 0x06, + 0xfb, 0x75, 0x70, 0x63, 0xcf, 0xa4, 0x33, 0x63, 0x5a, 0xfe, 0x45, 0xef, 0xfd, 0x09, 0x7b, 0xdb, + 0xfd, 0x83, 0x2b, 0x7f, 0x24, 0x71, 0xb2, 0x6c, 0x76, 0xa5, 0x95, 0x56, 0xda, 0x53, 0x3c, 0xcf, + 0x3c, 0xef, 0xf7, 0xf3, 0x4e, 0xa0, 0xe3, 0x07, 0x1c, 0x5d, 0x4e, 0xdc, 0x19, 0xf2, 0x93, 0x39, + 0x67, 0x92, 0x1d, 0xa8, 0xf2, 0x65, 0x8e, 0x22, 0x3b, 0x98, 0x6f, 0xca, 0xd0, 0xea, 0x73, 0x24, + 0x12, 0x1f, 0x6c, 0x07, 0xff, 0x8e, 0x51, 0x48, 0x4d, 0x83, 0xf2, 0x83, 0x6d, 0x0d, 0x74, 0xc5, + 0x50, 0x7a, 0x35, 0xa7, 0xfc, 0x6c, 0x5b, 0x03, 0xed, 0x37, 0x00, 0x9b, 0xb8, 0x4f, 0x01, 0xc5, + 0xbe, 0x3f, 0xd5, 0x77, 0x0c, 0xa5, 0xa7, 0x9e, 0x1a, 0x27, 0xc3, 0x95, 0xf3, 0xc5, 0x2d, 0xa3, + 0x7e, 0x30, 0x8d, 0x39, 0x91, 0x01, 0xa3, 0x0e, 0x44, 0x4b, 0x1b, 0xad, 0x07, 0xad, 0x1b, 0xe4, + 0x14, 0x43, 0x2b, 0x22, 0x53, 0x1c, 0x11, 0xf9, 0xa4, 0x97, 0xd2, 0x00, 0xad, 0xd9, 0x3a, 0xac, + 0x1d, 0x02, 0x64, 0xcc, 0x0b, 0x3e, 0x15, 0x7a, 0x39, 0x25, 0xc1, 0x6c, 0x89, 0x68, 0x67, 0x50, + 0x73, 0x18, 0x93, 0x03, 0x1e, 0x3c, 0xa3, 0x5e, 0x49, 0x53, 0xd9, 0x2f, 0xa6, 0xb2, 0xbc, 0x74, + 0x6a, 0x7c, 0xf1, 0xa9, 0xfd, 0x0a, 0x6a, 0xfa, 0x61, 0xb3, 0x98, 0x4a, 0xa1, 0xef, 0x1a, 0xa5, + 0x9e, 0x7a, 0xfa, 0x7d, 0xd1, 0x6c, 0x75, 0xed, 0xa8, 0xde, 0x8a, 0xaa, 0x5d, 0x43, 0xe7, 0x0e, + 0xe5, 0x3f, 0x8c, 0xcf, 0x2c, 0x2a, 0x91, 0xfb, 0xc4, 0x45, 0xa1, 0xef, 0xa5, 0xf6, 0x3f, 0x16, + 0xed, 0x37, 0x49, 0x4e, 0x87, 0x6e, 0x9a, 0x69, 0x47, 0xd0, 0xec, 0x33, 0x2a, 0x49, 0x40, 0x91, + 0xf7, 0x13, 0xf7, 0x7a, 0xd5, 0x50, 0x7a, 0x15, 0xa7, 0xe9, 0xae, 0xa1, 0xda, 0x39, 0xe8, 0x97, + 0xff, 0x06, 0xf2, 0xc2, 0x97, 0xc8, 0x2f, 0xc2, 0xf0, 0x9e, 0x88, 0x99, 0x18, 0x60, 0x88, 0x12, + 0x3d, 0xbd, 0x66, 0x28, 0xbd, 0xaa, 0xa3, 0xe3, 0x47, 0xee, 0xb5, 0x5f, 0xa0, 0x7e, 0x4d, 0x82, + 0x30, 0x71, 0x95, 0xcc, 0x42, 0x87, 0xb4, 0x43, 0x8d, 0x93, 0x22, 0xe8, 0xd4, 0xff, 0x2a, 0x9c, + 0x92, 0xb4, 0xee, 0x83, 0x08, 0x59, 0x2c, 0xc7, 0xe8, 0x32, 0xea, 0x09, 0x5d, 0x35, 0x94, 0x5e, + 0xc3, 0x69, 0xca, 0x35, 0xd4, 0x7c, 0xab, 0x40, 0x7b, 0xa5, 0x16, 0x31, 0x67, 0x54, 0xe0, 0xab, + 0x72, 0x39, 0x04, 0x18, 0x33, 0x77, 0x86, 0x32, 0x9d, 0xf3, 0x4e, 0x36, 0x42, 0xb1, 0x44, 0x34, + 0x03, 0xd4, 0x5b, 0x36, 0x1d, 0x06, 0x3e, 0x2b, 0x08, 0x41, 0x0d, 0x57, 0x50, 0x22, 0x17, 0x1b, + 0x25, 0x0f, 0x5c, 0xb1, 0x64, 0x65, 0x4a, 0x68, 0x45, 0xeb, 0x70, 0x12, 0xab, 0x3f, 0xe5, 0x2c, + 0x9e, 0xa7, 0xa4, 0x4a, 0x16, 0xcb, 0x5d, 0x22, 0xe6, 0x0d, 0x34, 0xc6, 0x92, 0xcd, 0xb7, 0xeb, + 0xfb, 0xc3, 0x0e, 0xec, 0xbc, 0xda, 0x81, 0x23, 0x68, 0x5f, 0xa1, 0x7c, 0xb0, 0x2d, 0xea, 0xb3, + 0x2d, 0xfe, 0xcc, 0x77, 0x0a, 0x74, 0x0a, 0xc4, 0x6f, 0xa4, 0x55, 0x43, 0xe8, 0x8e, 0x93, 0xa4, + 0x6d, 0x94, 0xc4, 0x23, 0x92, 0x6c, 0xeb, 0xd8, 0x01, 0x54, 0x17, 0xb4, 0x3c, 0xeb, 0x6a, 0x94, + 0x9f, 0x4d, 0x0b, 0x7e, 0x98, 0xcc, 0xbd, 0x54, 0x26, 0x5f, 0xea, 0xea, 0x18, 0xba, 0x57, 0x9f, + 0x99, 0x92, 0x79, 0x06, 0xfb, 0x1b, 0xdc, 0xbc, 0xef, 0xc5, 0x00, 0xca, 0x46, 0x80, 0x9f, 0xa0, + 0x39, 0x22, 0xb1, 0xd8, 0xfe, 0xfe, 0x99, 0x3f, 0x43, 0xcb, 0x41, 0x11, 0x47, 0x9f, 0xa0, 0xbd, + 0xc0, 0x7e, 0xb6, 0x1f, 0x63, 0x4a, 0xe6, 0xe2, 0x89, 0xc9, 0x6d, 0x65, 0x1f, 0x43, 0x7b, 0x41, + 0x1b, 0x06, 0x21, 0x16, 0xe6, 0xdf, 0x16, 0x1b, 0x78, 0xa2, 0x02, 0x1b, 0xa3, 0x25, 0x2d, 0x57, + 0x41, 0xb4, 0x82, 0xcc, 0xff, 0x15, 0xf8, 0xee, 0x96, 0x11, 0xef, 0xab, 0x47, 0xd6, 0x4c, 0xa8, + 0x5f, 0x52, 0xf2, 0x18, 0xe2, 0x44, 0x20, 0x1f, 0x0d, 0x53, 0xf1, 0x55, 0x9d, 0x3a, 0x16, 0x30, + 0xf3, 0x1c, 0xba, 0xeb, 0xc9, 0xe5, 0x93, 0x31, 0xa1, 0x3e, 0x46, 0xea, 0x25, 0x1b, 0x90, 0xba, + 0xcf, 0xb2, 0xac, 0x8b, 0x02, 0x96, 0x4c, 0xe8, 0x0f, 0xdf, 0x0f, 0x19, 0xf1, 0xb6, 0xb5, 0xfe, + 0x3f, 0x65, 0xfd, 0xdd, 0xd3, 0xba, 0x50, 0xb9, 0x43, 0x79, 0x37, 0xce, 0x59, 0x15, 0x9a, 0x1c, + 0x12, 0xd3, 0xfe, 0x68, 0x22, 0xf2, 0x72, 0xcb, 0xee, 0x68, 0x22, 0x12, 0xcc, 0xc6, 0x48, 0xe4, + 0xb5, 0x95, 0x23, 0x8c, 0x84, 0xd6, 0x86, 0xd2, 0xc4, 0x1a, 0xa4, 0xb5, 0x34, 0x9c, 0x52, 0x6c, + 0x0d, 0x12, 0xe4, 0xca, 0x1a, 0xa4, 0x5b, 0xd3, 0x70, 0x4a, 0xd3, 0x6c, 0x75, 0x0b, 0xeb, 0xb4, + 0xbb, 0xb9, 0x4e, 0xbf, 0xef, 0xfd, 0x59, 0x49, 0xff, 0x65, 0x1f, 0x77, 0xd3, 0x9f, 0xb3, 0xf7, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x49, 0xe0, 0x49, 0x4d, 0x8e, 0x07, 0x00, 0x00, +>>>>>>> UPF sock pass back to orch +>>>>>>> UPF sock pass back to orch } diff --git a/proto/firecracker.proto b/proto/firecracker.proto index 9d9d64758..aee82e8bb 100644 --- a/proto/firecracker.proto +++ b/proto/firecracker.proto @@ -116,6 +116,10 @@ message LoadSnapshotRequest { bool EnableUserPF = 4; } +message LoadSnapshotResponse { + string SendSockPath = 1; +} + message OffloadRequest { string VMID = 1; } diff --git a/proto/service/fccontrol/ttrpc/fccontrol.pb.go b/proto/service/fccontrol/ttrpc/fccontrol.pb.go index d3f0028d3..44bd71eb1 100644 --- a/proto/service/fccontrol/ttrpc/fccontrol.pb.go +++ b/proto/service/fccontrol/ttrpc/fccontrol.pb.go @@ -27,6 +27,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("fccontrol.proto", fileDescriptor_b99f53e2bf82c5ef) } var fileDescriptor_b99f53e2bf82c5ef = []byte{ +<<<<<<< HEAD <<<<<<< HEAD // 357 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x3f, 0x4f, 0xf2, 0x50, @@ -53,6 +54,8 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ 0xf9, 0x95, 0xc6, 0xc5, 0xf5, 0xd0, 0xcd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x66, 0x43, 0x0c, 0x39, 0x5e, 0x03, 0x00, 0x00, ======= +======= +>>>>>>> UPF sock pass back to orch <<<<<<< HEAD // 290 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4b, 0x4e, 0xce, @@ -98,7 +101,35 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ 0x3c, 0x36, 0x8d, 0xcf, 0xd8, 0x34, 0xbe, 0x63, 0xd3, 0x78, 0xac, 0xe4, 0xaf, 0x7c, 0x5c, 0x5c, 0x99, 0x8e, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xe9, 0x16, 0xe0, 0xf9, 0x02, 0x00, 0x00, >>>>>>> Added support for creating and loading snapshots of VM. +<<<<<<< HEAD >>>>>>> Added support for creating and loading snapshots of VM. +======= +======= + // 339 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcb, 0x4f, 0xc2, 0x40, + 0x10, 0xc6, 0xe9, 0x41, 0x1e, 0xa3, 0xbc, 0x36, 0x42, 0x0c, 0x26, 0xbd, 0x78, 0x1f, 0x0c, 0x7a, + 0x33, 0x21, 0xc6, 0x17, 0x31, 0xb1, 0xd1, 0x40, 0xe4, 0xe0, 0x6d, 0x69, 0xa7, 0x68, 0x84, 0x4e, + 0x6d, 0xb7, 0x07, 0x6f, 0xde, 0xfc, 0xd7, 0x38, 0x7a, 0xf4, 0x28, 0xfd, 0x4b, 0x0c, 0xf4, 0x21, + 0x34, 0x26, 0xbd, 0x7d, 0xf3, 0x6b, 0xbf, 0x99, 0x6f, 0x77, 0x16, 0xea, 0xb6, 0x69, 0xb2, 0xa3, + 0x3c, 0x9e, 0xa1, 0xeb, 0xb1, 0xe2, 0xce, 0xe1, 0x94, 0x79, 0x3a, 0xa3, 0xee, 0xba, 0x9a, 0x04, + 0x76, 0x97, 0xe6, 0xae, 0x7a, 0x8f, 0x3f, 0x36, 0xed, 0x17, 0x8f, 0x4c, 0x4f, 0x9a, 0xaf, 0xe4, + 0x45, 0xa8, 0xf7, 0xb9, 0x03, 0xbb, 0x37, 0x7f, 0x54, 0x74, 0xa1, 0x7c, 0xe9, 0x91, 0x54, 0x34, + 0x36, 0x44, 0x03, 0x13, 0x39, 0xa4, 0xb7, 0x80, 0x7c, 0xd5, 0x69, 0x6e, 0x10, 0xdf, 0x65, 0xc7, + 0x27, 0x71, 0x0c, 0xc5, 0x91, 0x62, 0x77, 0x6c, 0x88, 0x1a, 0x46, 0x22, 0xf9, 0xb9, 0x8d, 0x51, + 0x16, 0x4c, 0xb2, 0xe0, 0xf5, 0x2a, 0x8b, 0xe8, 0x41, 0x65, 0x40, 0x6a, 0x6c, 0xdc, 0x3a, 0x36, + 0x8b, 0x26, 0xa6, 0x3a, 0xf1, 0x89, 0x4d, 0x14, 0x4f, 0xe9, 0x43, 0x75, 0xb4, 0x82, 0x06, 0x29, + 0x69, 0x49, 0x25, 0x45, 0x0b, 0xb7, 0xea, 0xbc, 0x99, 0x57, 0xd0, 0x78, 0x74, 0xad, 0x75, 0xf2, + 0xb4, 0xc5, 0x01, 0x66, 0x51, 0x5e, 0x97, 0x3e, 0x54, 0x07, 0x99, 0x14, 0x83, 0xff, 0x53, 0x64, + 0x70, 0x7c, 0x8a, 0x1e, 0x94, 0x1e, 0x64, 0xe0, 0xaf, 0xee, 0xb6, 0x8e, 0xb1, 0xca, 0x9b, 0x79, + 0x0a, 0xe5, 0x21, 0xf9, 0xc1, 0x3c, 0x5a, 0x48, 0x22, 0xf3, 0x5c, 0x67, 0xb0, 0x77, 0xc7, 0xd2, + 0x1a, 0x39, 0xd2, 0xf5, 0x9f, 0x59, 0x89, 0x7d, 0xdc, 0x2c, 0x13, 0x77, 0x2b, 0x43, 0xe3, 0x98, + 0xe7, 0x50, 0x8b, 0xd6, 0x9c, 0xda, 0xdb, 0xb8, 0x0d, 0xf2, 0x57, 0x5c, 0xba, 0xb7, 0xed, 0x19, + 0x4b, 0x4b, 0xd4, 0x31, 0x56, 0x39, 0x9e, 0x8b, 0xa3, 0xc5, 0x52, 0x2f, 0x7c, 0x2f, 0xf5, 0xc2, + 0x47, 0xa8, 0x6b, 0x8b, 0x50, 0xd7, 0xbe, 0x42, 0x5d, 0xfb, 0x09, 0x75, 0xed, 0xa9, 0x92, 0x3e, + 0xf2, 0x49, 0x71, 0x6d, 0x3a, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x3e, 0xce, 0xa8, 0xa0, 0xf8, + 0x02, 0x00, 0x00, +>>>>>>> UPF sock pass back to orch +>>>>>>> UPF sock pass back to orch } type FirecrackerService interface { @@ -120,7 +151,7 @@ type FirecrackerService interface { ======= PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) - LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) + LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadSnapshotResponse, error) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) >>>>>>> Added support for creating and loading snapshots of VM. @@ -356,6 +387,7 @@ func (c *firecrackerClient) ResumeVM(ctx context.Context, req *proto1.ResumeVMRe return &resp, nil } +<<<<<<< HEAD <<<<<<< HEAD func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { var resp empty.Empty @@ -363,6 +395,10 @@ func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.Updat ======= func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { var resp empty.Empty +======= +func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadSnapshotResponse, error) { + var resp proto1.LoadSnapshotResponse +>>>>>>> UPF sock pass back to orch if err := c.client.Call(ctx, "Firecracker", "LoadSnapshot", req, &resp); err != nil { >>>>>>> Added support for creating and loading snapshots of VM. return nil, err From e3af66cbde09e592896897d788e201d620d380d0 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Fri, 17 Jul 2020 06:16:20 -0400 Subject: [PATCH 09/17] Updated Firecracker build process Fixed typo Signed-off-by: Plamen Petrov --- Makefile | 4 +++- internal/common.go | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 667d21cde..35284cb24 100644 --- a/Makefile +++ b/Makefile @@ -281,7 +281,9 @@ demo-network: install-cni-bins $(FCNET_CONFIG) # Firecracker submodule ########################## .PHONY: firecracker -firecracker: $(FIRECRACKER_BIN) +firecracker: + docker build -t fcuvm/dev:v16_upf -f _submodules/firecracker/tools/devctr/Dockerfile.x86_64 _submodules/firecracker/ + _submodules/firecracker/tools/devtool build --release .PHONY: install-firecracker install-firecracker: firecracker diff --git a/internal/common.go b/internal/common.go index 1acc5dc3c..0f90bf868 100644 --- a/internal/common.go +++ b/internal/common.go @@ -34,7 +34,7 @@ const ( // FirecrackerVSockName is the name of the Firecracker VSock unix path used for communication // between the runtime and the agent FirecrackerVSockName = "firecracker.vsock" - // FirecrackerUPFSockName is the name of the Firecracker UPF socker + // FirecrackerUPFSockName is the name of the Firecracker UPF socket FirecrackerUPFSockName = "firecracker.upfsock" // FirecrackerLogFifoName is the name of the Firecracker VMM log FIFO FirecrackerLogFifoName = "fc-logs.fifo" From 3e6919b56c137703a6511abecc6749e7e555eef2 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 21 Jul 2020 09:53:32 -0400 Subject: [PATCH 10/17] Offload returns UPF socket As opposed to load snapshots. This is because the socket is needed for LoadSnapshot and needs to be available before it is called Signed-off-by: Plamen Petrov --- firecracker-control/local.go | 4 +- firecracker-control/service.go | 4 +- proto/firecracker.pb.go | 91 +++++++++++++++---- proto/firecracker.proto | 2 +- proto/service/fccontrol/ttrpc/fccontrol.pb.go | 50 +++++++++- 5 files changed, 127 insertions(+), 24 deletions(-) diff --git a/firecracker-control/local.go b/firecracker-control/local.go index d9582d504..42c592b14 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -652,7 +652,7 @@ func (s *local) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotReq } // LoadSnapshot Loads a snapshot of a VM -func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadSnapshotResponse, error) { +func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { client, err := s.shimFirecrackerClient(ctx, req.VMID) if err != nil { return nil, err @@ -672,7 +672,7 @@ func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest // Offload Shuts down a VM started through the firecracker go sdk and deletes // the corresponding firecracker socket. All of the other resources (shim, other sockets) // will persist. -func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { +func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*proto.OffloadResponse, error) { client, err := s.shimFirecrackerClient(ctx, req.VMID) if err != nil { return nil, err diff --git a/firecracker-control/service.go b/firecracker-control/service.go index 65b6662af..bf1fddead 100644 --- a/firecracker-control/service.go +++ b/firecracker-control/service.go @@ -127,7 +127,7 @@ func (s *service) UpdateBalloonStats(ctx context.Context, req *proto.UpdateBallo return s.local.UpdateBalloonStats(ctx, req) } -func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadSnapshotResponse, error) { +func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { log.G(ctx).Debugf("load snapshot request: %+v", req) return s.local.LoadSnapshot(ctx, req) } @@ -137,7 +137,7 @@ func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotR return s.local.CreateSnapshot(ctx, req) } -func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { +func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*proto.OffloadResponse, error) { log.G(ctx).Debugf("offload request: %+v", req) return s.local.Offload(ctx, req) } diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index 979b8200c..8d4f8daaf 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -863,38 +863,38 @@ func (m *LoadSnapshotRequest) GetEnableUserPF() bool { return false } -type LoadSnapshotResponse struct { +type OffloadResponse struct { SendSockPath string `protobuf:"bytes,1,opt,name=SendSockPath,json=sendSockPath,proto3" json:"SendSockPath,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *LoadSnapshotResponse) Reset() { *m = LoadSnapshotResponse{} } -func (m *LoadSnapshotResponse) String() string { return proto.CompactTextString(m) } -func (*LoadSnapshotResponse) ProtoMessage() {} -func (*LoadSnapshotResponse) Descriptor() ([]byte, []int) { +func (m *OffloadResponse) Reset() { *m = OffloadResponse{} } +func (m *OffloadResponse) String() string { return proto.CompactTextString(m) } +func (*OffloadResponse) ProtoMessage() {} +func (*OffloadResponse) Descriptor() ([]byte, []int) { return fileDescriptor_a73317e9fb8da571, []int{13} } -func (m *LoadSnapshotResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoadSnapshotResponse.Unmarshal(m, b) +func (m *OffloadResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OffloadResponse.Unmarshal(m, b) } -func (m *LoadSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoadSnapshotResponse.Marshal(b, m, deterministic) +func (m *OffloadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OffloadResponse.Marshal(b, m, deterministic) } -func (m *LoadSnapshotResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoadSnapshotResponse.Merge(m, src) +func (m *OffloadResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_OffloadResponse.Merge(m, src) } -func (m *LoadSnapshotResponse) XXX_Size() int { - return xxx_messageInfo_LoadSnapshotResponse.Size(m) +func (m *OffloadResponse) XXX_Size() int { + return xxx_messageInfo_OffloadResponse.Size(m) } -func (m *LoadSnapshotResponse) XXX_DiscardUnknown() { - xxx_messageInfo_LoadSnapshotResponse.DiscardUnknown(m) +func (m *OffloadResponse) XXX_DiscardUnknown() { + xxx_messageInfo_OffloadResponse.DiscardUnknown(m) } -var xxx_messageInfo_LoadSnapshotResponse proto.InternalMessageInfo +var xxx_messageInfo_OffloadResponse proto.InternalMessageInfo -func (m *LoadSnapshotResponse) GetSendSockPath() string { +func (m *OffloadResponse) GetSendSockPath() string { if m != nil { return m.SendSockPath } @@ -1431,7 +1431,7 @@ func init() { proto.RegisterType((*GetVMMetadataResponse)(nil), "GetVMMetadataResponse") proto.RegisterType((*CreateSnapshotRequest)(nil), "CreateSnapshotRequest") proto.RegisterType((*LoadSnapshotRequest)(nil), "LoadSnapshotRequest") - proto.RegisterType((*LoadSnapshotResponse)(nil), "LoadSnapshotResponse") + proto.RegisterType((*OffloadResponse)(nil), "OffloadResponse") proto.RegisterType((*OffloadRequest)(nil), "OffloadRequest") proto.RegisterType((*JailerConfig)(nil), "JailerConfig") proto.RegisterType((*UpdateBalloonRequest)(nil), "UpdateBalloonRequest") @@ -1446,6 +1446,7 @@ func init() { proto.RegisterFile("firecracker.proto", fileDescriptor_a73317e9fb8 var fileDescriptor_a73317e9fb8da571 = []byte{ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD // 1032 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, @@ -1516,6 +1517,8 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ ======= ======= >>>>>>> UPF sock pass back to orch +======= +>>>>>>> Offload returns UPF socket <<<<<<< HEAD // 693 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xdf, 0x4f, 0xdb, 0x48, @@ -1662,5 +1665,57 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ 0xbb, 0xb9, 0x4e, 0xbf, 0xef, 0xfd, 0x59, 0x49, 0xff, 0x65, 0x1f, 0x77, 0xd3, 0x9f, 0xb3, 0xf7, 0x01, 0x00, 0x00, 0xff, 0xff, 0x49, 0xe0, 0x49, 0x4d, 0x8e, 0x07, 0x00, 0x00, >>>>>>> UPF sock pass back to orch +<<<<<<< HEAD >>>>>>> UPF sock pass back to orch +======= +======= + // 734 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x4f, 0xe3, 0x46, + 0x18, 0x96, 0x49, 0x02, 0xc9, 0xeb, 0x7c, 0xba, 0xd0, 0x5a, 0xa8, 0x42, 0x96, 0xd5, 0xa2, 0x88, + 0x03, 0x52, 0x41, 0x95, 0xaa, 0x9e, 0x4a, 0x13, 0x82, 0x0c, 0x98, 0x46, 0x0e, 0xe1, 0xd0, 0xdb, + 0x60, 0xbf, 0x0e, 0x6e, 0xec, 0x99, 0x74, 0x66, 0xcc, 0x2e, 0xff, 0x62, 0xef, 0xfb, 0x13, 0xf6, + 0xb6, 0xfb, 0x07, 0x57, 0xb6, 0x13, 0xc7, 0xc9, 0x42, 0x76, 0xa5, 0x95, 0x56, 0xda, 0x53, 0x3c, + 0xcf, 0x3c, 0xef, 0xf7, 0xf3, 0x4e, 0xa0, 0xe3, 0x07, 0x1c, 0x5d, 0x4e, 0xdc, 0x29, 0xf2, 0xe3, + 0x19, 0x67, 0x92, 0xed, 0xab, 0xf2, 0x69, 0x86, 0x22, 0x3b, 0x98, 0xef, 0xca, 0xd0, 0xea, 0x71, + 0x24, 0x12, 0xef, 0x6c, 0x07, 0xff, 0x8f, 0x51, 0x48, 0x4d, 0x83, 0xf2, 0x9d, 0x6d, 0xf5, 0x75, + 0xc5, 0x50, 0xba, 0x35, 0xa7, 0xfc, 0x68, 0x5b, 0x7d, 0xed, 0x2f, 0x00, 0x9b, 0xb8, 0x0f, 0x01, + 0xc5, 0x9e, 0x3f, 0xd1, 0xb7, 0x0c, 0xa5, 0xab, 0x9e, 0x18, 0xc7, 0x83, 0xa5, 0xf3, 0xc5, 0x2d, + 0xa3, 0x7e, 0x30, 0x89, 0x39, 0x91, 0x01, 0xa3, 0x0e, 0x44, 0xb9, 0x8d, 0xd6, 0x85, 0xd6, 0x15, + 0x72, 0x8a, 0xa1, 0x15, 0x91, 0x09, 0x0e, 0x89, 0x7c, 0xd0, 0x4b, 0x69, 0x80, 0xd6, 0x74, 0x15, + 0xd6, 0x0e, 0x00, 0x32, 0xe6, 0x19, 0x9f, 0x08, 0xbd, 0x9c, 0x92, 0x60, 0x9a, 0x23, 0xda, 0x29, + 0xd4, 0x1c, 0xc6, 0x64, 0x9f, 0x07, 0x8f, 0xa8, 0x57, 0xd2, 0x54, 0xf6, 0x8a, 0xa9, 0xe4, 0x97, + 0x4e, 0x8d, 0x2f, 0x3e, 0xb5, 0x3f, 0x40, 0x4d, 0x3f, 0x6c, 0x16, 0x53, 0x29, 0xf4, 0x6d, 0xa3, + 0xd4, 0x55, 0x4f, 0x7e, 0x2c, 0x9a, 0x2d, 0xaf, 0x1d, 0xd5, 0x5b, 0x52, 0xb5, 0x4b, 0xe8, 0xdc, + 0xa0, 0x7c, 0xc5, 0xf8, 0xd4, 0xa2, 0x12, 0xb9, 0x4f, 0x5c, 0x14, 0xfa, 0x4e, 0x6a, 0xff, 0x73, + 0xd1, 0x7e, 0x9d, 0xe4, 0x74, 0xe8, 0xba, 0x99, 0x76, 0x08, 0xcd, 0x1e, 0xa3, 0x92, 0x04, 0x14, + 0x79, 0x2f, 0x71, 0xaf, 0x57, 0x0d, 0xa5, 0x5b, 0x71, 0x9a, 0xee, 0x0a, 0xaa, 0xfd, 0x09, 0xfa, + 0xf9, 0xeb, 0x40, 0x9e, 0xf9, 0x12, 0xf9, 0x59, 0x18, 0xde, 0x12, 0x31, 0x15, 0x7d, 0x0c, 0x51, + 0xa2, 0xa7, 0xd7, 0x0c, 0xa5, 0x5b, 0x75, 0x74, 0x7c, 0xe1, 0x5e, 0xfb, 0x0d, 0xea, 0x97, 0x24, + 0x08, 0x13, 0x57, 0xc9, 0x2c, 0x74, 0x48, 0x3b, 0xd4, 0x38, 0x2e, 0x82, 0x4e, 0xfd, 0xbf, 0xc2, + 0x29, 0x49, 0xeb, 0x36, 0x88, 0x90, 0xc5, 0x72, 0x84, 0x2e, 0xa3, 0x9e, 0xd0, 0x55, 0x43, 0xe9, + 0x36, 0x9c, 0xa6, 0x5c, 0x41, 0xcd, 0xf7, 0x0a, 0xb4, 0x97, 0x6a, 0x11, 0x33, 0x46, 0x05, 0x3e, + 0x2b, 0x97, 0x03, 0x80, 0x11, 0x73, 0xa7, 0x28, 0xd3, 0x39, 0x6f, 0x65, 0x23, 0x14, 0x39, 0xa2, + 0x19, 0xa0, 0x5e, 0xb3, 0xc9, 0x20, 0xf0, 0x59, 0x41, 0x08, 0x6a, 0xb8, 0x84, 0x12, 0xb9, 0xd8, + 0x28, 0x79, 0xe0, 0x8a, 0x9c, 0x95, 0x29, 0xa1, 0x15, 0xad, 0xc2, 0x49, 0xac, 0xde, 0x84, 0xb3, + 0x78, 0x96, 0x92, 0x2a, 0x59, 0x2c, 0x37, 0x47, 0xcc, 0x2b, 0x68, 0x8c, 0x24, 0x9b, 0x6d, 0xd6, + 0xf7, 0xa7, 0x1d, 0xd8, 0x7a, 0xb6, 0x03, 0x87, 0xd0, 0xbe, 0x40, 0x79, 0x67, 0x5b, 0xd4, 0x67, + 0x1b, 0xfc, 0x99, 0x1f, 0x14, 0xe8, 0x14, 0x88, 0xdf, 0x49, 0xab, 0x06, 0xb0, 0x3b, 0x4a, 0x92, + 0xb6, 0x51, 0x12, 0x8f, 0x48, 0xb2, 0xa9, 0x63, 0xfb, 0x50, 0x5d, 0xd0, 0xe6, 0x59, 0x57, 0xa3, + 0xf9, 0xd9, 0xb4, 0xe0, 0xa7, 0xf1, 0xcc, 0x4b, 0x65, 0xf2, 0xb5, 0xae, 0x8e, 0x60, 0xf7, 0xe2, + 0x0b, 0x53, 0x32, 0x4f, 0x61, 0x6f, 0x8d, 0x3b, 0xef, 0x7b, 0x31, 0x80, 0xb2, 0x16, 0xe0, 0x17, + 0x68, 0x0e, 0x49, 0x2c, 0x36, 0xbf, 0x7f, 0xe6, 0xaf, 0xd0, 0x72, 0x50, 0xc4, 0xd1, 0x67, 0x68, + 0x4f, 0xb0, 0x97, 0xed, 0xc7, 0x88, 0x92, 0x99, 0x78, 0x60, 0x72, 0x53, 0xd9, 0x47, 0xd0, 0x5e, + 0xd0, 0x06, 0x41, 0x88, 0x85, 0xf9, 0xb7, 0xc5, 0x1a, 0x9e, 0xa8, 0xc0, 0xc6, 0x28, 0xa7, 0xcd, + 0x55, 0x10, 0x2d, 0x21, 0xf3, 0xad, 0x02, 0x3f, 0x5c, 0x33, 0xe2, 0x7d, 0xf3, 0xc8, 0x9a, 0x09, + 0xf5, 0x73, 0x4a, 0xee, 0x43, 0x1c, 0x0b, 0xe4, 0xc3, 0x41, 0x2a, 0xbe, 0xaa, 0x53, 0xc7, 0x02, + 0x66, 0xfe, 0x0e, 0xad, 0x7f, 0x7c, 0x3f, 0x64, 0xc4, 0xcb, 0x87, 0x62, 0x42, 0x7d, 0x84, 0xd4, + 0x4b, 0xc4, 0x9f, 0x7a, 0xce, 0x12, 0xac, 0x8b, 0x02, 0x96, 0x0c, 0x27, 0x37, 0x7b, 0xb9, 0xeb, + 0x6f, 0x94, 0xd5, 0x27, 0x4f, 0xdb, 0x85, 0xca, 0x0d, 0xca, 0x9b, 0xd1, 0x9c, 0x55, 0xa1, 0xc9, + 0x21, 0x31, 0xed, 0x0d, 0xc7, 0x62, 0x5e, 0x69, 0xd9, 0x1d, 0x8e, 0x45, 0x82, 0xd9, 0x18, 0x89, + 0x79, 0x59, 0xe5, 0x08, 0x23, 0xa1, 0xb5, 0xa1, 0x34, 0xb6, 0xfa, 0x69, 0x19, 0x0d, 0xa7, 0x14, + 0x5b, 0xfd, 0x04, 0xb9, 0xb0, 0xfa, 0xe9, 0xc2, 0x34, 0x9c, 0xd2, 0x24, 0xdb, 0xda, 0xc2, 0x26, + 0x6d, 0xaf, 0x6f, 0xd2, 0xdf, 0x3b, 0xff, 0x56, 0xd2, 0x3f, 0xd8, 0xfb, 0xed, 0xf4, 0xe7, 0xf4, + 0x63, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xc6, 0xfb, 0xb6, 0x89, 0x07, 0x00, 0x00, +>>>>>>> Offload returns UPF socket +>>>>>>> Offload returns UPF socket } diff --git a/proto/firecracker.proto b/proto/firecracker.proto index aee82e8bb..9cf3cb068 100644 --- a/proto/firecracker.proto +++ b/proto/firecracker.proto @@ -116,7 +116,7 @@ message LoadSnapshotRequest { bool EnableUserPF = 4; } -message LoadSnapshotResponse { +message OffloadResponse { string SendSockPath = 1; } diff --git a/proto/service/fccontrol/ttrpc/fccontrol.pb.go b/proto/service/fccontrol/ttrpc/fccontrol.pb.go index 44bd71eb1..d351da6ce 100644 --- a/proto/service/fccontrol/ttrpc/fccontrol.pb.go +++ b/proto/service/fccontrol/ttrpc/fccontrol.pb.go @@ -28,6 +28,7 @@ func init() { proto.RegisterFile("fccontrol.proto", fileDescriptor_b99f53e2bf82c var fileDescriptor_b99f53e2bf82c5ef = []byte{ <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD // 357 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x3f, 0x4f, 0xf2, 0x50, @@ -56,6 +57,8 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ ======= ======= >>>>>>> UPF sock pass back to orch +======= +>>>>>>> Offload returns UPF socket <<<<<<< HEAD // 290 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4b, 0x4e, 0xce, @@ -129,7 +132,35 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ 0xf2, 0x49, 0x71, 0x6d, 0x3a, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x3e, 0xce, 0xa8, 0xa0, 0xf8, 0x02, 0x00, 0x00, >>>>>>> UPF sock pass back to orch +<<<<<<< HEAD >>>>>>> UPF sock pass back to orch +======= +======= + // 342 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4b, 0x4f, 0xfa, 0x50, + 0x10, 0xc5, 0xe9, 0xe2, 0xcf, 0x63, 0xfe, 0xf2, 0xba, 0x51, 0x62, 0x30, 0xe9, 0xc6, 0xad, 0x19, + 0x0c, 0xba, 0x34, 0xc4, 0xf8, 0x22, 0x26, 0x36, 0x1a, 0x88, 0x2c, 0xdc, 0x5d, 0xda, 0x29, 0x1a, + 0xa1, 0x53, 0xdb, 0xdb, 0x85, 0x3b, 0xe3, 0xa7, 0x63, 0xe9, 0xd2, 0xa5, 0xf4, 0x93, 0x18, 0xe8, + 0x03, 0x68, 0x4c, 0xba, 0x3b, 0xf3, 0x6b, 0xcf, 0x9c, 0xd3, 0x7b, 0x0b, 0x75, 0xdb, 0x34, 0xd9, + 0x51, 0x1e, 0x4f, 0xd1, 0xf5, 0x58, 0x71, 0xfb, 0x60, 0xc2, 0x3c, 0x99, 0x52, 0x67, 0x35, 0x8d, + 0x03, 0xbb, 0x43, 0x33, 0x57, 0xbd, 0xc7, 0x0f, 0x9b, 0xf6, 0x8b, 0x47, 0xa6, 0x27, 0xcd, 0x57, + 0xf2, 0x22, 0xd4, 0xfd, 0xfc, 0x07, 0xff, 0x6f, 0xd6, 0x54, 0x74, 0xa0, 0x7c, 0xe9, 0x91, 0x54, + 0x34, 0x32, 0x44, 0x03, 0x13, 0x39, 0xa0, 0xb7, 0x80, 0x7c, 0xd5, 0x6e, 0x6e, 0x10, 0xdf, 0x65, + 0xc7, 0x27, 0x71, 0x0c, 0xc5, 0xa1, 0x62, 0x77, 0x64, 0x88, 0x1a, 0x46, 0x22, 0x79, 0xb9, 0x85, + 0x51, 0x17, 0x4c, 0xba, 0xe0, 0xf5, 0xb2, 0x8b, 0xe8, 0x42, 0xa5, 0x4f, 0x6a, 0x64, 0xdc, 0x3a, + 0x36, 0x8b, 0x26, 0xa6, 0x3a, 0xf1, 0x89, 0x4d, 0x14, 0xa7, 0xf4, 0xa0, 0x3a, 0x5c, 0x42, 0x83, + 0x94, 0xb4, 0xa4, 0x92, 0x62, 0x0f, 0xb7, 0xe6, 0xbc, 0xcc, 0x2b, 0x68, 0x3c, 0xba, 0xd6, 0xaa, + 0x79, 0xba, 0x62, 0x1f, 0xb3, 0x28, 0x6f, 0x4b, 0x0f, 0xaa, 0xfd, 0x4c, 0x8b, 0xfe, 0xdf, 0x2d, + 0x32, 0x38, 0xfe, 0x8a, 0x2e, 0x94, 0x1e, 0x64, 0xe0, 0x2f, 0xcf, 0xb6, 0x8e, 0xb1, 0xca, 0xcb, + 0x3c, 0x85, 0xf2, 0x80, 0xfc, 0x60, 0x16, 0x5d, 0x48, 0x22, 0xf3, 0x5c, 0x67, 0xb0, 0x73, 0xc7, + 0xd2, 0x1a, 0x3a, 0xd2, 0xf5, 0x9f, 0x59, 0x89, 0x5d, 0xdc, 0x1c, 0xf3, 0xdc, 0xe7, 0x50, 0x8b, + 0xee, 0x39, 0xf5, 0xb7, 0x70, 0x1b, 0xe4, 0x6d, 0x38, 0x82, 0xd2, 0xbd, 0x6d, 0x4f, 0x59, 0x5a, + 0xa2, 0x8e, 0xb1, 0x4a, 0x3c, 0x8d, 0x35, 0x88, 0xce, 0xe5, 0xe2, 0x70, 0xbe, 0xd0, 0x0b, 0xdf, + 0x0b, 0xbd, 0xf0, 0x11, 0xea, 0xda, 0x3c, 0xd4, 0xb5, 0xaf, 0x50, 0xd7, 0x7e, 0x42, 0x5d, 0x7b, + 0xaa, 0xa4, 0xff, 0xf7, 0xb8, 0xb8, 0x8a, 0x38, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x39, + 0x1c, 0x7a, 0xf3, 0x02, 0x00, 0x00, +>>>>>>> Offload returns UPF socket +>>>>>>> Offload returns UPF socket } type FirecrackerService interface { @@ -151,11 +182,18 @@ type FirecrackerService interface { ======= PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) - LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadSnapshotResponse, error) + LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) +<<<<<<< HEAD Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) >>>>>>> Added support for creating and loading snapshots of VM. +<<<<<<< HEAD >>>>>>> Added support for creating and loading snapshots of VM. +======= +======= + Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) +>>>>>>> Offload returns UPF socket +>>>>>>> Offload returns UPF socket } func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc FirecrackerService) { @@ -387,6 +425,7 @@ func (c *firecrackerClient) ResumeVM(ctx context.Context, req *proto1.ResumeVMRe return &resp, nil } +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { @@ -399,6 +438,10 @@ func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSn func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadSnapshotResponse, error) { var resp proto1.LoadSnapshotResponse >>>>>>> UPF sock pass back to orch +======= +func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { + var resp empty.Empty +>>>>>>> Offload returns UPF socket if err := c.client.Call(ctx, "Firecracker", "LoadSnapshot", req, &resp); err != nil { >>>>>>> Added support for creating and loading snapshots of VM. return nil, err @@ -420,6 +463,7 @@ func (c *firecrackerClient) CreateSnapshot(ctx context.Context, req *proto1.Crea return &resp, nil } +<<<<<<< HEAD <<<<<<< HEAD func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) { var resp empty.Empty @@ -427,6 +471,10 @@ func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1. ======= func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) { var resp empty.Empty +======= +func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) { + var resp proto1.OffloadResponse +>>>>>>> Offload returns UPF socket if err := c.client.Call(ctx, "Firecracker", "Offload", req, &resp); err != nil { >>>>>>> Added support for creating and loading snapshots of VM. return nil, err From 82029dcb0f3fa2cc4ad742fac5c7abce5c0ad0c8 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Mon, 27 Jul 2020 00:45:33 -0600 Subject: [PATCH 11/17] Update firecracker Signed-off-by: Plamen Petrov --- _submodules/firecracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_submodules/firecracker b/_submodules/firecracker index 9f7db23a9..eae0867b9 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit 9f7db23a9dad6d9bd46ce0df50f449e02129fce8 +Subproject commit eae0867b960fc924fffa98661e62b2171dd21412 From ffdaba412b0470565f97b3d6f0570518ce9d0572 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 4 Aug 2020 02:17:17 -0600 Subject: [PATCH 12/17] *Updated Firecracker and return PID *Removed patch drive from LoadSnapshot *Now return the Firecracker PID in CreateVM's and LoadSnapshot's reponse *Now return the path to the UPF socket in CreateVM instead of Offload Signed-off-by: Plamen Petrov --- _submodules/firecracker | 2 +- firecracker-control/local.go | 4 +- firecracker-control/service.go | 4 +- go.sum | 2 + proto/firecracker.pb.go | 111 ++++++++++++++---- proto/firecracker.proto | 6 +- proto/service/fccontrol/fccontrol.proto | 9 ++ proto/service/fccontrol/ttrpc/fccontrol.pb.go | 50 +++++++- runtime/service.go | 27 +---- 9 files changed, 162 insertions(+), 53 deletions(-) diff --git a/_submodules/firecracker b/_submodules/firecracker index eae0867b9..a0187963b 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit eae0867b960fc924fffa98661e62b2171dd21412 +Subproject commit a0187963b3624b3958d39f95e6a4c1430a8c2b31 diff --git a/firecracker-control/local.go b/firecracker-control/local.go index 42c592b14..71605ff68 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -652,7 +652,7 @@ func (s *local) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotReq } // LoadSnapshot Loads a snapshot of a VM -func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { +func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadResponse, error) { client, err := s.shimFirecrackerClient(ctx, req.VMID) if err != nil { return nil, err @@ -672,7 +672,7 @@ func (s *local) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest // Offload Shuts down a VM started through the firecracker go sdk and deletes // the corresponding firecracker socket. All of the other resources (shim, other sockets) // will persist. -func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*proto.OffloadResponse, error) { +func (s *local) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { client, err := s.shimFirecrackerClient(ctx, req.VMID) if err != nil { return nil, err diff --git a/firecracker-control/service.go b/firecracker-control/service.go index bf1fddead..32f2d5fde 100644 --- a/firecracker-control/service.go +++ b/firecracker-control/service.go @@ -127,7 +127,7 @@ func (s *service) UpdateBalloonStats(ctx context.Context, req *proto.UpdateBallo return s.local.UpdateBalloonStats(ctx, req) } -func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*empty.Empty, error) { +func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadResponse, error) { log.G(ctx).Debugf("load snapshot request: %+v", req) return s.local.LoadSnapshot(ctx, req) } @@ -137,7 +137,7 @@ func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotR return s.local.CreateSnapshot(ctx, req) } -func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*proto.OffloadResponse, error) { +func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { log.G(ctx).Debugf("offload request: %+v", req) return s.local.Offload(ctx, req) } diff --git a/go.sum b/go.sum index 30e7fc734..823b4b8dd 100644 --- a/go.sum +++ b/go.sum @@ -1084,6 +1084,8 @@ golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c h1:Jt8nybBNSGn80qEV8fQLwCa golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1 h1:rD1FcWVsRaMY+l8biE9jbWP5MS/CJJ/90a9TMkMgNrM= golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d h1:szSOL78iTCl0LF1AMjhSWJj8tIM0KixlUUnBtYXsmd8= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= <<<<<<< HEAD diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index 8d4f8daaf..ecdf99633 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -207,6 +207,8 @@ type CreateVMResponse struct { LogFifoPath string `protobuf:"bytes,3,opt,name=LogFifoPath,json=logFifoPath,proto3" json:"LogFifoPath,omitempty"` MetricsFifoPath string `protobuf:"bytes,4,opt,name=MetricsFifoPath,json=metricsFifoPath,proto3" json:"MetricsFifoPath,omitempty"` CgroupPath string `protobuf:"bytes,5,opt,name=CgroupPath,json=cgroupPath,proto3" json:"CgroupPath,omitempty"` + UPFSockPath string `protobuf:"bytes,6,opt,name=UPFSockPath,json=uPFSockPath,proto3" json:"UPFSockPath,omitempty"` + FirecrackerPID string `protobuf:"bytes,7,opt,name=FirecrackerPID,json=firecrackerPID,proto3" json:"FirecrackerPID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -271,6 +273,7 @@ func (m *CreateVMResponse) GetCgroupPath() string { return "" } +<<<<<<< HEAD type PauseVMRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -305,10 +308,16 @@ var xxx_messageInfo_PauseVMRequest proto.InternalMessageInfo func (m *PauseVMRequest) GetVMID() string { if m != nil { return m.VMID +======= +func (m *CreateVMResponse) GetUPFSockPath() string { + if m != nil { + return m.UPFSockPath +>>>>>>> *Updated Firecracker and return PID } return "" } +<<<<<<< HEAD type ResumeVMRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -343,6 +352,11 @@ var xxx_messageInfo_ResumeVMRequest proto.InternalMessageInfo func (m *ResumeVMRequest) GetVMID() string { if m != nil { return m.VMID +======= +func (m *CreateVMResponse) GetFirecrackerPID() string { + if m != nil { + return m.FirecrackerPID +>>>>>>> *Updated Firecracker and return PID } return "" } @@ -863,40 +877,40 @@ func (m *LoadSnapshotRequest) GetEnableUserPF() bool { return false } -type OffloadResponse struct { - SendSockPath string `protobuf:"bytes,1,opt,name=SendSockPath,json=sendSockPath,proto3" json:"SendSockPath,omitempty"` +type LoadResponse struct { + FirecrackerPID string `protobuf:"bytes,1,opt,name=FirecrackerPID,json=firecrackerPID,proto3" json:"FirecrackerPID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *OffloadResponse) Reset() { *m = OffloadResponse{} } -func (m *OffloadResponse) String() string { return proto.CompactTextString(m) } -func (*OffloadResponse) ProtoMessage() {} -func (*OffloadResponse) Descriptor() ([]byte, []int) { +func (m *LoadResponse) Reset() { *m = LoadResponse{} } +func (m *LoadResponse) String() string { return proto.CompactTextString(m) } +func (*LoadResponse) ProtoMessage() {} +func (*LoadResponse) Descriptor() ([]byte, []int) { return fileDescriptor_a73317e9fb8da571, []int{13} } -func (m *OffloadResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OffloadResponse.Unmarshal(m, b) +func (m *LoadResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LoadResponse.Unmarshal(m, b) } -func (m *OffloadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OffloadResponse.Marshal(b, m, deterministic) +func (m *LoadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LoadResponse.Marshal(b, m, deterministic) } -func (m *OffloadResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_OffloadResponse.Merge(m, src) +func (m *LoadResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LoadResponse.Merge(m, src) } -func (m *OffloadResponse) XXX_Size() int { - return xxx_messageInfo_OffloadResponse.Size(m) +func (m *LoadResponse) XXX_Size() int { + return xxx_messageInfo_LoadResponse.Size(m) } -func (m *OffloadResponse) XXX_DiscardUnknown() { - xxx_messageInfo_OffloadResponse.DiscardUnknown(m) +func (m *LoadResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LoadResponse.DiscardUnknown(m) } -var xxx_messageInfo_OffloadResponse proto.InternalMessageInfo +var xxx_messageInfo_LoadResponse proto.InternalMessageInfo -func (m *OffloadResponse) GetSendSockPath() string { +func (m *LoadResponse) GetFirecrackerPID() string { if m != nil { - return m.SendSockPath + return m.FirecrackerPID } return "" } @@ -1431,7 +1445,7 @@ func init() { proto.RegisterType((*GetVMMetadataResponse)(nil), "GetVMMetadataResponse") proto.RegisterType((*CreateSnapshotRequest)(nil), "CreateSnapshotRequest") proto.RegisterType((*LoadSnapshotRequest)(nil), "LoadSnapshotRequest") - proto.RegisterType((*OffloadResponse)(nil), "OffloadResponse") + proto.RegisterType((*LoadResponse)(nil), "LoadResponse") proto.RegisterType((*OffloadRequest)(nil), "OffloadRequest") proto.RegisterType((*JailerConfig)(nil), "JailerConfig") proto.RegisterType((*UpdateBalloonRequest)(nil), "UpdateBalloonRequest") @@ -1447,6 +1461,7 @@ func init() { proto.RegisterFile("firecracker.proto", fileDescriptor_a73317e9fb8 var fileDescriptor_a73317e9fb8da571 = []byte{ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD // 1032 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, @@ -1519,6 +1534,8 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ >>>>>>> UPF sock pass back to orch ======= >>>>>>> Offload returns UPF socket +======= +>>>>>>> *Updated Firecracker and return PID <<<<<<< HEAD // 693 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xdf, 0x4f, 0xdb, 0x48, @@ -1717,5 +1734,59 @@ var fileDescriptor_a73317e9fb8da571 = []byte{ 0x6d, 0xaf, 0x6f, 0xd2, 0xdf, 0x3b, 0xff, 0x56, 0xd2, 0x3f, 0xd8, 0xfb, 0xed, 0xf4, 0xe7, 0xf4, 0x63, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xc6, 0xfb, 0xb6, 0x89, 0x07, 0x00, 0x00, >>>>>>> Offload returns UPF socket +<<<<<<< HEAD >>>>>>> Offload returns UPF socket +======= +======= + // 753 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xcd, 0x6e, 0xeb, 0x44, + 0x14, 0x96, 0x9b, 0x9f, 0x26, 0xc7, 0xf9, 0x35, 0x2d, 0x58, 0x57, 0xe8, 0xca, 0xb2, 0x2e, 0x57, + 0xd1, 0x5d, 0x54, 0xe2, 0x56, 0x42, 0x88, 0x15, 0x25, 0x6e, 0x2a, 0xb7, 0x75, 0x89, 0x9c, 0xa6, + 0x0b, 0x76, 0x53, 0xe7, 0x38, 0x35, 0xb1, 0x3d, 0x61, 0x66, 0x5c, 0xe8, 0x5b, 0xb0, 0xe7, 0x11, + 0x58, 0xf2, 0x7a, 0x2c, 0xd0, 0x8c, 0x13, 0xc7, 0x49, 0xdb, 0x80, 0x84, 0x84, 0xc4, 0x2a, 0x9e, + 0x6f, 0xbe, 0xf3, 0xff, 0x9d, 0x09, 0xf4, 0xc3, 0x88, 0x61, 0xc0, 0x48, 0xb0, 0x40, 0x76, 0xb2, + 0x64, 0x54, 0xd0, 0x37, 0xba, 0x78, 0x5a, 0x22, 0xcf, 0x0f, 0xf6, 0xef, 0x55, 0xe8, 0x0e, 0x19, + 0x12, 0x81, 0x77, 0x9e, 0x8f, 0x3f, 0x65, 0xc8, 0x85, 0x61, 0x40, 0xf5, 0xce, 0x73, 0x1d, 0x53, + 0xb3, 0xb4, 0x41, 0xd3, 0xaf, 0x3e, 0x7a, 0xae, 0x63, 0x7c, 0x0b, 0xe0, 0x91, 0xe0, 0x21, 0x4a, + 0x71, 0x18, 0xce, 0xcd, 0x03, 0x4b, 0x1b, 0xe8, 0x1f, 0xad, 0x93, 0xd1, 0xc6, 0xf9, 0xfa, 0x96, + 0xa6, 0x61, 0x34, 0xcf, 0x18, 0x11, 0x11, 0x4d, 0x7d, 0x48, 0x0a, 0x1b, 0x63, 0x00, 0xdd, 0x2b, + 0x64, 0x29, 0xc6, 0x6e, 0x42, 0xe6, 0x38, 0x26, 0xe2, 0xc1, 0xac, 0xa8, 0x00, 0xdd, 0xc5, 0x36, + 0x6c, 0xbc, 0x05, 0xc8, 0x99, 0x67, 0x6c, 0xce, 0xcd, 0xaa, 0x22, 0xc1, 0xa2, 0x40, 0x8c, 0x53, + 0x68, 0xfa, 0x94, 0x0a, 0x87, 0x45, 0x8f, 0x68, 0xd6, 0x54, 0x2a, 0xc7, 0xe5, 0x54, 0x8a, 0x4b, + 0xbf, 0xc9, 0xd6, 0x9f, 0xc6, 0xd7, 0xa0, 0xab, 0x0f, 0x8f, 0x66, 0xa9, 0xe0, 0x66, 0xdd, 0xaa, + 0x0c, 0xf4, 0x8f, 0x9f, 0x96, 0xcd, 0x36, 0xd7, 0xbe, 0x3e, 0xdb, 0x50, 0x8d, 0x4b, 0xe8, 0xdf, + 0xa0, 0xf8, 0x99, 0xb2, 0x85, 0x9b, 0x0a, 0x64, 0x21, 0x09, 0x90, 0x9b, 0x87, 0xca, 0xfe, 0xf3, + 0xb2, 0xfd, 0x2e, 0xc9, 0xef, 0xa7, 0xbb, 0x66, 0xc6, 0x7b, 0xe8, 0x0c, 0x69, 0x2a, 0x48, 0x94, + 0x22, 0x1b, 0x4a, 0xf7, 0x66, 0xc3, 0xd2, 0x06, 0x35, 0xbf, 0x13, 0x6c, 0xa1, 0xc6, 0x37, 0x60, + 0x9e, 0xff, 0x12, 0x89, 0xb3, 0x50, 0x20, 0x3b, 0x8b, 0xe3, 0x5b, 0xc2, 0x17, 0xdc, 0xc1, 0x18, + 0x05, 0xce, 0xcc, 0xa6, 0xa5, 0x0d, 0x1a, 0xbe, 0x89, 0xaf, 0xdc, 0x1b, 0x5f, 0x42, 0xeb, 0x92, + 0x44, 0xb1, 0x74, 0x25, 0x67, 0x61, 0x82, 0xea, 0x50, 0xfb, 0xa4, 0x0c, 0xfa, 0xad, 0x1f, 0x4b, + 0x27, 0x99, 0xd6, 0x6d, 0x94, 0x20, 0xcd, 0xc4, 0x04, 0x03, 0x9a, 0xce, 0xb8, 0xa9, 0x5b, 0xda, + 0xa0, 0xed, 0x77, 0xc4, 0x16, 0x6a, 0xff, 0xa9, 0x41, 0x6f, 0xa3, 0x16, 0xbe, 0xa4, 0x29, 0xc7, + 0x17, 0xe5, 0xf2, 0x16, 0x60, 0x42, 0x83, 0x05, 0x0a, 0x35, 0xe7, 0x83, 0x7c, 0x84, 0xbc, 0x40, + 0x0c, 0x0b, 0xf4, 0x6b, 0x3a, 0x1f, 0x45, 0x21, 0x2d, 0x09, 0x41, 0x8f, 0x37, 0x90, 0x94, 0x8b, + 0x87, 0x82, 0x45, 0x01, 0x2f, 0x58, 0xb9, 0x12, 0xba, 0xc9, 0x36, 0x2c, 0x63, 0x0d, 0xe7, 0x8c, + 0x66, 0x4b, 0x45, 0xaa, 0xe5, 0xb1, 0x82, 0x02, 0x91, 0xb1, 0xa6, 0xe3, 0x91, 0x4c, 0x47, 0x11, + 0xea, 0x79, 0xac, 0x6c, 0x03, 0xc9, 0xf2, 0x4b, 0x73, 0x1c, 0xbb, 0x8e, 0x79, 0xa8, 0x48, 0x9d, + 0x70, 0x0b, 0xb5, 0xaf, 0xa0, 0x3d, 0x11, 0x74, 0xb9, 0x7f, 0x53, 0x9e, 0xf7, 0xf2, 0xe0, 0xc5, + 0x5e, 0xbe, 0x87, 0xde, 0x05, 0x8a, 0x3b, 0xcf, 0x4d, 0x43, 0xba, 0xc7, 0x9f, 0xfd, 0x87, 0x06, + 0xfd, 0x12, 0xf1, 0xff, 0xd1, 0x74, 0x7b, 0x04, 0x47, 0x13, 0x99, 0xb4, 0x87, 0x82, 0xcc, 0x88, + 0x20, 0xfb, 0x3a, 0xf6, 0x06, 0x1a, 0x6b, 0xda, 0x2a, 0xeb, 0x46, 0xb2, 0x3a, 0xdb, 0x2e, 0x7c, + 0x36, 0x5d, 0xce, 0x94, 0xe0, 0xfe, 0xad, 0xab, 0x0f, 0x70, 0x74, 0xf1, 0x0f, 0x53, 0xb2, 0x4f, + 0xe1, 0x78, 0x87, 0xbb, 0xea, 0x7b, 0x39, 0x80, 0xb6, 0x13, 0xe0, 0x1d, 0x74, 0xc6, 0x24, 0xe3, + 0xfb, 0x5f, 0x52, 0xfb, 0x0b, 0xe8, 0xfa, 0xc8, 0xb3, 0xe4, 0x6f, 0x68, 0x4f, 0x70, 0x9c, 0x6f, + 0xda, 0x24, 0x25, 0x4b, 0xfe, 0x40, 0xc5, 0xbe, 0xb2, 0x3f, 0x40, 0x6f, 0x4d, 0x1b, 0x45, 0x31, + 0x96, 0xe6, 0xdf, 0xe3, 0x3b, 0xb8, 0x54, 0x81, 0x87, 0x49, 0x41, 0x5b, 0xa9, 0x20, 0xd9, 0x40, + 0xf6, 0x6f, 0x1a, 0x7c, 0x72, 0x4d, 0xc9, 0xec, 0x3f, 0x8f, 0x6c, 0xd8, 0xd0, 0x3a, 0x4f, 0xc9, + 0x7d, 0x8c, 0x53, 0x8e, 0x6c, 0x3c, 0x52, 0xe2, 0x6b, 0xf8, 0x2d, 0x2c, 0x61, 0xf6, 0x57, 0xd0, + 0x92, 0xc9, 0x15, 0x13, 0x79, 0xbe, 0xbc, 0xda, 0x8b, 0xcb, 0xfb, 0x0e, 0x3a, 0xdf, 0x87, 0x61, + 0xac, 0x4c, 0x5f, 0x6f, 0xfb, 0xaf, 0xda, 0xf6, 0xeb, 0x69, 0x1c, 0x41, 0xed, 0x06, 0xc5, 0xcd, + 0x64, 0xc5, 0xaa, 0xa5, 0xf2, 0x20, 0x4d, 0x87, 0xe3, 0x29, 0x5f, 0x95, 0x5a, 0x0d, 0xc6, 0x53, + 0x2e, 0x31, 0x0f, 0x13, 0xbe, 0xaa, 0xab, 0x9a, 0x60, 0xc2, 0x8d, 0x1e, 0x54, 0xa6, 0xae, 0xa3, + 0xea, 0x68, 0xfb, 0x95, 0xcc, 0x75, 0x24, 0x72, 0xe1, 0x3a, 0x6a, 0x63, 0xda, 0x7e, 0x65, 0x9e, + 0xaf, 0x6d, 0x69, 0x95, 0xea, 0xbb, 0xab, 0xf4, 0xdd, 0xe1, 0x0f, 0x35, 0xf5, 0x5f, 0x7d, 0x5f, + 0x57, 0x3f, 0xa7, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x76, 0x42, 0x3f, 0xd4, 0x07, 0x00, + 0x00, +>>>>>>> *Updated Firecracker and return PID +>>>>>>> *Updated Firecracker and return PID } diff --git a/proto/firecracker.proto b/proto/firecracker.proto index 9cf3cb068..e2304d35c 100644 --- a/proto/firecracker.proto +++ b/proto/firecracker.proto @@ -49,6 +49,8 @@ message CreateVMResponse { string LogFifoPath = 3; string MetricsFifoPath = 4; string CgroupPath = 5; + string UPFSockPath = 6; + string FirecrackerPID = 7; } message PauseVMRequest { @@ -116,8 +118,8 @@ message LoadSnapshotRequest { bool EnableUserPF = 4; } -message OffloadResponse { - string SendSockPath = 1; +message LoadResponse { + string FirecrackerPID = 1; } message OffloadRequest { diff --git a/proto/service/fccontrol/fccontrol.proto b/proto/service/fccontrol/fccontrol.proto index 8306e7ca3..be4a539a3 100644 --- a/proto/service/fccontrol/fccontrol.proto +++ b/proto/service/fccontrol/fccontrol.proto @@ -42,4 +42,13 @@ service Firecracker { // Updates a balloon device statistics polling interval. rpc UpdateBalloonStats(UpdateBalloonStatsRequest) returns(google.protobuf.Empty); + + // Loads VM from snapshot + rpc LoadSnapshot(LoadSnapshotRequest) returns (LoadResponse); + + // Make a snapshot of a VM + rpc CreateSnapshot(CreateSnapshotRequest) returns (google.protobuf.Empty); + + // Offload a snapshotted VM + rpc Offload(OffloadRequest) returns (google.protobuf.Empty); } diff --git a/proto/service/fccontrol/ttrpc/fccontrol.pb.go b/proto/service/fccontrol/ttrpc/fccontrol.pb.go index d351da6ce..cb14b9ab9 100644 --- a/proto/service/fccontrol/ttrpc/fccontrol.pb.go +++ b/proto/service/fccontrol/ttrpc/fccontrol.pb.go @@ -29,6 +29,7 @@ func init() { proto.RegisterFile("fccontrol.proto", fileDescriptor_b99f53e2bf82c var fileDescriptor_b99f53e2bf82c5ef = []byte{ <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD <<<<<<< HEAD // 357 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x3f, 0x4f, 0xf2, 0x50, @@ -59,6 +60,8 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ >>>>>>> UPF sock pass back to orch ======= >>>>>>> Offload returns UPF socket +======= +>>>>>>> *Updated Firecracker and return PID <<<<<<< HEAD // 290 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4b, 0x4e, 0xce, @@ -160,7 +163,35 @@ var fileDescriptor_b99f53e2bf82c5ef = []byte{ 0xaa, 0xa4, 0xff, 0xf7, 0xb8, 0xb8, 0x8a, 0x38, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x39, 0x1c, 0x7a, 0xf3, 0x02, 0x00, 0x00, >>>>>>> Offload returns UPF socket +<<<<<<< HEAD >>>>>>> Offload returns UPF socket +======= +======= + // 338 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4b, 0x4f, 0xfa, 0x50, + 0x10, 0xc5, 0x69, 0xf2, 0x0f, 0x8f, 0xf9, 0xcb, 0xeb, 0x46, 0x89, 0xc1, 0xa4, 0x1b, 0xf7, 0x83, + 0x01, 0xd7, 0xc4, 0xf8, 0x22, 0x26, 0x36, 0x1a, 0x88, 0x2c, 0xdc, 0x5d, 0xda, 0x29, 0x1a, 0xa1, + 0x53, 0xdb, 0xdb, 0x85, 0x3b, 0x3f, 0x1e, 0x4b, 0x97, 0x2e, 0xa5, 0x5f, 0x44, 0x43, 0x5f, 0x42, + 0x63, 0xd2, 0xdd, 0x99, 0x5f, 0x7b, 0x66, 0xce, 0xbd, 0x73, 0xa1, 0x69, 0x9b, 0x26, 0x3b, 0xca, + 0xe3, 0x05, 0xba, 0x1e, 0x2b, 0xee, 0x1e, 0xcd, 0x99, 0xe7, 0x0b, 0xea, 0x45, 0xd5, 0x2c, 0xb0, + 0x7b, 0xb4, 0x74, 0xd5, 0x5b, 0xf2, 0xb1, 0x6d, 0x3f, 0x7b, 0x64, 0x7a, 0xd2, 0x7c, 0x21, 0x2f, + 0x46, 0xfd, 0xef, 0x7f, 0xf0, 0xff, 0xfa, 0x97, 0x8a, 0x1e, 0x54, 0x2f, 0x3c, 0x92, 0x8a, 0xa6, + 0x86, 0x68, 0x61, 0x2a, 0xc7, 0xf4, 0x1a, 0x90, 0xaf, 0xba, 0xed, 0x2d, 0xe2, 0xbb, 0xec, 0xf8, + 0x24, 0x4e, 0xa0, 0x3c, 0x51, 0xec, 0x4e, 0x0d, 0xd1, 0xc0, 0x58, 0xa4, 0x3f, 0x77, 0x30, 0xce, + 0x82, 0x69, 0x16, 0xbc, 0xda, 0x64, 0x11, 0x7d, 0xa8, 0x8d, 0x48, 0x4d, 0x8d, 0x1b, 0xc7, 0x66, + 0xd1, 0xc6, 0x4c, 0xa7, 0x3e, 0xb1, 0x8d, 0x92, 0x29, 0x43, 0xa8, 0x4f, 0x36, 0xd0, 0x20, 0x25, + 0x2d, 0xa9, 0xa4, 0x38, 0xc0, 0x9d, 0xba, 0x68, 0xe6, 0x25, 0xb4, 0x1e, 0x5c, 0x2b, 0x4a, 0x9e, + 0xb5, 0x38, 0xc4, 0x3c, 0x2a, 0xea, 0x32, 0x84, 0xfa, 0x28, 0x97, 0x62, 0xf4, 0x77, 0x8a, 0x1c, + 0x4e, 0x4e, 0xd1, 0x87, 0xca, 0xbd, 0x0c, 0xfc, 0xcd, 0xdd, 0x36, 0x31, 0x51, 0x45, 0x33, 0x4f, + 0xa1, 0x3a, 0x26, 0x3f, 0x58, 0xc6, 0x0b, 0x49, 0x65, 0x91, 0x6b, 0x00, 0x7b, 0xb7, 0x2c, 0xad, + 0x89, 0x23, 0x5d, 0xff, 0x89, 0x95, 0xd8, 0xc7, 0xed, 0x32, 0x75, 0xd7, 0x23, 0x9a, 0xc5, 0x3b, + 0x83, 0x46, 0xbc, 0xde, 0xcc, 0xd6, 0xc1, 0x5d, 0x50, 0xbc, 0xda, 0xca, 0x9d, 0x6d, 0x2f, 0x58, + 0x5a, 0xa2, 0x89, 0x89, 0x2a, 0xf0, 0x9c, 0x1f, 0xaf, 0xd6, 0x7a, 0xe9, 0x73, 0xad, 0x97, 0xde, + 0x43, 0x5d, 0x5b, 0x85, 0xba, 0xf6, 0x11, 0xea, 0xda, 0x57, 0xa8, 0x6b, 0x8f, 0xb5, 0xec, 0x71, + 0xcf, 0xca, 0x91, 0x69, 0xf0, 0x13, 0x00, 0x00, 0xff, 0xff, 0x85, 0xaf, 0x02, 0x25, 0xf0, 0x02, + 0x00, 0x00, +>>>>>>> *Updated Firecracker and return PID +>>>>>>> *Updated Firecracker and return PID } type FirecrackerService interface { @@ -182,8 +213,9 @@ type FirecrackerService interface { ======= PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) - LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) + LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadResponse, error) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) +<<<<<<< HEAD <<<<<<< HEAD Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) >>>>>>> Added support for creating and loading snapshots of VM. @@ -193,7 +225,13 @@ type FirecrackerService interface { ======= Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) >>>>>>> Offload returns UPF socket +<<<<<<< HEAD >>>>>>> Offload returns UPF socket +======= +======= + Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) +>>>>>>> *Updated Firecracker and return PID +>>>>>>> *Updated Firecracker and return PID } func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc FirecrackerService) { @@ -428,6 +466,7 @@ func (c *firecrackerClient) ResumeVM(ctx context.Context, req *proto1.ResumeVMRe <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { var resp empty.Empty if err := c.client.Call(ctx, "Firecracker", "UpdateBalloon", req, &resp); err != nil { @@ -442,6 +481,10 @@ func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSn func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { var resp empty.Empty >>>>>>> Offload returns UPF socket +======= +func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadResponse, error) { + var resp proto1.LoadResponse +>>>>>>> *Updated Firecracker and return PID if err := c.client.Call(ctx, "Firecracker", "LoadSnapshot", req, &resp); err != nil { >>>>>>> Added support for creating and loading snapshots of VM. return nil, err @@ -463,6 +506,7 @@ func (c *firecrackerClient) CreateSnapshot(ctx context.Context, req *proto1.Crea return &resp, nil } +<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) { @@ -475,6 +519,10 @@ func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequ func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) { var resp proto1.OffloadResponse >>>>>>> Offload returns UPF socket +======= +func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) { + var resp empty.Empty +>>>>>>> *Updated Firecracker and return PID if err := c.client.Call(ctx, "Firecracker", "Offload", req, &resp); err != nil { >>>>>>> Added support for creating and loading snapshots of VM. return nil, err diff --git a/runtime/service.go b/runtime/service.go index a7caca997..562b2ebf3 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -522,6 +522,8 @@ func (s *service) CreateVM(requestCtx context.Context, request *proto.CreateVMRe resp.MetricsFifoPath = s.machineConfig.MetricsFifo resp.LogFifoPath = s.machineConfig.LogFifo resp.SocketPath = s.shimDir.FirecrackerSockPath() + resp.FirecrackerPID = strconv.Itoa(s.firecrackerPid) + resp.UPFSockPath = s.shimDir.FirecrackerUPFSockPath() if c, ok := s.jailer.(cgroupPather); ok { resp.CgroupPath = c.CgroupPath() } @@ -1829,31 +1831,6 @@ func formCreateSnapReq(snapshotPath, memPath string) (*http.Request, error) { return req, nil } -func formPatchDriveReq(driveID, pathOnHost string) (*http.Request, error) { - var req *http.Request - - data := map[string]string{ - "drive_id": driveID, - "path_on_host": pathOnHost, - } - json, err := json.Marshal(data) - if err != nil { - logrus.WithError(err).Error("Failed to marshal json data") - return nil, err - } - - req, err = http.NewRequest("PATCH", fmt.Sprintf("http+unix://firecracker/drives/%s", driveID), bytes.NewBuffer(json)) - if err != nil { - logrus.WithError(err).Error("Failed to create new HTTP request in formPauseReq") - return nil, err - } - - req.Header.Add("accept", "application/json") - req.Header.Add("Content-Type", "application/json") - - return req, nil -} - func (s *service) startFirecrackerProcess() error { firecPath, err := exec.LookPath("firecracker") if err != nil { From 303fea821d6a56992d90f1a35456b358970085e8 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 8 Sep 2020 07:47:54 -0600 Subject: [PATCH 13/17] update firecracker Signed-off-by: Plamen Petrov --- _submodules/firecracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_submodules/firecracker b/_submodules/firecracker index a0187963b..86c3bc351 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit a0187963b3624b3958d39f95e6a4c1430a8c2b31 +Subproject commit 86c3bc35146d4f605e4b162f5919fd5576161831 From e2b6ebd3452edfe0b539dfa0fbaf614a1db8a77a Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 8 Sep 2020 07:49:39 -0600 Subject: [PATCH 14/17] firecracker Make recipe Signed-off-by: Plamen Petrov --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 35284cb24..cacdedb3d 100644 --- a/Makefile +++ b/Makefile @@ -282,7 +282,6 @@ demo-network: install-cni-bins $(FCNET_CONFIG) ########################## .PHONY: firecracker firecracker: - docker build -t fcuvm/dev:v16_upf -f _submodules/firecracker/tools/devctr/Dockerfile.x86_64 _submodules/firecracker/ _submodules/firecracker/tools/devtool build --release .PHONY: install-firecracker From ca183eff9c5753fe48530890615671e346bafda2 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Mon, 5 Apr 2021 20:52:44 +0300 Subject: [PATCH 15/17] update firecracker submodule Signed-off-by: Plamen Petrov --- .gitmodules | 2 +- _submodules/firecracker | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 587dc5a49..eb358d687 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/opencontainers/runc [submodule "firecracker"] path = _submodules/firecracker - url = https://github.com/ustiugov/firecracker.git + url = https://github.com/ease-lab/firecracker.git diff --git a/_submodules/firecracker b/_submodules/firecracker index 86c3bc351..c6c93f3b4 160000 --- a/_submodules/firecracker +++ b/_submodules/firecracker @@ -1 +1 @@ -Subproject commit 86c3bc35146d4f605e4b162f5919fd5576161831 +Subproject commit c6c93f3b48dc0396b8a93db522c9340e93743d61 From 006fb791d777b0a9db16b17c053fd46489abd2d1 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Tue, 20 Apr 2021 20:24:04 +0300 Subject: [PATCH 16/17] remove duplicates resulting from rebase Signed-off-by: Plamen Petrov --- _submodules/runc | 2 +- firecracker-control/local.go | 36 -- go.mod | 5 +- go.sum | 123 +--- proto/firecracker.pb.go | 524 ++++-------------- proto/service/fccontrol/fccontrol.proto | 2 +- proto/service/fccontrol/ttrpc/fccontrol.pb.go | 306 ++-------- runtime/service.go | 130 +++++ 8 files changed, 271 insertions(+), 857 deletions(-) diff --git a/_submodules/runc b/_submodules/runc index b9ee9c631..12644e614 160000 --- a/_submodules/runc +++ b/_submodules/runc @@ -1 +1 @@ -Subproject commit b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7 +Subproject commit 12644e614e25b05da6fd08a38ffa0cfe1903fdec diff --git a/firecracker-control/local.go b/firecracker-control/local.go index 71605ff68..9cb5647f8 100644 --- a/firecracker-control/local.go +++ b/firecracker-control/local.go @@ -248,42 +248,6 @@ func (s *local) StopVM(requestCtx context.Context, req *proto.StopVMRequest) (*e return resp, multierror.Append(shimErr, waitErr).ErrorOrNil() } -// PauseVM pauses a VM -func (s *local) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) { - client, err := s.shimFirecrackerClient(ctx, req.VMID) - if err != nil { - return nil, err - } - - defer client.Close() - - resp, err := client.PauseVM(ctx, req) - if err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - return resp, nil -} - -// ResumeVM resumes a VM -func (s *local) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) { - client, err := s.shimFirecrackerClient(ctx, req.VMID) - if err != nil { - return nil, err - } - - defer client.Close() - - resp, err := client.ResumeVM(ctx, req) - if err != nil { - s.logger.WithError(err).Error() - return nil, err - } - - return resp, nil -} - func (s *local) waitForShimToExit(ctx context.Context, vmID string) error { socketAddr, err := shim.SocketAddress(ctx, s.containerdAddress, vmID) if err != nil { diff --git a/go.mod b/go.mod index fff7d75bb..530d9eae7 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,6 @@ module github.com/firecracker-microvm/firecracker-containerd require ( - github.com/Microsoft/go-winio v0.4.14 // indirect github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 // indirect github.com/awslabs/tc-redirect-tap v0.0.0-20200708224642-a0300978797d github.com/containerd/containerd v1.5.2 @@ -13,22 +12,20 @@ require ( github.com/containernetworking/plugins v0.9.1 github.com/firecracker-microvm/firecracker-go-sdk v0.22.1-0.20210520223842-abd0815b8bf9 github.com/go-ole/go-ole v1.2.4 // indirect - github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384 // indirect github.com/gofrs/uuid v3.3.0+incompatible github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.4.3 github.com/hashicorp/go-multierror v1.1.0 - github.com/imdario/mergo v0.3.8 // indirect github.com/mdlayher/vsock v0.0.0-20190329173812-a92c53d5dcab github.com/miekg/dns v1.1.16 github.com/opencontainers/runc v1.0.0-rc93 github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v0.9.2 // indirect github.com/shirou/gopsutil v2.18.12+incompatible github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect github.com/sirupsen/logrus v1.8.0 github.com/stretchr/testify v1.6.1 + github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a golang.org/x/sys v0.0.0-20210324051608-47abb6519492 diff --git a/go.sum b/go.sum index 823b4b8dd..25ff474d4 100644 --- a/go.sum +++ b/go.sum @@ -42,7 +42,6 @@ github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17 h1:iT12IBVClFevaf8PuVyi3UmZOVh4OqnaLxDTW2O6j3w= github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= @@ -62,7 +61,6 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 h1:UUppSQnhf4Yc6xGxSkoQpPhb7RVzuv5Nb1mwJ5VId9s= github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -266,10 +264,8 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/firecracker-microvm/firecracker-go-sdk v0.22.1-0.20210520223842-abd0815b8bf9 h1:IKjNicWBHpNyJ/vWO+yPYjFQ0ma2W6+hQrGkNGSzsIQ= github.com/firecracker-microvm/firecracker-go-sdk v0.22.1-0.20210520223842-abd0815b8bf9/go.mod h1:Dbh2OFp/p0Obqp7An+3ktnfC6/a5DKUkMQ5zA/Qmb+0= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= @@ -287,7 +283,6 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -403,13 +398,11 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -428,7 +421,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -510,12 +502,10 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magefile/mage v1.10.0 h1:3HiXzCUY12kh9bIuyXShaVe529fJfyqoVM42o/uom2g= github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= @@ -567,9 +557,7 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= @@ -579,13 +567,11 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -674,7 +660,6 @@ github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvW github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -692,7 +677,6 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/sparrc/go-ping v0.0.0-20190613174326-4e5b6552494c h1:gqEdF4VwBu3lTKGHS9rXE9x1/pEaSwCXRLOZRF6qtlw= github.com/sparrc/go-ping v0.0.0-20190613174326-4e5b6552494c/go.mod h1:eMyUVp6f/5jnzM+3zahzl7q6UXLbgSc3MKg/+ow9QW0= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -722,27 +706,17 @@ github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -<<<<<<< HEAD github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -======= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= -github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= ->>>>>>> Implemented resume and pause call chain. +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -<<<<<<< HEAD github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -======= -github.com/ustiugov/firecracker-go-sdk v0.20.1-0.20200625102438-8edf287b0123 h1:RmVkdn3XSJSVUy/yStvqVJGQ8yw93mUtJn4N+8Aytlw= -github.com/ustiugov/firecracker-go-sdk v0.20.1-0.20200625102438-8edf287b0123/go.mod h1:zyc9BrKGePpNLbQ5y2ZtdzXEfpMJeHPeFNVpyo0S1WQ= ->>>>>>> Added support for creating and loading snapshots of VM. github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -750,7 +724,6 @@ github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852 h1:cPXZWzzG0 github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -<<<<<<< HEAD github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= @@ -773,20 +746,6 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= -======= -<<<<<<< HEAD -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -======= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. -======= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= ->>>>>>> Added support for creating and loading snapshots of VM. -go.etcd.io/bbolt v1.3.1-etcd.8 h1:6J7QAKqfFBGnU80KRnuQxfjjeE5xAGE/qB810I3FQHQ= -go.etcd.io/bbolt v1.3.1-etcd.8/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= ->>>>>>> Implemented resume and pause call chain. go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= @@ -797,7 +756,6 @@ go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvS go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -815,7 +773,6 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -<<<<<<< HEAD golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -853,22 +810,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -======= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ->>>>>>> Implemented resume and pause call chain. golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -884,7 +825,6 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -<<<<<<< HEAD golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -893,19 +833,12 @@ golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -======= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -<<<<<<< HEAD golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -913,20 +846,6 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -======= -======= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. -======= -======= -golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= ->>>>>>> Added support for creating and loading snapshots of VM. ->>>>>>> Added support for creating and loading snapshots of VM. golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -939,16 +858,10 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -<<<<<<< HEAD golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -======= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ->>>>>>> Added support for creating and loading snapshots of VM. golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180928133829-e4b3c5e90611/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1044,9 +957,7 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774 h1:CQVOmarCBFzTx0kbOU0ru54Cvot8SdSrNYjZPhQl+gk= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -<<<<<<< HEAD golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1072,33 +983,7 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -======= -<<<<<<< HEAD -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -======= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9 h1:cwgUY+1ja2qxWb2dyaCoixaA66WGWmrijSlxaM+JM/g= -golang.org/x/tools v0.0.0-20200615222825-6aa8f57aacd9/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c h1:Jt8nybBNSGn80qEV8fQLwCam6RQeX4dsxit8if67Sfc= -golang.org/x/tools v0.0.0-20200708183856-df98bc6d456c/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1 h1:rD1FcWVsRaMY+l8biE9jbWP5MS/CJJ/90a9TMkMgNrM= -golang.org/x/tools v0.0.0-20200710042808-f1c4188a97a1/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d h1:szSOL78iTCl0LF1AMjhSWJj8tIM0KixlUUnBtYXsmd8= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. -<<<<<<< HEAD ->>>>>>> Implemented resume and pause call chain. -======= -======= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= ->>>>>>> Altered buildVMConfiguration tests ->>>>>>> Altered buildVMConfiguration tests golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= @@ -1127,7 +1012,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -1139,7 +1023,6 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1154,10 +1037,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/proto/firecracker.pb.go b/proto/firecracker.pb.go index ecdf99633..935ea59ba 100644 --- a/proto/firecracker.pb.go +++ b/proto/firecracker.pb.go @@ -273,7 +273,20 @@ func (m *CreateVMResponse) GetCgroupPath() string { return "" } -<<<<<<< HEAD +func (m *CreateVMResponse) GetUPFSockPath() string { + if m != nil { + return m.UPFSockPath + } + return "" +} + +func (m *CreateVMResponse) GetFirecrackerPID() string { + if m != nil { + return m.FirecrackerPID + } + return "" +} + type PauseVMRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -308,16 +321,10 @@ var xxx_messageInfo_PauseVMRequest proto.InternalMessageInfo func (m *PauseVMRequest) GetVMID() string { if m != nil { return m.VMID -======= -func (m *CreateVMResponse) GetUPFSockPath() string { - if m != nil { - return m.UPFSockPath ->>>>>>> *Updated Firecracker and return PID } return "" } -<<<<<<< HEAD type ResumeVMRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -352,11 +359,6 @@ var xxx_messageInfo_ResumeVMRequest proto.InternalMessageInfo func (m *ResumeVMRequest) GetVMID() string { if m != nil { return m.VMID -======= -func (m *CreateVMResponse) GetFirecrackerPID() string { - if m != nil { - return m.FirecrackerPID ->>>>>>> *Updated Firecracker and return PID } return "" } @@ -683,84 +685,6 @@ func (m *GetVMMetadataResponse) GetMetadata() string { return "" } -<<<<<<< HEAD -======= -type PauseVMRequest struct { - VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PauseVMRequest) Reset() { *m = PauseVMRequest{} } -func (m *PauseVMRequest) String() string { return proto.CompactTextString(m) } -func (*PauseVMRequest) ProtoMessage() {} -func (*PauseVMRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{9} -} -func (m *PauseVMRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PauseVMRequest.Unmarshal(m, b) -} -func (m *PauseVMRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PauseVMRequest.Marshal(b, m, deterministic) -} -func (m *PauseVMRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PauseVMRequest.Merge(m, src) -} -func (m *PauseVMRequest) XXX_Size() int { - return xxx_messageInfo_PauseVMRequest.Size(m) -} -func (m *PauseVMRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PauseVMRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PauseVMRequest proto.InternalMessageInfo - -func (m *PauseVMRequest) GetVMID() string { - if m != nil { - return m.VMID - } - return "" -} - -type ResumeVMRequest struct { - VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ResumeVMRequest) Reset() { *m = ResumeVMRequest{} } -func (m *ResumeVMRequest) String() string { return proto.CompactTextString(m) } -func (*ResumeVMRequest) ProtoMessage() {} -func (*ResumeVMRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{10} -} -func (m *ResumeVMRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResumeVMRequest.Unmarshal(m, b) -} -func (m *ResumeVMRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResumeVMRequest.Marshal(b, m, deterministic) -} -func (m *ResumeVMRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResumeVMRequest.Merge(m, src) -} -func (m *ResumeVMRequest) XXX_Size() int { - return xxx_messageInfo_ResumeVMRequest.Size(m) -} -func (m *ResumeVMRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ResumeVMRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ResumeVMRequest proto.InternalMessageInfo - -func (m *ResumeVMRequest) GetVMID() string { - if m != nil { - return m.VMID - } - return "" -} - type CreateSnapshotRequest struct { VMID string `protobuf:"bytes,1,opt,name=VMID,json=vMID,proto3" json:"VMID,omitempty"` SnapshotFilePath string `protobuf:"bytes,2,opt,name=SnapshotFilePath,json=snapshotFilePath,proto3" json:"SnapshotFilePath,omitempty"` @@ -953,7 +877,6 @@ func (m *OffloadRequest) GetVMID() string { return "" } ->>>>>>> Added support for creating and loading snapshots of VM. type JailerConfig struct { NetNS string `protobuf:"bytes,1,opt,name=NetNS,json=netNS,proto3" json:"NetNS,omitempty"` // List of the physical numbers of the CPUs on which processes in that @@ -994,11 +917,7 @@ func (m *JailerConfig) Reset() { *m = JailerConfig{} } func (m *JailerConfig) String() string { return proto.CompactTextString(m) } func (*JailerConfig) ProtoMessage() {} func (*JailerConfig) Descriptor() ([]byte, []int) { -<<<<<<< HEAD - return fileDescriptor_a73317e9fb8da571, []int{11} -======= return fileDescriptor_a73317e9fb8da571, []int{15} ->>>>>>> UPF sock pass back to orch } func (m *JailerConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JailerConfig.Unmarshal(m, b) @@ -1079,7 +998,7 @@ func (m *UpdateBalloonRequest) Reset() { *m = UpdateBalloonRequest{} } func (m *UpdateBalloonRequest) String() string { return proto.CompactTextString(m) } func (*UpdateBalloonRequest) ProtoMessage() {} func (*UpdateBalloonRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{12} + return fileDescriptor_a73317e9fb8da571, []int{16} } func (m *UpdateBalloonRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateBalloonRequest.Unmarshal(m, b) @@ -1124,7 +1043,7 @@ func (m *GetBalloonConfigRequest) Reset() { *m = GetBalloonConfigRequest func (m *GetBalloonConfigRequest) String() string { return proto.CompactTextString(m) } func (*GetBalloonConfigRequest) ProtoMessage() {} func (*GetBalloonConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{13} + return fileDescriptor_a73317e9fb8da571, []int{17} } func (m *GetBalloonConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBalloonConfigRequest.Unmarshal(m, b) @@ -1162,7 +1081,7 @@ func (m *GetBalloonConfigResponse) Reset() { *m = GetBalloonConfigRespon func (m *GetBalloonConfigResponse) String() string { return proto.CompactTextString(m) } func (*GetBalloonConfigResponse) ProtoMessage() {} func (*GetBalloonConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{14} + return fileDescriptor_a73317e9fb8da571, []int{18} } func (m *GetBalloonConfigResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBalloonConfigResponse.Unmarshal(m, b) @@ -1200,7 +1119,7 @@ func (m *GetBalloonStatsRequest) Reset() { *m = GetBalloonStatsRequest{} func (m *GetBalloonStatsRequest) String() string { return proto.CompactTextString(m) } func (*GetBalloonStatsRequest) ProtoMessage() {} func (*GetBalloonStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{15} + return fileDescriptor_a73317e9fb8da571, []int{19} } func (m *GetBalloonStatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBalloonStatsRequest.Unmarshal(m, b) @@ -1266,7 +1185,7 @@ func (m *GetBalloonStatsResponse) Reset() { *m = GetBalloonStatsResponse func (m *GetBalloonStatsResponse) String() string { return proto.CompactTextString(m) } func (*GetBalloonStatsResponse) ProtoMessage() {} func (*GetBalloonStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{16} + return fileDescriptor_a73317e9fb8da571, []int{20} } func (m *GetBalloonStatsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBalloonStatsResponse.Unmarshal(m, b) @@ -1396,7 +1315,7 @@ func (m *UpdateBalloonStatsRequest) Reset() { *m = UpdateBalloonStatsReq func (m *UpdateBalloonStatsRequest) String() string { return proto.CompactTextString(m) } func (*UpdateBalloonStatsRequest) ProtoMessage() {} func (*UpdateBalloonStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_a73317e9fb8da571, []int{17} + return fileDescriptor_a73317e9fb8da571, []int{21} } func (m *UpdateBalloonStatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateBalloonStatsRequest.Unmarshal(m, b) @@ -1459,334 +1378,77 @@ func init() { func init() { proto.RegisterFile("firecracker.proto", fileDescriptor_a73317e9fb8da571) } var fileDescriptor_a73317e9fb8da571 = []byte{ -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD - // 1032 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xdf, 0x6e, 0xdb, 0xb6, - 0x17, 0xfe, 0xa9, 0xb2, 0x93, 0xf8, 0x38, 0x76, 0x62, 0x22, 0x69, 0xd5, 0xa2, 0x08, 0x0c, 0xe1, - 0xb7, 0xce, 0x28, 0xb6, 0x00, 0x4b, 0x76, 0x31, 0xec, 0x66, 0x75, 0xec, 0x3a, 0x55, 0x3b, 0xa5, - 0x06, 0x9d, 0x04, 0xd8, 0x76, 0xc5, 0xc8, 0xc7, 0x8a, 0x6a, 0x49, 0xf4, 0x44, 0x2a, 0x6d, 0x5e, - 0x6b, 0xbb, 0xd9, 0x73, 0xec, 0x5d, 0x76, 0x3f, 0x90, 0x92, 0x2d, 0xd9, 0xc9, 0xdc, 0x00, 0xbb, - 0xda, 0x95, 0xcd, 0xef, 0x7c, 0xe4, 0xf9, 0xf3, 0x1d, 0x1e, 0x0a, 0x5a, 0x93, 0x20, 0x41, 0x2f, - 0x61, 0xde, 0x14, 0x93, 0xc3, 0x59, 0xc2, 0x25, 0x7f, 0x56, 0x97, 0xb7, 0x33, 0x14, 0xd9, 0xc2, - 0xfe, 0xa3, 0x0a, 0x3b, 0xbd, 0x04, 0x99, 0xc4, 0x4b, 0x97, 0xe2, 0xaf, 0x29, 0x0a, 0x49, 0x08, - 0x54, 0x2e, 0x5d, 0xa7, 0x6f, 0x19, 0x6d, 0xa3, 0x53, 0xa3, 0x95, 0x1b, 0xd7, 0xe9, 0x93, 0x57, - 0x00, 0x2e, 0xf3, 0xae, 0x83, 0x18, 0x7b, 0x13, 0xdf, 0x7a, 0xd4, 0x36, 0x3a, 0xf5, 0xa3, 0xf6, - 0xe1, 0xa0, 0x38, 0x7c, 0x6e, 0xe5, 0xf1, 0x24, 0xf0, 0xd3, 0x84, 0xc9, 0x80, 0xc7, 0x14, 0xa2, - 0xc5, 0x1e, 0xd2, 0x81, 0x9d, 0x77, 0x98, 0xc4, 0x18, 0x3a, 0x11, 0xf3, 0x71, 0xc8, 0xe4, 0xb5, - 0x65, 0x6a, 0x07, 0x3b, 0xd3, 0x65, 0x98, 0x1c, 0x00, 0x64, 0xcc, 0x6e, 0xe2, 0x0b, 0xab, 0xa2, - 0x49, 0x30, 0x5d, 0x20, 0xe4, 0x18, 0x6a, 0x94, 0x73, 0xd9, 0x4f, 0x82, 0x1b, 0xb4, 0xaa, 0x3a, - 0x94, 0xfd, 0x72, 0x28, 0x0b, 0x23, 0xad, 0x25, 0xf3, 0xbf, 0xe4, 0x3b, 0xa8, 0xeb, 0x3f, 0x2e, - 0x4f, 0x63, 0x29, 0xac, 0x8d, 0xb6, 0xd9, 0xa9, 0x1f, 0x3d, 0x2e, 0x6f, 0x2b, 0xcc, 0xb4, 0x3e, - 0x2e, 0xa8, 0xe4, 0x2d, 0xb4, 0xce, 0x50, 0x7e, 0xe4, 0xc9, 0xd4, 0x89, 0x25, 0x26, 0x13, 0xe6, - 0xa1, 0xb0, 0x36, 0xf5, 0xfe, 0xe7, 0xe5, 0xfd, 0xab, 0x24, 0xda, 0x8a, 0x57, 0xb7, 0x91, 0x17, - 0xd0, 0xec, 0xf1, 0x58, 0xb2, 0x20, 0xc6, 0xa4, 0xa7, 0x8e, 0xb7, 0xb6, 0xda, 0x46, 0xa7, 0x4a, - 0x9b, 0xde, 0x12, 0x4a, 0xbe, 0x07, 0xeb, 0xf5, 0xa7, 0x40, 0x76, 0x27, 0x12, 0x93, 0x6e, 0x18, - 0x9e, 0x33, 0x31, 0x15, 0x7d, 0x0c, 0x51, 0xe2, 0xd8, 0xaa, 0xb5, 0x8d, 0xce, 0x16, 0xb5, 0xf0, - 0x1f, 0xec, 0xe4, 0x1b, 0xd8, 0x7e, 0xcb, 0x82, 0x50, 0x1d, 0xa5, 0xb4, 0xb0, 0x40, 0x57, 0xa8, - 0x71, 0x58, 0x06, 0xe9, 0xf6, 0x87, 0xd2, 0x4a, 0x85, 0x75, 0x1e, 0x44, 0xc8, 0x53, 0x39, 0x42, - 0x8f, 0xc7, 0x63, 0x61, 0xd5, 0xdb, 0x46, 0xa7, 0x41, 0x9b, 0x72, 0x09, 0x25, 0x6d, 0xa8, 0xff, - 0xc8, 0xfd, 0x41, 0x30, 0xe1, 0x5a, 0xbf, 0x6d, 0x2d, 0x4d, 0x3d, 0x2c, 0x20, 0xa5, 0xb2, 0x8b, - 0x32, 0x09, 0x3c, 0xb1, 0x60, 0x35, 0x32, 0x95, 0xa3, 0x65, 0x98, 0xfc, 0x00, 0x8d, 0x13, 0x16, - 0x86, 0x9c, 0xc7, 0x7d, 0xbc, 0x09, 0x3c, 0xb4, 0x9a, 0x3a, 0xce, 0xa7, 0xe5, 0x92, 0x2e, 0x11, - 0x68, 0xe3, 0xaa, 0xbc, 0xb4, 0x7f, 0x33, 0x60, 0xb7, 0x68, 0x5d, 0x31, 0xe3, 0xb1, 0xc0, 0x7b, - 0x7b, 0xf7, 0x00, 0x60, 0xc4, 0xbd, 0x29, 0x4a, 0x1d, 0xce, 0xa3, 0xac, 0x9f, 0xc4, 0x02, 0x59, - 0xcd, 0xca, 0x7c, 0x50, 0x56, 0x95, 0xfb, 0xb3, 0x3a, 0x00, 0xe8, 0xf9, 0x09, 0x4f, 0x67, 0x9a, - 0x54, 0xcd, 0x7c, 0x79, 0x0b, 0xc4, 0xfe, 0x3f, 0x34, 0x87, 0x2c, 0x15, 0xeb, 0x6f, 0x9b, 0xfd, - 0x05, 0xec, 0x50, 0x14, 0x69, 0xf4, 0x19, 0xda, 0x3b, 0x68, 0x8c, 0x24, 0x9f, 0xad, 0xbf, 0xb9, - 0x77, 0xb5, 0x7d, 0x74, 0x9f, 0xb6, 0xf6, 0x0b, 0xd8, 0x3d, 0x45, 0x79, 0xe9, 0x3a, 0xf1, 0x84, - 0xaf, 0x73, 0xfa, 0xbb, 0x01, 0xad, 0x12, 0xf1, 0x3f, 0x52, 0xf7, 0x01, 0xec, 0x8d, 0x54, 0xd0, - 0x2e, 0x4a, 0x36, 0x66, 0x92, 0xad, 0xab, 0xd8, 0x33, 0xd8, 0x9a, 0xd3, 0xf2, 0xa8, 0xb7, 0xa2, - 0x7c, 0x6d, 0x3b, 0xf0, 0xe4, 0x62, 0x36, 0xd6, 0x3d, 0xf7, 0x6f, 0x8f, 0x7a, 0x09, 0x7b, 0xa7, - 0x0f, 0x0c, 0xc9, 0x3e, 0x86, 0xfd, 0x15, 0x6e, 0x5e, 0xf7, 0xb2, 0x03, 0x63, 0xc5, 0xc1, 0x9f, - 0xc6, 0xf2, 0x24, 0x20, 0x7b, 0x50, 0x3d, 0x43, 0x79, 0x36, 0xca, 0x99, 0xd5, 0x58, 0x2d, 0x94, - 0xbf, 0xde, 0xf0, 0x42, 0xe4, 0xf1, 0x55, 0xbc, 0xe1, 0x85, 0x50, 0x98, 0x8b, 0x91, 0xc8, 0x35, - 0xa9, 0x44, 0x18, 0x09, 0xb2, 0x0b, 0xe6, 0x85, 0xd3, 0xd7, 0x02, 0x34, 0xa8, 0x99, 0x3a, 0x7d, - 0x85, 0x9c, 0x3a, 0x7d, 0x5d, 0xed, 0x06, 0x35, 0xfd, 0x4c, 0xf2, 0x92, 0x0c, 0x1b, 0xab, 0x32, - 0x90, 0x57, 0xd0, 0xd2, 0x63, 0xf6, 0xf5, 0xa7, 0x19, 0x17, 0x38, 0xe4, 0x61, 0xe0, 0xdd, 0x5a, - 0x9b, 0x6d, 0xa3, 0xd3, 0x3c, 0x22, 0x87, 0x77, 0x2c, 0xb4, 0x35, 0x5e, 0x85, 0xec, 0x37, 0xb0, - 0x97, 0x09, 0x90, 0xcf, 0x86, 0x75, 0xd5, 0x7f, 0x0e, 0xb5, 0x6e, 0xa4, 0xe6, 0xa9, 0x1b, 0x5c, - 0xe9, 0xf4, 0x4c, 0x5a, 0x63, 0x73, 0xc0, 0xfe, 0x1a, 0x9e, 0x9c, 0xa2, 0xcc, 0x8f, 0xc9, 0xc7, - 0xe2, 0x1a, 0x09, 0x7e, 0x01, 0xeb, 0x2e, 0x3d, 0x57, 0xa1, 0x98, 0x65, 0xf9, 0xcc, 0x35, 0x1e, - 0x3a, 0xcb, 0x32, 0xbe, 0xfd, 0x15, 0x3c, 0x2e, 0x0e, 0x1f, 0x49, 0x26, 0xc5, 0xba, 0x50, 0xfe, - 0x32, 0xcb, 0xa1, 0xe7, 0xf4, 0x3c, 0x14, 0x95, 0xb3, 0x27, 0x53, 0x16, 0xaa, 0x9c, 0x8d, 0x3c, - 0xe7, 0x39, 0xa0, 0xae, 0x5c, 0x66, 0x1d, 0x32, 0x1f, 0x45, 0x5e, 0x93, 0x3a, 0x2b, 0x20, 0x75, - 0xe5, 0xba, 0x37, 0x2c, 0x08, 0xd9, 0x55, 0x88, 0x2e, 0x46, 0x3c, 0xb9, 0xd5, 0x4d, 0x60, 0xd2, - 0x1d, 0xb6, 0x0c, 0x2b, 0xad, 0xfb, 0x81, 0x98, 0xf6, 0x98, 0x77, 0x8d, 0xd9, 0x33, 0x6d, 0x52, - 0x18, 0x2f, 0x10, 0x65, 0x1f, 0x24, 0x38, 0x3f, 0xa4, 0x9a, 0xd9, 0x27, 0x0b, 0x84, 0x1c, 0x02, - 0x79, 0x93, 0xfa, 0x28, 0xc3, 0xab, 0x6e, 0x18, 0x72, 0x4f, 0x7f, 0x31, 0x08, 0xdd, 0x33, 0x26, - 0x25, 0xd7, 0x77, 0x2c, 0x2a, 0xb2, 0x9c, 0x3f, 0x60, 0x41, 0x98, 0x26, 0xfa, 0x15, 0xd6, 0x91, - 0x5d, 0x2f, 0xc3, 0x2a, 0x4b, 0x97, 0x7d, 0xe0, 0xc9, 0x80, 0xa5, 0xa1, 0x14, 0xfa, 0x89, 0x35, - 0x69, 0x3d, 0x2a, 0x20, 0xcd, 0x08, 0xe2, 0x05, 0xa3, 0x96, 0x33, 0x0a, 0x88, 0x3c, 0x86, 0x8d, - 0xd1, 0x47, 0x36, 0x73, 0x62, 0xfd, 0x7e, 0x9a, 0x74, 0x43, 0xe8, 0x15, 0xb1, 0x60, 0x53, 0xe1, - 0xef, 0x53, 0xa9, 0xdf, 0x48, 0x93, 0x6e, 0x8a, 0x6c, 0xa9, 0x2a, 0x7f, 0xce, 0x12, 0x1f, 0x75, - 0xb7, 0x6d, 0x67, 0x95, 0x97, 0x73, 0x40, 0x79, 0xcc, 0xac, 0x59, 0xe5, 0x1b, 0x99, 0x47, 0x59, - 0x40, 0x9a, 0xc1, 0x25, 0x0b, 0xf3, 0x82, 0x35, 0x73, 0x46, 0x01, 0xd9, 0x08, 0x4f, 0x97, 0x7a, - 0xff, 0x73, 0x8d, 0x42, 0xbe, 0x85, 0x7d, 0xcd, 0x19, 0xf2, 0x30, 0x0c, 0x62, 0x5f, 0x7f, 0x88, - 0xdc, 0xb0, 0x70, 0x2e, 0xfc, 0xbe, 0xb8, 0xcf, 0xf8, 0xf2, 0xcb, 0x7b, 0x2e, 0x29, 0xd9, 0x82, - 0x4a, 0xef, 0xfd, 0xf0, 0xa7, 0xdd, 0xff, 0xa9, 0x7f, 0x27, 0xce, 0x59, 0x7f, 0xd7, 0x38, 0xd9, - 0xfc, 0xb9, 0xaa, 0xbf, 0x22, 0xaf, 0x36, 0xf4, 0xcf, 0xf1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x28, 0xec, 0xce, 0x6b, 0x6e, 0x0a, 0x00, 0x00, -======= -======= ->>>>>>> UPF sock pass back to orch -======= ->>>>>>> Offload returns UPF socket -======= ->>>>>>> *Updated Firecracker and return PID -<<<<<<< HEAD - // 693 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xdf, 0x4f, 0xdb, 0x48, - 0x10, 0x3e, 0x13, 0x07, 0x92, 0x31, 0xf9, 0xb5, 0x82, 0x3b, 0x0b, 0x9d, 0x90, 0x15, 0xdd, 0x71, - 0x16, 0x0f, 0x91, 0x0e, 0x5e, 0x4e, 0xf7, 0x04, 0xc4, 0x80, 0x0c, 0x75, 0x1a, 0x6d, 0x08, 0x52, - 0xfb, 0xe6, 0x3a, 0x93, 0xe0, 0x26, 0xf6, 0xa6, 0xbb, 0x6b, 0x0a, 0xff, 0x56, 0xfb, 0x9f, 0xf4, - 0x9f, 0xe9, 0x6b, 0xe5, 0x4d, 0x48, 0x9c, 0x90, 0xa6, 0x48, 0x7d, 0xea, 0x53, 0x76, 0xbf, 0xf9, - 0x66, 0xe6, 0xd3, 0x7c, 0xb3, 0x31, 0xd4, 0xfa, 0x21, 0xc7, 0x80, 0xfb, 0xc1, 0x10, 0x79, 0x63, - 0xcc, 0x99, 0x64, 0x7b, 0x86, 0x7c, 0x1c, 0xa3, 0x98, 0x5c, 0xea, 0x5f, 0x75, 0xa8, 0x34, 0x39, - 0xfa, 0x12, 0x6f, 0x3d, 0x8a, 0x1f, 0x12, 0x14, 0x92, 0x10, 0xd0, 0x6f, 0x3d, 0xd7, 0x31, 0x35, - 0x4b, 0xb3, 0x8b, 0x54, 0xbf, 0xf7, 0x5c, 0x87, 0x9c, 0x00, 0x78, 0x7e, 0x70, 0x17, 0xc6, 0xd8, - 0xec, 0x0f, 0xcc, 0x0d, 0x4b, 0xb3, 0x8d, 0x23, 0xab, 0x71, 0x31, 0x2f, 0xfe, 0x14, 0x65, 0x71, - 0x3f, 0x1c, 0x24, 0xdc, 0x97, 0x21, 0x8b, 0x29, 0x44, 0xb3, 0x1c, 0x62, 0x43, 0xe5, 0x1a, 0x79, - 0x8c, 0x23, 0x37, 0xf2, 0x07, 0xd8, 0xf6, 0xe5, 0x9d, 0x99, 0x53, 0x0d, 0x2a, 0xc3, 0x45, 0x98, - 0xec, 0x03, 0x4c, 0x98, 0xa7, 0x7c, 0x20, 0x4c, 0x5d, 0x91, 0x60, 0x38, 0x43, 0xc8, 0x31, 0x14, - 0x29, 0x63, 0xd2, 0xe1, 0xe1, 0x3d, 0x9a, 0x79, 0x25, 0x65, 0x37, 0x2b, 0x65, 0x16, 0xa4, 0x45, - 0xfe, 0x74, 0x24, 0xff, 0x81, 0xa1, 0x0e, 0x1e, 0x4b, 0x62, 0x29, 0xcc, 0x4d, 0x2b, 0x67, 0x1b, - 0x47, 0xbf, 0x67, 0xd3, 0xe6, 0x61, 0x6a, 0xf4, 0xe6, 0x54, 0x72, 0x05, 0xb5, 0x16, 0xca, 0x8f, - 0x8c, 0x0f, 0xdd, 0x58, 0x22, 0xef, 0xfb, 0x01, 0x0a, 0x73, 0x4b, 0xe5, 0xff, 0x99, 0xcd, 0x5f, - 0x26, 0xd1, 0x5a, 0xbc, 0x9c, 0x46, 0x0e, 0xa0, 0xdc, 0x64, 0xb1, 0xf4, 0xc3, 0x18, 0x79, 0x33, - 0x2d, 0x6f, 0x16, 0x2c, 0xcd, 0xce, 0xd3, 0x72, 0xb0, 0x80, 0x92, 0xff, 0xc1, 0x3c, 0x7f, 0x08, - 0xe5, 0x69, 0x5f, 0x22, 0x3f, 0x1d, 0x8d, 0x6e, 0x7c, 0x31, 0x14, 0x0e, 0x8e, 0x50, 0x62, 0xcf, - 0x2c, 0x5a, 0x9a, 0x5d, 0xa0, 0x26, 0x7e, 0x27, 0x4e, 0xfe, 0x85, 0xed, 0x2b, 0x3f, 0x1c, 0xa5, - 0xa5, 0x52, 0x2f, 0x4c, 0x50, 0x13, 0x2a, 0x35, 0xb2, 0x20, 0xdd, 0x7e, 0x9f, 0xb9, 0xa5, 0xb2, - 0x6e, 0xc2, 0x08, 0x59, 0x22, 0x3b, 0x18, 0xb0, 0xb8, 0x27, 0x4c, 0xc3, 0xd2, 0xec, 0x12, 0x2d, - 0xcb, 0x05, 0x94, 0x58, 0x60, 0xbc, 0x62, 0x83, 0x8b, 0xb0, 0xcf, 0x94, 0x7f, 0xdb, 0xca, 0x1a, - 0x63, 0x34, 0x87, 0x52, 0x97, 0x3d, 0x94, 0x3c, 0x0c, 0xc4, 0x8c, 0x55, 0x9a, 0xb8, 0x1c, 0x2d, - 0xc2, 0xf5, 0x4f, 0x1a, 0x54, 0xe7, 0x9b, 0x27, 0xc6, 0x2c, 0x16, 0xb8, 0x72, 0xf5, 0xf6, 0x01, - 0x3a, 0x2c, 0x18, 0xa2, 0x54, 0xd5, 0x36, 0x26, 0xeb, 0x20, 0x66, 0xc8, 0xb2, 0xa8, 0xdc, 0x8b, - 0x44, 0xe9, 0x2b, 0x45, 0xa5, 0xbd, 0x9a, 0x03, 0xce, 0x92, 0xb1, 0x22, 0xe5, 0x27, 0xbd, 0x82, - 0x19, 0x52, 0xff, 0x0b, 0xca, 0x6d, 0x3f, 0x11, 0xeb, 0x1f, 0x4b, 0xfd, 0x6f, 0xa8, 0x50, 0x14, - 0x49, 0xf4, 0x03, 0xda, 0x35, 0x94, 0x3a, 0x92, 0x8d, 0xd7, 0x3f, 0xbc, 0xe7, 0xd6, 0x6c, 0xac, - 0xb2, 0xa6, 0x7e, 0x00, 0xd5, 0x4b, 0x94, 0xb7, 0x9e, 0x1b, 0xf7, 0xd9, 0xba, 0xa6, 0x9f, 0x35, - 0xa8, 0x65, 0x88, 0xbf, 0xc8, 0xdc, 0x2f, 0x60, 0xa7, 0x93, 0x8a, 0xf6, 0x50, 0xfa, 0x3d, 0x5f, - 0xfa, 0xeb, 0x26, 0xb6, 0x07, 0x85, 0x27, 0xda, 0x54, 0x75, 0x21, 0x9a, 0xde, 0xeb, 0x2e, 0xfc, - 0xd1, 0x1d, 0xf7, 0xd4, 0xce, 0xfd, 0x6c, 0xa9, 0x43, 0xd8, 0xb9, 0x7c, 0xa1, 0xa4, 0xfa, 0x31, - 0xec, 0x2e, 0x71, 0xa7, 0x73, 0xcf, 0x36, 0xd0, 0x96, 0x1a, 0x7c, 0xd1, 0x16, 0x1f, 0x32, 0xd9, - 0x81, 0x7c, 0x0b, 0x65, 0xab, 0x33, 0x65, 0xe6, 0xe3, 0xf4, 0x92, 0xf6, 0x6b, 0xb6, 0xbb, 0x62, - 0xaa, 0x4f, 0x0f, 0xda, 0x5d, 0x91, 0x62, 0x1e, 0x46, 0x62, 0xea, 0x89, 0x1e, 0x61, 0x24, 0x48, - 0x15, 0x72, 0x5d, 0xd7, 0x51, 0x06, 0x94, 0x68, 0x2e, 0x71, 0x9d, 0x14, 0xb9, 0x74, 0x1d, 0x35, - 0xed, 0x12, 0xcd, 0x0d, 0x26, 0x96, 0x67, 0x6c, 0xd8, 0x5c, 0xb6, 0x81, 0x9c, 0x40, 0x4d, 0xfd, - 0x4b, 0x9e, 0x3f, 0x8c, 0x99, 0xc0, 0x36, 0x1b, 0x85, 0xc1, 0xa3, 0xb9, 0x65, 0x69, 0x76, 0xf9, - 0x88, 0x34, 0x9e, 0x45, 0x68, 0xad, 0xb7, 0x0c, 0x1d, 0xfe, 0xb3, 0xa2, 0x02, 0x29, 0x80, 0xde, - 0x7c, 0xdd, 0x7e, 0x53, 0xfd, 0x2d, 0x3d, 0x9d, 0xb9, 0x2d, 0xa7, 0xaa, 0x9d, 0x6d, 0xbd, 0xcd, - 0xab, 0x2f, 0xd4, 0xbb, 0x4d, 0xf5, 0x73, 0xfc, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x74, 0xd8, - 0x91, 0xca, 0x06, 0x00, 0x00, -======= - // 711 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x6f, 0xd3, 0x4a, - 0x14, 0x95, 0x9b, 0xa4, 0x4d, 0xae, 0xf3, 0xe9, 0xd7, 0xbe, 0x67, 0x55, 0x4f, 0x95, 0x65, 0x41, - 0x15, 0x75, 0x51, 0x89, 0x76, 0x83, 0x58, 0x51, 0x92, 0xa6, 0x72, 0x5b, 0x97, 0x68, 0xd2, 0x74, - 0xc1, 0x6e, 0xea, 0x5c, 0xa7, 0x26, 0xf6, 0x4c, 0x98, 0x19, 0x17, 0xfa, 0x2f, 0xd8, 0xf3, 0x13, - 0xd8, 0xc1, 0x1f, 0x44, 0x76, 0xbe, 0x9c, 0x50, 0x02, 0x12, 0x12, 0x12, 0xab, 0x78, 0xce, 0x9c, - 0x7b, 0xef, 0xc9, 0x99, 0x33, 0x36, 0x34, 0xfc, 0x40, 0xa0, 0x27, 0xa8, 0x37, 0x42, 0x71, 0x38, - 0x16, 0x5c, 0xf1, 0x5d, 0x5d, 0x3d, 0x8c, 0x51, 0x4e, 0x16, 0xf6, 0xe7, 0x3c, 0xd4, 0x5a, 0x02, - 0xa9, 0xc2, 0x1b, 0x97, 0xe0, 0xbb, 0x18, 0xa5, 0x32, 0x0c, 0xc8, 0xdf, 0xb8, 0x4e, 0xdb, 0xd4, - 0x2c, 0xad, 0x59, 0x22, 0xf9, 0x7b, 0xd7, 0x69, 0x1b, 0x2f, 0x01, 0x5c, 0xea, 0xdd, 0x05, 0x0c, - 0x5b, 0xfe, 0xd0, 0xdc, 0xb0, 0xb4, 0xa6, 0x7e, 0x64, 0x1d, 0x76, 0x16, 0xcd, 0x67, 0xbb, 0x9c, - 0xf9, 0xc1, 0x30, 0x16, 0x54, 0x05, 0x9c, 0x11, 0x88, 0xe6, 0x35, 0x46, 0x13, 0x6a, 0x17, 0x28, - 0x18, 0x86, 0x4e, 0x44, 0x87, 0xd8, 0xa5, 0xea, 0xce, 0xcc, 0xa5, 0x03, 0x6a, 0xa3, 0x65, 0xd8, - 0xd8, 0x03, 0x98, 0x30, 0x4f, 0xc4, 0x50, 0x9a, 0xf9, 0x94, 0x04, 0xa3, 0x39, 0x62, 0x1c, 0x43, - 0x89, 0x70, 0xae, 0xda, 0x22, 0xb8, 0x47, 0xb3, 0x90, 0x4a, 0xd9, 0xc9, 0x4a, 0x99, 0x6f, 0x92, - 0x92, 0x98, 0x3d, 0x1a, 0xcf, 0x41, 0x4f, 0x1f, 0x5c, 0x1e, 0x33, 0x25, 0xcd, 0x4d, 0x2b, 0xd7, - 0xd4, 0x8f, 0xfe, 0xcd, 0x96, 0x2d, 0xb6, 0x89, 0x3e, 0x58, 0x50, 0x8d, 0x73, 0x68, 0x5c, 0xa1, - 0x7a, 0xcf, 0xc5, 0xc8, 0x61, 0x0a, 0x85, 0x4f, 0x3d, 0x94, 0xe6, 0x56, 0x5a, 0xff, 0x7f, 0xb6, - 0x7e, 0x95, 0x44, 0x1a, 0x6c, 0xb5, 0xcc, 0xd8, 0x87, 0x6a, 0x8b, 0x33, 0x45, 0x03, 0x86, 0xa2, - 0x95, 0xb4, 0x37, 0x8b, 0x96, 0xd6, 0x2c, 0x90, 0xaa, 0xb7, 0x84, 0x1a, 0x2f, 0xc0, 0x3c, 0xfd, - 0x10, 0xa8, 0x13, 0x5f, 0xa1, 0x38, 0x09, 0xc3, 0x6b, 0x2a, 0x47, 0xb2, 0x8d, 0x21, 0x2a, 0x1c, - 0x98, 0x25, 0x4b, 0x6b, 0x16, 0x89, 0x89, 0x3f, 0xd8, 0x37, 0x9e, 0x41, 0xf9, 0x9c, 0x06, 0x61, - 0xd2, 0x2a, 0x39, 0x0b, 0x13, 0x52, 0x87, 0x2a, 0x87, 0x59, 0x90, 0x94, 0xdf, 0x66, 0x56, 0x89, - 0xac, 0xeb, 0x20, 0x42, 0x1e, 0xab, 0x1e, 0x7a, 0x9c, 0x0d, 0xa4, 0xa9, 0x5b, 0x5a, 0xb3, 0x42, - 0xaa, 0x6a, 0x09, 0xb5, 0xbf, 0x68, 0x50, 0x5f, 0xa4, 0x45, 0x8e, 0x39, 0x93, 0xf8, 0x68, 0x5c, - 0xf6, 0x00, 0x7a, 0xdc, 0x1b, 0xa1, 0x4a, 0xcf, 0x79, 0x63, 0x72, 0x84, 0x72, 0x8e, 0x18, 0x16, - 0xe8, 0x97, 0x7c, 0xd8, 0x09, 0x7c, 0x9e, 0x09, 0x82, 0x1e, 0x2e, 0xa0, 0x24, 0x2e, 0x2e, 0x2a, - 0x11, 0x78, 0x72, 0xce, 0x9a, 0x24, 0xa1, 0x16, 0x2d, 0xc3, 0xc9, 0xac, 0xd6, 0x50, 0xf0, 0x78, - 0x9c, 0x92, 0x0a, 0x93, 0x59, 0xde, 0x1c, 0xb1, 0x2f, 0xa0, 0xd2, 0x53, 0x7c, 0xbc, 0x3e, 0xdf, - 0xdf, 0x3b, 0xb0, 0xf1, 0xa8, 0x03, 0xfb, 0x50, 0x3f, 0x43, 0x75, 0xe3, 0x3a, 0xcc, 0xe7, 0x6b, - 0xfa, 0xd9, 0x5f, 0x35, 0x68, 0x64, 0x88, 0x7f, 0x89, 0x55, 0x1d, 0xd8, 0xee, 0x25, 0xa2, 0x5d, - 0x54, 0x74, 0x40, 0x15, 0x5d, 0xe7, 0xd8, 0x2e, 0x14, 0x67, 0xb4, 0xa9, 0xea, 0x62, 0x34, 0x5d, - 0xdb, 0x0e, 0xfc, 0xd7, 0x1f, 0x0f, 0xd2, 0x98, 0xfc, 0x6e, 0xab, 0x03, 0xd8, 0x3e, 0xfb, 0x45, - 0x49, 0xf6, 0x31, 0xec, 0xac, 0x70, 0xa7, 0xbe, 0x67, 0x07, 0x68, 0x2b, 0x03, 0x9e, 0x40, 0xb5, - 0x4b, 0x63, 0xb9, 0xfe, 0xfd, 0x67, 0x3f, 0x85, 0x1a, 0x41, 0x19, 0x47, 0x3f, 0xa1, 0x3d, 0xc0, - 0xce, 0xe4, 0x7e, 0xf4, 0x18, 0x1d, 0xcb, 0x3b, 0xae, 0xd6, 0xfd, 0xed, 0x03, 0xa8, 0xcf, 0x68, - 0x9d, 0x20, 0xc4, 0xcc, 0xf9, 0xd7, 0xe5, 0x0a, 0x9e, 0xa4, 0xc0, 0xc5, 0x68, 0x4e, 0x9b, 0xa6, - 0x20, 0x5a, 0x40, 0xf6, 0x27, 0x0d, 0xfe, 0xb9, 0xe4, 0x74, 0xf0, 0xc7, 0x27, 0x1b, 0x36, 0x94, - 0x4f, 0x19, 0xbd, 0x0d, 0xb1, 0x2f, 0x51, 0x74, 0x3b, 0x69, 0xf8, 0x8a, 0xa4, 0x8c, 0x19, 0x2c, - 0x71, 0xf9, 0xb5, 0xef, 0x87, 0x9c, 0x0e, 0xd6, 0xd9, 0xf7, 0x51, 0x5b, 0x7e, 0x77, 0x19, 0xdb, - 0x50, 0xb8, 0x42, 0x75, 0xd5, 0x9b, 0xb2, 0x0a, 0x2c, 0x59, 0x24, 0xa5, 0xad, 0x6e, 0x5f, 0x4e, - 0x25, 0xe7, 0xbd, 0x6e, 0x5f, 0x26, 0x98, 0x8b, 0x91, 0x9c, 0xea, 0xcb, 0x47, 0x18, 0x49, 0xa3, - 0x0e, 0xb9, 0xbe, 0xd3, 0x4e, 0xf5, 0x54, 0x48, 0x2e, 0x76, 0xda, 0x09, 0x72, 0xe6, 0xb4, 0xd3, - 0xe4, 0x57, 0x48, 0x6e, 0x38, 0xb9, 0x7e, 0x99, 0x2b, 0xb1, 0xb9, 0x7a, 0x25, 0x5e, 0x6d, 0xbd, - 0x29, 0xa4, 0x5f, 0xca, 0xdb, 0xcd, 0xf4, 0xe7, 0xf8, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, - 0x0e, 0x26, 0x48, 0x52, 0x07, 0x00, 0x00, ->>>>>>> Extended LoadSnapshot and Offload -<<<<<<< HEAD ->>>>>>> Extended LoadSnapshot and Offload -======= -======= - // 733 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x4f, 0xe3, 0x46, - 0x18, 0x96, 0x49, 0x02, 0xc9, 0xeb, 0x7c, 0xba, 0xa1, 0xb5, 0x50, 0x85, 0x2c, 0xab, 0x45, 0x11, - 0x07, 0xa4, 0xc2, 0xa5, 0xe2, 0x54, 0x9a, 0x10, 0x64, 0xc0, 0x34, 0x72, 0x08, 0x87, 0xde, 0x06, - 0xfb, 0x75, 0x70, 0x63, 0xcf, 0xa4, 0x33, 0x63, 0x5a, 0xfe, 0x45, 0xef, 0xfd, 0x09, 0x7b, 0xdb, - 0xfd, 0x83, 0x2b, 0x7f, 0x24, 0x71, 0xb2, 0x6c, 0x76, 0xa5, 0x95, 0x56, 0xda, 0x53, 0x3c, 0xcf, - 0x3c, 0xef, 0xf7, 0xf3, 0x4e, 0xa0, 0xe3, 0x07, 0x1c, 0x5d, 0x4e, 0xdc, 0x19, 0xf2, 0x93, 0x39, - 0x67, 0x92, 0x1d, 0xa8, 0xf2, 0x65, 0x8e, 0x22, 0x3b, 0x98, 0x6f, 0xca, 0xd0, 0xea, 0x73, 0x24, - 0x12, 0x1f, 0x6c, 0x07, 0xff, 0x8e, 0x51, 0x48, 0x4d, 0x83, 0xf2, 0x83, 0x6d, 0x0d, 0x74, 0xc5, - 0x50, 0x7a, 0x35, 0xa7, 0xfc, 0x6c, 0x5b, 0x03, 0xed, 0x37, 0x00, 0x9b, 0xb8, 0x4f, 0x01, 0xc5, - 0xbe, 0x3f, 0xd5, 0x77, 0x0c, 0xa5, 0xa7, 0x9e, 0x1a, 0x27, 0xc3, 0x95, 0xf3, 0xc5, 0x2d, 0xa3, - 0x7e, 0x30, 0x8d, 0x39, 0x91, 0x01, 0xa3, 0x0e, 0x44, 0x4b, 0x1b, 0xad, 0x07, 0xad, 0x1b, 0xe4, - 0x14, 0x43, 0x2b, 0x22, 0x53, 0x1c, 0x11, 0xf9, 0xa4, 0x97, 0xd2, 0x00, 0xad, 0xd9, 0x3a, 0xac, - 0x1d, 0x02, 0x64, 0xcc, 0x0b, 0x3e, 0x15, 0x7a, 0x39, 0x25, 0xc1, 0x6c, 0x89, 0x68, 0x67, 0x50, - 0x73, 0x18, 0x93, 0x03, 0x1e, 0x3c, 0xa3, 0x5e, 0x49, 0x53, 0xd9, 0x2f, 0xa6, 0xb2, 0xbc, 0x74, - 0x6a, 0x7c, 0xf1, 0xa9, 0xfd, 0x0a, 0x6a, 0xfa, 0x61, 0xb3, 0x98, 0x4a, 0xa1, 0xef, 0x1a, 0xa5, - 0x9e, 0x7a, 0xfa, 0x7d, 0xd1, 0x6c, 0x75, 0xed, 0xa8, 0xde, 0x8a, 0xaa, 0x5d, 0x43, 0xe7, 0x0e, - 0xe5, 0x3f, 0x8c, 0xcf, 0x2c, 0x2a, 0x91, 0xfb, 0xc4, 0x45, 0xa1, 0xef, 0xa5, 0xf6, 0x3f, 0x16, - 0xed, 0x37, 0x49, 0x4e, 0x87, 0x6e, 0x9a, 0x69, 0x47, 0xd0, 0xec, 0x33, 0x2a, 0x49, 0x40, 0x91, - 0xf7, 0x13, 0xf7, 0x7a, 0xd5, 0x50, 0x7a, 0x15, 0xa7, 0xe9, 0xae, 0xa1, 0xda, 0x39, 0xe8, 0x97, - 0xff, 0x06, 0xf2, 0xc2, 0x97, 0xc8, 0x2f, 0xc2, 0xf0, 0x9e, 0x88, 0x99, 0x18, 0x60, 0x88, 0x12, - 0x3d, 0xbd, 0x66, 0x28, 0xbd, 0xaa, 0xa3, 0xe3, 0x47, 0xee, 0xb5, 0x5f, 0xa0, 0x7e, 0x4d, 0x82, - 0x30, 0x71, 0x95, 0xcc, 0x42, 0x87, 0xb4, 0x43, 0x8d, 0x93, 0x22, 0xe8, 0xd4, 0xff, 0x2a, 0x9c, - 0x92, 0xb4, 0xee, 0x83, 0x08, 0x59, 0x2c, 0xc7, 0xe8, 0x32, 0xea, 0x09, 0x5d, 0x35, 0x94, 0x5e, - 0xc3, 0x69, 0xca, 0x35, 0xd4, 0x7c, 0xab, 0x40, 0x7b, 0xa5, 0x16, 0x31, 0x67, 0x54, 0xe0, 0xab, - 0x72, 0x39, 0x04, 0x18, 0x33, 0x77, 0x86, 0x32, 0x9d, 0xf3, 0x4e, 0x36, 0x42, 0xb1, 0x44, 0x34, - 0x03, 0xd4, 0x5b, 0x36, 0x1d, 0x06, 0x3e, 0x2b, 0x08, 0x41, 0x0d, 0x57, 0x50, 0x22, 0x17, 0x1b, - 0x25, 0x0f, 0x5c, 0xb1, 0x64, 0x65, 0x4a, 0x68, 0x45, 0xeb, 0x70, 0x12, 0xab, 0x3f, 0xe5, 0x2c, - 0x9e, 0xa7, 0xa4, 0x4a, 0x16, 0xcb, 0x5d, 0x22, 0xe6, 0x0d, 0x34, 0xc6, 0x92, 0xcd, 0xb7, 0xeb, - 0xfb, 0xc3, 0x0e, 0xec, 0xbc, 0xda, 0x81, 0x23, 0x68, 0x5f, 0xa1, 0x7c, 0xb0, 0x2d, 0xea, 0xb3, - 0x2d, 0xfe, 0xcc, 0x77, 0x0a, 0x74, 0x0a, 0xc4, 0x6f, 0xa4, 0x55, 0x43, 0xe8, 0x8e, 0x93, 0xa4, - 0x6d, 0x94, 0xc4, 0x23, 0x92, 0x6c, 0xeb, 0xd8, 0x01, 0x54, 0x17, 0xb4, 0x3c, 0xeb, 0x6a, 0x94, - 0x9f, 0x4d, 0x0b, 0x7e, 0x98, 0xcc, 0xbd, 0x54, 0x26, 0x5f, 0xea, 0xea, 0x18, 0xba, 0x57, 0x9f, - 0x99, 0x92, 0x79, 0x06, 0xfb, 0x1b, 0xdc, 0xbc, 0xef, 0xc5, 0x00, 0xca, 0x46, 0x80, 0x9f, 0xa0, - 0x39, 0x22, 0xb1, 0xd8, 0xfe, 0xfe, 0x99, 0x3f, 0x43, 0xcb, 0x41, 0x11, 0x47, 0x9f, 0xa0, 0xbd, - 0xc0, 0x7e, 0xb6, 0x1f, 0x63, 0x4a, 0xe6, 0xe2, 0x89, 0xc9, 0x6d, 0x65, 0x1f, 0x43, 0x7b, 0x41, - 0x1b, 0x06, 0x21, 0x16, 0xe6, 0xdf, 0x16, 0x1b, 0x78, 0xa2, 0x02, 0x1b, 0xa3, 0x25, 0x2d, 0x57, - 0x41, 0xb4, 0x82, 0xcc, 0xff, 0x15, 0xf8, 0xee, 0x96, 0x11, 0xef, 0xab, 0x47, 0xd6, 0x4c, 0xa8, - 0x5f, 0x52, 0xf2, 0x18, 0xe2, 0x44, 0x20, 0x1f, 0x0d, 0x53, 0xf1, 0x55, 0x9d, 0x3a, 0x16, 0x30, - 0xf3, 0x1c, 0xba, 0xeb, 0xc9, 0xe5, 0x93, 0x31, 0xa1, 0x3e, 0x46, 0xea, 0x25, 0x1b, 0x90, 0xba, - 0xcf, 0xb2, 0xac, 0x8b, 0x02, 0x96, 0x4c, 0xe8, 0x0f, 0xdf, 0x0f, 0x19, 0xf1, 0xb6, 0xb5, 0xfe, - 0x3f, 0x65, 0xfd, 0xdd, 0xd3, 0xba, 0x50, 0xb9, 0x43, 0x79, 0x37, 0xce, 0x59, 0x15, 0x9a, 0x1c, - 0x12, 0xd3, 0xfe, 0x68, 0x22, 0xf2, 0x72, 0xcb, 0xee, 0x68, 0x22, 0x12, 0xcc, 0xc6, 0x48, 0xe4, - 0xb5, 0x95, 0x23, 0x8c, 0x84, 0xd6, 0x86, 0xd2, 0xc4, 0x1a, 0xa4, 0xb5, 0x34, 0x9c, 0x52, 0x6c, - 0x0d, 0x12, 0xe4, 0xca, 0x1a, 0xa4, 0x5b, 0xd3, 0x70, 0x4a, 0xd3, 0x6c, 0x75, 0x0b, 0xeb, 0xb4, - 0xbb, 0xb9, 0x4e, 0xbf, 0xef, 0xfd, 0x59, 0x49, 0xff, 0x65, 0x1f, 0x77, 0xd3, 0x9f, 0xb3, 0xf7, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x49, 0xe0, 0x49, 0x4d, 0x8e, 0x07, 0x00, 0x00, ->>>>>>> UPF sock pass back to orch -<<<<<<< HEAD ->>>>>>> UPF sock pass back to orch -======= -======= - // 734 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x4f, 0xe3, 0x46, - 0x18, 0x96, 0x49, 0x02, 0xc9, 0xeb, 0x7c, 0xba, 0xd0, 0x5a, 0xa8, 0x42, 0x96, 0xd5, 0xa2, 0x88, - 0x03, 0x52, 0x41, 0x95, 0xaa, 0x9e, 0x4a, 0x13, 0x82, 0x0c, 0x98, 0x46, 0x0e, 0xe1, 0xd0, 0xdb, - 0x60, 0xbf, 0x0e, 0x6e, 0xec, 0x99, 0x74, 0x66, 0xcc, 0x2e, 0xff, 0x62, 0xef, 0xfb, 0x13, 0xf6, - 0xb6, 0xfb, 0x07, 0x57, 0xb6, 0x13, 0xc7, 0xc9, 0x42, 0x76, 0xa5, 0x95, 0x56, 0xda, 0x53, 0x3c, - 0xcf, 0x3c, 0xef, 0xf7, 0xf3, 0x4e, 0xa0, 0xe3, 0x07, 0x1c, 0x5d, 0x4e, 0xdc, 0x29, 0xf2, 0xe3, - 0x19, 0x67, 0x92, 0xed, 0xab, 0xf2, 0x69, 0x86, 0x22, 0x3b, 0x98, 0xef, 0xca, 0xd0, 0xea, 0x71, - 0x24, 0x12, 0xef, 0x6c, 0x07, 0xff, 0x8f, 0x51, 0x48, 0x4d, 0x83, 0xf2, 0x9d, 0x6d, 0xf5, 0x75, - 0xc5, 0x50, 0xba, 0x35, 0xa7, 0xfc, 0x68, 0x5b, 0x7d, 0xed, 0x2f, 0x00, 0x9b, 0xb8, 0x0f, 0x01, - 0xc5, 0x9e, 0x3f, 0xd1, 0xb7, 0x0c, 0xa5, 0xab, 0x9e, 0x18, 0xc7, 0x83, 0xa5, 0xf3, 0xc5, 0x2d, - 0xa3, 0x7e, 0x30, 0x89, 0x39, 0x91, 0x01, 0xa3, 0x0e, 0x44, 0xb9, 0x8d, 0xd6, 0x85, 0xd6, 0x15, - 0x72, 0x8a, 0xa1, 0x15, 0x91, 0x09, 0x0e, 0x89, 0x7c, 0xd0, 0x4b, 0x69, 0x80, 0xd6, 0x74, 0x15, - 0xd6, 0x0e, 0x00, 0x32, 0xe6, 0x19, 0x9f, 0x08, 0xbd, 0x9c, 0x92, 0x60, 0x9a, 0x23, 0xda, 0x29, - 0xd4, 0x1c, 0xc6, 0x64, 0x9f, 0x07, 0x8f, 0xa8, 0x57, 0xd2, 0x54, 0xf6, 0x8a, 0xa9, 0xe4, 0x97, - 0x4e, 0x8d, 0x2f, 0x3e, 0xb5, 0x3f, 0x40, 0x4d, 0x3f, 0x6c, 0x16, 0x53, 0x29, 0xf4, 0x6d, 0xa3, - 0xd4, 0x55, 0x4f, 0x7e, 0x2c, 0x9a, 0x2d, 0xaf, 0x1d, 0xd5, 0x5b, 0x52, 0xb5, 0x4b, 0xe8, 0xdc, - 0xa0, 0x7c, 0xc5, 0xf8, 0xd4, 0xa2, 0x12, 0xb9, 0x4f, 0x5c, 0x14, 0xfa, 0x4e, 0x6a, 0xff, 0x73, - 0xd1, 0x7e, 0x9d, 0xe4, 0x74, 0xe8, 0xba, 0x99, 0x76, 0x08, 0xcd, 0x1e, 0xa3, 0x92, 0x04, 0x14, - 0x79, 0x2f, 0x71, 0xaf, 0x57, 0x0d, 0xa5, 0x5b, 0x71, 0x9a, 0xee, 0x0a, 0xaa, 0xfd, 0x09, 0xfa, - 0xf9, 0xeb, 0x40, 0x9e, 0xf9, 0x12, 0xf9, 0x59, 0x18, 0xde, 0x12, 0x31, 0x15, 0x7d, 0x0c, 0x51, - 0xa2, 0xa7, 0xd7, 0x0c, 0xa5, 0x5b, 0x75, 0x74, 0x7c, 0xe1, 0x5e, 0xfb, 0x0d, 0xea, 0x97, 0x24, - 0x08, 0x13, 0x57, 0xc9, 0x2c, 0x74, 0x48, 0x3b, 0xd4, 0x38, 0x2e, 0x82, 0x4e, 0xfd, 0xbf, 0xc2, - 0x29, 0x49, 0xeb, 0x36, 0x88, 0x90, 0xc5, 0x72, 0x84, 0x2e, 0xa3, 0x9e, 0xd0, 0x55, 0x43, 0xe9, - 0x36, 0x9c, 0xa6, 0x5c, 0x41, 0xcd, 0xf7, 0x0a, 0xb4, 0x97, 0x6a, 0x11, 0x33, 0x46, 0x05, 0x3e, - 0x2b, 0x97, 0x03, 0x80, 0x11, 0x73, 0xa7, 0x28, 0xd3, 0x39, 0x6f, 0x65, 0x23, 0x14, 0x39, 0xa2, - 0x19, 0xa0, 0x5e, 0xb3, 0xc9, 0x20, 0xf0, 0x59, 0x41, 0x08, 0x6a, 0xb8, 0x84, 0x12, 0xb9, 0xd8, - 0x28, 0x79, 0xe0, 0x8a, 0x9c, 0x95, 0x29, 0xa1, 0x15, 0xad, 0xc2, 0x49, 0xac, 0xde, 0x84, 0xb3, - 0x78, 0x96, 0x92, 0x2a, 0x59, 0x2c, 0x37, 0x47, 0xcc, 0x2b, 0x68, 0x8c, 0x24, 0x9b, 0x6d, 0xd6, - 0xf7, 0xa7, 0x1d, 0xd8, 0x7a, 0xb6, 0x03, 0x87, 0xd0, 0xbe, 0x40, 0x79, 0x67, 0x5b, 0xd4, 0x67, - 0x1b, 0xfc, 0x99, 0x1f, 0x14, 0xe8, 0x14, 0x88, 0xdf, 0x49, 0xab, 0x06, 0xb0, 0x3b, 0x4a, 0x92, - 0xb6, 0x51, 0x12, 0x8f, 0x48, 0xb2, 0xa9, 0x63, 0xfb, 0x50, 0x5d, 0xd0, 0xe6, 0x59, 0x57, 0xa3, - 0xf9, 0xd9, 0xb4, 0xe0, 0xa7, 0xf1, 0xcc, 0x4b, 0x65, 0xf2, 0xb5, 0xae, 0x8e, 0x60, 0xf7, 0xe2, - 0x0b, 0x53, 0x32, 0x4f, 0x61, 0x6f, 0x8d, 0x3b, 0xef, 0x7b, 0x31, 0x80, 0xb2, 0x16, 0xe0, 0x17, - 0x68, 0x0e, 0x49, 0x2c, 0x36, 0xbf, 0x7f, 0xe6, 0xaf, 0xd0, 0x72, 0x50, 0xc4, 0xd1, 0x67, 0x68, - 0x4f, 0xb0, 0x97, 0xed, 0xc7, 0x88, 0x92, 0x99, 0x78, 0x60, 0x72, 0x53, 0xd9, 0x47, 0xd0, 0x5e, - 0xd0, 0x06, 0x41, 0x88, 0x85, 0xf9, 0xb7, 0xc5, 0x1a, 0x9e, 0xa8, 0xc0, 0xc6, 0x28, 0xa7, 0xcd, - 0x55, 0x10, 0x2d, 0x21, 0xf3, 0xad, 0x02, 0x3f, 0x5c, 0x33, 0xe2, 0x7d, 0xf3, 0xc8, 0x9a, 0x09, - 0xf5, 0x73, 0x4a, 0xee, 0x43, 0x1c, 0x0b, 0xe4, 0xc3, 0x41, 0x2a, 0xbe, 0xaa, 0x53, 0xc7, 0x02, - 0x66, 0xfe, 0x0e, 0xad, 0x7f, 0x7c, 0x3f, 0x64, 0xc4, 0xcb, 0x87, 0x62, 0x42, 0x7d, 0x84, 0xd4, - 0x4b, 0xc4, 0x9f, 0x7a, 0xce, 0x12, 0xac, 0x8b, 0x02, 0x96, 0x0c, 0x27, 0x37, 0x7b, 0xb9, 0xeb, - 0x6f, 0x94, 0xd5, 0x27, 0x4f, 0xdb, 0x85, 0xca, 0x0d, 0xca, 0x9b, 0xd1, 0x9c, 0x55, 0xa1, 0xc9, - 0x21, 0x31, 0xed, 0x0d, 0xc7, 0x62, 0x5e, 0x69, 0xd9, 0x1d, 0x8e, 0x45, 0x82, 0xd9, 0x18, 0x89, - 0x79, 0x59, 0xe5, 0x08, 0x23, 0xa1, 0xb5, 0xa1, 0x34, 0xb6, 0xfa, 0x69, 0x19, 0x0d, 0xa7, 0x14, - 0x5b, 0xfd, 0x04, 0xb9, 0xb0, 0xfa, 0xe9, 0xc2, 0x34, 0x9c, 0xd2, 0x24, 0xdb, 0xda, 0xc2, 0x26, - 0x6d, 0xaf, 0x6f, 0xd2, 0xdf, 0x3b, 0xff, 0x56, 0xd2, 0x3f, 0xd8, 0xfb, 0xed, 0xf4, 0xe7, 0xf4, - 0x63, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xc6, 0xfb, 0xb6, 0x89, 0x07, 0x00, 0x00, ->>>>>>> Offload returns UPF socket -<<<<<<< HEAD ->>>>>>> Offload returns UPF socket -======= -======= - // 753 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0xcd, 0x6e, 0xeb, 0x44, - 0x14, 0x96, 0x9b, 0x9f, 0x26, 0xc7, 0xf9, 0x35, 0x2d, 0x58, 0x57, 0xe8, 0xca, 0xb2, 0x2e, 0x57, - 0xd1, 0x5d, 0x54, 0xe2, 0x56, 0x42, 0x88, 0x15, 0x25, 0x6e, 0x2a, 0xb7, 0x75, 0x89, 0x9c, 0xa6, - 0x0b, 0x76, 0x53, 0xe7, 0x38, 0x35, 0xb1, 0x3d, 0x61, 0x66, 0x5c, 0xe8, 0x5b, 0xb0, 0xe7, 0x11, - 0x58, 0xf2, 0x7a, 0x2c, 0xd0, 0x8c, 0x13, 0xc7, 0x49, 0xdb, 0x80, 0x84, 0x84, 0xc4, 0x2a, 0x9e, - 0x6f, 0xbe, 0xf3, 0xff, 0x9d, 0x09, 0xf4, 0xc3, 0x88, 0x61, 0xc0, 0x48, 0xb0, 0x40, 0x76, 0xb2, - 0x64, 0x54, 0xd0, 0x37, 0xba, 0x78, 0x5a, 0x22, 0xcf, 0x0f, 0xf6, 0xef, 0x55, 0xe8, 0x0e, 0x19, - 0x12, 0x81, 0x77, 0x9e, 0x8f, 0x3f, 0x65, 0xc8, 0x85, 0x61, 0x40, 0xf5, 0xce, 0x73, 0x1d, 0x53, - 0xb3, 0xb4, 0x41, 0xd3, 0xaf, 0x3e, 0x7a, 0xae, 0x63, 0x7c, 0x0b, 0xe0, 0x91, 0xe0, 0x21, 0x4a, - 0x71, 0x18, 0xce, 0xcd, 0x03, 0x4b, 0x1b, 0xe8, 0x1f, 0xad, 0x93, 0xd1, 0xc6, 0xf9, 0xfa, 0x96, - 0xa6, 0x61, 0x34, 0xcf, 0x18, 0x11, 0x11, 0x4d, 0x7d, 0x48, 0x0a, 0x1b, 0x63, 0x00, 0xdd, 0x2b, - 0x64, 0x29, 0xc6, 0x6e, 0x42, 0xe6, 0x38, 0x26, 0xe2, 0xc1, 0xac, 0xa8, 0x00, 0xdd, 0xc5, 0x36, - 0x6c, 0xbc, 0x05, 0xc8, 0x99, 0x67, 0x6c, 0xce, 0xcd, 0xaa, 0x22, 0xc1, 0xa2, 0x40, 0x8c, 0x53, - 0x68, 0xfa, 0x94, 0x0a, 0x87, 0x45, 0x8f, 0x68, 0xd6, 0x54, 0x2a, 0xc7, 0xe5, 0x54, 0x8a, 0x4b, - 0xbf, 0xc9, 0xd6, 0x9f, 0xc6, 0xd7, 0xa0, 0xab, 0x0f, 0x8f, 0x66, 0xa9, 0xe0, 0x66, 0xdd, 0xaa, - 0x0c, 0xf4, 0x8f, 0x9f, 0x96, 0xcd, 0x36, 0xd7, 0xbe, 0x3e, 0xdb, 0x50, 0x8d, 0x4b, 0xe8, 0xdf, - 0xa0, 0xf8, 0x99, 0xb2, 0x85, 0x9b, 0x0a, 0x64, 0x21, 0x09, 0x90, 0x9b, 0x87, 0xca, 0xfe, 0xf3, - 0xb2, 0xfd, 0x2e, 0xc9, 0xef, 0xa7, 0xbb, 0x66, 0xc6, 0x7b, 0xe8, 0x0c, 0x69, 0x2a, 0x48, 0x94, - 0x22, 0x1b, 0x4a, 0xf7, 0x66, 0xc3, 0xd2, 0x06, 0x35, 0xbf, 0x13, 0x6c, 0xa1, 0xc6, 0x37, 0x60, - 0x9e, 0xff, 0x12, 0x89, 0xb3, 0x50, 0x20, 0x3b, 0x8b, 0xe3, 0x5b, 0xc2, 0x17, 0xdc, 0xc1, 0x18, - 0x05, 0xce, 0xcc, 0xa6, 0xa5, 0x0d, 0x1a, 0xbe, 0x89, 0xaf, 0xdc, 0x1b, 0x5f, 0x42, 0xeb, 0x92, - 0x44, 0xb1, 0x74, 0x25, 0x67, 0x61, 0x82, 0xea, 0x50, 0xfb, 0xa4, 0x0c, 0xfa, 0xad, 0x1f, 0x4b, - 0x27, 0x99, 0xd6, 0x6d, 0x94, 0x20, 0xcd, 0xc4, 0x04, 0x03, 0x9a, 0xce, 0xb8, 0xa9, 0x5b, 0xda, - 0xa0, 0xed, 0x77, 0xc4, 0x16, 0x6a, 0xff, 0xa9, 0x41, 0x6f, 0xa3, 0x16, 0xbe, 0xa4, 0x29, 0xc7, - 0x17, 0xe5, 0xf2, 0x16, 0x60, 0x42, 0x83, 0x05, 0x0a, 0x35, 0xe7, 0x83, 0x7c, 0x84, 0xbc, 0x40, - 0x0c, 0x0b, 0xf4, 0x6b, 0x3a, 0x1f, 0x45, 0x21, 0x2d, 0x09, 0x41, 0x8f, 0x37, 0x90, 0x94, 0x8b, - 0x87, 0x82, 0x45, 0x01, 0x2f, 0x58, 0xb9, 0x12, 0xba, 0xc9, 0x36, 0x2c, 0x63, 0x0d, 0xe7, 0x8c, - 0x66, 0x4b, 0x45, 0xaa, 0xe5, 0xb1, 0x82, 0x02, 0x91, 0xb1, 0xa6, 0xe3, 0x91, 0x4c, 0x47, 0x11, - 0xea, 0x79, 0xac, 0x6c, 0x03, 0xc9, 0xf2, 0x4b, 0x73, 0x1c, 0xbb, 0x8e, 0x79, 0xa8, 0x48, 0x9d, - 0x70, 0x0b, 0xb5, 0xaf, 0xa0, 0x3d, 0x11, 0x74, 0xb9, 0x7f, 0x53, 0x9e, 0xf7, 0xf2, 0xe0, 0xc5, - 0x5e, 0xbe, 0x87, 0xde, 0x05, 0x8a, 0x3b, 0xcf, 0x4d, 0x43, 0xba, 0xc7, 0x9f, 0xfd, 0x87, 0x06, - 0xfd, 0x12, 0xf1, 0xff, 0xd1, 0x74, 0x7b, 0x04, 0x47, 0x13, 0x99, 0xb4, 0x87, 0x82, 0xcc, 0x88, - 0x20, 0xfb, 0x3a, 0xf6, 0x06, 0x1a, 0x6b, 0xda, 0x2a, 0xeb, 0x46, 0xb2, 0x3a, 0xdb, 0x2e, 0x7c, - 0x36, 0x5d, 0xce, 0x94, 0xe0, 0xfe, 0xad, 0xab, 0x0f, 0x70, 0x74, 0xf1, 0x0f, 0x53, 0xb2, 0x4f, - 0xe1, 0x78, 0x87, 0xbb, 0xea, 0x7b, 0x39, 0x80, 0xb6, 0x13, 0xe0, 0x1d, 0x74, 0xc6, 0x24, 0xe3, - 0xfb, 0x5f, 0x52, 0xfb, 0x0b, 0xe8, 0xfa, 0xc8, 0xb3, 0xe4, 0x6f, 0x68, 0x4f, 0x70, 0x9c, 0x6f, - 0xda, 0x24, 0x25, 0x4b, 0xfe, 0x40, 0xc5, 0xbe, 0xb2, 0x3f, 0x40, 0x6f, 0x4d, 0x1b, 0x45, 0x31, - 0x96, 0xe6, 0xdf, 0xe3, 0x3b, 0xb8, 0x54, 0x81, 0x87, 0x49, 0x41, 0x5b, 0xa9, 0x20, 0xd9, 0x40, - 0xf6, 0x6f, 0x1a, 0x7c, 0x72, 0x4d, 0xc9, 0xec, 0x3f, 0x8f, 0x6c, 0xd8, 0xd0, 0x3a, 0x4f, 0xc9, - 0x7d, 0x8c, 0x53, 0x8e, 0x6c, 0x3c, 0x52, 0xe2, 0x6b, 0xf8, 0x2d, 0x2c, 0x61, 0xf6, 0x57, 0xd0, - 0x92, 0xc9, 0x15, 0x13, 0x79, 0xbe, 0xbc, 0xda, 0x8b, 0xcb, 0xfb, 0x0e, 0x3a, 0xdf, 0x87, 0x61, - 0xac, 0x4c, 0x5f, 0x6f, 0xfb, 0xaf, 0xda, 0xf6, 0xeb, 0x69, 0x1c, 0x41, 0xed, 0x06, 0xc5, 0xcd, - 0x64, 0xc5, 0xaa, 0xa5, 0xf2, 0x20, 0x4d, 0x87, 0xe3, 0x29, 0x5f, 0x95, 0x5a, 0x0d, 0xc6, 0x53, - 0x2e, 0x31, 0x0f, 0x13, 0xbe, 0xaa, 0xab, 0x9a, 0x60, 0xc2, 0x8d, 0x1e, 0x54, 0xa6, 0xae, 0xa3, - 0xea, 0x68, 0xfb, 0x95, 0xcc, 0x75, 0x24, 0x72, 0xe1, 0x3a, 0x6a, 0x63, 0xda, 0x7e, 0x65, 0x9e, - 0xaf, 0x6d, 0x69, 0x95, 0xea, 0xbb, 0xab, 0xf4, 0xdd, 0xe1, 0x0f, 0x35, 0xf5, 0x5f, 0x7d, 0x5f, - 0x57, 0x3f, 0xa7, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x76, 0x42, 0x3f, 0xd4, 0x07, 0x00, - 0x00, ->>>>>>> *Updated Firecracker and return PID ->>>>>>> *Updated Firecracker and return PID + // 1150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0xdd, 0x8e, 0xda, 0x46, + 0x1b, 0xfe, 0x1c, 0xc3, 0xee, 0xf2, 0xf2, 0xb3, 0xec, 0x7c, 0xbb, 0x89, 0x13, 0x45, 0x11, 0xb2, + 0xda, 0x14, 0x45, 0xed, 0x4a, 0x4d, 0xaa, 0xaa, 0xea, 0x49, 0x43, 0x20, 0x6c, 0x9c, 0xc4, 0x1b, + 0x34, 0x84, 0x48, 0x6d, 0x8f, 0x66, 0xcd, 0x0b, 0x38, 0xd8, 0x1e, 0xea, 0x19, 0x6f, 0xb2, 0xd7, + 0xd2, 0xcb, 0xe8, 0x49, 0xaf, 0xa3, 0xf7, 0xd2, 0xb3, 0x1e, 0x54, 0x33, 0x36, 0xd8, 0xc0, 0x86, + 0x44, 0xaa, 0x54, 0xa9, 0x47, 0x78, 0x9e, 0xf7, 0x99, 0x79, 0xff, 0x9e, 0xf9, 0x01, 0x8e, 0x26, + 0x7e, 0x8c, 0x5e, 0xcc, 0xbc, 0x39, 0xc6, 0xa7, 0x8b, 0x98, 0x4b, 0x7e, 0xa7, 0x2a, 0xaf, 0x16, + 0x28, 0xd2, 0x81, 0xfd, 0x7b, 0x19, 0x0e, 0xbb, 0x31, 0x32, 0x89, 0x6f, 0x5c, 0x8a, 0xbf, 0x24, + 0x28, 0x24, 0x21, 0x50, 0x7a, 0xe3, 0x3a, 0x3d, 0xcb, 0x68, 0x19, 0xed, 0x0a, 0x2d, 0x5d, 0xba, + 0x4e, 0x8f, 0x3c, 0x06, 0x70, 0x99, 0x37, 0xf3, 0x23, 0xec, 0x4e, 0xa6, 0xd6, 0x8d, 0x96, 0xd1, + 0xae, 0x3e, 0x6c, 0x9d, 0xf6, 0xf3, 0xc5, 0x97, 0x56, 0x1e, 0x4d, 0xfc, 0x69, 0x12, 0x33, 0xe9, + 0xf3, 0x88, 0x42, 0xb8, 0x9a, 0x43, 0xda, 0x70, 0xf8, 0x02, 0xe3, 0x08, 0x03, 0x27, 0x64, 0x53, + 0x1c, 0x30, 0x39, 0xb3, 0x4c, 0xed, 0xe0, 0x70, 0xbe, 0x0e, 0x93, 0x7b, 0x00, 0x29, 0xb3, 0x13, + 0x4f, 0x85, 0x55, 0xd2, 0x24, 0x98, 0xaf, 0x10, 0xf2, 0x08, 0x2a, 0x94, 0x73, 0xd9, 0x8b, 0xfd, + 0x4b, 0xb4, 0xca, 0x3a, 0x94, 0x93, 0x62, 0x28, 0x2b, 0x23, 0xad, 0xc4, 0xcb, 0x4f, 0xf2, 0x1d, + 0x54, 0xf5, 0x87, 0xcb, 0x93, 0x48, 0x0a, 0x6b, 0xaf, 0x65, 0xb6, 0xab, 0x0f, 0x6f, 0x16, 0xa7, + 0xe5, 0x66, 0x5a, 0x1d, 0xe7, 0x54, 0xf2, 0x1c, 0x8e, 0xce, 0x51, 0xbe, 0xe3, 0xf1, 0xdc, 0x89, + 0x24, 0xc6, 0x13, 0xe6, 0xa1, 0xb0, 0xf6, 0xf5, 0xfc, 0xbb, 0xc5, 0xf9, 0x9b, 0x24, 0x7a, 0x14, + 0x6d, 0x4e, 0x23, 0xf7, 0xa1, 0xd1, 0xe5, 0x91, 0x64, 0x7e, 0x84, 0x71, 0x57, 0x2d, 0x6f, 0x1d, + 0xb4, 0x8c, 0x76, 0x99, 0x36, 0xbc, 0x35, 0x94, 0x7c, 0x0f, 0xd6, 0xd3, 0xf7, 0xbe, 0xec, 0x4c, + 0x24, 0xc6, 0x9d, 0x20, 0x78, 0xcd, 0xc4, 0x5c, 0xf4, 0x30, 0x40, 0x89, 0x63, 0xab, 0xd2, 0x32, + 0xda, 0x07, 0xd4, 0xc2, 0x0f, 0xd8, 0xc9, 0xd7, 0x50, 0x7b, 0xce, 0xfc, 0x40, 0x2d, 0xa5, 0x7a, + 0x61, 0x81, 0xae, 0x50, 0xfd, 0xb4, 0x08, 0xd2, 0xda, 0xdb, 0xc2, 0x48, 0x85, 0xf5, 0xda, 0x0f, + 0x91, 0x27, 0x72, 0x88, 0x1e, 0x8f, 0xc6, 0xc2, 0xaa, 0xb6, 0x8c, 0x76, 0x9d, 0x36, 0xe4, 0x1a, + 0x4a, 0x5a, 0x50, 0x7d, 0xc9, 0xa7, 0x7d, 0x7f, 0xc2, 0x75, 0xff, 0x6a, 0xba, 0x35, 0xd5, 0x20, + 0x87, 0x54, 0x97, 0x5d, 0x94, 0xb1, 0xef, 0x89, 0x15, 0xab, 0x9e, 0x76, 0x39, 0x5c, 0x87, 0xc9, + 0x0f, 0x50, 0x7f, 0xc2, 0x82, 0x80, 0xf3, 0xa8, 0x87, 0x97, 0xbe, 0x87, 0x56, 0x43, 0xc7, 0x79, + 0xbb, 0x58, 0xd2, 0x35, 0x02, 0xad, 0x5f, 0x14, 0x87, 0xf6, 0x5f, 0x06, 0x34, 0x73, 0xe9, 0x8a, + 0x05, 0x8f, 0x04, 0x5e, 0xab, 0xdd, 0x7b, 0x00, 0x43, 0xee, 0xcd, 0x51, 0xea, 0x70, 0x6e, 0xa4, + 0x7a, 0x12, 0x2b, 0x64, 0x33, 0x2b, 0xf3, 0x93, 0xb2, 0x2a, 0x5d, 0x9f, 0xd5, 0x3d, 0x80, 0xee, + 0x34, 0xe6, 0xc9, 0x42, 0x93, 0xca, 0xa9, 0x2f, 0x6f, 0x85, 0x28, 0x5f, 0xa3, 0x41, 0x5f, 0x85, + 0xa3, 0x09, 0x7b, 0xa9, 0xaf, 0x24, 0x87, 0x54, 0x2f, 0x0a, 0x15, 0x18, 0x38, 0x3d, 0x6b, 0x5f, + 0x93, 0x1a, 0x93, 0x35, 0xd4, 0xfe, 0x0c, 0x1a, 0x03, 0x96, 0x88, 0xdd, 0xfb, 0xd6, 0xfe, 0x1c, + 0x0e, 0x29, 0x8a, 0x24, 0xfc, 0x08, 0xed, 0x05, 0xd4, 0x87, 0x92, 0x2f, 0x76, 0x9f, 0x01, 0xdb, + 0x2a, 0xb9, 0x71, 0x9d, 0x4a, 0xec, 0xfb, 0xd0, 0x3c, 0x43, 0xf9, 0xc6, 0x75, 0xa2, 0x09, 0xdf, + 0xe5, 0xf4, 0x37, 0x03, 0x8e, 0x0a, 0xc4, 0xff, 0x46, 0x07, 0xed, 0x3e, 0x1c, 0x0f, 0x55, 0xd0, + 0x2e, 0x4a, 0x36, 0x66, 0x92, 0xed, 0xaa, 0xd8, 0x1d, 0x38, 0x58, 0xd2, 0xb2, 0xa8, 0x0f, 0xc2, + 0x6c, 0x6c, 0x3b, 0x70, 0x6b, 0xb4, 0x18, 0x6b, 0xf5, 0xfe, 0xd3, 0xa5, 0x1e, 0xc0, 0xf1, 0xd9, + 0x27, 0x86, 0x64, 0x3f, 0x82, 0x93, 0x0d, 0x6e, 0x56, 0xf7, 0xa2, 0x03, 0x63, 0xc3, 0xc1, 0x15, + 0x9c, 0xa4, 0x3b, 0x6d, 0x18, 0xb1, 0x85, 0x98, 0x71, 0xb9, 0x2b, 0xd2, 0x07, 0xd0, 0x5c, 0xd2, + 0xfa, 0x7e, 0x80, 0x85, 0x96, 0x35, 0xc5, 0x06, 0xae, 0x1a, 0xe7, 0x62, 0xb8, 0xa2, 0x65, 0x8d, + 0x0b, 0x73, 0xc8, 0xfe, 0xd5, 0x80, 0xff, 0xbf, 0xe4, 0x6c, 0xfc, 0xaf, 0x7b, 0x26, 0x36, 0xd4, + 0x9e, 0x46, 0xec, 0x22, 0xc0, 0x91, 0xc0, 0x78, 0xd0, 0xd7, 0x7a, 0x39, 0xa0, 0x35, 0x2c, 0x60, + 0xf6, 0xb7, 0x50, 0x53, 0xc1, 0xad, 0x8a, 0xb8, 0xbd, 0x79, 0x8d, 0x0f, 0x6d, 0xde, 0x57, 0x93, + 0x49, 0xa0, 0xa7, 0x7e, 0xb8, 0x57, 0x7f, 0x18, 0xeb, 0x47, 0x39, 0x39, 0x86, 0xf2, 0x39, 0xca, + 0xf3, 0x61, 0xc6, 0x2a, 0x47, 0x6a, 0xa0, 0xa6, 0x76, 0x07, 0x23, 0x91, 0xa5, 0x5a, 0xf2, 0x06, + 0x23, 0xa1, 0x30, 0x17, 0x43, 0x91, 0xe5, 0x55, 0x0a, 0x31, 0x14, 0xa4, 0x09, 0xe6, 0xc8, 0xe9, + 0xe9, 0x3c, 0xea, 0xd4, 0x4c, 0x9c, 0x9e, 0x42, 0xce, 0x9c, 0x9e, 0x16, 0x79, 0x9d, 0x9a, 0xd3, + 0x74, 0xa7, 0x15, 0xd4, 0xbf, 0xb7, 0x75, 0x7e, 0x3d, 0x86, 0x23, 0x7d, 0x4f, 0x3e, 0x7d, 0xbf, + 0xe0, 0x02, 0x07, 0x3c, 0xf0, 0xbd, 0x2b, 0x7d, 0x40, 0x35, 0x1e, 0x92, 0xd3, 0x2d, 0x0b, 0x3d, + 0x1a, 0x6f, 0x42, 0xf6, 0x33, 0x38, 0x4e, 0x75, 0x9f, 0x1d, 0xee, 0xbb, 0x1a, 0x7a, 0x17, 0x2a, + 0x9d, 0x50, 0x5d, 0x88, 0xae, 0x7f, 0xa1, 0xd3, 0x33, 0x69, 0x85, 0x2d, 0x01, 0xfb, 0x2b, 0xb8, + 0x75, 0x86, 0x32, 0x5b, 0x26, 0xbb, 0xd7, 0x76, 0x54, 0xf3, 0x67, 0xb0, 0xb6, 0xe9, 0x59, 0xdf, + 0xf2, 0xcb, 0x28, 0xbb, 0x34, 0x8d, 0x4f, 0xbd, 0x8c, 0x52, 0xbe, 0xfd, 0x25, 0xdc, 0xcc, 0x17, + 0x1f, 0x4a, 0x26, 0xc5, 0xae, 0x50, 0xfe, 0x34, 0x8b, 0xa1, 0x67, 0xf4, 0x2c, 0x14, 0x95, 0xb3, + 0x27, 0x13, 0x16, 0xa8, 0x9c, 0x8d, 0x2c, 0xe7, 0x25, 0xa0, 0x64, 0x9b, 0x5a, 0x07, 0x6c, 0x8a, + 0x22, 0xab, 0x49, 0x95, 0xe5, 0x90, 0x3a, 0xe9, 0x3a, 0x97, 0xcc, 0x0f, 0x94, 0x4a, 0x5d, 0x0c, + 0x79, 0x7c, 0xa5, 0x45, 0x60, 0xd2, 0x43, 0xb6, 0x0e, 0xab, 0x5e, 0xf7, 0x7c, 0x31, 0xef, 0x32, + 0x6f, 0x86, 0xe9, 0x3b, 0xcb, 0xa4, 0x30, 0x5e, 0x21, 0xca, 0xde, 0x8f, 0x71, 0xb9, 0x48, 0x39, + 0xb5, 0x4f, 0x56, 0x08, 0x39, 0x05, 0xf2, 0x2c, 0x99, 0xa2, 0x0c, 0x2e, 0x3a, 0x41, 0xc0, 0x3d, + 0xfd, 0xe4, 0x13, 0x5a, 0x33, 0x26, 0x25, 0xb3, 0x2d, 0x8b, 0x8a, 0x2c, 0xe3, 0xf7, 0x99, 0x1f, + 0x24, 0xb1, 0x7e, 0x46, 0xe9, 0xc8, 0x66, 0xeb, 0xb0, 0xde, 0x9c, 0xec, 0x2d, 0x8f, 0xfb, 0x2c, + 0x09, 0xa4, 0xd0, 0x6f, 0x24, 0x93, 0x56, 0xc3, 0x1c, 0xd2, 0x0c, 0x3f, 0x5a, 0x31, 0x2a, 0x19, + 0x23, 0x87, 0xc8, 0x4d, 0xd8, 0x1b, 0xbe, 0x63, 0x0b, 0x27, 0xd2, 0x0f, 0x20, 0x93, 0xee, 0x09, + 0x3d, 0x22, 0x16, 0xec, 0x2b, 0xfc, 0x55, 0x22, 0xf5, 0x23, 0xc7, 0xa4, 0xfb, 0x22, 0x1d, 0xaa, + 0xca, 0xbf, 0x66, 0xf1, 0x14, 0xb5, 0xda, 0x6a, 0x69, 0xe5, 0xe5, 0x12, 0x50, 0x1e, 0x53, 0x6b, + 0x5a, 0xf9, 0x7a, 0xea, 0x51, 0xe6, 0x90, 0x66, 0x70, 0xc9, 0x82, 0xac, 0x60, 0x8d, 0x8c, 0x91, + 0x43, 0x36, 0xc2, 0xed, 0x35, 0xed, 0x7f, 0x4c, 0x28, 0xe4, 0x1b, 0x38, 0xd1, 0x9c, 0x01, 0x0f, + 0x02, 0x3f, 0x9a, 0xea, 0x97, 0xe4, 0x25, 0x0b, 0x96, 0x8d, 0x3f, 0x11, 0xd7, 0x19, 0x1f, 0x7c, + 0x71, 0xcd, 0x26, 0x25, 0x07, 0x50, 0xea, 0xbe, 0x1a, 0xfc, 0xd8, 0xfc, 0x9f, 0xfa, 0x7a, 0xe2, + 0x9c, 0xf7, 0x9a, 0xc6, 0x93, 0xfd, 0x9f, 0xca, 0xfa, 0x6f, 0xc0, 0xc5, 0x9e, 0xfe, 0x79, 0xf4, + 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x23, 0x18, 0xaf, 0x2f, 0x0c, 0x00, 0x00, } diff --git a/proto/service/fccontrol/fccontrol.proto b/proto/service/fccontrol/fccontrol.proto index be4a539a3..7481a4ed7 100644 --- a/proto/service/fccontrol/fccontrol.proto +++ b/proto/service/fccontrol/fccontrol.proto @@ -15,7 +15,7 @@ service Firecracker { // Resumes a VM rpc ResumeVM(ResumeVMRequest) returns (google.protobuf.Empty); - + // Stops existing Firecracker instance by VM ID rpc StopVM(StopVMRequest) returns (google.protobuf.Empty); diff --git a/proto/service/fccontrol/ttrpc/fccontrol.pb.go b/proto/service/fccontrol/ttrpc/fccontrol.pb.go index cb14b9ab9..f15bbb880 100644 --- a/proto/service/fccontrol/ttrpc/fccontrol.pb.go +++ b/proto/service/fccontrol/ttrpc/fccontrol.pb.go @@ -27,171 +27,33 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("fccontrol.proto", fileDescriptor_b99f53e2bf82c5ef) } var fileDescriptor_b99f53e2bf82c5ef = []byte{ -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD - // 357 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x3f, 0x4f, 0xf2, 0x50, - 0x14, 0xc6, 0xe9, 0xf0, 0xf2, 0xc2, 0x35, 0x08, 0xdc, 0x04, 0x45, 0x4c, 0xba, 0xb8, 0x1f, 0x0c, - 0x3a, 0x33, 0x80, 0x5a, 0x1d, 0x9a, 0x18, 0x88, 0x0c, 0x6e, 0x97, 0x72, 0x4a, 0x88, 0xa5, 0xb7, - 0xb6, 0xa7, 0x83, 0x9b, 0x1f, 0x8f, 0xd1, 0xd1, 0x51, 0xba, 0xfb, 0x1d, 0x0c, 0xb4, 0x97, 0x3f, - 0x85, 0xe4, 0x6e, 0xcf, 0xf9, 0x9d, 0x9e, 0xe7, 0x3c, 0xf7, 0x24, 0x65, 0x55, 0xd7, 0x71, 0xa4, - 0x4f, 0xa1, 0xf4, 0x20, 0x08, 0x25, 0xc9, 0xd6, 0xe5, 0x54, 0xca, 0xa9, 0x87, 0xed, 0x75, 0x35, - 0x8e, 0xdd, 0x36, 0xce, 0x03, 0xfa, 0xc8, 0x9a, 0x75, 0x77, 0x16, 0xa2, 0x13, 0x0a, 0xe7, 0x0d, - 0xc3, 0x14, 0x75, 0x7e, 0xff, 0xb1, 0x93, 0x87, 0x2d, 0xe5, 0x6d, 0x56, 0xea, 0x87, 0x28, 0x08, - 0x47, 0x36, 0xaf, 0x81, 0x92, 0x03, 0x7c, 0x8f, 0x31, 0xa2, 0x56, 0x7d, 0x87, 0x44, 0x81, 0xf4, - 0x23, 0xe4, 0x1d, 0xf6, 0xff, 0x59, 0xc4, 0xd1, 0xea, 0xfb, 0x2a, 0x64, 0x4a, 0x7d, 0x7e, 0x06, - 0x69, 0x1a, 0x50, 0x69, 0xe0, 0x7e, 0x95, 0x86, 0xdf, 0xb2, 0xd2, 0x00, 0xa3, 0x78, 0x9e, 0x2e, - 0x51, 0x52, 0x37, 0x75, 0xcd, 0x8a, 0x43, 0x92, 0xc1, 0xc8, 0xe6, 0xa7, 0x90, 0x0a, 0xdd, 0x44, - 0x87, 0x95, 0x2d, 0xa4, 0x91, 0xfd, 0xe4, 0xbb, 0x92, 0xd7, 0x61, 0xa3, 0xd5, 0x1c, 0xdf, 0x45, - 0xd9, 0x7b, 0xba, 0xac, 0x32, 0x5c, 0x41, 0x1b, 0x49, 0x4c, 0x04, 0x09, 0xde, 0x80, 0xbd, 0x5a, - 0xb7, 0xf3, 0x8e, 0xd5, 0x5e, 0x82, 0xc9, 0xfa, 0x46, 0x1b, 0x8b, 0x26, 0xe4, 0x91, 0xce, 0xa5, - 0xcb, 0x2a, 0x56, 0x2e, 0x85, 0x75, 0x3c, 0x45, 0x0e, 0x67, 0xaf, 0xb0, 0x58, 0xcd, 0x42, 0xea, - 0x09, 0xcf, 0x93, 0xd2, 0xef, 0x4b, 0xdf, 0x9d, 0x4d, 0x79, 0x13, 0xf2, 0x48, 0xb9, 0x5c, 0x1c, - 0xe9, 0x6c, 0xcf, 0x91, 0x66, 0xcf, 0xda, 0xbc, 0x01, 0x7b, 0xb5, 0xfe, 0x1c, 0xd5, 0xad, 0xf7, - 0x90, 0x04, 0x45, 0xfc, 0x1c, 0x72, 0x44, 0x79, 0x34, 0x0f, 0x1b, 0x59, 0x8a, 0x47, 0xc6, 0xf7, - 0xb6, 0xa6, 0x46, 0x2d, 0x38, 0x84, 0x9a, 0x3c, 0xbd, 0xab, 0xc5, 0xd2, 0x2c, 0x7c, 0x2f, 0xcd, - 0xc2, 0x67, 0x62, 0x1a, 0x8b, 0xc4, 0x34, 0xbe, 0x12, 0xd3, 0xf8, 0x49, 0x4c, 0xe3, 0xb5, 0xbc, - 0xf9, 0x95, 0xc6, 0xc5, 0xf5, 0xd0, 0xcd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x66, 0x43, 0x0c, - 0x39, 0x5e, 0x03, 0x00, 0x00, -======= -======= ->>>>>>> UPF sock pass back to orch -======= ->>>>>>> Offload returns UPF socket -======= ->>>>>>> *Updated Firecracker and return PID -<<<<<<< HEAD - // 290 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4b, 0x4e, 0xce, - 0xcf, 0x2b, 0x29, 0xca, 0xcf, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x97, 0x92, 0x4e, 0xcf, 0xcf, - 0x4f, 0xcf, 0x49, 0xd5, 0x07, 0xf3, 0x92, 0x4a, 0xd3, 0xf4, 0x53, 0x73, 0x0b, 0x4a, 0x2a, 0xa1, - 0x92, 0x82, 0x69, 0x99, 0x45, 0xa9, 0xc9, 0x45, 0x89, 0xc9, 0xd9, 0xa9, 0x45, 0x10, 0x21, 0xa3, - 0x2b, 0xcc, 0x5c, 0xdc, 0x6e, 0x08, 0x51, 0x21, 0x7d, 0x2e, 0x0e, 0xe7, 0xa2, 0xd4, 0xc4, 0x92, - 0xd4, 0x30, 0x5f, 0x21, 0x01, 0x3d, 0x18, 0x33, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x44, 0x4a, - 0x10, 0x49, 0xa4, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x55, 0xc8, 0x88, 0x8b, 0x3d, 0x20, 0xb1, 0xb4, - 0x18, 0xa4, 0x9e, 0x5f, 0x0f, 0xca, 0x82, 0x29, 0x17, 0xd3, 0x83, 0xb8, 0x46, 0x0f, 0xe6, 0x1a, - 0x3d, 0x57, 0x90, 0x6b, 0x84, 0x4c, 0xb8, 0x38, 0x82, 0x52, 0x8b, 0x4b, 0x73, 0x21, 0x96, 0xc0, - 0x98, 0x84, 0x74, 0x19, 0x70, 0xb1, 0x05, 0x97, 0xe4, 0x17, 0x84, 0xf9, 0x0a, 0xf1, 0xe9, 0x41, - 0x18, 0x84, 0x74, 0x18, 0x71, 0x71, 0xba, 0xa7, 0x96, 0x84, 0xf9, 0x7a, 0xe6, 0xa5, 0xe5, 0x0b, - 0x09, 0xea, 0xc1, 0xd9, 0x30, 0x7d, 0x42, 0xc8, 0x42, 0x50, 0xff, 0xd8, 0x71, 0xf1, 0x06, 0x83, - 0x04, 0x7d, 0x53, 0x4b, 0x12, 0x53, 0x12, 0x4b, 0x12, 0x85, 0x44, 0xf5, 0x50, 0xf8, 0x84, 0xec, - 0x74, 0xe1, 0x12, 0x08, 0x2d, 0x48, 0x01, 0x87, 0x11, 0xdc, 0x08, 0x09, 0x3d, 0x74, 0x21, 0x42, - 0xa6, 0xd8, 0x71, 0xf1, 0xba, 0xa3, 0xb9, 0xc2, 0x1d, 0xbb, 0x2b, 0xd0, 0x84, 0x21, 0xbe, 0x70, - 0x52, 0x3e, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, - 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x14, 0x27, 0x3c, 0xc5, 0x24, - 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x26, 0xe6, 0x13, 0x45, 0x02, - 0x00, 0x00, -======= - // 336 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xbb, 0x4e, 0xf3, 0x40, - 0x10, 0x85, 0xe3, 0xe2, 0xcf, 0x65, 0x7e, 0x72, 0x5b, 0x41, 0x84, 0x82, 0xe4, 0x86, 0x7e, 0x82, - 0x02, 0x25, 0x8a, 0x10, 0xb7, 0x08, 0x09, 0x0b, 0x94, 0x88, 0x14, 0x74, 0x1b, 0x7b, 0x1c, 0x10, - 0x89, 0xc7, 0xd8, 0xeb, 0x82, 0x8e, 0x92, 0x47, 0x4b, 0x49, 0x49, 0x49, 0xfc, 0x24, 0x28, 0xf1, - 0x85, 0x24, 0x42, 0xda, 0xee, 0xcc, 0x67, 0x9f, 0x99, 0xb3, 0x3b, 0x0b, 0x75, 0xd7, 0xb6, 0xd9, - 0x53, 0x01, 0x4f, 0xd1, 0x0f, 0x58, 0x71, 0xfb, 0x60, 0xc2, 0x3c, 0x99, 0x52, 0x67, 0x55, 0x8d, - 0x23, 0xb7, 0x43, 0x33, 0x5f, 0xbd, 0xa5, 0x1f, 0x9b, 0xee, 0x73, 0x40, 0x76, 0x20, 0xed, 0x17, - 0x0a, 0x12, 0xd4, 0xfd, 0xf8, 0x07, 0xff, 0xaf, 0x7f, 0xa9, 0xe8, 0x40, 0xf9, 0x22, 0x20, 0xa9, - 0x68, 0x64, 0x89, 0x06, 0x66, 0x72, 0x40, 0xaf, 0x11, 0x85, 0xaa, 0xdd, 0x5c, 0x23, 0xa1, 0xcf, - 0x5e, 0x48, 0xe2, 0x08, 0x8a, 0x43, 0xc5, 0xfe, 0xc8, 0x12, 0x35, 0x4c, 0x44, 0xf6, 0x73, 0x0b, - 0x93, 0x2c, 0x98, 0x65, 0xc1, 0xab, 0x65, 0x16, 0xd1, 0x85, 0x4a, 0x9f, 0xd4, 0xc8, 0xba, 0xf1, - 0x5c, 0x16, 0x4d, 0xcc, 0x75, 0xe6, 0x13, 0xeb, 0x28, 0x9d, 0xd2, 0x83, 0xea, 0x70, 0x09, 0x2d, - 0x52, 0xd2, 0x91, 0x4a, 0x8a, 0x3d, 0xdc, 0xa8, 0x75, 0x33, 0x2f, 0xa1, 0xf1, 0xe0, 0x3b, 0xab, - 0xe4, 0x79, 0x8b, 0x7d, 0xdc, 0x46, 0xba, 0x2e, 0x3d, 0xa8, 0xf6, 0xb7, 0x52, 0xf4, 0xff, 0x4e, - 0xb1, 0x85, 0xd3, 0x53, 0x74, 0xa1, 0x74, 0x2f, 0xa3, 0x70, 0x79, 0xb7, 0x75, 0x4c, 0x95, 0x6e, - 0xe6, 0x09, 0x94, 0x07, 0x14, 0x46, 0xb3, 0x64, 0x21, 0x99, 0xd4, 0xb9, 0x4e, 0x61, 0xe7, 0x96, - 0xa5, 0x33, 0xf4, 0xa4, 0x1f, 0x3e, 0xb1, 0x12, 0xbb, 0xb8, 0x5e, 0xea, 0xdc, 0x67, 0x50, 0x4b, - 0xf6, 0x9c, 0xfb, 0x5b, 0xb8, 0x09, 0xf4, 0x3b, 0x2e, 0xdd, 0xb9, 0xee, 0x94, 0xa5, 0x23, 0xea, - 0x98, 0x2a, 0x8d, 0xe7, 0xfc, 0x70, 0xbe, 0x30, 0x0b, 0x5f, 0x0b, 0xb3, 0xf0, 0x1e, 0x9b, 0xc6, - 0x3c, 0x36, 0x8d, 0xcf, 0xd8, 0x34, 0xbe, 0x63, 0xd3, 0x78, 0xac, 0xe4, 0xaf, 0x7c, 0x5c, 0x5c, - 0x99, 0x8e, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xe9, 0x16, 0xe0, 0xf9, 0x02, 0x00, 0x00, ->>>>>>> Added support for creating and loading snapshots of VM. -<<<<<<< HEAD ->>>>>>> Added support for creating and loading snapshots of VM. -======= -======= - // 339 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcb, 0x4f, 0xc2, 0x40, - 0x10, 0xc6, 0xe9, 0x41, 0x1e, 0xa3, 0xbc, 0x36, 0x42, 0x0c, 0x26, 0xbd, 0x78, 0x1f, 0x0c, 0x7a, - 0x33, 0x21, 0xc6, 0x17, 0x31, 0xb1, 0xd1, 0x40, 0xe4, 0xe0, 0x6d, 0x69, 0xa7, 0x68, 0x84, 0x4e, - 0x6d, 0xb7, 0x07, 0x6f, 0xde, 0xfc, 0xd7, 0x38, 0x7a, 0xf4, 0x28, 0xfd, 0x4b, 0x0c, 0xf4, 0x21, - 0x34, 0x26, 0xbd, 0x7d, 0xf3, 0x6b, 0xbf, 0x99, 0x6f, 0x77, 0x16, 0xea, 0xb6, 0x69, 0xb2, 0xa3, - 0x3c, 0x9e, 0xa1, 0xeb, 0xb1, 0xe2, 0xce, 0xe1, 0x94, 0x79, 0x3a, 0xa3, 0xee, 0xba, 0x9a, 0x04, - 0x76, 0x97, 0xe6, 0xae, 0x7a, 0x8f, 0x3f, 0x36, 0xed, 0x17, 0x8f, 0x4c, 0x4f, 0x9a, 0xaf, 0xe4, - 0x45, 0xa8, 0xf7, 0xb9, 0x03, 0xbb, 0x37, 0x7f, 0x54, 0x74, 0xa1, 0x7c, 0xe9, 0x91, 0x54, 0x34, - 0x36, 0x44, 0x03, 0x13, 0x39, 0xa4, 0xb7, 0x80, 0x7c, 0xd5, 0x69, 0x6e, 0x10, 0xdf, 0x65, 0xc7, - 0x27, 0x71, 0x0c, 0xc5, 0x91, 0x62, 0x77, 0x6c, 0x88, 0x1a, 0x46, 0x22, 0xf9, 0xb9, 0x8d, 0x51, - 0x16, 0x4c, 0xb2, 0xe0, 0xf5, 0x2a, 0x8b, 0xe8, 0x41, 0x65, 0x40, 0x6a, 0x6c, 0xdc, 0x3a, 0x36, - 0x8b, 0x26, 0xa6, 0x3a, 0xf1, 0x89, 0x4d, 0x14, 0x4f, 0xe9, 0x43, 0x75, 0xb4, 0x82, 0x06, 0x29, - 0x69, 0x49, 0x25, 0x45, 0x0b, 0xb7, 0xea, 0xbc, 0x99, 0x57, 0xd0, 0x78, 0x74, 0xad, 0x75, 0xf2, - 0xb4, 0xc5, 0x01, 0x66, 0x51, 0x5e, 0x97, 0x3e, 0x54, 0x07, 0x99, 0x14, 0x83, 0xff, 0x53, 0x64, - 0x70, 0x7c, 0x8a, 0x1e, 0x94, 0x1e, 0x64, 0xe0, 0xaf, 0xee, 0xb6, 0x8e, 0xb1, 0xca, 0x9b, 0x79, - 0x0a, 0xe5, 0x21, 0xf9, 0xc1, 0x3c, 0x5a, 0x48, 0x22, 0xf3, 0x5c, 0x67, 0xb0, 0x77, 0xc7, 0xd2, - 0x1a, 0x39, 0xd2, 0xf5, 0x9f, 0x59, 0x89, 0x7d, 0xdc, 0x2c, 0x13, 0x77, 0x2b, 0x43, 0xe3, 0x98, - 0xe7, 0x50, 0x8b, 0xd6, 0x9c, 0xda, 0xdb, 0xb8, 0x0d, 0xf2, 0x57, 0x5c, 0xba, 0xb7, 0xed, 0x19, - 0x4b, 0x4b, 0xd4, 0x31, 0x56, 0x39, 0x9e, 0x8b, 0xa3, 0xc5, 0x52, 0x2f, 0x7c, 0x2f, 0xf5, 0xc2, - 0x47, 0xa8, 0x6b, 0x8b, 0x50, 0xd7, 0xbe, 0x42, 0x5d, 0xfb, 0x09, 0x75, 0xed, 0xa9, 0x92, 0x3e, - 0xf2, 0x49, 0x71, 0x6d, 0x3a, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x3e, 0xce, 0xa8, 0xa0, 0xf8, - 0x02, 0x00, 0x00, ->>>>>>> UPF sock pass back to orch -<<<<<<< HEAD ->>>>>>> UPF sock pass back to orch -======= -======= - // 342 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4b, 0x4f, 0xfa, 0x50, - 0x10, 0xc5, 0xe9, 0xe2, 0xcf, 0x63, 0xfe, 0xf2, 0xba, 0x51, 0x62, 0x30, 0xe9, 0xc6, 0xad, 0x19, - 0x0c, 0xba, 0x34, 0xc4, 0xf8, 0x22, 0x26, 0x36, 0x1a, 0x88, 0x2c, 0xdc, 0x5d, 0xda, 0x29, 0x1a, - 0xa1, 0x53, 0xdb, 0xdb, 0x85, 0x3b, 0xe3, 0xa7, 0x63, 0xe9, 0xd2, 0xa5, 0xf4, 0x93, 0x18, 0xe8, - 0x03, 0x68, 0x4c, 0xba, 0x3b, 0xf3, 0x6b, 0xcf, 0x9c, 0xd3, 0x7b, 0x0b, 0x75, 0xdb, 0x34, 0xd9, - 0x51, 0x1e, 0x4f, 0xd1, 0xf5, 0x58, 0x71, 0xfb, 0x60, 0xc2, 0x3c, 0x99, 0x52, 0x67, 0x35, 0x8d, - 0x03, 0xbb, 0x43, 0x33, 0x57, 0xbd, 0xc7, 0x0f, 0x9b, 0xf6, 0x8b, 0x47, 0xa6, 0x27, 0xcd, 0x57, - 0xf2, 0x22, 0xd4, 0xfd, 0xfc, 0x07, 0xff, 0x6f, 0xd6, 0x54, 0x74, 0xa0, 0x7c, 0xe9, 0x91, 0x54, - 0x34, 0x32, 0x44, 0x03, 0x13, 0x39, 0xa0, 0xb7, 0x80, 0x7c, 0xd5, 0x6e, 0x6e, 0x10, 0xdf, 0x65, - 0xc7, 0x27, 0x71, 0x0c, 0xc5, 0xa1, 0x62, 0x77, 0x64, 0x88, 0x1a, 0x46, 0x22, 0x79, 0xb9, 0x85, - 0x51, 0x17, 0x4c, 0xba, 0xe0, 0xf5, 0xb2, 0x8b, 0xe8, 0x42, 0xa5, 0x4f, 0x6a, 0x64, 0xdc, 0x3a, - 0x36, 0x8b, 0x26, 0xa6, 0x3a, 0xf1, 0x89, 0x4d, 0x14, 0xa7, 0xf4, 0xa0, 0x3a, 0x5c, 0x42, 0x83, - 0x94, 0xb4, 0xa4, 0x92, 0x62, 0x0f, 0xb7, 0xe6, 0xbc, 0xcc, 0x2b, 0x68, 0x3c, 0xba, 0xd6, 0xaa, - 0x79, 0xba, 0x62, 0x1f, 0xb3, 0x28, 0x6f, 0x4b, 0x0f, 0xaa, 0xfd, 0x4c, 0x8b, 0xfe, 0xdf, 0x2d, - 0x32, 0x38, 0xfe, 0x8a, 0x2e, 0x94, 0x1e, 0x64, 0xe0, 0x2f, 0xcf, 0xb6, 0x8e, 0xb1, 0xca, 0xcb, - 0x3c, 0x85, 0xf2, 0x80, 0xfc, 0x60, 0x16, 0x5d, 0x48, 0x22, 0xf3, 0x5c, 0x67, 0xb0, 0x73, 0xc7, - 0xd2, 0x1a, 0x3a, 0xd2, 0xf5, 0x9f, 0x59, 0x89, 0x5d, 0xdc, 0x1c, 0xf3, 0xdc, 0xe7, 0x50, 0x8b, - 0xee, 0x39, 0xf5, 0xb7, 0x70, 0x1b, 0xe4, 0x6d, 0x38, 0x82, 0xd2, 0xbd, 0x6d, 0x4f, 0x59, 0x5a, - 0xa2, 0x8e, 0xb1, 0x4a, 0x3c, 0x8d, 0x35, 0x88, 0xce, 0xe5, 0xe2, 0x70, 0xbe, 0xd0, 0x0b, 0xdf, - 0x0b, 0xbd, 0xf0, 0x11, 0xea, 0xda, 0x3c, 0xd4, 0xb5, 0xaf, 0x50, 0xd7, 0x7e, 0x42, 0x5d, 0x7b, - 0xaa, 0xa4, 0xff, 0xf7, 0xb8, 0xb8, 0x8a, 0x38, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x39, - 0x1c, 0x7a, 0xf3, 0x02, 0x00, 0x00, ->>>>>>> Offload returns UPF socket -<<<<<<< HEAD ->>>>>>> Offload returns UPF socket -======= -======= - // 338 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4b, 0x4f, 0xfa, 0x50, - 0x10, 0xc5, 0x69, 0xf2, 0x0f, 0x8f, 0xf9, 0xcb, 0xeb, 0x46, 0x89, 0xc1, 0xa4, 0x1b, 0xf7, 0x83, - 0x01, 0xd7, 0xc4, 0xf8, 0x22, 0x26, 0x36, 0x1a, 0x88, 0x2c, 0xdc, 0x5d, 0xda, 0x29, 0x1a, 0xa1, - 0x53, 0xdb, 0xdb, 0x85, 0x3b, 0x3f, 0x1e, 0x4b, 0x97, 0x2e, 0xa5, 0x5f, 0x44, 0x43, 0x5f, 0x42, - 0x63, 0xd2, 0xdd, 0x99, 0x5f, 0x7b, 0x66, 0xce, 0xbd, 0x73, 0xa1, 0x69, 0x9b, 0x26, 0x3b, 0xca, - 0xe3, 0x05, 0xba, 0x1e, 0x2b, 0xee, 0x1e, 0xcd, 0x99, 0xe7, 0x0b, 0xea, 0x45, 0xd5, 0x2c, 0xb0, - 0x7b, 0xb4, 0x74, 0xd5, 0x5b, 0xf2, 0xb1, 0x6d, 0x3f, 0x7b, 0x64, 0x7a, 0xd2, 0x7c, 0x21, 0x2f, - 0x46, 0xfd, 0xef, 0x7f, 0xf0, 0xff, 0xfa, 0x97, 0x8a, 0x1e, 0x54, 0x2f, 0x3c, 0x92, 0x8a, 0xa6, - 0x86, 0x68, 0x61, 0x2a, 0xc7, 0xf4, 0x1a, 0x90, 0xaf, 0xba, 0xed, 0x2d, 0xe2, 0xbb, 0xec, 0xf8, - 0x24, 0x4e, 0xa0, 0x3c, 0x51, 0xec, 0x4e, 0x0d, 0xd1, 0xc0, 0x58, 0xa4, 0x3f, 0x77, 0x30, 0xce, - 0x82, 0x69, 0x16, 0xbc, 0xda, 0x64, 0x11, 0x7d, 0xa8, 0x8d, 0x48, 0x4d, 0x8d, 0x1b, 0xc7, 0x66, - 0xd1, 0xc6, 0x4c, 0xa7, 0x3e, 0xb1, 0x8d, 0x92, 0x29, 0x43, 0xa8, 0x4f, 0x36, 0xd0, 0x20, 0x25, - 0x2d, 0xa9, 0xa4, 0x38, 0xc0, 0x9d, 0xba, 0x68, 0xe6, 0x25, 0xb4, 0x1e, 0x5c, 0x2b, 0x4a, 0x9e, - 0xb5, 0x38, 0xc4, 0x3c, 0x2a, 0xea, 0x32, 0x84, 0xfa, 0x28, 0x97, 0x62, 0xf4, 0x77, 0x8a, 0x1c, - 0x4e, 0x4e, 0xd1, 0x87, 0xca, 0xbd, 0x0c, 0xfc, 0xcd, 0xdd, 0x36, 0x31, 0x51, 0x45, 0x33, 0x4f, - 0xa1, 0x3a, 0x26, 0x3f, 0x58, 0xc6, 0x0b, 0x49, 0x65, 0x91, 0x6b, 0x00, 0x7b, 0xb7, 0x2c, 0xad, - 0x89, 0x23, 0x5d, 0xff, 0x89, 0x95, 0xd8, 0xc7, 0xed, 0x32, 0x75, 0xd7, 0x23, 0x9a, 0xc5, 0x3b, - 0x83, 0x46, 0xbc, 0xde, 0xcc, 0xd6, 0xc1, 0x5d, 0x50, 0xbc, 0xda, 0xca, 0x9d, 0x6d, 0x2f, 0x58, - 0x5a, 0xa2, 0x89, 0x89, 0x2a, 0xf0, 0x9c, 0x1f, 0xaf, 0xd6, 0x7a, 0xe9, 0x73, 0xad, 0x97, 0xde, - 0x43, 0x5d, 0x5b, 0x85, 0xba, 0xf6, 0x11, 0xea, 0xda, 0x57, 0xa8, 0x6b, 0x8f, 0xb5, 0xec, 0x71, - 0xcf, 0xca, 0x91, 0x69, 0xf0, 0x13, 0x00, 0x00, 0xff, 0xff, 0x85, 0xaf, 0x02, 0x25, 0xf0, 0x02, - 0x00, 0x00, ->>>>>>> *Updated Firecracker and return PID ->>>>>>> *Updated Firecracker and return PID + // 406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xbf, 0x6e, 0xe2, 0x40, + 0x10, 0xc6, 0x71, 0xc3, 0x9f, 0xbd, 0x03, 0xc3, 0xea, 0xe0, 0x38, 0x4e, 0x72, 0x73, 0xfd, 0x70, + 0x82, 0xab, 0xd1, 0x09, 0xee, 0xe2, 0x44, 0x8a, 0x95, 0x08, 0x2b, 0x14, 0xe9, 0x16, 0x7b, 0x4d, + 0x50, 0x8c, 0xd7, 0xb1, 0xd7, 0x45, 0xba, 0x3c, 0x46, 0x1e, 0x89, 0x32, 0x65, 0xca, 0xe0, 0x27, + 0x89, 0xb0, 0xbd, 0x06, 0x1b, 0xa4, 0xed, 0x66, 0x7e, 0xe3, 0xef, 0x9b, 0x6f, 0x57, 0x6b, 0xa4, + 0x3a, 0x96, 0xc5, 0x3c, 0x1e, 0x30, 0x17, 0xfc, 0x80, 0x71, 0x36, 0xf8, 0xb9, 0x62, 0x6c, 0xe5, + 0xd2, 0x61, 0xd2, 0x2d, 0x23, 0x67, 0x48, 0x37, 0x3e, 0x7f, 0xce, 0x86, 0x1d, 0x67, 0x1d, 0x50, + 0x2b, 0x20, 0xd6, 0x23, 0x0d, 0x52, 0x34, 0x7a, 0xad, 0xa1, 0x2f, 0x17, 0x07, 0x8a, 0x87, 0xa8, + 0x3e, 0x0b, 0x28, 0xe1, 0x74, 0x61, 0xe0, 0x36, 0x88, 0x72, 0x4e, 0x9f, 0x22, 0x1a, 0xf2, 0x41, + 0xe7, 0x88, 0x84, 0x3e, 0xf3, 0x42, 0x8a, 0x47, 0xa8, 0x76, 0x4b, 0xa2, 0x70, 0xff, 0xbd, 0x0a, + 0x59, 0x25, 0x3e, 0xef, 0x41, 0x9a, 0x06, 0x44, 0x1a, 0xf8, 0xbf, 0x4f, 0x83, 0xff, 0xa0, 0xfa, + 0x9c, 0x86, 0xd1, 0x26, 0x5d, 0x22, 0x4a, 0x99, 0xea, 0x37, 0xaa, 0x9a, 0x9c, 0xf9, 0x0b, 0x03, + 0xb7, 0x20, 0x2d, 0x64, 0x8a, 0x11, 0x6a, 0xe8, 0x94, 0x2f, 0x8c, 0x2b, 0xcf, 0x61, 0xb8, 0x03, + 0x79, 0x2d, 0x74, 0xf8, 0x18, 0x65, 0xe7, 0x99, 0xa0, 0xa6, 0xb9, 0x87, 0x06, 0xe5, 0xc4, 0x26, + 0x9c, 0xe0, 0x2e, 0x14, 0x7a, 0xd9, 0xce, 0x7f, 0xa8, 0x7d, 0xe7, 0xdb, 0xc9, 0x1d, 0xe5, 0x16, + 0x7d, 0x28, 0x23, 0x99, 0xcb, 0x04, 0x35, 0xf5, 0x52, 0x0a, 0xfd, 0x7c, 0x8a, 0x12, 0xce, 0x4e, + 0xa1, 0xa3, 0xb6, 0x4e, 0xf9, 0x94, 0xb8, 0x2e, 0x63, 0xde, 0x8c, 0x79, 0xce, 0x7a, 0x85, 0xfb, + 0x50, 0x46, 0xc2, 0xe5, 0xc7, 0x99, 0xc9, 0xe1, 0x3a, 0xd2, 0xec, 0xd9, 0x18, 0x77, 0xa1, 0xd0, + 0xcb, 0xaf, 0x43, 0x3d, 0x78, 0x9b, 0x9c, 0xf0, 0x10, 0x7f, 0x87, 0x12, 0x11, 0x1e, 0xfd, 0xd3, + 0x41, 0x96, 0xe2, 0x12, 0xe1, 0xc2, 0xd6, 0xd4, 0x68, 0x00, 0xa7, 0x50, 0x96, 0x67, 0x8c, 0xbe, + 0x5e, 0x33, 0x62, 0x9b, 0x1e, 0xf1, 0xc3, 0x07, 0xc6, 0xf1, 0x37, 0x38, 0x6e, 0x85, 0xba, 0x99, + 0xd0, 0x7c, 0xfd, 0x5f, 0xd4, 0x4a, 0xdf, 0x7d, 0x2e, 0xeb, 0x41, 0x11, 0xc8, 0x5f, 0x62, 0xed, + 0xc6, 0x71, 0x5c, 0x46, 0x6c, 0xac, 0x42, 0x56, 0x49, 0x34, 0xd3, 0x5f, 0xdb, 0x9d, 0x56, 0x79, + 0xdf, 0x69, 0x95, 0x97, 0x58, 0x53, 0xb6, 0xb1, 0xa6, 0xbc, 0xc5, 0x9a, 0xf2, 0x11, 0x6b, 0xca, + 0x7d, 0x23, 0xff, 0xeb, 0x97, 0xd5, 0x44, 0x34, 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x3b, 0x3e, + 0x14, 0xd9, 0x09, 0x04, 0x00, 0x00, } type FirecrackerService interface { @@ -203,35 +65,13 @@ type FirecrackerService interface { SetVMMetadata(ctx context.Context, req *proto1.SetVMMetadataRequest) (*empty.Empty, error) UpdateVMMetadata(ctx context.Context, req *proto1.UpdateVMMetadataRequest) (*empty.Empty, error) GetVMMetadata(ctx context.Context, req *proto1.GetVMMetadataRequest) (*proto1.GetVMMetadataResponse, error) -<<<<<<< HEAD GetBalloonConfig(ctx context.Context, req *proto1.GetBalloonConfigRequest) (*proto1.GetBalloonConfigResponse, error) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) GetBalloonStats(ctx context.Context, req *proto1.GetBalloonStatsRequest) (*proto1.GetBalloonStatsResponse, error) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) -======= -<<<<<<< HEAD -======= - PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) - ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadResponse, error) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) -<<<<<<< HEAD -<<<<<<< HEAD Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) ->>>>>>> Added support for creating and loading snapshots of VM. -<<<<<<< HEAD ->>>>>>> Added support for creating and loading snapshots of VM. -======= -======= - Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) ->>>>>>> Offload returns UPF socket -<<<<<<< HEAD ->>>>>>> Offload returns UPF socket -======= -======= - Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) ->>>>>>> *Updated Firecracker and return PID ->>>>>>> *Updated Firecracker and return PID } func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc FirecrackerService) { @@ -292,7 +132,6 @@ func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc Fir } return svc.GetVMMetadata(ctx, &req) }, -<<<<<<< HEAD "GetBalloonConfig": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { var req proto1.GetBalloonConfigRequest if err := unmarshal(&req); err != nil { @@ -321,23 +160,6 @@ func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc Fir } return svc.UpdateBalloonStats(ctx, &req) }, -======= -<<<<<<< HEAD -======= - "PauseVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { - var req proto1.PauseVMRequest - if err := unmarshal(&req); err != nil { - return nil, err - } - return svc.PauseVM(ctx, &req) - }, - "ResumeVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { - var req proto1.ResumeVMRequest - if err := unmarshal(&req); err != nil { - return nil, err - } - return svc.ResumeVM(ctx, &req) - }, "LoadSnapshot": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) { var req proto1.LoadSnapshotRequest if err := unmarshal(&req); err != nil { @@ -359,8 +181,6 @@ func RegisterFirecrackerService(srv *github_com_containerd_ttrpc.Server, svc Fir } return svc.Offload(ctx, &req) }, ->>>>>>> Added support for creating and loading snapshots of VM. ->>>>>>> Added support for creating and loading snapshots of VM. }) } @@ -437,99 +257,59 @@ func (c *firecrackerClient) GetVMMetadata(ctx context.Context, req *proto1.GetVM } return &resp, nil } -<<<<<<< HEAD func (c *firecrackerClient) GetBalloonConfig(ctx context.Context, req *proto1.GetBalloonConfigRequest) (*proto1.GetBalloonConfigResponse, error) { var resp proto1.GetBalloonConfigResponse if err := c.client.Call(ctx, "Firecracker", "GetBalloonConfig", req, &resp); err != nil { -======= -<<<<<<< HEAD -======= + return nil, err + } + return &resp, nil +} -func (c *firecrackerClient) PauseVM(ctx context.Context, req *proto1.PauseVMRequest) (*empty.Empty, error) { +func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { var resp empty.Empty - if err := c.client.Call(ctx, "Firecracker", "PauseVM", req, &resp); err != nil { + if err := c.client.Call(ctx, "Firecracker", "UpdateBalloon", req, &resp); err != nil { return nil, err } return &resp, nil } -func (c *firecrackerClient) ResumeVM(ctx context.Context, req *proto1.ResumeVMRequest) (*empty.Empty, error) { - var resp empty.Empty - if err := c.client.Call(ctx, "Firecracker", "ResumeVM", req, &resp); err != nil { ->>>>>>> Added support for creating and loading snapshots of VM. +func (c *firecrackerClient) GetBalloonStats(ctx context.Context, req *proto1.GetBalloonStatsRequest) (*proto1.GetBalloonStatsResponse, error) { + var resp proto1.GetBalloonStatsResponse + if err := c.client.Call(ctx, "Firecracker", "GetBalloonStats", req, &resp); err != nil { return nil, err } return &resp, nil } -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -func (c *firecrackerClient) UpdateBalloon(ctx context.Context, req *proto1.UpdateBalloonRequest) (*empty.Empty, error) { - var resp empty.Empty - if err := c.client.Call(ctx, "Firecracker", "UpdateBalloon", req, &resp); err != nil { -======= -func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { - var resp empty.Empty -======= -func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadSnapshotResponse, error) { - var resp proto1.LoadSnapshotResponse ->>>>>>> UPF sock pass back to orch -======= -func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*empty.Empty, error) { +func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) { var resp empty.Empty ->>>>>>> Offload returns UPF socket -======= + if err := c.client.Call(ctx, "Firecracker", "UpdateBalloonStats", req, &resp); err != nil { + return nil, err + } + return &resp, nil +} + func (c *firecrackerClient) LoadSnapshot(ctx context.Context, req *proto1.LoadSnapshotRequest) (*proto1.LoadResponse, error) { var resp proto1.LoadResponse ->>>>>>> *Updated Firecracker and return PID if err := c.client.Call(ctx, "Firecracker", "LoadSnapshot", req, &resp); err != nil { ->>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } -<<<<<<< HEAD -func (c *firecrackerClient) GetBalloonStats(ctx context.Context, req *proto1.GetBalloonStatsRequest) (*proto1.GetBalloonStatsResponse, error) { - var resp proto1.GetBalloonStatsResponse - if err := c.client.Call(ctx, "Firecracker", "GetBalloonStats", req, &resp); err != nil { -======= func (c *firecrackerClient) CreateSnapshot(ctx context.Context, req *proto1.CreateSnapshotRequest) (*empty.Empty, error) { var resp empty.Empty if err := c.client.Call(ctx, "Firecracker", "CreateSnapshot", req, &resp); err != nil { ->>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -func (c *firecrackerClient) UpdateBalloonStats(ctx context.Context, req *proto1.UpdateBalloonStatsRequest) (*empty.Empty, error) { - var resp empty.Empty - if err := c.client.Call(ctx, "Firecracker", "UpdateBalloonStats", req, &resp); err != nil { -======= -func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) { - var resp empty.Empty -======= -func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*proto1.OffloadResponse, error) { - var resp proto1.OffloadResponse ->>>>>>> Offload returns UPF socket -======= func (c *firecrackerClient) Offload(ctx context.Context, req *proto1.OffloadRequest) (*empty.Empty, error) { var resp empty.Empty ->>>>>>> *Updated Firecracker and return PID if err := c.client.Call(ctx, "Firecracker", "Offload", req, &resp); err != nil { ->>>>>>> Added support for creating and loading snapshots of VM. return nil, err } return &resp, nil } -<<<<<<< HEAD -======= ->>>>>>> Added support for creating and loading snapshots of VM. ->>>>>>> Added support for creating and loading snapshots of VM. diff --git a/runtime/service.go b/runtime/service.go index 562b2ebf3..53a3a0189 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -1895,3 +1895,133 @@ func (s *service) dialFirecrackerSocket() error { return nil } + +// PauseVM Pauses a VM +func (s *service) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) { + pauseReq, err := formPauseReq() + if err != nil { + s.logger.WithError(err).Error("Failed to create pause vm request") + return nil, err + } + + err = s.waitVMReady() + if err != nil { + return nil, err + } + + resp, err := s.httpControlClient.Do(pauseReq) + if err != nil { + s.logger.WithError(err).Error("Failed to send pause VM request") + return nil, err + } + if !strings.Contains(resp.Status, "204") { + s.logger.WithError(err).Error("Failed to pause VM") + return nil, err + } + + return &empty.Empty{}, nil +} + +// ResumeVM Resumes a VM +func (s *service) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) { + resumeReq, err := formResumeReq() + if err != nil { + s.logger.WithError(err).Error("Failed to create resume vm request") + return nil, err + } + + resp, err := s.httpControlClient.Do(resumeReq) + if err != nil { + s.logger.WithError(err).Error("Failed to send resume VM request") + return nil, err + } + if !strings.Contains(resp.Status, "204") { + s.logger.WithError(err).Error("Failed to resume VM") + return nil, err + } + return &empty.Empty{}, nil +} + +// LoadSnapshot Loads a VM from a snapshot +func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadResponse, error) { + if err := s.startFirecrackerProcess(); err != nil { + s.logger.WithError(err).Error("startFirecrackerProcess returned an error") + return nil, err + } + + if err := s.dialFirecrackerSocket(); err != nil { + s.logger.WithError(err).Error("Failed to wait for firecracker socket") + } + s.createHTTPControlClient() + + sendSockAddr := s.shimDir.FirecrackerUPFSockPath() + if !req.EnableUserPF { + sendSockAddr = "dummy" + } + + loadSnapReq, err := formLoadSnapReq(req.SnapshotFilePath, req.MemFilePath, sendSockAddr, req.EnableUserPF) + if err != nil { + s.logger.WithError(err).Error("Failed to create load snapshot request") + return nil, err + } + + resp, err := s.httpControlClient.Do(loadSnapReq) + if err != nil { + s.logger.WithError(err).Error("Failed to send load snapshot request") + return nil, err + } + if !strings.Contains(resp.Status, "204") { + s.logger.WithError(err).Error("Failed to load VM from snapshot") + s.logger.WithError(err).Errorf("Status of request: %s", resp.Status) + return nil, err + } + + return &proto.LoadResponse{FirecrackerPID: strconv.Itoa(s.firecrackerPid)}, nil +} + +// CreateSnapshot Creates a snapshot of a VM +func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (*empty.Empty, error) { + createSnapReq, err := formCreateSnapReq(req.SnapshotFilePath, req.MemFilePath) + if err != nil { + s.logger.WithError(err).Error("Failed to create make snapshot request") + return nil, err + } + + resp, err := s.httpControlClient.Do(createSnapReq) + if err != nil { + s.logger.WithError(err).Error("Failed to send make snapshot request") + return nil, err + } + if !strings.Contains(resp.Status, "204") { + s.logger.WithError(err).Error("Failed to make snapshot of VM") + return nil, err + } + + return &empty.Empty{}, nil +} + +// Offload Shuts down a VM and deletes the corresponding firecracker socket +// and vsock. All of the other resources will persist +func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) { + if err := syscall.Kill(s.firecrackerPid, 9); err != nil { + s.logger.WithError(err).Error("Failed to kill firecracker process") + return nil, err + } + + if err := os.RemoveAll(s.shimDir.FirecrackerSockPath()); err != nil { + s.logger.WithError(err).Error("Failed to delete firecracker socket") + return nil, err + } + + if err := os.RemoveAll(s.shimDir.FirecrackerVSockPath()); err != nil { + s.logger.WithError(err).Error("Failed to delete firecracker vsock") + return nil, err + } + + if err := os.RemoveAll(s.shimDir.FirecrackerUPFSockPath()); err != nil { + s.logger.WithError(err).Error("Failed to delete firecracker UPF socket") + return nil, err + } + + return &empty.Empty{}, nil +} From 4a8adae2660e3db2ea9b5b7b057b4388b9f5bab8 Mon Sep 17 00:00:00 2001 From: Plamen Petrov Date: Fri, 18 Jun 2021 10:10:01 +0300 Subject: [PATCH 17/17] fix: unseccessful HTTP now returns proper error Signed-off-by: Plamen Petrov --- runtime/service.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/service.go b/runtime/service.go index 53a3a0189..5d6c6f648 100644 --- a/runtime/service.go +++ b/runtime/service.go @@ -1916,7 +1916,7 @@ func (s *service) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empt } if !strings.Contains(resp.Status, "204") { s.logger.WithError(err).Error("Failed to pause VM") - return nil, err + return nil, errors.New("Failed to pause VM") } return &empty.Empty{}, nil @@ -1937,7 +1937,7 @@ func (s *service) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*em } if !strings.Contains(resp.Status, "204") { s.logger.WithError(err).Error("Failed to resume VM") - return nil, err + return nil, errors.New("Failed to resume VM") } return &empty.Empty{}, nil } @@ -1973,7 +1973,7 @@ func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotReque if !strings.Contains(resp.Status, "204") { s.logger.WithError(err).Error("Failed to load VM from snapshot") s.logger.WithError(err).Errorf("Status of request: %s", resp.Status) - return nil, err + return nil, errors.New("Failed to load VM from snapshot") } return &proto.LoadResponse{FirecrackerPID: strconv.Itoa(s.firecrackerPid)}, nil @@ -1994,7 +1994,7 @@ func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotR } if !strings.Contains(resp.Status, "204") { s.logger.WithError(err).Error("Failed to make snapshot of VM") - return nil, err + return nil, errors.New("Failed to make snapshot of VM") } return &empty.Empty{}, nil