Skip to content

feat: reuseport activator - #196

Draft
ctrox wants to merge 20 commits into
mainfrom
reuseport-activator
Draft

feat: reuseport activator#196
ctrox wants to merge 20 commits into
mainfrom
reuseport-activator

Conversation

@ctrox

@ctrox ctrox commented Aug 9, 2026

Copy link
Copy Markdown
Owner

This adds a completely new activator that makes use of bpf_sk_select_reuseport to steer wake/probe traffic instead of a userspace proxy+port rewrites. With this, zeropod is completely out of the data path for normal app traffic.

Comment thread activator/reuse/activator.go Outdated
@ctrox
ctrox force-pushed the reuseport-activator branch 6 times, most recently from 8542bf1 to c37f2fa Compare August 12, 2026 05:38
ctrox added 17 commits August 14, 2026 07:59
This adds a completely new activator that makes use of bpf_sk_select_reuseport
to steer wake/probe traffic instead of a userspace proxy+port rewrites. With
this, zeropod is completely out of the data path for normal app traffic.
when concurrent connections hit the wake listener, we only want to register the
app listeners once.
This unifies the two activator APIs into an interface, making it possible to
simply switch between them in the shim depending on the config.
This makes it more durable and also allows to migrate from the old to
the new activator while keeping the same checkpoint image. This also
adds bind4/bind6 programs to ensure all listeners have SO_REUSEPORT set.
@ctrox
ctrox force-pushed the reuseport-activator branch from c37f2fa to e5bf065 Compare August 14, 2026 05:59
@ctrox
ctrox force-pushed the reuseport-activator branch from 3a0ed0b to c975767 Compare August 14, 2026 06:28
ctrox added 2 commits August 15, 2026 07:29
This adds a new binary zeropod-netinfo with a single purpose: it
extracts the [activator.Listeners] from a criu snapshot for when we
migrate from an older version where the snapshot did not contain a
zeropod_listeners.json. This is done in a saparate binary as importing
the crit grpc defs would balloon the binary and memory usage of the
shim.

Additionally, the old activator will also discover and write the
listeners before checkpointing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant