Skip to content

Use passt for user-mode networking on crosvm. - #3071

Merged
3405691582 merged 1 commit into
google:mainfrom
3405691582:passt_3
Aug 25, 2026
Merged

Use passt for user-mode networking on crosvm.#3071
3405691582 merged 1 commit into
google:mainfrom
3405691582:passt_3

Conversation

@3405691582

@3405691582 3405691582 commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Currenly, for cuttlefish guest network access, the host requires tap
devices to be preconfigured or dynamically configured with cvdalloc.
Both require some manner of elevated privileges in the execution
environment, which can be inconvenient for external network access, or
prevents network access entirely in some execution environments.

User-mode networking is the typical mechanism to work around this
requirement, and slirp is the typical implementation for this. However,
while slirp is available in qemu, it is not available on all platforms
for crosvm.

To work around this, for now we use vhost-user and passt. If slirp is
supported in crosvm on more platforms in the future, then we can pivot.
Currently, only the mobile interface is set up with passt. Doing this
correctly for Wi-Fi will require more care, and for now, having some
basic user-mode networking is better than none.

Bug: 286284441


To expedite things, I'm sending this for review now while dependent prs covering the other commits are now being merged in #3056 and #3057. Once landed, I'll rebase this branch. For now, you can focus your attention on the changes in ccd3551.

@3405691582
3405691582 requested review from Databean and dxapd August 21, 2026 17:46
@3405691582
3405691582 force-pushed the passt_3 branch 4 times, most recently from e51cdf5 to ef994fe Compare August 21, 2026 18:13
@3405691582 3405691582 added the kokoro:run Run e2e tests. label Aug 21, 2026
@GoogleCuttlefishTesterBot GoogleCuttlefishTesterBot removed the kokoro:run Run e2e tests. label Aug 21, 2026
@3405691582
3405691582 force-pushed the passt_3 branch 2 times, most recently from ff93f56 to 2900583 Compare August 24, 2026 20:40
@3405691582
3405691582 enabled auto-merge August 24, 2026 20:40
@3405691582 3405691582 added the kokoro:run Run e2e tests. label Aug 24, 2026
@GoogleCuttlefishTesterBot GoogleCuttlefishTesterBot removed the kokoro:run Run e2e tests. label Aug 24, 2026
Currenly, for cuttlefish guest network access, the host requires tap
devices to be preconfigured or dynamically configured with cvdalloc.
Both require some manner of elevated privileges in the execution
environment, which can be inconvenient for external network access, or
prevents network access entirely in some execution environments.

User-mode networking is the typical mechanism to work around this
requirement, and slirp is the typical implementation for this. However,
while slirp is available in qemu, it is not available on all platforms
for crosvm.

To work around this, for now we use vhost-user and passt. If slirp is
supported in crosvm on more platforms in the future, then we can pivot.
Currently, only the mobile interface is set up with passt. Doing this
correctly for Wi-Fi will require more care, and for now, having some
basic user-mode networking is better than none.

Bug: 286284441
@3405691582 3405691582 added the kokoro:run Run e2e tests. label Aug 25, 2026
@GoogleCuttlefishTesterBot GoogleCuttlefishTesterBot removed the kokoro:run Run e2e tests. label Aug 25, 2026
@3405691582
3405691582 added this pull request to the merge queue Aug 25, 2026
Merged via the queue into google:main with commit c4cc089 Aug 25, 2026
33 checks passed
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.

4 participants