UDP over IPv6 was not leaving space for link headers, resulting in the ethernet header being placed in its own mbuf at the start of an mbuf chain sent to a NIC driver. This is inefficient, in terms of allocating 2x as many header mbufs as needed, and its also confusing for drivers which may expect to find ether/ip/l4 headers together in the same mbuf.
UDP over IPv4 already did this back in 2004 e6ccd70936186495ada83c2ee0e4cf74efa19811, so I've made a patch based on the IPv4 code.
I found this when putting together a patchset to implement UDP segmentation offload, and was confused why a driver was unable to properly offload segmentation for V6.