I'm looking for a way to know if a tunnel device is up or down without needing to use ping myself. Every single tunnel device (gre, ipip, l2tp, geneve, etc) does not have a logical mechanism to decide if the tunnel is up or down, it is determined by the ip command. Maybe IPSec can do that (because you can look at the status of IPSec) but that's more work than I want to go to.
To address this situation I thought of using lacp (bonding, mode 802.3ad) over a tunnel device but after configuring the bond interface as the master of a geneve devices, I cannot see any LACP conversation over geneve (either in stats or with tcpdump.) This might be complicated by the fact that geneve does not advertise a speed or duplex - which I expect will be the same for other tunnels?
The problem appears to be that none of the virtual network devices that are tunnels advertise a "speed" - except for "tun"?