Introduce a new toy interface, edsc(4). It's a discard interface
imitating an Ethernet device, so vlan(4) and if_bridge(4) can be attached to it for testing and benchmarking purposes. Its source can be an introduction to the anatomy of a network interface driver due to its simplicity as well as to a bunch of comments in it.
This commit is contained in:
parent
ec89d3911e
commit
cee18f9ca8
@ -67,6 +67,7 @@ MAN= aac.4 \
|
||||
dpt.4 \
|
||||
dummynet.4 \
|
||||
ed.4 \
|
||||
edsc.4 \
|
||||
ef.4 \
|
||||
ehci.4 \
|
||||
em.4 \
|
||||
|
111
share/man/man4/edsc.4
Normal file
111
share/man/man4/edsc.4
Normal file
@ -0,0 +1,111 @@
|
||||
.\" Copyright (c) 1983, 1991, 1993
|
||||
.\" The Regents of the University of California. 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.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
||||
.\"
|
||||
.\" From: @(#)lo.4 8.1 (Berkeley) 6/5/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd March 25, 2007
|
||||
.Dt EDSC 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm edsc
|
||||
.Nd Ethernet discard network interface
|
||||
.Sh SYNOPSIS
|
||||
.Cd "device edsc"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
interface is a software discard mechanism which may be
|
||||
used for performance analysis and software testing.
|
||||
It imitates an Ethernet device, which
|
||||
allows for its use in conjunction with such drivers as
|
||||
.Xr if_bridge 4
|
||||
and
|
||||
.Xr vlan 4 .
|
||||
.Pp
|
||||
As with other network interfaces, an
|
||||
.Nm
|
||||
interface must have network addresses assigned for each address family
|
||||
with which it is to be used.
|
||||
These addresses may be set or changed with the
|
||||
.Dv SIOCSIFADDR
|
||||
.Xr ioctl 2
|
||||
or
|
||||
.Xr ifconfig 8
|
||||
utility.
|
||||
.Pp
|
||||
Each
|
||||
.Nm
|
||||
interface is created at runtime using interface cloning.
|
||||
This is most easily done with the
|
||||
.Xr ifconfig 8
|
||||
.Cm create
|
||||
command or using the
|
||||
.Va cloned_interfaces
|
||||
variable in
|
||||
.Xr rc.conf 5 .
|
||||
.Sh SEE ALSO
|
||||
.Xr ioctl 2 ,
|
||||
.Xr arp 4 ,
|
||||
.Xr if_bridge 4 ,
|
||||
.Xr inet 4 ,
|
||||
.Xr intro 4 ,
|
||||
.Xr vlan 4 ,
|
||||
.Xr rc.conf 5 ,
|
||||
.Xr arp 8 ,
|
||||
.Xr ifconfig 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
device was derived from the
|
||||
.Xr disc 4
|
||||
device and first appeared in
|
||||
.Fx 7.0 .
|
||||
This manpage was adapted from
|
||||
.Xr disc 4 .
|
||||
.Sh CAVEATS
|
||||
Since outgoing packets are just discarded by
|
||||
.Nm ,
|
||||
ARP requests stay unreplied.
|
||||
Consequently, an IP packet cannot be sent via
|
||||
.Nm
|
||||
until a static
|
||||
.Xr arp 4
|
||||
entry is created for its next hop using
|
||||
.Xr arp 8 .
|
||||
.Pp
|
||||
Initially an
|
||||
.Nm
|
||||
interface has a zero link level address.
|
||||
It can be changed with
|
||||
.Xr ifconfig 8
|
||||
.Cm lladdr
|
||||
if needed.
|
@ -737,6 +737,8 @@ device mn # Munich32x/Falc54 Nx64kbit/sec cards.
|
||||
# The `disc' device implements a minimal network interface,
|
||||
# which throws away all packets sent and never receives any. It is
|
||||
# included for testing purposes. This shows up as the `ds' interface.
|
||||
# The `edsc' device implements a minimal Ethernet interface,
|
||||
# which discards all packets sent and receives none.
|
||||
# The `tap' device is a pty-like virtual Ethernet interface
|
||||
# The `tun' device implements (user-)ppp and nos-tun
|
||||
# The `gif' device implements IPv6 over IP4 tunneling,
|
||||
@ -782,6 +784,7 @@ device sppp #Generic Synchronous PPP
|
||||
device loop #Network loopback device
|
||||
device bpf #Berkeley packet filter
|
||||
device disc #Discard device (ds0, ds1, etc)
|
||||
device edsc #Ethernet discard device
|
||||
device tap #Virtual Ethernet driver
|
||||
device tun #Tunnel driver (ppp(8), nos-tun(8))
|
||||
device sl #Serial Line IP
|
||||
|
@ -1532,6 +1532,7 @@ net/if_atmsubr.c optional atm
|
||||
net/if_bridge.c optional if_bridge
|
||||
net/if_clone.c standard
|
||||
net/if_disc.c optional disc
|
||||
net/if_edsc.c optional edsc
|
||||
net/if_ef.c optional ef
|
||||
net/if_enc.c optional enc
|
||||
net/if_ethersubr.c optional ether
|
||||
|
@ -103,6 +103,7 @@ SUBDIR= ${_3dfx} \
|
||||
${_ie} \
|
||||
if_bridge \
|
||||
if_disc \
|
||||
if_edsc \
|
||||
if_ef \
|
||||
if_faith \
|
||||
if_gif \
|
||||
|
8
sys/modules/if_edsc/Makefile
Normal file
8
sys/modules/if_edsc/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.PATH: ${.CURDIR}/../../net
|
||||
|
||||
KMOD= if_edsc
|
||||
SRCS= if_edsc.c
|
||||
|
||||
.include <bsd.kmod.mk>
|
Loading…
x
Reference in New Issue
Block a user