I wrote this little program because I needed a simple low-overhead tunnel for ethernet frames, since my ISP paniced on a Cisco IOS bug and since then filters everything not being tcp, udp and icmp "for security reasons". Duh.
This program is essentially a modified taptap in that it doesn't open two /dev/net/tun but only one, plus some SOCK_DGRAM socket. Just like taptap it forks as soon as everything is set up and multiplexes packets between the socket and the tap device. Using two instances of udptap on different machines provides an easy way for creating an insecure, unencrypted, low-overhead ethernet-over-udp tunnel.