DPDK workers hold VPC counters until their next packet
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 56/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- networking, observability
Línea de trabajo
Start by tracing how the DPDK driver collects and reports VPC and peering counters to GatewayAgent status and the vpc_* metrics; compare that path with the kernel driver. The report includes a reproduction using the fabricator Gateway Peering Counters release test, which you can run against a two gateway DPDK VLAB. Done means counters reach status within one collection after traffic stops on both drivers.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
On the DPDK driver, the VPC and peering counters a worker collects are not reported while that worker receives no traffic. They reach the GatewayAgent status and the vpc_* metrics only when the next packet arrives on the same worker, which can be minutes later.
A new fabricator release test that compares the status counters with a known number of pings caught it (https://github.com/githedgehog/fabricator/pull/2238). On a VLAB with two gateways on dataplane v0.38.1, an iperf run between vpc-01 and vpc-02 ended at 09:50:58. The counters summed over both gateways then stayed the same over four status collections, and grew by 682 packets on vpc-01->vpc-02 when 50 pings were sent:
09:50:58 INF Test connectivity (matrix) passed took=7.537440707s
09:51:18 DBG Gateway counters counters="map[peering vpc-01->vpc-02:{P:4929 B:4603303 D:0} peering vpc-02->vpc-01:{P:5538 B:4805461 D:0} vpc vpc-01:{P:4929 B:4603303 D:0} vpc vpc-02:{P:5538 B:4805461 D:0}]" collected="map[gateway-1:2026-11-04 09:51:15.344927766 +0000 UTC gateway-2:2026-11-04 09:51:14.696337172 +0000 UTC]"
09:51:38 DBG Gateway counters counters="map[peering vpc-01->vpc-02:{P:4929 B:4603303 D:0} peering vpc-02->vpc-01:{P:5538 B:4805461 D:0} vpc vpc-01:{P:4929 B:4603303 D:0} vpc vpc-02:{P:5538 B:4805461 D:0}]" collected="map[gateway-1:2026-11-04 09:51:30.354347198 +0000 UTC gateway-2:2026-11-04 09:51:29.707730508 +0000 UTC]"
09:51:58 DBG Gateway counters counters="map[peering vpc-01->vpc-02:{P:4929 B:4603303 D:0} peering vpc-02->vpc-01:{P:5538 B:4805461 D:0} vpc vpc-01:{P:4929 B:4603303 D:0} vpc vpc-02:{P:5538 B:4805461 D:0}]" collected="map[gateway-1:2026-11-04 09:51:45.367914574 +0000 UTC gateway-2:2026-11-04 09:51:44.719421263 +0000 UTC]"
09:52:18 DBG Gateway counters counters="map[peering vpc-01->vpc-02:{P:4929 B:4603303 D:0} peering vpc-02->vpc-01:{P:5538 B:4805461 D:0} vpc vpc-01:{P:4929 B:4603303 D:0} vpc vpc-02:{P:5538 B:4805461 D:0}]" collected="map[gateway-1:2026-11-04 09:52:15.388130213 +0000 UTC gateway-2:2026-11-04 09:52:14.742660164 +0000 UTC]"
09:52:18 INF Sending pings through the gateway peering from=server-01 to=server-02 cmd="ping -c 50 -s 1000 -i 0.2 -W 1 10.0.2.2"
09:52:33 DBG Gateway counters counters="map[peering vpc-01->vpc-02:{P:5611 B:4962583 D:0} peering vpc-02->vpc-01:{P:5673 B:4861159 D:0} vpc vpc-01:{P:5611 B:4962583 D:0} vpc vpc-02:{P:5673 B:4861159 D:0}]" collected="map[gateway-1:2026-11-04 09:52:30.399755995 +0000 UTC gateway-2:2026-11-04 09:52:29.752398856 +0000 UTC]"
https://github.com/githedgehog/fabricator/actions/runs/41801012403/job/126480062630
The test failed this way in 2 of 5 runs on the DPDK driver and in none of 6 on the kernel driver.
Expected
Counters reach the status within one collection after traffic stops, on both drivers.
How to reproduce
- Check out the fabricator branch
dev/pau/gw-peering-countersand build hhfab withjust hhfab-build. - Create a VLAB with two gateways on the DPDK driver:
bin/hhfab init -v --dev --gateways=2
bin/hhfab vlab gen -v --gateway-driver=dpdk
- Bring the VLAB up and leave it running:
bin/hhfab vlab up -v
- In a second terminal, run the counters test, and run it again until it fails:
bin/hhfab vlab release-test -v --regex '^Gateway Peering Counters$'
A failure starts with forwarded pings: gateway counters grew by and shows more than 50 packets on one direction.
- Lenguaje dominante
- Rust
- Estrellas
- 21
- Forks
- 9
- Merge medio
- 2 d 8 h
- PR fusionados (30 d)
- 101
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de githedgehog/dataplane
-
ci: run NIC offload hardware qualification in CIPosiblemente ocupada @daniel-noland la tomó hace 3 días. Abierto
githedgehog/dataplane#2034 · 1 comentario · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
githedgehog/dataplane#2023 ·
Los mantenedores suelen responder en 1 día
-
Support SYN cookiesPosiblemente ocupada @qmonnet la tomó hace 12 días. Abierto
githedgehog/dataplane#1981 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
dataplane v0.30.0: gateway does not recover after a dataplane pod restart, the control-plane taps lose their IPv4 addressesPosiblemente ocupada @daniel-noland la tomó hace 13 días. Abiertobug
githedgehog/dataplane#1977 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
dpdk flow API: fix deferred issues from #1880 before the first consumerPosiblemente ocupada @daniel-noland la tomó hace 17 días. Abiertoarea/dpdk
githedgehog/dataplane#1935 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de githedgehog/dataplane
Issues similares
-
A match arm above the largest i64 is compared as 0Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
DioxusLabs/dioxus#6063 ·
Los mantenedores suelen responder en 1 día
-
`nsh-core` fails to compile when taffy's default `calc` feature is enabled elsewhere in the graphAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
longbridge/nsh#966 ·
Los mantenedores suelen responder en 1 día
-
Windows docs: pin a tested ConPTY version for Kitty graphics; 1.25.260930003 corrupts large uploadsAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
raphamorim/rio#2021 ·
Los mantenedores suelen responder en 1 día
-
Docs: status text is out of dateAbiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
non7top/sigstore-shell#38 ·
Los mantenedores suelen responder en 1 día