Page MenuHomeVyOS Platform

VPP: Switching interface driver between DPDK and XDP multiple times leads to loss of connectivity (cannot ping neighbor)
Open, NormalPublicBUG

Description

Configure VPP

vyos@vyos# set vpp settings interface eth1 driver xdp
[edit]
vyos@vyos# commit
[ vpp ]

WARNING: NOTE: Current dataplane capacity (estimated): 2.1 M IPv4
routes. Exceeding these values will lead to a dataplane out-of-memory
condition and a crash. Extensive use of features like ACLs, NAT and
others may reduce the numbers above. Please read the documentation for
details: https://docs.vyos.io/


[edit]
vyos@vyos# run show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

S>* 0.0.0.0/0 [210/0] via 10.20.40.1, eth2, weight 1, 00:17:33
  *                   via хх.хх.хх.254, eth3, weight 1, 00:17:33
C>* 10.20.40.0/24 is directly connected, eth2, weight 1, 00:17:33
K * 10.20.40.0/24 [0/0] is directly connected, eth2, weight 1, 00:17:33
L>* 10.20.40.141/32 is directly connected, eth2, weight 1, 00:17:33
C>* хх.хх.хх.0/24 is directly connected, eth3, weight 1, 00:17:37
K * хх.хх.хх.0/24 [0/0] is directly connected, eth3, weight 1, 00:17:37
L>* хх.хх.хх.131/32 is directly connected, eth3, weight 1, 00:17:37
C>* 192.0.0.0/24 is directly connected, eth1, weight 1, 00:00:46
K * 192.0.0.0/24 [0/0] is directly connected, eth1, weight 1, 00:00:46
L * 192.0.0.1/32 is directly connected, eth1, weight 1, 00:00:46
L>* 192.0.0.1/32 is directly connected, eth1, weight 1, 00:00:46
[edit]
vyos@vyos# ping 192.0.0.2
PING 192.0.0.2 (192.0.0.2) 56(84) bytes of data.
64 bytes from 192.0.0.2: icmp_seq=1 ttl=64 time=2.40 ms
64 bytes from 192.0.0.2: icmp_seq=2 ttl=64 time=0.972 ms
64 bytes from 192.0.0.2: icmp_seq=3 ttl=64 time=0.993 ms
^C
--- 192.0.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.972/1.454/2.398/0.667 ms
[edit]


vpp# show errors
   Count                  Node                              Reason               Severity
         1             arp-reply                       ARP replies sent            info
         1             arp-reply             ARP request IP4 source address lear   info

We can ping the neighbor
Now switch driver to dpdk->commit and again to xdp

vyos@vyos# set vpp settings interface eth1 driver xdp
[edit]
vyos@vyos# commit
[ vpp ]

WARNING: NOTE: Current dataplane capacity (estimated): 2.1 M IPv4
routes. Exceeding these values will lead to a dataplane out-of-memory
condition and a crash. Extensive use of features like ACLs, NAT and
others may reduce the numbers above. Please read the documentation for
details: https://docs.vyos.io/


[edit]
vyos@vyos# run show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

S>* 0.0.0.0/0 [210/0] via 10.20.40.1, eth2, weight 1, 00:19:03
  *                   via хх.хх.хх.254, eth3, weight 1, 00:19:03
C>* 10.20.40.0/24 is directly connected, eth2, weight 1, 00:19:03
K * 10.20.40.0/24 [0/0] is directly connected, eth2, weight 1, 00:19:03
L>* 10.20.40.141/32 is directly connected, eth2, weight 1, 00:19:03
C>* хх.хх.хх.0/24 is directly connected, eth3, weight 1, 00:19:07
K * хх.хх.хх.0/24 [0/0] is directly connected, eth3, weight 1, 00:19:07
L>* хх.хх.хх.131/32 is directly connected, eth3, weight 1, 00:19:07
C>* 192.0.0.0/24 is directly connected, eth1, weight 1, 00:00:10
K * 192.0.0.0/24 [0/0] is directly connected, eth1, weight 1, 00:00:10
L * 192.0.0.1/32 is directly connected, eth1, weight 1, 00:00:10
L>* 192.0.0.1/32 is directly connected, eth1, weight 1, 00:00:10
L   192.0.0.1/32 is directly connected, unknown inactive, weight 1, 00:00:51
L   192.0.0.1/32 is directly connected, unknown inactive, weight 1, 00:02:16
[edit]
vyos@vyos# ping 192.0.0.2
PING 192.0.0.2 (192.0.0.2) 56(84) bytes of data.
From 192.0.0.1 icmp_seq=1 Destination Host Unreachable
From 192.0.0.1 icmp_seq=2 Destination Host Unreachable
From 192.0.0.1 icmp_seq=3 Destination Host Unreachable
^C
--- 192.0.0.2 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5118ms
pipe 4

vpp# show errors
   Count                  Node                              Reason               Severity
        13              eth1-tx                        syscall required            error

Connectivity is lost and pings fail

Details

Version
2025.12.26-0021-rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)