Subject: new EtherIP driver for 4.0
To: None <tech-net@netbsd.org>
From: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
List: tech-net
Date: 10/31/2006 15:36:01
Hi,

I wrote a new EtherIP driver for 4.0 based on tap(4) and gif(4).

I did this because the current EtherIP implementation is buggy
(kern/34268), quite unclean (it magically works by bridging a gif
interface) and, as I have been told, its way of hijacking a random
ethernet interfaces input routine to insert packets into the bridge is
at least questionable. It is also not possible to use bridge features
like STP with the current implementation.

The new driver presents itself to the system as a virtual ethernet
interface just like tap that has to be configured for tunnelling just
like gif.

The driver can be found in http://headcrashers.org/comp/programs/etherip.tar.gz

This tarball is supposed to be extracted in /usr/src. This will create
the following files:

etherip.diff
share/man/man4/etherip.4
sys/net/if_etherip.c
sys/net/if_etherip.h
sys/netinet/ip_etherip.c
sys/netinet/ip_etherip.h
sys/netinet6/ip6_etherip.c
sys/netinet6/ip6_etherip.h

The diff will remove the current EtherIP implementation from gif(4) and
bridge(4) and register the new files in share/man/man4/Makefile,
sys/net/Makefile, sys/conf/files.

To actually use it one has to add "pseudo-device etherip" to the
kernel configuration file.

Please try it and review the code, I would really like to get some
feedback about this. (And I would love to see this in 4.0 :))


Hans

-- 
%SYSTEM-F-ANARCHISM, The operating system has been overthrown