Skip to content

Commit 554dc66

Browse files
authored
Merge pull request #522 from fahedouch/support-gvior-tap-vsock-port-driver
Support gvior tap vsock port driver
2 parents c02897f + ce86985 commit 554dc66

File tree

13 files changed

+452
-58
lines changed

13 files changed

+452
-58
lines changed

.github/workflows/main.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,14 @@ jobs:
175175
run: |
176176
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
177177
rootlesskit:test-integration ./benchmark-iperf3-port.sh implicit --net=pasta --detach-netns
178+
- name: "Benchmark: TCP Ports (network driver=gvisor-tap-vsock, port driver=gvisor-tap-vsock)"
179+
run: |
180+
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
181+
rootlesskit:test-integration ./benchmark-iperf3-port.sh gvisor-tap-vsock --net=gvisor-tap-vsock
182+
- name: "Benchmark: TCP Ports (network driver=gvisor-tap-vsock, port driver=gvisor-tap-vsock) with detach-netns"
183+
run: |
184+
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
185+
rootlesskit:test-integration ./benchmark-iperf3-port.sh gvisor-tap-vsock --net=gvisor-tap-vsock --detach-netns
178186
# ===== Benchmark: UDP Ports =====
179187
- name: "Benchmark: UDP Ports (port driver=slirp4netns)"
180188
run: |
@@ -200,6 +208,14 @@ jobs:
200208
run: |
201209
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
202210
rootlesskit:test-integration ./benchmark-iperf3-port-udp.sh builtin --detach-netns
211+
- name: "Benchmark: UDP Ports (network driver=gvisor-tap-vsock, port driver=gvisor-tap-vsock)"
212+
run: |
213+
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
214+
rootlesskit:test-integration ./benchmark-iperf3-port-udp.sh gvisor-tap-vsock --net=gvisor-tap-vsock
215+
- name: "Benchmark: UDP Ports (network driver=gvisor-tap-vsock, port driver=gvisor-tap-vsock) with detach-netns"
216+
run: |
217+
docker run --rm --security-opt seccomp=unconfined --security-opt apparmor=unconfined --device /dev/net/tun \
218+
rootlesskit:test-integration ./benchmark-iperf3-port-udp.sh gvisor-tap-vsock --net=gvisor-tap-vsock --detach-netns
203219
204220
test-integration-docker:
205221
name: "Integration test (Docker)"

cmd/rootlesskit/main.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"github.com/rootless-containers/rootlesskit/v2/pkg/network/vpnkit"
2828
"github.com/rootless-containers/rootlesskit/v2/pkg/parent"
2929
"github.com/rootless-containers/rootlesskit/v2/pkg/port/builtin"
30+
gvisortapvsock_port "github.com/rootless-containers/rootlesskit/v2/pkg/port/gvisortapvsock"
3031
"github.com/rootless-containers/rootlesskit/v2/pkg/port/portutil"
3132
slirp4netns_port "github.com/rootless-containers/rootlesskit/v2/pkg/port/slirp4netns"
3233
"github.com/rootless-containers/rootlesskit/v2/pkg/systemd/activation"
@@ -168,7 +169,7 @@ See https://rootlesscontaine.rs/getting-started/common/ .
168169
}, CategoryMount),
169170
Categorize(&cli.StringFlag{
170171
Name: "port-driver",
171-
Usage: "port driver for non-host network. [none, implicit (for pasta), builtin, slirp4netns]",
172+
Usage: "port driver for non-host network. [none, implicit (for pasta), builtin, slirp4netns, gvisor-tap-vsock]",
172173
Value: "none",
173174
}, CategoryPort),
174175
Categorize(&cli.StringSliceFlag{
@@ -558,7 +559,7 @@ func createParentOpt(clicontext *cli.Context) (parent.Opt, error) {
558559

559560
if clicontext.Bool("ipv6") {
560561
// virtual network does not support IPv6 yet
561-
// see https://github.com/containers/gvisor-tap-vsock/blob/v0.8.6/pkg/virtualnetwork/virtualnetwork.go#L102
562+
// see https://github.com/containers/gvisor-tap-vsock/blob/v0.8.7/pkg/virtualnetwork/virtualnetwork.go#L102
562563
return opt, errors.New("--ipv6 is not supported for gvisor-tap-vsock")
563564
}
564565

@@ -596,6 +597,15 @@ func createParentOpt(clicontext *cli.Context) (parent.Opt, error) {
596597
if err != nil {
597598
return opt, err
598599
}
600+
case "gvisor-tap-vsock":
601+
logrus.Warn("\"gvisor-tap-vsock\" port driver is experimental")
602+
if opt.NetworkDriver == nil {
603+
return opt, errors.New("port driver requires non-host network")
604+
}
605+
opt.PortDriver, err = gvisortapvsock_port.NewParentDriver(&logrusDebugWriter{label: "port/gvisor-tap-vsock"}, opt.StateDir)
606+
if err != nil {
607+
return opt, err
608+
}
599609
default:
600610
return opt, fmt.Errorf("unknown port driver: %s", s)
601611
}
@@ -687,6 +697,8 @@ func createChildOpt(clicontext *cli.Context) (child.Opt, error) {
687697
opt.PortDriver = slirp4netns_port.NewChildDriver()
688698
case "builtin":
689699
opt.PortDriver = builtin.NewChildDriver(&logrusDebugWriter{label: "port/builtin"})
700+
case "gvisor-tap-vsock":
701+
opt.PortDriver = gvisortapvsock_port.NewChildDriver()
690702
default:
691703
return opt, fmt.Errorf("unknown port driver: %s", s)
692704
}

docs/network.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@ Currently, the MAC address is always set to a random address.
212212

213213
`--net=gvisor-tap-vsock` isolates the network namespace from the host and uses [gvisor-tap-vsock](https://github.com/containers/gvisor-tap-vsock) for providing usermode networking.
214214

215+
> Note: When used together with the `gvisor-tap-vsock` port driver, port-forward throughput is currently slower than other drivers. The port driver is experimental. Ideas for improving throughput are being tracked here: https://github.com/rootless-containers/rootlesskit/issues/529
216+
215217
Pros:
216218
* Possible to perform network-namespaced operations, e.g. creating iptables rules, running `tcpdump`
217219
* Supports ICMP Echo (`ping`) when `/proc/sys/net/ipv4/ping_group_range` is configured

docs/port.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@ To the ports in the network namespace to the host network namespace, `--port-dri
44

55
The default value is `none` (do not expose ports).
66

7-
| `--port-driver` | Throughput | Source IP
8-
|----------------------|-------------|----------
9-
| `slirp4netns` | 6.89 Gbps | Propagated
10-
| `socat` (Deprecated) | 7.80 Gbps | Always 127.0.0.1
11-
| `builtin` | 30.0 Gbps | Always 127.0.0.1
7+
| `--port-driver` | Throughput | Source IP | Notes
8+
|----------------------|-------------|----------|-------
9+
| `slirp4netns` | 9.78 Gbps | Propagated |
10+
| `builtin` | 35.6 Gbps | Always 127.0.0.1 |
11+
| `gvisor-tap-vsock` (Experimental) | 3.99 Gbps | Propagated | Throughput is currently limited; see issue link below for improvement ideas.
1212

13-
([Benchmark: iperf3 from the parent to the child (Mar 8, 2020)](https://github.com/rootless-containers/rootlesskit/runs/492498728))
13+
Benchmark: iperf3 from the parent to the child is measured on GitHub Actions
1414

1515
The `builtin` driver is fast, but be aware that the source IP is not propagated and always set to 127.0.0.1.
1616

1717
For [`pasta`](./network.md) networks, the `implicit` port driver is the best choice.
1818

19+
For [`gVisor TAP/vsock`](https://github.com/containers/gvisor-tap-vsock) based networks, use the `gvisor-tap-vsock` port driver.
20+
21+
> Note: The `gvisor-tap-vsock` port driver is experimental. Current throughput is known to be slower than other drivers. We are tracking ideas for improving throughput here: https://github.com/rootless-containers/rootlesskit/issues/529
22+
1923
* To be documented: [`bypass4netns`](https://github.com/rootless-containers/bypass4netns) for native performance.
2024

2125
### Exposing ports
@@ -32,11 +36,6 @@ rootlesskit$ rootlessctl --socket=/run/user/1001/rootlesskit/foo/api.sock remove
3236
1
3337
```
3438

35-
You can also expose ports using `socat` and `nsenter` instead of RootlessKit's port drivers.
36-
```console
37-
$ pid=$(cat /run/user/1001/rootlesskit/foo/child_pid)
38-
$ socat -t -- TCP-LISTEN:8080,reuseaddr,fork EXEC:"nsenter -U -n -t $pid socat -t -- STDIN TCP4\:127.0.0.1\:80"
39-
```
4039

4140
### Exposing privileged ports
4241
To expose privileged ports (< 1024), add `net.ipv4.ip_unprivileged_port_start=0` to `/etc/sysctl.conf` (or `/etc/sysctl.d`) and run `sudo sysctl --system`.

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
module github.com/rootless-containers/rootlesskit/v2
22

3-
go 1.23.0
3+
go 1.24.0
44

55
require (
66
github.com/Masterminds/semver/v3 v3.4.0
77
github.com/containernetworking/plugins v1.7.1
8-
github.com/containers/gvisor-tap-vsock v0.8.6
8+
github.com/containers/gvisor-tap-vsock v0.8.8-0.20250909141233-c4615cdb1462
99
github.com/gofrs/flock v0.12.1
1010
github.com/google/uuid v1.6.0
1111
github.com/gorilla/mux v1.8.1
@@ -15,7 +15,8 @@ require (
1515
github.com/sirupsen/logrus v1.9.3
1616
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8
1717
github.com/urfave/cli/v2 v2.27.7
18-
golang.org/x/sys v0.35.0
18+
golang.org/x/sync v0.17.0
19+
golang.org/x/sys v0.36.0
1920
gotest.tools/v3 v3.5.2
2021
)
2122

@@ -26,17 +27,16 @@ require (
2627
github.com/google/btree v1.1.2 // indirect
2728
github.com/google/go-cmp v0.7.0 // indirect
2829
github.com/google/gopacket v1.1.19 // indirect
29-
github.com/miekg/dns v1.1.65 // indirect
30+
github.com/miekg/dns v1.1.68 // indirect
3031
github.com/pierrec/lz4/v4 v4.1.21 // indirect
3132
github.com/pkg/errors v0.9.1 // indirect
3233
github.com/russross/blackfriday/v2 v2.1.0 // indirect
3334
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
3435
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
35-
golang.org/x/crypto v0.38.0 // indirect
36-
golang.org/x/mod v0.24.0 // indirect
37-
golang.org/x/net v0.38.0 // indirect
38-
golang.org/x/sync v0.14.0 // indirect
36+
golang.org/x/crypto v0.42.0 // indirect
37+
golang.org/x/mod v0.28.0 // indirect
38+
golang.org/x/net v0.43.0 // indirect
3939
golang.org/x/time v0.5.0 // indirect
40-
golang.org/x/tools v0.31.0 // indirect
40+
golang.org/x/tools v0.36.0 // indirect
4141
gvisor.dev/gvisor v0.0.0-20240916094835-a174eb65023f // indirect
4242
)

go.sum

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ github.com/containernetworking/cni v1.3.0 h1:v6EpN8RznAZj9765HhXQrtXgX+ECGebEYEm
88
github.com/containernetworking/cni v1.3.0/go.mod h1:Bs8glZjjFfGPHMw6hQu82RUgEPNGEaBb9KS5KtNMnJ4=
99
github.com/containernetworking/plugins v1.7.1 h1:CNAR0jviDj6FS5Vg85NTgKWLDzZPfi/lj+VJfhMDTIs=
1010
github.com/containernetworking/plugins v1.7.1/go.mod h1:xuMdjuio+a1oVQsHKjr/mgzuZ24leAsqUYRnzGoXHy0=
11-
github.com/containers/gvisor-tap-vsock v0.8.6 h1:9SeAXK+K2o36CtrgYk6zRXbU3zrayjvkrI8b7/O6u5A=
12-
github.com/containers/gvisor-tap-vsock v0.8.6/go.mod h1:+0mtKmm4STeSDnZe+DGnIwN4EH2f7AcWir7PwT28Ti0=
11+
github.com/containers/gvisor-tap-vsock v0.8.8-0.20250909141233-c4615cdb1462 h1:3epe2ZHb43TaYQmSIWPFfDawh7hdW5qgYPvu0xw3A8k=
12+
github.com/containers/gvisor-tap-vsock v0.8.8-0.20250909141233-c4615cdb1462/go.mod h1:T1aCvysIQbAz+/gaJ31pe0DmROafTYBTpXsB1Toh8WI=
1313
github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
1414
github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
1515
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -43,8 +43,8 @@ github.com/mdlayher/packet v1.1.2 h1:3Up1NG6LZrsgDVn6X4L9Ge/iyRyxFEFD9o6Pr3Q1nQY
4343
github.com/mdlayher/packet v1.1.2/go.mod h1:GEu1+n9sG5VtiRE4SydOmX5GTwyyYlteZiFU+x0kew4=
4444
github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos=
4545
github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ=
46-
github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc=
47-
github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck=
46+
github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
47+
github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
4848
github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg=
4949
github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4=
5050
github.com/moby/vpnkit v0.6.0 h1:HEh3iQ57oigvPNbR89R14pw3difgPyFOMMD3JAoqPoY=
@@ -55,8 +55,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
5555
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
5656
github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus=
5757
github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
58-
github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y=
59-
github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0=
58+
github.com/onsi/gomega v1.38.0 h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
59+
github.com/onsi/gomega v1.38.0/go.mod h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
6060
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
6161
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
6262
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -71,8 +71,8 @@ github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 h1:TG/diQgUe0pntT/2D
7171
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E=
7272
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
7373
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
74-
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
75-
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
74+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
75+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
7676
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 h1:pyC9PaHYZFgEKFdlp3G8RaCKgVpHZnecvArXvPXcFkM=
7777
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA=
7878
github.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU=
@@ -85,34 +85,34 @@ go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
8585
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
8686
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
8787
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
88-
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
89-
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
88+
golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
89+
golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
9090
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
9191
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
92-
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
93-
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
92+
golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U=
93+
golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI=
9494
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
9595
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
96-
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
97-
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
96+
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
97+
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
9898
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
99-
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
100-
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
99+
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
100+
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
101101
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
102102
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
103103
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
104-
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
105-
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
106-
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
107-
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
104+
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
105+
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
106+
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
107+
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
108108
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
109-
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
110-
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
109+
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
110+
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
111111
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
112112
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
113113
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
114-
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
115-
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
114+
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
115+
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
116116
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
117117
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
118118
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=

pkg/messages/messages.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ type ChildInitUserNSCompleted struct {
5555

5656
type ParentInitNetworkDriverCompleted struct {
5757
// Fields are empty for HostNetwork.
58+
Network interface{}
5859
Dev string
5960
IP string
6061
Netmask int

0 commit comments

Comments
 (0)