Page MenuHomeVyOS Platform

VPP after reboot cannot ping anything and do not have ARP entries
Closed, InvalidPublicBUG

Description

VPP after reboot cannot ping anything
To reproduce

  1. configure VPP
set interfaces ethernet eth0 address '192.168.122.14/24'
set interfaces ethernet eth0 description 'WAN'
set interfaces ethernet eth0 ipv6 address
set interfaces ethernet eth1 address '100.64.0.1/24'

set vpp settings interface eth0 driver 'dpdk'
set vpp settings interface eth1 driver 'dpdk'
set vpp settings unix poll-sleep-usec '222'
  1. Add PPP control plane map to post-config script
echo "sudo vppctl create pppoe map dp eth1 cp tap4096" | sudo tee -a /config/scripts/vyos-postconfig-bootup.script
  1. After saving and rebooting, there are no ARP entries:
vyos@r14:~$ ping 192.168.122.1 count 2
PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.
From 192.168.122.14 icmp_seq=1 Destination Host Unreachable
From 192.168.122.14 icmp_seq=2 Destination Host Unreachable

--- 192.168.122.1 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1000ms

vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ sudo arp -an
? (192.168.122.1) at <incomplete> on eth0
vyos@r14:~$ 

vyos@r14# run show conf com | match vpp
set vpp settings interface eth0 driver 'dpdk'
set vpp settings interface eth1 driver 'dpdk'
set vpp settings unix poll-sleep-usec '222'
[edit]
vyos@r14#

IP FIB after reboot:

192.168.122.0/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:9 to:[0:0]]
    [0] [@0]: dpo-drop ip4
192.168.122.0/24
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:8 buckets:1 uRPF:8 to:[0:0]]
    [0] [@4]: ipv4-glean: [src:192.168.122.0/24] eth0: mtu:9000 next:1 flags:[] ffffffffffff52540077fa360806
192.168.122.14/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:13 to:[7:420]]
    [0] [@12]: dpo-receive: 192.168.122.14 on eth0
192.168.122.255/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:11 to:[0:0]]      
    [0] [@0]: dpo-drop ip4

After deleting VPP we can ping again:

vyos@r14# delete vpp 
[edit]
vyos@r14# commit
[edit]
vyos@r14# run ping 192.168.122.1 count 2
PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.
64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=0.162 ms
64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.174 ms

--- 192.168.122.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1033ms
rtt min/avg/max/mdev = 0.162/0.168/0.174/0.006 ms
[edit]
vyos@r14#

Load VPP configuration again, without reboot and we have connectivity

vyos@r14# load 
Loading configuration from 'config.boot'
Load complete. Use 'commit' to make changes effective.
[edit]
vyos@r14# 
[edit]
vyos@r14# compare commands

set vpp settings interface eth0 driver 'dpdk'
set vpp settings interface eth1 driver 'dpdk'
set vpp settings unix poll-sleep-usec '222'

[edit]
vyos@r14# 

vyos@r14# commit
[edit]
vyos@r14# run ping 192.168.122.1 count 2
PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.
64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.761 ms

--- 192.168.122.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.761/1.045/1.330/0.284 ms
[edit]
vyos@r14#

IP FIB after reapply config (without reboot):

192.168.122.0/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:11 to:[0:0]]
    [0] [@0]: dpo-drop ip4
192.168.122.1/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:29 to:[0:0]]
    [0] [@5]: ipv4 via 192.168.122.1 eth0: mtu:1500 next:5 flags:[] 52540016840852540077fa360800
192.168.122.0/24
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:10 to:[0:0]]
    [0] [@4]: ipv4-glean: [src:192.168.122.0/24] eth0: mtu:9000 next:1 flags:[] ffffffffffff52540077fa360806
192.168.122.14/32                                                              
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:15 to:[23:1905]]
    [0] [@12]: dpo-receive: 192.168.122.14 on eth0
192.168.122.255/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:13 to:[0:0]]
    [0] [@0]: dpo-drop ip4

Details

Version
VyOS 2025.06.04-0020-rolling
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Related Objects

Event Timeline

Viacheslav triaged this task as High priority.

Unexpected pppoe-cp-dispatch errors

vyos@r14:~$ sudo vppctl show errors
   Count                  Node                              Reason               Severity 
        97         pppoe-cp-dispatch         bad version and type in pppoe heade   error  
         1             arp-reply                       ARP replies sent            info   
         2             arp-reply             ARP request IP4 source address lear   info   
       173             llc-input                    unknown llc ssap/dsap          error  
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ sudo vppctl show errors
   Count                  Node                              Reason               Severity 
       156         pppoe-cp-dispatch         bad version and type in pppoe heade   error  
         1             arp-reply                       ARP replies sent            info   
         2             arp-reply             ARP request IP4 source address lear   info   
       243             llc-input                    unknown llc ssap/dsap          error  
vyos@r14:~$

UPDATE
There is a fault due to wrong bindings:

vpp# show lcp    
lcp default netns '<unset>'
lcp lcp-auto-subint on
lcp lcp-sync on
lcp del-static-on-link-down off
lcp del-dynamic-on-link-down off
lcp route-no-paths on
itf-pair: [0] eth0 tap4096 eth0 9 type tap
itf-pair: [1] eth1 tap4097 eth1 10 type tap
vpp# 
vpp# 
vpp# 
vpp# show pppoe control-plane binding 
Dataplane Interface Control Interface   
------------------- -----------------   
eth1                tap4096             
vpp#