Skip to content

Enable dummy netdev and TC BPF kernel options #212

Description

@bcho

Description

I’m trying to run networking software inside an exe.dev VM that needs to:

  1. create a dummy network interface
  2. attach TC/eBPF programs to interface ingress/egress hooks

The VM has general eBPF support enabled, but appears to be missing a few networking-specific kernel options.

Environment

uname -r: 6.12.93

Commands used to check

uname -r

zgrep -E 'CONFIG_BPF|CONFIG_BPF_JIT|CONFIG_KPROBES|CONFIG_UPROBES|CONFIG_TRACEPOINTS|CONFIG_FTRACE|CONFIG_NET_CLS_BPF|CONFIG_NET_ACT_BPF|CONFIG_DUMMY' /proc/config.gz

Current kernel config

General eBPF features appear to be enabled:

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_TRACEPOINTS=y
CONFIG_KPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
CONFIG_FTRACE=y
CONFIG_BPF_EVENTS=y

But these required networking features are missing:

# CONFIG_NET_CLS_BPF is not set
# CONFIG_NET_ACT_BPF is not set
# CONFIG_DUMMY is not set

Reproduction

Creating a dummy interface fails:

sudo ip link add testdummy0 type dummy

Result:

Error: Unknown device type.

Trying to load the dummy module also fails:

sudo modprobe dummy

Result:

modprobe: FATAL: Module dummy not found in directory /lib/modules/6.12.93

A veth interface can be created, but TC/eBPF attachment is still blocked because CONFIG_NET_CLS_BPF / CONFIG_NET_ACT_BPF are not enabled.

Request

Could exe.dev enable these kernel options, either built-in or as modules?

CONFIG_DUMMY=y or m
CONFIG_NET_CLS_BPF=y or m
CONFIG_NET_ACT_BPF=y or m

This would allow workloads to create dummy network devices and attach TC/eBPF programs to network interfaces.

Related issues

This is related to, but more specific than:

Issue #127 enabled broader eBPF support, and that does appear to be working. This request is specifically for TC networking BPF support and dummy netdev support.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions