Proxmox VE

jrparks

New Member
Dec 7, 2023
4
4
3

FRR/Zebra Errors with Proxmox SDN (libyang: Invalid boolean/uint32/pattern values)​



Hello Proxmox Community and Developers,

I am experiencing persistent and repetitive error messages in my system logs related to zebra and bgpd when using Proxmox SDN features. These errors clutter the logs and may indicate underlying issues with how configuration data is being passed from Proxmox SDN to the FRR daemons, specifically concerning VRF (Virtual Routing and Forwarding) and interface state information.

Logs Showing the Issue​


The following log snippets illustrate the problem:

Oct 23 12:10:20 pve2 zebra[790299]: libyang Invalid boolean value "". (/frr-vrf:lib/vrf/state/active)<br>Oct 23 12:10:20 pve2 zebra[790299]: libyang Invalid type uint32 empty value. (/frr-vrf:lib/vrf/state/id)<br>Oct 23 12:10:21 pve2 zebra[790299]: libyang Invalid boolean value "". (/frr-vrf:lib/vrf/state/active)<br>Oct 23 12:10:21 pve2 zebra[790299]: libyang Invalid type uint32 empty value. (/frr-vrf:lib/vrf/state/id)<br>Oct 23 12:10:21 pve2 zebra[790299]: libyang Unsatisfied pattern - "" does not conform to "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}". (/frr-interface:lib/interface/state/phy-address)<br>Oct 23 12:10:36 pve2 zebra[790299]: libyang Invalid type uint32 empty value. (/frr-interface:lib/interface/state/speed)<br>Oct 23 12:12:55 pve2 bgpd[790304]: [YAF85-253AP][EC 100663299] buffer_write: write error on fd 15: Broken pipe<br>Oct 23 12:12:55 pve2 zebra[790299]: [M7R0J-VQ66A][EC 4043309121] Client 40 'static' (session id 0) encountered an error and is shutting down.<br>

Analysis of the Errors​


The core issue appears to be that zebra, using the libyang data modeling library, is encountering empty strings ("") where it expects valid data types, specifically:
  1. Boolean (active status for VRF): Expected true or false. Receiving "".
  2. Unsigned Integer (id for VRF, speed for interface): Expected a numerical value. Receiving empty value.
  3. Pattern Match (phy-address / MAC address): Expected a MAC address conforming to [0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}. Receiving "".
This suggests a bug in the Proxmox SDN implementation that interacts with FRR, where some state variables are not being properly initialized or are being queried before they hold a value, leading to the blank values being passed to FRR/libyang. The bgpd and zebra client shutdown errors may be a consequence of the underlying data validation failures.

Requested Fix​


Could the Proxmox development team please investigate this issue and provide a fix in a future update? The fix should ensure that the Proxmox SDN code passes valid, correctly typed data (or skips the configuration if data is genuinely unavailable) to FRR for the following YANG paths, to prevent the libyang errors:
  • /frr-vrf:lib/vrf/state/active (Expected: boolean, Received: "")
  • /frr-vrf:lib/vrf/state/id (Expected: uint32, Received: empty)
  • /frr-interface:lib/interface/state/phy-address (Expected: MAC pattern, Received: "")
  • /frr-interface:lib/interface/state/speed (Expected: uint32, Received: empty)
Thank you for your attention to this issue!

PVE Version:
proxmox-ve: 9.0.0 (running kernel: 6.14.11-4-pve)
pve-manager: 9.0.11 (running version: 9.0.11/3bf5476b8a4699e2)
proxmox-kernel-helper: 9.0.4
proxmox-kernel-6.14.11-4-pve-signed: 6.14.11-4
proxmox-kernel-6.14: 6.14.11-4
proxmox-kernel-6.14.11-3-pve-signed: 6.14.11-3
proxmox-kernel-6.8.12-13-pve-signed: 6.8.12-13
proxmox-kernel-6.8: 6.8.12-13
proxmox-kernel-6.8.12-9-pve-signed: 6.8.12-9
ceph-fuse: 19.2.3-pve1
corosync: 3.1.9-pve2
criu: 4.1.1-1
frr-pythontools: 10.3.1-1+pve4
ifupdown2: 3.3.0-1+pmx10
intel-microcode: 3.20250512.1
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libproxmox-acme-perl: 1.7.0
libproxmox-backup-qemu0: 2.0.1
libproxmox-rs-perl: 0.4.1
libpve-access-control: 9.0.3
libpve-apiclient-perl: 3.4.0
libpve-cluster-api-perl: 9.0.6
libpve-cluster-perl: 9.0.6
libpve-common-perl: 9.0.11
libpve-guest-common-perl: 6.0.2
libpve-http-server-perl: 6.0.5
libpve-network-perl: 1.1.8
libpve-rs-perl: 0.10.10
libpve-storage-perl: 9.0.13
libspice-server1: 0.15.2-1+b1
lvm2: 2.03.31-2+pmx1
lxc-pve: 6.0.5-1
lxcfs: 6.0.4-pve1
novnc-pve: 1.6.0-3
proxmox-backup-client: 4.0.16-1
proxmox-backup-file-restore: 4.0.16-1
proxmox-backup-restore-image: 1.0.0
proxmox-firewall: 1.2.0
proxmox-kernel-helper: 9.0.4
proxmox-mail-forward: 1.0.2
proxmox-mini-journalreader: 1.6
proxmox-offline-mirror-helper: 0.7.2
proxmox-widget-toolkit: 5.0.6
pve-cluster: 9.0.6
pve-container: 6.0.13
pve-docs: 9.0.8
pve-edk2-firmware: 4.2025.02-4
pve-esxi-import-tools: 1.0.1
pve-firewall: 6.0.3
pve-firmware: 3.17-2
pve-ha-manager: 5.0.5
pve-i18n: 3.6.1
pve-qemu-kvm: 10.0.2-4
pve-xtermjs: 5.5.0-2
qemu-server: 9.0.23
smartmontools: 7.4-pve1
spiceterm: 3.4.1
swtpm: 0.8.0+pve2
vncterm: 1.9.1
zfsutils-linux: 2.3.4-pve1