Describe the bug
Please enable CONFIG_CAN_VXCAN=m in the Raspberry Pi OS kernel configs.
The Pi is a very common host for CAN work (robotics, automotive, 3D printing), and containerised deployments of these stacks currently have no clean way to get CAN into a namespace.
An abomacombination of veth, mguentner/cannelloni & vcan can be made to work but it is 2 processes in two namespaces, error-prone, not production ready and has no clean rate-limiting option.
vxcan is the CAN equivalent of veth: a pair of virtual CAN interfaces where frames written to one end appear on the other. The standard pattern is a cangw rule bridging a physical canX to one end of a vxcan pair, with the other end moved into the container's namespace. It's a very small module, see drivers/net/can/vxcan.c
It would be ideal if this could be enabled on the branch backing the current Raspberry Pi OS stable release so existing install could pick it up, but I understand it might only be possible going forward, so I'm happy either way.
Steps to reproduce the behaviour
$ for m in can can_raw can_gw vcan vxcan; do modinfo "$m" &>/dev/null && echo "[✓] $m" || echo "[✗] $m"; done
[✓] can
[✓] can_raw
[✓] can_gw
[✓] vcan
[✗] vxcan
$ grep -i vxcan /boot/config-$(uname -r)
# CONFIG_CAN_VXCAN is not set
$ modprobe vxcan
modprobe: FATAL: Module vxcan not found in directory /lib/modules/6.18.39+rpt-rpi-2712
Device (s)
Raspberry Pi 5
System
$ cat /etc/rpi-issue
Raspberry Pi reference 2026-06-18
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, ca8aeed0ae300c2a89f55ce9617d5f96a27e99e5, stage2
$ vcgencmd version
2026/08/12 00:06:56
Copyright (c) 2012 Broadcom
version f5e89631 (release) (embedded)
$ uname -a
Linux pi5 6.18.39+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29) aarch64 GNU/Linux
Logs
No response
Additional context
No response
Describe the bug
Please enable
CONFIG_CAN_VXCAN=min the Raspberry Pi OS kernel configs.The Pi is a very common host for CAN work (robotics, automotive, 3D printing), and containerised deployments of these stacks currently have no clean way to get CAN into a namespace.
An abomacombination of
veth, mguentner/cannelloni &vcancan be made to work but it is 2 processes in two namespaces, error-prone, not production ready and has no clean rate-limiting option.vxcanis the CAN equivalent ofveth: a pair of virtual CAN interfaces where frames written to one end appear on the other. The standard pattern is acangwrule bridging a physicalcanXto one end of avxcanpair, with the other end moved into the container's namespace. It's a very small module, see drivers/net/can/vxcan.cIt would be ideal if this could be enabled on the branch backing the current Raspberry Pi OS stable release so existing install could pick it up, but I understand it might only be possible going forward, so I'm happy either way.
Steps to reproduce the behaviour
Device (s)
Raspberry Pi 5
System
$ cat /etc/rpi-issue Raspberry Pi reference 2026-06-18 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, ca8aeed0ae300c2a89f55ce9617d5f96a27e99e5, stage2 $ vcgencmd version 2026/08/12 00:06:56 Copyright (c) 2012 Broadcom version f5e89631 (release) (embedded) $ uname -a Linux pi5 6.18.39+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29) aarch64 GNU/LinuxLogs
No response
Additional context
No response