runsc/sandbox: Collect loopback routes in loopbackLink#12725
Open
p12tic wants to merge 4 commits intogoogle:masterfrom
Open
runsc/sandbox: Collect loopback routes in loopbackLink#12725p12tic wants to merge 4 commits intogoogle:masterfrom
p12tic wants to merge 4 commits intogoogle:masterfrom
Conversation
Update loopbackLink() to also collect routes from the loopback interface via routesForIface(), in addition to the address-derived subnet routes it already synthesizes. Previously, only routes synthesized from addresses (e.g. 127.0.0.0/8) were included for loopback interfaces. Custom routes added to the loopback interface (e.g. via podman-network-create --route) were missed because collectLinksAndRoutes() only called routesForIface() for non-loopback interfaces. The address-derived routes live in the kernel's local routing table, while custom routes live in the main routing table. Since routesForIface queries the main table, these two sets are distinct and both are needed.
copybara-service bot
pushed a commit
that referenced
this pull request
Mar 19, 2026
Update loopbackLink() to also collect routes from the loopback interface via routesForIface(), in addition to the address-derived subnet routes it already synthesizes. Previously, only routes synthesized from addresses (e.g. 127.0.0.0/8) were included for loopback interfaces. Custom routes added to the loopback interface (e.g. via podman-network-create --route) were missed because collectLinksAndRoutes() only called routesForIface() for non-loopback interfaces. The address-derived routes live in the kernel's local routing table, while custom routes live in the main routing table. Since routesForIface queries the main table, these two sets are distinct and both are needed. ---- First 3 commits of the PR are general refactoring for testability and new tests. These could go in even if the fix is deemed as out of scope for the project. FUTURE_COPYBARA_INTEGRATE_REVIEW=#12725 from p12tic:copy-routes 80fa723 PiperOrigin-RevId: 886250144
copybara-service bot
pushed a commit
that referenced
this pull request
Mar 19, 2026
Update loopbackLink() to also collect routes from the loopback interface via routesForIface(), in addition to the address-derived subnet routes it already synthesizes. Previously, only routes synthesized from addresses (e.g. 127.0.0.0/8) were included for loopback interfaces. Custom routes added to the loopback interface (e.g. via podman-network-create --route) were missed because collectLinksAndRoutes() only called routesForIface() for non-loopback interfaces. The address-derived routes live in the kernel's local routing table, while custom routes live in the main routing table. Since routesForIface queries the main table, these two sets are distinct and both are needed. ---- First 3 commits of the PR are general refactoring for testability and new tests. These could go in even if the fix is deemed as out of scope for the project. FUTURE_COPYBARA_INTEGRATE_REVIEW=#12725 from p12tic:copy-routes 80fa723 PiperOrigin-RevId: 886250144
copybara-service bot
pushed a commit
that referenced
this pull request
Mar 20, 2026
Update loopbackLink() to also collect routes from the loopback interface via routesForIface(), in addition to the address-derived subnet routes it already synthesizes. Previously, only routes synthesized from addresses (e.g. 127.0.0.0/8) were included for loopback interfaces. Custom routes added to the loopback interface (e.g. via podman-network-create --route) were missed because collectLinksAndRoutes() only called routesForIface() for non-loopback interfaces. The address-derived routes live in the kernel's local routing table, while custom routes live in the main routing table. Since routesForIface queries the main table, these two sets are distinct and both are needed. ---- First 3 commits of the PR are general refactoring for testability and new tests. These could go in even if the fix is deemed as out of scope for the project. FUTURE_COPYBARA_INTEGRATE_REVIEW=#12725 from p12tic:copy-routes 80fa723 PiperOrigin-RevId: 886250144
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update loopbackLink() to also collect routes from the loopback interface via routesForIface(), in addition to the address-derived subnet routes it already synthesizes.
Previously, only routes synthesized from addresses (e.g. 127.0.0.0/8) were included for loopback interfaces. Custom routes added to the loopback interface (e.g. via podman-network-create --route) were missed because collectLinksAndRoutes() only called routesForIface() for non-loopback interfaces.
The address-derived routes live in the kernel's local routing table, while custom routes live in the main routing table. Since routesForIface queries the main table, these two sets are distinct and both are needed.
First 3 commits of the PR are general refactoring for testability and new tests. These could go in even if the fix is deemed as out of scope for the project.