After further research, this appears to be https://github.com/FRRouting/frr/issues/5146. As suggested there I have set net.ipv4.udp_l3mdev_accept=1 and that works.
I'm puzzled though, it seems like https://github.com/FRRouting/frr/pull/5274 should have opened the VRF socket without needing the sysctl?
I'd be tempted to test with a newer kernel.
-- Tim Bray Technology Director, ProVu Communications Ltd, Huddersfield, UK. http://www.provu.co.uk/ Phone: +44 1484 840048 IP Telephones, Drop shipping, pre-configuration, XML orders ***** If it is important, just phone *****