VyOS asks VPP for a 256 MiB netlink receive buffer, but its own sysctl default caps it, so VPP gets 4 MiB. With a full table routed over a VPP interface, a bond rebuild overflows that buffer and linux-cp falls back to a resync, which can leave VLANs admin-down without their IPv6 link-local (companion ticket).
**Details**
- `data/templates/vpp/startup.conf.j2` hardcodes `nl-rx-buffer-size 268435456` for `linux-nl` (and `linux-xfrm-nl`).
- `src/etc/sysctl.d/30-vyos-router.conf` sets `net.core.rmem_max=2097152`. The kernel caps SO_RCVBUF at it, so VPP's socket gets 4194304 (`ss -f netlink -m -p`). No warning.
- `interface-definitions/include/vpp/netlink.xml.i` defines `netlink { rx-buffer-size, batch-size, batch-delay-ms }`, but nothing includes it: no CLI, and the template does not read it.
- `set system sysctl parameter net.core.rmem_max` is applied after VPP opens its socket at boot, so VPP keeps 4 MiB. Only `/config/scripts/vyos-preconfig-bootup.script` worked (VPP then got 536870912).
**Measured** (rolling, full table over a bond VLAN, bond rebuilt by a hash-policy change)
- rmem_max default: one overflow per trial, a VIF stuck in 3 of 10 trials.
- rmem_max 268435456 (preconfig script): no overflow, no stuck VIF in 5 trials.
**Suggested change**
- Raise `net.core.rmem_max` in `30-vyos-router.conf` to at least 268435456.
- Wire `netlink.xml.i` into the VPP settings and template (checked against rmem_max)
- Warn when VPP's effective netlink buffer is smaller than requested.