cpbridge: propagate DPDK port link state to control-plane taps
I maintainer di solito rispondono entro 2 giorni
@daniel-noland ci sta già lavorando.
Dal 18/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
With the datapath isolated (#1929), each configured interface's kernel-side representation is a tap in the control namespace. Taps stay operationally up regardless of their DPDK port's link state (documented in init/README.md "Current limitations"), so when a port loses link:
- zebra keeps the connected routes and nexthops through it, and the dataplane keeps forwarding into a dead port until BGP withdraws;
- detection depends on BFD (or the BGP hold timer without it).
We run BFD on gateway peerings, so this isn't urgent, but it is one more silent failure mode: everything on the control-plane side reports healthy while the port is down.
Proposal: mirror port link state onto the tap's carrier with TUNSETCARRIER (Linux ≥ 5.0), not admin state, so addresses and admin config stay put:
- learn link changes from DPDK LSC interrupts where the PMD supports them, otherwise poll
rte_eth_link_get_nowaitfrom the management side; - kernel driver: follow the moved netdev's operstate (netlink in the datapath namespace);
- set the initial carrier when the tap is dressed (
cpbridge::dress_one), so a port that comes up without link doesn't start out looking up.
Done when: pulling the link on a port takes its tap to NO-CARRIER/DOWN operstate within about a second, zebra withdraws the connected route, and restoring link reverses both.
- Lingua principale
- Rust
- Stelle
- 21
- Fork
- 9
- Merge medio
- 3g 1h
- PR unite (30g)
- 51
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di githedgehog/dataplane
-
dpdk flow API: fix deferred issues from #1880 before the first consumerForse già presa @daniel-noland l’ha presa 3 giorni fa. Apertaarea/dpdk
githedgehog/dataplane#1935 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Packet-builder: EnhancementForse già presa @sergeymatov l’ha presa 8 giorni fa. Aperta
githedgehog/dataplane#1912 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
User ACLs: Add support for TCP flagsForse già presa @qmonnet l’ha presa 9 giorni fa. Apertaarea/acl
githedgehog/dataplane#1911 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Run Nvidia Infra controller, configure vtap on the DPU and peer with fabricForse già presa @sergeymatov l’ha presa 22 giorni fa. Aperta
githedgehog/dataplane#1863 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Dependencies: Revisit minor version pinning for `smallvec`Forse già presa @qmonnet l’ha presa 22 giorni fa. Apertadependencies
githedgehog/dataplane#1861 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di githedgehog/dataplane
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
chrisdickinson/trivia#26 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100