Skip to content

vpp-manager: rebind interfaces to kernel if link is missing#922

Merged
sknat merged 1 commit intomasterfrom
bind-interfaces-to-kernel-if-interface-not-found
Feb 27, 2026
Merged

vpp-manager: rebind interfaces to kernel if link is missing#922
sknat merged 1 commit intomasterfrom
bind-interfaces-to-kernel-if-interface-not-found

Conversation

@hedibouattour
Copy link
Collaborator

@hedibouattour hedibouattour commented Feb 26, 2026

If VPP is killed abruptly (e.g. due to OOM), it does not shut down
gracefully and does not restore interface bindings. As a result,
interfaces may remain bound to a DPDK driver and no longer appear
as Linux network devices.

When the expected interface is not found, attempt to rebind PCI
devices back to the kernel driver and retry the lookup once.

Because we don't die gracefully, pingCalicoVPP() won't be called
and agent will never restart. So we call it in the beginning to
kill previous stale agents if any.

@hedibouattour hedibouattour self-assigned this Feb 26, 2026
@hedibouattour hedibouattour force-pushed the bind-interfaces-to-kernel-if-interface-not-found branch 6 times, most recently from be0dc1c to 7ffbe87 Compare February 26, 2026 17:31
@hedibouattour hedibouattour marked this pull request as draft February 26, 2026 17:31
@hedibouattour hedibouattour force-pushed the bind-interfaces-to-kernel-if-interface-not-found branch 2 times, most recently from be83081 to 09e852a Compare February 27, 2026 12:39
@hedibouattour hedibouattour marked this pull request as ready for review February 27, 2026 12:39
@hedibouattour hedibouattour force-pushed the bind-interfaces-to-kernel-if-interface-not-found branch from 09e852a to 9fd6fa3 Compare February 27, 2026 12:39
If VPP is killed abruptly (e.g. due to OOM), it does not shut down
gracefully and does not restore interface bindings. As a result,
interfaces may remain bound to a DPDK driver and no longer appear
as Linux network devices.

When the expected interface is not found, attempt to rebind PCI
devices back to the kernel driver and retry the lookup once.

Because we don't die gracefully, pingCalicoVPP() won't be called
and agent will never restart. So we call it in the beginning to
kill previous stale agents if any.
@hedibouattour hedibouattour force-pushed the bind-interfaces-to-kernel-if-interface-not-found branch from 9fd6fa3 to 91531e4 Compare February 27, 2026 12:43
Copy link
Collaborator

@sknat sknat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@sknat sknat merged commit a3a531d into master Feb 27, 2026
5 checks passed
@sknat sknat deleted the bind-interfaces-to-kernel-if-interface-not-found branch February 27, 2026 16:12
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.

2 participants