http://www-user.rhrk.uni-kl.de/~nissler/tuntap/
Note: The TunTap
project has been moved to Sourceforge. Please update your bookmarks to http://tuntaposx.sourceforge.net
Panther version (Mac OS X 10.3.x), ppc only
After some problems with kernel crashes tun/tap is quite mature on
Panther (now that Panther is history for most people *g*). I have made
an installer package that makes it easy to install the drivers. For the
interested I also provide the complete source tree:
- tuntap.tar.gz
- installer package, please see the included README.installer file for
more information
- tuntap_src.tar.gz
- complete source tree. See INSTALL for build instructions
Panther Changelog
May 1, 2005:
- This version should fix the kernel crash problems (see the
testing versions below). Kernel crash warnings removed.
Please consult the Changelog file in the source archive for the full
Changelog.
Tiger version (Mac OS X 10.4.x), universal binaries
Well, many people asked for tun/tap on intel macs, so I decided I
have to do something about it. This version comes with a lot of
bugfixes and also includes universal binaries that run on the new intel
macs.
Grab your packages here:
Tiger Changelog
May 13, 2006:
- This version is not stable, it may crash, sorry. [edit: Actually,
it works just fine during normal operation)]
- Universal binaries that run on ppc and intel macs.
- Adds tap MAC address randomization
- Redesigned locking.
- Better multicast support
- mDNSResponder workaround, so that the tap interfaces should get
picked up now. Note that we are fixing ifconfig/kernel behaviour here.
- All tapX and tunX devices are visible in /dev at all times,
network interfaces still created dynamically, though.
- Startup items moved to /Library/StartupItems
May 17, 2005:
- Initial Tiger port. We now have KPI-style interfaces. I guess the
Tiger version is little slower than the Panther version because of all
the wrapping and hiding in the kernel.
- The kernel extensions moved to /Library/Extensions. That is the
place where non-Apple kexts are supposed to live.
Please consult the Changelog file in the source archive for the full
Changelog.
Source tarball for Leopard
Seems the Leopard transition goes much smoother for tuntap than the
switch to Panther. Grab your package below.
A huge thank you goes to mozilla.com for giving me a brand new Mac
Mini. Without it, the Leopard version (especially the installer
package) wouldn't be available in its current form. Thanks to everyone
who made this possible!
Here we go:
Leopard Changelog
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.
September 20, 2007:
- Initial Leopard port, it's basically the latest Tiger version
with some Leopard-related fixes and s/Tiger/Leopard/g
- I have switched to a proper version management system (git) and
could remove some of the CVS hacks subsequently.
- The installation packages have been reworked a bit, they now
install into /System/Extensions and /System/StartupItems directly by
using DestinationPaths.
Please consult the Changelog file in the source archive for the full
Changelog.
PayPal donations
Because many of you asked about that (while waiting for the Tiger
version *g*), you can now donate via PayPal in order to show your
gratitude. I am not planning to make tun/tap
commercial in any way, so you are also welcome to use it without
donating ;-)
(click image to
donate)
Copyright © 2007 Mattias Nissler <mattias dot nissler at gmx dot
de>