From 908abcafb033218f7525649a6f62e9f9db365cb2 Mon Sep 17 00:00:00 2001 From: bp Date: Mon, 13 Dec 1999 16:42:17 +0000 Subject: [PATCH] Add module for if_ef driver and make it compile. --- share/man/man4/ef.4 | 103 +++++++++++++++++++++++++++++++++++++ sys/modules/Makefile | 4 +- sys/modules/if_ef/Makefile | 52 +++++++++++++++++++ sys/modules/if_ef/ef.4 | 103 +++++++++++++++++++++++++++++++++++++ 4 files changed, 260 insertions(+), 2 deletions(-) create mode 100644 share/man/man4/ef.4 create mode 100644 sys/modules/if_ef/Makefile create mode 100644 sys/modules/if_ef/ef.4 diff --git a/share/man/man4/ef.4 b/share/man/man4/ef.4 new file mode 100644 index 000000000000..6165e063ab62 --- /dev/null +++ b/share/man/man4/ef.4 @@ -0,0 +1,103 @@ +.\" +.\" Copyright (c) 1999, Boris Popov +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd June 20, 1999 +.Dt EF 4 +.Os BSD +.Sh NAME +.Nm ef +.Nd +pseudo-device driver provides support for multiple ethernet frame types. +.Sh SYNOPSIS +.Cd "kldload if_ef.ko" +.Sh DESCRIPTION +The +.Nm +pseudo-device driver clones each ethernet type device with four +additional interfaces. Each of them capable to send or receive only +one predefined frame type. +.Pp +Names for the new interfaces created by adding +.Ar fN +suffix to an existing device name. Where +.Ar N +is a device unit which can have one of the following values: +.Bd -literal -offset indent +0 interface with an Ethernet_II frame +1 interface with a Novell Ethernet_802.3 frame +2 interface with an Ethernet_802.2 frame +3 interface with an Ethernet_802.2/SNAP frame support. +.Ed +.Pp +For example, device +.Ar ed0 +will be populated with four devices: +.Ar ed0f0 , +.Ar ed0f1 , +.Ar ed0f2 +and +.Ar ed0f3 . +.Pp +After that, each device can be configured as usually: +.Dl # ifconfig ed0f1 ipx 0x105 +This will configure IPX protocol with network number +.Ar 0x105 +and +.Ar Ethernet_802.3 +frame type. +.Pp +Please note that it is impossible to configure IPX protocol on the 'raw' +.Ar ed0 +device after +.Ar if_ef.ko +driver loaded. +.Sh EXAMPLES +The +.Nm +driver can be loaded via +.Xr loader.conf 5 +file: +.Dl if_ef_load="YES" +.Pp +In this case an ordinary interface configuration commands can be used +in +.Xr rc.conf 5 +file: +.Dl network_interfaces="ed2 lo0 tun0 ed2f0 ed2f1" +.Dl ifconfig_ed2f0_ipx="ipx 0x101" +.Dl ifconfig_ed2f1_ipx="ipx 0x102" +.Sh DIAGNOSTICS +None. +.Sh CAVEATS +Avoid to configuring 'raw' ethernet device for IPX protocol after +.Nm +driver is loaded. +.Sh SEE ALSO +.Xr ipx 3 , +.Xr ifconfig 8 +.Sh AUTHOR +Boris Popov. diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 9b50ae982190..4f73ef80115a 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -2,8 +2,8 @@ # XXX present but broken: ip_mroute_mod pcic -SUBDIR= aha amr ccd cd9660 coda dc fdesc fxp if_disc if_ppp if_sl if_tun \ - ipfilter ipfw joy kernfs md mfs mii mlx msdos \ +SUBDIR= aha amr ccd cd9660 coda dc fdesc fxp if_disc if_ef if_ppp if_sl \ + if_tun ipfilter ipfw joy kernfs md mfs mii mlx msdos \ ncp netgraph nfs ntfs nullfs \ nwfs portal procfs rl sf sis sk ste ti tl \ ugen uhid ukbd ulpt umapfs umass umodem ums union usb vn vr wb xl diff --git a/sys/modules/if_ef/Makefile b/sys/modules/if_ef/Makefile new file mode 100644 index 000000000000..eb0286c06d66 --- /dev/null +++ b/sys/modules/if_ef/Makefile @@ -0,0 +1,52 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../net + +KMOD= if_ef +SRCS= if_ef.c opt_ipx.h opt_inet.h +MAN4= ef.4 + +# If you need only limited number of frames comment out unneeded ones +# this will reduce number of visible devices +ETHER_II= +ETHER_8023= +ETHER_8022= +ETHER_SNAP= + +NBPF?= 1 + +CFLAGS+= ${PROTOS} + +.if defined(ETHER_II) +CFLAGS+= -DETHER_II +.endif + +.if defined(ETHER_8023) +CFLAGS+= -DETHER_8023 +.endif + +.if defined(ETHER_8022) +CFLAGS+= -DETHER_8022 +.endif + +.if defined(ETHER_SNAP) +CFLAGS+= -DETHER_SNAP +.endif + +.if defined(EFDEBUG) +CFLAGS+= -DEF_DEBUG +.endif + +opt_inet.h: + echo "#define INET 1" > opt_inet.h + +opt_ipx.h: + echo "#define IPX 1" > opt_ipx.h + +load: all + /sbin/kldload ./${PROG} + +unload: + /sbin/kldunload ${PROG} + +.include diff --git a/sys/modules/if_ef/ef.4 b/sys/modules/if_ef/ef.4 new file mode 100644 index 000000000000..6165e063ab62 --- /dev/null +++ b/sys/modules/if_ef/ef.4 @@ -0,0 +1,103 @@ +.\" +.\" Copyright (c) 1999, Boris Popov +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd June 20, 1999 +.Dt EF 4 +.Os BSD +.Sh NAME +.Nm ef +.Nd +pseudo-device driver provides support for multiple ethernet frame types. +.Sh SYNOPSIS +.Cd "kldload if_ef.ko" +.Sh DESCRIPTION +The +.Nm +pseudo-device driver clones each ethernet type device with four +additional interfaces. Each of them capable to send or receive only +one predefined frame type. +.Pp +Names for the new interfaces created by adding +.Ar fN +suffix to an existing device name. Where +.Ar N +is a device unit which can have one of the following values: +.Bd -literal -offset indent +0 interface with an Ethernet_II frame +1 interface with a Novell Ethernet_802.3 frame +2 interface with an Ethernet_802.2 frame +3 interface with an Ethernet_802.2/SNAP frame support. +.Ed +.Pp +For example, device +.Ar ed0 +will be populated with four devices: +.Ar ed0f0 , +.Ar ed0f1 , +.Ar ed0f2 +and +.Ar ed0f3 . +.Pp +After that, each device can be configured as usually: +.Dl # ifconfig ed0f1 ipx 0x105 +This will configure IPX protocol with network number +.Ar 0x105 +and +.Ar Ethernet_802.3 +frame type. +.Pp +Please note that it is impossible to configure IPX protocol on the 'raw' +.Ar ed0 +device after +.Ar if_ef.ko +driver loaded. +.Sh EXAMPLES +The +.Nm +driver can be loaded via +.Xr loader.conf 5 +file: +.Dl if_ef_load="YES" +.Pp +In this case an ordinary interface configuration commands can be used +in +.Xr rc.conf 5 +file: +.Dl network_interfaces="ed2 lo0 tun0 ed2f0 ed2f1" +.Dl ifconfig_ed2f0_ipx="ipx 0x101" +.Dl ifconfig_ed2f1_ipx="ipx 0x102" +.Sh DIAGNOSTICS +None. +.Sh CAVEATS +Avoid to configuring 'raw' ethernet device for IPX protocol after +.Nm +driver is loaded. +.Sh SEE ALSO +.Xr ipx 3 , +.Xr ifconfig 8 +.Sh AUTHOR +Boris Popov.