@@ -35,17 +35,16 @@ mirror the current mount and umount API of the kernel.
...
@@ -35,17 +35,16 @@ mirror the current mount and umount API of the kernel.
## seccomp\_allow\_nesting
## seccomp\_allow\_nesting
This adds support for seccomp filters to be stacked regardless of whether a seccomp profile is
This adds support for seccomp filters to be stacked regardless of whether a seccomp profile is already loaded. This allows nested containers to load their own seccomp profile.
already loaded. This allows nested containers to load their own seccomp profile.
## seccomp\_notify
## seccomp\_notify
This adds "notify" as seccomp action that will cause LXC to register a seccomp listener and retrieve
This adds "notify" as seccomp action that will cause LXC to register a seccomp listener and retrieve a listener file descriptor from the kernel. When a syscall is made that is registered as "notify" the kernel will generate a poll event and send a message over the file descriptor.
a listener file descriptor from the kernel. When a syscall is made that is registered as "notify"
the kernel will generate a poll event and send a message over the file descriptor.
The caller can read this message, inspect the syscalls including its arguments. Based on this information the caller is expected to send back a message informing the kernel which action to take. Until that message is sent the kernel will block the calling process. The format of the messages to read and sent is documented in seccomp itself.
The caller can read this message, inspect the syscalls including its arguments. Based on this information the caller is expected to send back a message informing the kernel which action to take. Until that message is sent the kernel will block the calling process. The format of the messages to read and sent is documented in seccomp itself.
A new API function `seccomp_notify_fd()` has been added which allows callers to retrieve the notifier fd for the container's seccomp filter.
## network\_veth\_routes
## network\_veth\_routes
This introduces the `lxc.net.[i].veth.ipv4.route` and `lxc.net.[i].veth.ipv6.route` properties
This introduces the `lxc.net.[i].veth.ipv4.route` and `lxc.net.[i].veth.ipv6.route` properties
...
@@ -97,24 +96,25 @@ This is primarily intended for use with layer 3 networking devices, such as IPVL
...
@@ -97,24 +96,25 @@ This is primarily intended for use with layer 3 networking devices, such as IPVL
This introduces the ability to specify a custom MTU for `phys` and `macvlan` devices using the
This introduces the ability to specify a custom MTU for `phys` and `macvlan` devices using the
`lxc.net.[i].mtu` property.
`lxc.net.[i].mtu` property.
# network\_veth\_router
## network\_veth\_router
This introduces the ability to specify a `lxc.net.[i].veth.mode` setting, which takes a value of "bridge" or "router". This defaults to "bridge".
In "router" mode static routes are created on the host for the container's IP addresses pointing to the host side veth interface. In addition to the routes, a static IP neighbour proxy is added to the host side veth interface for the IPv4 and IPv6 gateway IPs.
## cgroup2\_devices
This introduces the ability to specify a `lxc.net.[i].veth.mode` setting, which takes a value of
This enables `LXC` to make use of the new devices controller in the unified cgroup hierarchy. `LXC` will now create, load, and attach bpf program to the cgroup of the container when the controller is available.
"bridge" or "router". This defaults to "bridge".
In "router" mode static routes are created on the host for the container's IP addresses pointing to
## cgroup2
the host side veth interface. In addition to the routes, a static IP neighbour proxy is added to
the host side veth interface for the IPv4 and IPv6 gateway IPs.
This enables `LXC` to make complete use of the unified cgroup hierarchy. With this extension it is possible to run `LXC` containers on systems that use a pure unified cgroup layout.
# cgroup2\_devices
## init\_pidfd
This enables `LXC` to make use of the new devices controller in the unified
This adds a new API function `init_pidfd()` which allows to retrieve a pidfd for the container's init process allowing process management interactions such as sending signal to be completely reliable and rac-e free.
cgroup hierarchy. `LXC` will now create, load, and attach bpf program to the
cgroup of the container when the controller is available.
# cgroup2
## pidfd
This enables `LXC` to make complete use of the unified cgroup hierarchy. With
When running on kernels that support pidfds LXC will rely on them for most operations. This makes interacting with containers not just more reliable it also makes it significantly safer and eliminates various races inherent to PID-based kernel APIs. LXC will require that the running kernel at least support `pidfd_send_signal()`, `CLONE_PIDFD`, `P_PIDFD`, and pidfd polling support. Any kernel starting with `Linux 5.4` should have full support for pidfds.
this extension it is possible to run `LXC` containers on systems that use