Jay Taylor's notes

back to listing index

TunTap - Download

[web search]
Original source (tuntaposx.sourceforge.net)
Tags: os-x Mac virtual-network-interface tuntap tuntaposx.sourceforge.net
Clipped on: 2015-01-26


TunTap is provided as an installation package that can be installed on Mac OS X 10.4 (Tiger), 10.5 (Leopard) and 10.6 (Snow Leopard). Legacy versions that run on 10.3 (Panther) are listed below. Click to download the current release: tuntap_20150118. A full list of all releases is available at the Sourceforge download page.

Latest changes

January 18, 2015

  • Update documentation to reflect removal of startup items.

November 4, 2014

  • Generate a LINK_ON event on MAC address changes. This works around a problem with the DHCP client implementation using a stale MAC address after updating the network interface's address.
  • Update compilation to only produce 64 bit binaries, which is appropriate for Mavericks and onwards.
  • Modernize package generation to use pkgbuild and productbuild.
  • Replace the startup items with launchd jobs.
  • Code signatures for the kernel extensions as well as the installer, the signed extensions now work on Mavericks and Yosemite.
  • Add extra synchronization in tap.kext to avoid a kernel crash triggered by quickly re-attaching an interface.
  • Fix MTU enforcement calculation when writing to the character device.

November 1, 2011:

  • Make the netmask address family fix work without knowledge of the struct ifaddr definition. This fixes a crash on Lion, where the layout of the structure has been changed, but at the cost of the fix no longer working for IPv6. I think this is OK though, since mDNSResponder has been fixed on Leopard and beyond to no longer require the hack.
  • Proper multicast address checking for tun; multicast should now work reliably with IP and IPv6 on tun also.
  • A quite comprehensive test suite has been added that allows for quick release testing.
  • PPC support has been dropped due to XCode 4 no longer supporting PPC arch.

September 13, 2009:

  • Change linker options to produce 64 bit kext bundle for Snow Leopard.
  • Switch from kmem_alloc and friends to OSAlloc for memory allocation and avoid the delay() call. Respective symbols are not available on 64 bit kernels anymore.

September 5, 2009:

  • Initial Snow Leopard port. Thanks to various people contributing patches in the bugtracker. The new official version can only be compiled on Snow Leopard but has been tested to work on all Tiger, Leopard and Snow Leopard
  • Clean up unused locking code and switch to rwlocks even for simple mutexes, which avoids a symbol incompatibility for Tiger and Leopard.
  • Clean up compilation flags in the Makefiles.

July 4, 2008:

  • Adapt the former Leopard package to also be installable on Tiger systems. This obsoletes the Tiger version, both Leopard and Tiger are now supported by a single package.

June 7, 2008:

  • Protect the selwakeup() call by the lock. This fixes incorrect select() behaviour, thanks to Roland Wendelin for reporting this.
  • Fix tuntap_mbuf_queue::size initialization
  • Use a proper wait condition for synchronization when detaching the network interface. The old code would crash if the if_detached() handler was called from a different thread than unregister_interface().

January 21, 2008:

  • Work around an issue in the Darwin kernel. When unregistering an interface, addresses are not properly removed from the interface. This leads to crashes and other problems when reusing the interface. Introduce an ugly hack that tries to remove all interface addresses when shutting the interface down.
  • Fix a small mbuf leak that could occur when the output queue was full. Thanks to Oleg Dolgov for reporting this.

December 21, 2007:

  • Fix paths in the startup item postflight scripts
  • Check if_ioctl arguments more defensively after a report of a panic after receiving a NULL arg.

November 14, 2007:

  • I have done a complete rework of the installer package generation. The package is now edited in PackageMaker. The distribution package can still be built from the commandline though.
  • Fix incorrect permission & ownership of the installed files.

Oktober 11, 2007:

  • Fix the permissions of the postflight scripts. Installer packages should work again.
  • Drop the kmod and kmodc++ in the linker command, they seem to be unneeded with Leopard.

Please consult the Changelog file in the source tree for the full history of changes.

Legacy versions

While the current versions works on both Mac OS X 10.4 and 10.5, older versions of the TunTap software were targeted at a single system version. These old releases may be downloaded via the Sourceforge download page. The latest TunTap version for Mac OS X 10.3 is also available there.