I have been attempting to use 1.6_beta6 and found that support for the tap device wasn't working on FreeBSD 5.1. I discovered it worked fine on FreeBSD 5.1 with 1.6_beta1.
I believe that it is necessary to conditionalise the write_tun and read_tun functions (tun.c) in the same way as has been done for openbsd so that the protocol uint32 is only prepended for tun devices. At least, with that change, both tun and tap support work fine under FreeBSD 5.1 for me. Thanks for a superb product! Nathanael