On Fri, 23 Jun 2006, Johnny Choque wrote:
I'm interested in programming a virtual network device driver -Linux
concept- on a FreeBSD box. The idea behind of this sort of interface is the
following:
"From the kernel's point of view, a network interface is a software object
that can process outgoing packets, and the actual transmission mechanism
remains hidden inside the interface driver. Even though most interfaces are
associated to physical devices (or, for the loopback interface, to a
software-only data loop), it is possible to design network interface drivers
that rely on other interfaces to perform actual packet transmission. The
idea of a ``virtual'' interface can be useful to implement special-purpose
processing on data packets while avoiding to hack with the network subsystem
of the kernel."
I know that is not too complicated to program this sort of functionality in
linux but I would like to do it over freebsd, has anybody some idea on how
could I start doing it? I've been searching in the freebsd handbook but I
haven't found anything really relevant.
tap(4) and tun(4) describe pseudo-devices you can use to instantiate ethernet
and tunnel interfaces from user space. Programs attach to pseudo-devices, and
using read/write operations on the pseudo-device, can receive and generate
packets on the network interface. In kernel, the ifnet(9) API is used to
implement network interfaces -- nothing in the API requires that the
under-side of a network interface be hardware. In fact, a great many network
types without underlying hardware have been implemented, including the
loopback interface, encapsulation interfaces, and the tap/tun interface
drivers.
Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"