head	1.2;
access;
symbols
	perseant-exfatfs-base-20261102:1.2
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	bouyer-sunxi-drm:1.2.0.116
	bouyer-sunxi-drm-base:1.2
	cjep_sun2x:1.2.0.114
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.112
	cjep_staticlib_x-base:1.2
	thorpej-futex-base:1.2
	bouyer-xenpvh-base2:1.2
	phil-wifi-20200421:1.2
	bouyer-xenpvh-base1:1.2
	phil-wifi-20200411:1.2
	bouyer-xenpvh:1.2.0.110
	bouyer-xenpvh-base:1.2
	phil-wifi-20200406:1.2
	ad-namecache-base3:1.2
	ad-namecache-base2:1.2
	ad-namecache-base1:1.2
	ad-namecache:1.2.0.108
	ad-namecache-base:1.2
	isaki-audio2:1.2.0.106
	isaki-audio2-base:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.104
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.102
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.100
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.98
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.96
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.2
	netbsd-5-1-5-RELEASE:1.2
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.2
	tls-earlyentropy:1.2.0.94
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-5-2-2-RELEASE:1.2
	netbsd-5-1-4-RELEASE:1.2
	netbsd-5-2-1-RELEASE:1.2
	netbsd-5-1-3-RELEASE:1.2
	rmind-smpnet-nbase:1.2
	rmind-smpnet:1.2.0.90
	rmind-smpnet-base:1.2
	agc-symver:1.2.0.92
	agc-symver-base:1.2
	tls-maxphys-base:1.2
	yamt-pagecache-base8:1.2
	netbsd-5-2:1.2.0.88
	yamt-pagecache-base7:1.2
	netbsd-5-2-RELEASE:1.2
	netbsd-5-2-RC1:1.2
	yamt-pagecache-base6:1.2
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	netbsd-5-1-2-RELEASE:1.2
	netbsd-5-1-1-RELEASE:1.2
	jmcneill-usbmp:1.2.0.86
	jmcneill-usbmp-base:1.2
	jmcneill-audiomp3:1.2.0.84
	jmcneill-audiomp3-base:1.2
	yamt-pagecache-base3:1.2
	yamt-pagecache-base2:1.2
	yamt-pagecache:1.2.0.82
	yamt-pagecache-base:1.2
	rmind-uvmplock-nbase:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.80
	bouyer-quota2-base:1.2
	jruoho-x86intr:1.2.0.78
	jruoho-x86intr-base:1.2
	matt-nb5-pq3:1.2.0.76
	matt-nb5-pq3-base:1.2
	netbsd-5-1:1.2.0.74
	netbsd-5-1-RELEASE:1.2
	yamt-nfs-mp-base11:1.2
	netbsd-5-1-RC4:1.2
	uebayasi-xip-base2:1.2
	yamt-nfs-mp-base10:1.2
	netbsd-5-1-RC3:1.2
	netbsd-5-1-RC2:1.2
	netbsd-5-1-RC1:1.2
	rmind-uvmplock:1.2.0.72
	rmind-uvmplock-base:1.2
	yamt-nfs-mp-base9:1.2
	uebayasi-xip:1.2.0.70
	uebayasi-xip-base:1.2
	netbsd-5-0-2-RELEASE:1.2
	yamt-nfs-mp-base8:1.2
	yamt-nfs-mp-base7:1.2
	netbsd-5-0-1-RELEASE:1.2
	jymxensuspend-base:1.2
	yamt-nfs-mp-base6:1.2
	yamt-nfs-mp-base5:1.2
	yamt-nfs-mp-base4:1.2
	jym-xensuspend-nbase:1.2
	yamt-nfs-mp-base3:1.2
	netbsd-5-0:1.2.0.68
	netbsd-5-0-RELEASE:1.2
	netbsd-5-0-RC4:1.2
	netbsd-5-0-RC3:1.2
	netbsd-5-0-RC2:1.2
	jym-xensuspend:1.2.0.66
	jym-xensuspend-base:1.2
	netbsd-5-0-RC1:1.2
	haad-dm-base2:1.2
	haad-nbase2:1.2
	ad-audiomp2:1.2.0.64
	ad-audiomp2-base:1.2
	netbsd-5:1.2.0.62
	netbsd-5-base:1.2
	haad-dm-base1:1.2
	haad-dm:1.2.0.60
	haad-dm-base:1.2
	simonb-wapbl-nbase:1.2
	yamt-pf42-base4:1.2
	simonb-wapbl:1.2.0.58
	simonb-wapbl-base:1.2
	yamt-pf42-base3:1.2
	hpcarm-cleanup-nbase:1.2
	yamt-pf42-base2:1.2
	yamt-nfs-mp-base2:1.2
	yamt-nfs-mp:1.2.0.56
	yamt-nfs-mp-base:1.2
	yamt-pf42:1.2.0.54
	yamt-pf42-base:1.2
	ad-socklock-base1:1.2
	yamt-lazymbuf-base15:1.2
	yamt-lazymbuf-base14:1.2
	keiichi-mipv6-nbase:1.2
	mjf-devfs2:1.2.0.52
	mjf-devfs2-base:1.2
	keiichi-mipv6:1.2.0.50
	keiichi-mipv6-base:1.2
	bouyer-xeni386-merge1:1.2
	vmlocking2-base3:1.2
	bouyer-xeni386-nbase:1.2
	yamt-kmem-base3:1.2
	cube-autoconf:1.2.0.48
	cube-autoconf-base:1.2
	yamt-kmem-base2:1.2
	bouyer-xeni386:1.2.0.46
	bouyer-xeni386-base:1.2
	yamt-kmem:1.2.0.44
	yamt-kmem-base:1.2
	vmlocking2-base2:1.2
	reinoud-bufcleanup-nbase:1.2
	vmlocking2:1.2.0.42
	vmlocking2-base1:1.2
	jmcneill-base:1.2
	mjf-devfs:1.2.0.40
	mjf-devfs-base:1.2
	bouyer-xenamd64-base2:1.2
	vmlocking-nbase:1.2
	yamt-x86pmap-base4:1.2
	bouyer-xenamd64:1.2.0.38
	bouyer-xenamd64-base:1.2
	yamt-x86pmap-base3:1.2
	yamt-x86pmap-base2:1.2
	yamt-x86pmap:1.2.0.36
	yamt-x86pmap-base:1.2
	jmcneill-pm:1.2.0.34
	jmcneill-pm-base:1.2
	hpcarm-cleanup:1.2.0.32
	hpcarm-cleanup-base:1.2
	mjf-ufs-trans-base:1.2
	yamt-idlelwp-base8:1.2
	reinoud-bufcleanup-base:1.2
	vmlocking:1.2.0.30
	vmlocking-base:1.2
	ad-audiomp:1.2.0.28
	ad-audiomp-base:1.2
	yamt-idlelwp:1.2.0.26
	post-newlock2-merge:1.2
	newlock2-nbase:1.2
	yamt-splraiseipl-base5:1.2
	yamt-splraiseipl-base4:1.2
	yamt-splraiseipl-base3:1.2
	yamt-splraiseipl-base2:1.2
	yamt-splraiseipl:1.2.0.24
	yamt-splraiseipl-base:1.2
	newlock2:1.2.0.22
	newlock2-base:1.2
	yamt-pdpolicy-base8:1.2
	yamt-pdpolicy-base7:1.2
	yamt-pdpolicy-base6:1.2
	gdamore-uart:1.2.0.20
	gdamore-uart-base:1.2
	simonb-timcounters-final:1.2
	yamt-pdpolicy-base5:1.2
	elad-kernelauth-nbase:1.2
	yamt-pdpolicy-base4:1.2
	yamt-pdpolicy-base3:1.2
	yamt-pdpolicy-base2:1.2
	yamt-pdpolicy:1.2.0.18
	yamt-pdpolicy-base:1.2
	yamt-uio_vmspace-base5:1.2
	simonb-timecounters:1.2.0.16
	simonb-timecounters-base:1.2
	rpaulo-netinet-merge-pcb:1.2.0.14
	rpaulo-netinet-merge-pcb-base:1.2
	yamt-uio_vmspace:1.2.0.12
	yamt-readahead-base3:1.2
	yamt-readahead-base2:1.2
	yamt-readahead:1.2.0.10
	yamt-readahead-base:1.2
	yamt-vop-base3:1.2
	netbsd-2-0-3-RELEASE:1.1
	netbsd-2-1:1.1.0.12
	yamt-vop-base2:1.2
	thorpej-vnode-attr:1.2.0.8
	thorpej-vnode-attr-base:1.2
	netbsd-2-1-RELEASE:1.1
	yamt-vop:1.2.0.6
	yamt-vop-base:1.2
	netbsd-2-1-RC6:1.1
	netbsd-2-1-RC5:1.1
	netbsd-2-1-RC4:1.1
	netbsd-2-1-RC3:1.1
	netbsd-2-1-RC2:1.1
	netbsd-2-1-RC1:1.1
	yamt-lazymbuf:1.2.0.4
	yamt-km-base4:1.2
	netbsd-2-0-2-RELEASE:1.1
	yamt-km-base3:1.2
	yamt-km-base2:1.2
	yamt-km:1.2.0.2
	yamt-km-base:1.2
	kent-audio2:1.1.0.10
	kent-audio2-base:1.1
	netbsd-2-0-1-RELEASE:1.1
	kent-audio1-beforemerge:1.1
	netbsd-2:1.1.0.8
	netbsd-2-base:1.1
	kent-audio1:1.1.0.6
	kent-audio1-base:1.1
	netbsd-2-0-RELEASE:1.1
	netbsd-2-0-RC5:1.1
	ktrace-lwp-newbase:1.1
	netbsd-2-0-RC4:1.1
	netbsd-2-0-RC3:1.1
	netbsd-2-0-RC2:1.1
	netbsd-2-0-RC1:1.1
	ktrace-lwp-base:1.1
	ktrace-lwp:1.1.0.4
	netbsd-2-0:1.1.0.2
	netbsd-2-0-base:1.1
	BEFORE-IPF411:1.1;
locks; strict;
comment	@# @;


1.2
date	2005.01.19.11.12.11;	author cube;	state dead;
branches;
next	1.1;

1.1
date	2003.11.24.21.58.45;	author cube;	state Exp;
branches
	1.1.4.1
	1.1.10.1;
next	;

1.1.4.1
date	2003.11.24.21.58.45;	author skrll;	state dead;
branches;
next	1.1.4.2;

1.1.4.2
date	2004.08.03.10.53.59;	author skrll;	state Exp;
branches;
next	1.1.4.3;

1.1.4.3
date	2004.09.18.14.54.09;	author skrll;	state Exp;
branches;
next	1.1.4.4;

1.1.4.4
date	2004.09.21.13.36.24;	author skrll;	state Exp;
branches;
next	1.1.4.5;

1.1.4.5
date	2005.01.24.08.35.52;	author skrll;	state dead;
branches;
next	;

1.1.10.1
date	2005.04.29.11.29.28;	author kent;	state dead;
branches;
next	;


desc
@@


1.2
log
@ethfoo(4) is no more.  You'll find everything under sys/net/if_tap.[ch]
and sys/lkm/net/tap/if_tap_lkm.c.
@
text
@$NetBSD: README,v 1.1 2003/11/24 21:58:45 cube Exp $

ethfoo is meant to be an example of a few features of the NetBSD kernel.
The module, once loaded, emulates one or several Ethernet devices, each
one having its own Ethernet address.  You can do most of what can be
done with a real Ethernet device, but no packet can be received.

On the network layer, ethfoo is a convenient skeleton for an Ethernet
device driver, and demonstrates how an interface should be attached and
manipulated inside the kernel.  It also implements a cloning interface,
making it possible for the administrator to create and destroy ethfoo
interfaces at will, using the 'create' keyword of ifconfig:

	# ifconfig ethfoo15 create
	# ifconfig ethfoo15 inet 192.168.23.45
	# ifconfig ethfoo15 destroy

ethfoo is also a demonstration of what can be done with autoconf(9) from
a Loadable Kernel Module.  It uses Jason R. Thorpe's idea of adding a
pseudo-device to the autoconf tables to avoid any attachment troubles,
as seen in sys/dev/ata/ata_raid.c.

A cfdriver structure and a cfdata structure are registered to the system
at load time, making it possible to creates instances of the pseudo-
device when the administrator uses the ifconfig create command.  When a
new ethfoo device is attached, the usual standard autoconf routines are
called: match() and attach().  Since we registered the cf structures,
we don't have to care about allocating structures such as the softc, it
has already been done by the kernel.

At that point it would even be possible to pass more parameters to the
new device, using the custom argument through a ethfoo_attach_args
structure.  It could be useful to pass an Ethernet address, for example.

ethfoo is not supposed to be anything more than an example of how to
write a simple but complete LKM, though it can be good to have a fake
Ethernet device when using software such as FlexLM.

It would be a good idea to pull up parts of ethfoo into tun(4), to make
it possible to read and write packets through a character device.  It is
also possible to extend ethfoo in that direction using MOD_DEV instead
of MOD_MISC.
@


1.1
log
@Add ethfoo LKM example.  It implements a cloning interface for fake
Ethernet devices that can be assigned an Ethernet address using the
included setaddr utility.
@
text
@d1 1
a1 1
$NetBSD$
@


1.1.4.1
log
@file README was added on branch ktrace-lwp on 2004-08-03 10:53:59 +0000
@
text
@d1 42
@


1.1.4.2
log
@Sync with HEAD
@
text
@a0 42
$NetBSD: README,v 1.1.4.1 2004/08/03 10:53:59 skrll Exp $

ethfoo is meant to be an example of a few features of the NetBSD kernel.
The module, once loaded, emulates one or several Ethernet devices, each
one having its own Ethernet address.  You can do most of what can be
done with a real Ethernet device, but no packet can be received.

On the network layer, ethfoo is a convenient skeleton for an Ethernet
device driver, and demonstrates how an interface should be attached and
manipulated inside the kernel.  It also implements a cloning interface,
making it possible for the administrator to create and destroy ethfoo
interfaces at will, using the 'create' keyword of ifconfig:

	# ifconfig ethfoo15 create
	# ifconfig ethfoo15 inet 192.168.23.45
	# ifconfig ethfoo15 destroy

ethfoo is also a demonstration of what can be done with autoconf(9) from
a Loadable Kernel Module.  It uses Jason R. Thorpe's idea of adding a
pseudo-device to the autoconf tables to avoid any attachment troubles,
as seen in sys/dev/ata/ata_raid.c.

A cfdriver structure and a cfdata structure are registered to the system
at load time, making it possible to creates instances of the pseudo-
device when the administrator uses the ifconfig create command.  When a
new ethfoo device is attached, the usual standard autoconf routines are
called: match() and attach().  Since we registered the cf structures,
we don't have to care about allocating structures such as the softc, it
has already been done by the kernel.

At that point it would even be possible to pass more parameters to the
new device, using the custom argument through a ethfoo_attach_args
structure.  It could be useful to pass an Ethernet address, for example.

ethfoo is not supposed to be anything more than an example of how to
write a simple but complete LKM, though it can be good to have a fake
Ethernet device when using software such as FlexLM.

It would be a good idea to pull up parts of ethfoo into tun(4), to make
it possible to read and write packets through a character device.  It is
also possible to extend ethfoo in that direction using MOD_DEV instead
of MOD_MISC.
@


1.1.4.3
log
@Sync with HEAD.
@
text
@d1 1
a1 1
$NetBSD: README,v 1.1.4.2 2004/09/18 14:54:09 skrll Exp $
@


1.1.4.4
log
@Fix the sync with head I botched.
@
text
@d1 1
a1 1
$NetBSD: README,v 1.1.4.3 2004/09/21 13:36:24 skrll Exp $
@


1.1.4.5
log
@Sync with HEAD.
@
text
@d1 42
@


1.1.10.1
log
@sync with -current
@
text
@d1 1
a1 1
$NetBSD: README,v 1.1 2003/11/24 21:58:45 cube Exp $
@
