*BSD News Article 16967


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!sadye.emba.uvm.edu!wollman
From: Garrett.Wollman@UVM.EDU (Garrett Wollman)
Newsgroups: comp.os.386bsd.announce
Subject: Sixth Release, AT&T EN100/StarLAN 10 (i82586) Ethernet driver
Followup-To: poster
Date: 9 Jun 1993 18:44:04 -0700
Organization: University of Vermont, EMBA Computer Facility
Lines: 173
Sender: cgd@agate.berkeley.edu
Approved: 386bsd-announce-request@agate.berkeley.edu
Message-ID: <1993Jun8.192840.27788@uvm.edu>
NNTP-Posting-Host: agate.berkeley.edu
Summary: tsornin.emba.uvm.edu: /386BSD/ie-driver.tar.Z



The Sixth Release of my driver for the AT&T EN100 family of Ethernet
controllers is now available.  This driver is known to work with the
EN100, and believed to work for StarLAN 10.  It should be portable to
other i82586-based controllers which operate on the same principles;
see the README file.  It is known to compile in my current version of
386BSD, and should work with minimal modifications in most other
related systems.  It is available by anonymous FTP from
tsornin.emba.uvm.edu as /386BSD/ie-driver.tar.Z.  (Chris, Rod, and
Bill are all welcome to distribute this as a part of their systems, if
they don't already.)

Here is an excerpt from the NEWS file:
------------------------------------
Changes from the Fifth Release of this driver:

- Thanks to Jeff Pych of AT&T, support for StarLAN 10 or 10BASE-T
  should now work.
- The number of receive buffers has been increased by 50%, for
  improved receive performance.  Large TCP windows *still* don't
  work.  (If any of the '586 experts out there would like to enlighten
  me, I'd sure appreciate it.  It has something to do with my
  misunderstanding of how to handle RNR conditions.)
- There are now two transmit buffers for better performance when
  sending data.
------------------------------------

Here is the README file:
------------------------------------
README
  Sixth Release
    Intel i82586 Ethernet controller driver

Copyright 1992-93, Garrett A. Wollman
Copyright 1992-93, University of Vermont and State Agricultural College.
See permission notice at end.


INTRODUCTION

This package consists of a driver for the Intel high-performance
8-/16-bit LAN controller, the i82586, implemented in a dual-ported
memory mode such as the AT&T EN100.  The mode in which it currently
operates is known to be correct for a standard DIX version 2.0
Ethernet, but may not be correct for some other network systems, such
as StarLAN.  The only network hardware currently supported is the AT&T
EN100 NAU, operating in Ethernet mode, but the software was designed
to allow support for other controllers to be easily integrated;
indeed, only three functions need to be written in order for other,
similar cards to be supported.  (Get the Crynwr Packet Driver system;
if the driver for your card uses i82586.inc, then support for it can
probably be implemented in this framework.  Not all 586-based adapters
use this method, so some cards will remain permanently out of the
fold.)

The package as it stands does not support trailers.  I see no
particularly good reason for it to do so, since no modern network
hardware emits such ugly packets.  Eventually, I will try to
support Paul Tsuchiya's PIP in addition to IP, NS, and 802.2.


INSTALLATION

To install this driver, you will first need to add the line

   if_ie.c optional ie device-driver

to your /sys/i386/conf/files.i386 file.  Once this is done, you should
add a configuration file entry similar to the one included in my
configuration file, TSORNIN.  You should also add the line:

   typedef void (*timeout_t) __P((caddr_t));

in /sys/sys/systm.h, if it's not already there.  (This defines an
appropriate type for the first argument of the timeout() function.)
Then re-run `config', `make depend', and `make'.  With luck, you will
have a fully-functioning kernel with a network interface called `ie0'.
(You should be able to configure more than one, but I've never tried
this myself.)

You can then add
    ifconfig ie0 inet my-address netmask my-netmask broadcast my-broadcast
to your /etc/netstart, and away we go!


PERFORMANCE

Performance is not great.  It is unclear to me (not having any basis
for comparison) how much of this is the driver's fault, and how much
is due to the fact that 8-bit cards on the AT bus are extremely slow.
In my tests (on a 386/20), I can transmit at about 175 K/second (185
per CPU second), and receive at between 140 and 180 K/second (1200 to
1500 per CPU second).

ACKNOWLEDGEMENTS

This driver would not have been possible without the help of several
individuals:

- The authors of the Clarkson (now Crynwr) Packet Drivers
- Terry Lambert from Novell
- Mark Treacy from Labtam
- Steve Ackerman for lending me a copy of his i82596 manual
- Dr. Gary Barbour for not complaining about the amount of time I
  spent making this work right.
- The United States Postal Service, for losing our order to Intel for
  a '586 manual.

I would appreciate it if any new additions or extensions of this
driver are communicated directly with me, rather than letting a
mish-mash of different versions float about.


CONTACTING THE AUTHOR

You can contact me via electronic mail (preferred) as
<Garrett.Wollman@UVM.EDU>.  You can send paper mail to me at 127 Saint
Paul Street #218, Burlington, VT 05401.


COPYING

Here are the conditions attached to this software:

Copyright (c) 1992-93, University of Vermont and State Agricultural College.
Copyright (c) 1992-93, Garrett A. Wollman.

Portions:
Copyright (c) 1990, 1991, William F. Jolitz
Copyright (c) 1990, 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
	Vermont and State Agricultural College and Garrett A. Wollman,
	by William F. Jolitz, by the University of California,
	Berkeley, by Lawrence Berkeley Laboratory, and its contributors.
4. Neither the names of the Universities nor the names of the authors
   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 UNIVERSITY OR AUTHORS 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.


-- 
Garrett A. Wollman   | Shashish is simple, it's discreet, it's brief. ... 
wollman@emba.uvm.edu | Shashish is the bonding of hearts in spite of distance.
uvm-gen!wollman      | It is a bond more powerful than absence.  We like people
UVM disagrees.       | who like Shashish.  - Claude McKenzie + Florent Vollant
--
Please send submissions for comp.os.386bsd.announce to:
					386bsd-announce@agate.berkeley.edu