I have used scapy to verify expected results.
Here is a sample for scapy packet creation for ECN_DROP:
"IPv6(src='SRC_TUNNEL', dst='DST_TUNNEL', tc=3)/UDP(dport=6081,
sport=54123)/GENEVE(proto=2048, vni=23)/IP(src='SRC_HOST',
dst='DST_HOST', tos=0)/ICMP(type=8)"
You can test it with existing tunnel drivers that support ECN
such as gif(4) by applying IFF_LINK1 to make it ECN friendly.