config: add MQUEUE, BRIDGE, NETFILTER support#128
Conversation
These config files were originally generated against older kernel versions (6.6.59 for x86_64/aarch64/sev/windows, 6.12.20 for tdx/riscv64) and had not been refreshed after the 6.12.87 rebase. Run `make olddefconfig` against the 6.12.87 kernel sources to pick up new defaults and resolve any missing or changed Kconfig symbols. Assisted-by: <anthropic/claude-opus-4.6> Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
The value is set on aarch64 and without it we hit a common error trying to run containers inside a libkrun VM. Start up libkrun: ``` $ podman run --net=host --rm --log-level=debug quay.io/fedora/fedora-minimal:44 echo hello ... time="2026-05-18T19:55:54Z" level=debug msg="ExitCode msg: \"crun: mount `mqueue` to `dev/mqueue`: no such device: oci runtime error\"" Error: OCI runtime error: crun: mount `mqueue` to `dev/mqueue`: No such device ``` Note this is essentially a revert of 62444be. Assisted-by: <anthropic/claude-opus-4.6> Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
If you want to start a podman container inside the krun VM and not use `--net=host` (i.e. use netavark instead) then you need BRIDGE support [1]. Additionally, enable CONFIG_NETFILTER and the full nftables stack (NF_TABLES, NF_CONNTRACK, NF_NAT, NFT_MASQ, etc.) so that podman/netavark can use nft without getting: src/mnl.c:66: Unable to initialize Netlink socket: Protocol not supported Enable these on all three architectures: x86_64, aarch64, riscv64. [1] containers/podman#25201 (comment) Assisted-by: <anthropic/claude-opus-4.6> Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
There's never been a well-defined rule. If there's a use case, the change doesn't impact boot time and the size increase isn't too large, it can go in. In this case, on aarch64 I see the size increases by just 64k, and there isn't a reason for this change to affect boot time. So LGTM, thanks! |
|
I've just noticed the first commit, beyond aligning the config with 6.12.87, actually changes the current configuration, at least on aarch64 (for instance, disabling KVM). Please drop the first commit and just add the new configuration options (Makefile does an "olddefconfig" anyway). |
oops. Yes, I see that now.
Do you know an easy way for me to translate "I want bridge and netfilter/nftables support" into the right config options? with |
Let me update the configs manually, and then you can rebase this PR on it. |
See individual commit messages.
Essentially what I'm trying to do is run
podmaninside my krun VM and have it be completely isolated from the host, but also function well enough without special arguments to act generically like a container runtime. i.e. I want to be able to navigate to a project's source code and typemake whateverand if that project leverages containers everything just works.An example of this would be
make ci-operator-configfrom this repo without having to patch the Makefile like this:Ultimately my goal is to sandbox AI agents so I'm comfortable allowing them to do more, but not worrying about my host system.
I understand especially the last commit adding BRIDGE/NETFILTER may cause the size of the kernel to increase and may not be desired since it enables many options. Is this generally a problem? Is there some sort of balance between "these config options enable an important use case" and the size increase?