History log of /freebsd-10.1-release/sys/dev/ex/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


243857 04-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags in sys/dev.


230132 15-Jan-2012 uqs

Convert files to UTF-8


229767 07-Jan-2012 kevlo

ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again

Reviewed by: yongari


207554 03-May-2010 sobomax

Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after: 1 month


201794 08-Jan-2010 trasz

Replace several instances of 'if (!a & b)' with 'if (!(a &b))' in order
to silence newer GCC versions.


195049 26-Jun-2009 rwatson

Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs. This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by: re (kib)
MFC after: 6 weeks


182227 27-Aug-2008 imp

Add preliminary support for the OLICOM OC2231 and OC2232. This is the
first driver that does the configuration dance with CFE's. There's
likely some additional configuration that's needed to get things
working completely...


182088 24-Aug-2008 imp

Some PC Card variants of the 82365 don't seem to like setting the IRQ
number in the irq register. While there are other issues with these
variants, avoiding writing to it helps interrupt generation on at
least one card, and doesn't hurt on the others. Flag ISA attachment
as needing INT_NO_REG written, and don't update the PC Card attachment
(which will have the effect of not touching it for PC Cards).

Document this in a comment, and tweak one or two formatting nits while
I'm here.


179775 13-Jun-2008 jhb

Make ex(4) MPSAFE:
- Add a mutex to the softc to protect the softc and device hardware.
- Use a private watchdog timer.
- Setup interrupt handler after ether_ifattach().
- Use bus_foo() rather than bus_space_foo() and remove bus space tag and
handle from softc.

Tested by: imp


168776 16-Apr-2007 pjd

s/destory/destroy/ (except for the code in contrib/).


166901 23-Feb-2007 piso

o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr()

o add an int return code to all fast handlers

o retire INTR_FAST/IH_FAST

For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current

Reviewed by: many
Approved by: re@


155282 04-Feb-2006 imp

Remove ifdef notyet SIOCGHWADDR vestige.


152315 11-Nov-2005 ru

- Store pointer to the link-level address right in "struct ifnet"
rather than in ifindex_table[]; all (except one) accesses are
through ifp anyway. IF_LLADDR() works faster, and all (except
one) ifaddr_byindex() users were converted to use ifp->if_addr.

- Stop storing a (pointer to) Ethernet address in "struct arpcom",
and drop the IFP2ENADDR() macro; all users have been converted
to use IF_LLADDR() instead.


152311 11-Nov-2005 ru

Catch up with IFP2ENADDR() type change (array -> pointer).


150215 16-Sep-2005 ru

Fix "struct ifnet" leaks when attach() fails in the middle.


150107 13-Sep-2005 imp

MFp4:
o Move to new pccard_cis_scan convenience function.
o Remove compat layer goo.


150100 13-Sep-2005 imp

Add the olicom OC2231 and OC2232 to the list of cards that we should
attach to. These cards are combo cards (in that they have a modem
inside of them), but not true MFC cards. Full support of these cards
will have to wait until we can pick the config to use and for the PFC
support that I have brewing.


148887 09-Aug-2005 rwatson

Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and
IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to
ifnet.if_drv_flags. Device drivers are now responsible for
synchronizing access to these flags, as they are in if_drv_flags. This
helps prevent races between the network stack and device driver in
maintaining the interface flags field.

Many __FreeBSD__ and __FreeBSD_version checks maintained and continued;
some less so.

Reviewed by: pjd, bz
MFC after: 7 days


148654 03-Aug-2005 rwatson

Modify device drivers supporting multicast addresses to lock if_addr_mtx
over iteration of their multicast address lists when synchronizing the
hardware address filter with the network stack-maintained list.

Problem reported by: Ed Maste (emaste at phaedrus dot sandvine dot ca>
MFC after: 1 week


148020 15-Jul-2005 imp

Add real support for obtaining the silicom MAC address from the
apporpriate place in the CIS, now that we have the CIS scanning code.


147580 24-Jun-2005 imp

Eliminate unused argument in PCMCIA_CARD macro.

Provide a backwards compatible way to have the extra macro by defining
PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that
want/need to have the same driver on 5 and 6 with pccard attachments.

Approved by: re (dwhite)


147256 10-Jun-2005 brooks

Stop embedding struct ifnet at the top of driver softcs. Instead the
struct ifnet or the layer 2 common structure it was embedded in have
been replaced with a struct ifnet pointer to be filled by a call to the
new function, if_alloc(). The layer 2 common structure is also allocated
via if_alloc() based on the interface type. It is hung off the new
struct ifnet member, if_l2com.

This change removes the size of these structures from the kernel ABI and
will allow us to better manage them as interfaces come and go.

Other changes of note:
- Struct arpcom is no longer referenced in normal interface code.
Instead the Ethernet address is accessed via the IFP2ENADDR() macro.
To enforce this ac_enaddr has been renamed to _ac_enaddr.
- The second argument to ether_ifattach is now always the mac address
from driver private storage rather than sometimes being ac_enaddr.

Reviewed by: sobomax, sam


140527 20-Jan-2005 imp

Include necessary declarations


140526 20-Jan-2005 imp

Only match ethernet functions. I've not seen any multifunction cards
(from a PC Card sense), so this should be a nop. The
pseudo-multifunction cards (eg Silicom ones) need a special driver
anyway..


139749 06-Jan-2005 imp

Start each of the license/copyright comments with /*-, minor shuffle of lines


136625 17-Oct-2004 glebius

Use cluster if data >= MINCLSIZE.

Reviewed by: mdodd
Approved by: julian (mentor)
MFC after: 1 month


133684 13-Aug-2004 rwatson

Since if_ex doesn't contain locking or run with INTR_MPSAFE, mark
the interface as IFF_NEEDSGIANT so if_start is run holding Giant.

Note: there are locking macros in if_exreg.h, but they appear to be
unused.


131248 28-Jun-2004 imp

another format nit


131247 28-Jun-2004 imp

casting for printf happiness


131192 27-Jun-2004 imp

MFp4:

Use bus space rather than direct inb/outb. Minor style changes while
I'm here. Extremely preliminary support for siliconix ethernet cards
(but more work is required).


129764 27-May-2004 imp

Fix disordering of pccarddevs.h noticed by bde. Also remove a few
redundant includes and fix some of the include disordering.

Submitted by: bde


129740 26-May-2004 imp

Move to generating pccarddevs.h on the fly, both for the kernel and
the modules.

Also generate usbdevs.h automatically now, but a non-kernel file is
stopping that at the moment.


129616 23-May-2004 mux

We don't need to initialize if_output, ether_ifattach() does it
for us.


128293 15-Apr-2004 luigi

Remove improper use of if_addrhead in device drivers to check
if the link-level address has been initialized already.

The majority of modern drivers never does this and works fine, which
makes me think that the check is totally unnecessary and a residue
of cut&paste from other drivers.

This change is done to simplify locking because now almost none of the
drivers uses this field. The exceptions are "ct" "ctau" and "cx"
where i am not sure if i can remove that part.


127135 17-Mar-2004 njl

Convert callers to the new bus_alloc_resource_any(9) API.

Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde


126966 14-Mar-2004 mdodd

Announce ethernet MAC addresss in ether_ifattach().


121816 31-Oct-2003 brooks

Replace the if_name and if_unit members of struct ifnet with new members
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.

This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.

Approved By: re (in principle)
Reviewed By: njl, imp
Tested On: i386, amd64, sparc64
Obtained From: NetBSD (if_xname)


121565 26-Oct-2003 imp

add newcard support to ex


119418 24-Aug-2003 obrien

Use __FBSDID().
Also some minor style cleanups.


112801 29-Mar-2003 mdodd

- Declare ex_devclass in if_ex.c
- Rename module datastructures in if_ex_isa.c to be more standard.


112800 29-Mar-2003 mdodd

- Move ex_pccard_detach() to if_ex.c and rename it to ex_detach().
- Add detach method to ISA front end.


112799 29-Mar-2003 mdodd

Reformat for readability.


112764 29-Mar-2003 mdodd

Don't panic if we aren't plugged into a hub.


112731 28-Mar-2003 mdodd

Multicast support, gleaned from NetBSD's if_iy driver.

Submitted by: Craig Boston <craig@xfoil.gank.org>


111119 19-Feb-2003 imp

Back out M_* changes, per decision of the TRB.

Approved by: trb


109623 21-Jan-2003 alfred

Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.


106937 14-Nov-2002 sam

network interface driver changes:

o don't strip the Ethernet header from inbound packets; pass packets
up the stack intact (required significant changes to some drivers)
o reference common definitions in net/ethernet.h (e.g. ETHER_ALIGN)
o track ether_ifattach/ether_ifdetach API changes
o track bpf changes (use BPF_TAP and BPF_MTAP)
o track vlan changes (ifnet capabilities, revised processing scheme, etc.)
o use if_input to pass packets "up"
o call ether_ioctl for default handling of ioctls

Reviewed by: many
Approved by: re


92739 20-Mar-2002 alfred

Remove __P.


71999 04-Feb-2001 phk

Mechanical change to use <sys/queue.h> macro API instead of
fondling implementation details.

Created with: sed(1)
Reviewed by: md5(1)


71235 19-Jan-2001 jhb

Warning police:
- Share the ex_stop() prototype in if_exvar.h
- Remove an unused local variable.


67164 15-Oct-2000 phk

Remove unneeded #include <machine/clock.h>


66440 29-Sep-2000 imp

Add support for pccard attachments of the ex driver. It supports the
Olicom OC-2220 card, and maybe others.

Submitted by: iwasaki
Reviewed by: mdodd


63090 13-Jul-2000 archie

Make all Ethernet drivers attach using ether_ifattach() and detach using
ether_ifdetach().

The former consolidates the operations of if_attach(), ng_ether_attach(),
and bpfattach(). The latter consolidates the corresponding detach operations.

Reviewed by: julian, freebsd-net


61488 10-Jun-2000 peter

Unused include: #include "ex.h"


60536 14-May-2000 archie

Move code to handle BPF and bridging for incoming Ethernet packets out
of the individual drivers and into the common routine ether_input().
Also, remove the (incomplete) hack for matching ethernet headers
in the ip_fw code.

The good news: net result of 1016 lines removed, and this should make
bridging now work with *all* Ethernet drivers.

The bad news: it's nearly impossible to test every driver, especially
for bridging, and I was unable to get much testing help on the mailing
lists.

Reviewed by: freebsd-net


59816 01-May-2000 mdodd

Split out the ISA bus front end code into its own file. PCCARD attachment
coming later this week. Mitsuru IWASAKI provided a patch to -mobile which
I used to make sure I was doing the right thing but only a small part of
the actual patch was used.


59391 19-Apr-2000 phk

Remove ~25 unneeded #include <sys/conf.h>
Remove ~60 unneeded #include <sys/malloc.h>


57989 13-Mar-2000 mdodd

Add 'bootverbose' debug messages to assist with tracking down problems
some users have encountered.


57987 13-Mar-2000 mdodd

Initial ifmedia support. Once I figure out autoselection I'll put the
rest of the code in (so changing media actually works.)

Add a few more register definitions for use with this and other new code.

Print a few details in the probe message; this should be useful in
bug reports and such but should not add to the clutter.


55953 14-Jan-2000 peter

Pre 4.0 tidy up.

Collect together the components of several drivers and export eisa from
the i386-only area (It's not, it's on some alphas too). The code hasn't
been updated to work on the Alpha yet, but that can come later.

Repository copies were done a while ago.
Moving these now keeps them in consistant place across the 4.x series
as the newbusification progresses.

Submitted by: mdodd


55883 13-Jan-2000 mdodd

Cosmetic cleanups.


55882 13-Jan-2000 mdodd

Implement a DEVICE_IDENTIFY method. I want to revisit some of this later
but this is enough to get us going.


55881 13-Jan-2000 mdodd

When I converted this driver to newbus I also cleaned up the code
layout. It seems that I cleaned it up a bit too much and confused a few

if () {
if () {
} else {
}
}

statements in the obvious manner.

This allows the driver to transmit packets again. *sigh*


52842 03-Nov-1999 mdodd

Fix bus_setup_intr(); I changed exintr() to take a pointer to ex_softc
but didn't change bus_setup_intr() to pass the softc in.

Submitted by: Warner Losh <imp@village.org>


52286 16-Oct-1999 mdodd

- Convert this driver to newbus.
- Generally clean things up.
- PnP now supported.

Will convert to bus_space, ifmedia and add a DEVICE_IDENTIFY() method
for autodetection. As it stands

device ex0 at isa0

should find a card if one is present.

I feel less dirty now.


51646 25-Sep-1999 phk

Remove NBPF conditionality of bpf calls in most of our network drivers.

This means that we will not have to have a bpf and a non-bpf version
of our driver modules.

This does not open any security hole, because the bpf core isn't loadable

The drivers left unchanged are the "cross platform" drivers where the respective
maintainers are urged to DTRT, whatever that may be.

Add a couple of missing FreeBSD tags.


50477 28-Aug-1999 peter

$Id$ -> $FreeBSD$


50026 18-Aug-1999 mdodd

Make these actually compile. I got a little delete happy pruning includes
and used 'command' instead of 'cmd' in a few cases. Also clear up some
unused variables.

Pointed out by: phk


50002 18-Aug-1999 mdodd

SIOCSIFADDR, SIOCGIFADDR, and SIOCSIFMTU are implemented in
sys/net/if_ethersubr.c:ether_ioctl(). Drivers need not implement generic
behavior.

PR: kern/12126
Submitted by: in part by Boris Popov <bp@butya.kz>


48645 06-Jul-1999 des

Rename bpfilter to bpf.


46347 02-May-1999 peter

Set ifq_maxlen to default value. (This should be safe, it's not clear
if there's benefit to setting it to the exact amount, it appears the
card has 32K of ram, and 8K is used for outgoing packets, that would
be something like a queue limit of 5 packets. I don't think that's
useful...)

PR: 11456
Submitted by: Stephen J. Roznowski <sjr@home.net>


43314 28-Jan-1999 dillon

Fix warnings in preparation for adding -Wall -Wcast-qual to the
kernel compile


40565 22-Oct-1998 bde

Initialize isa_devtab entries for interrupt handlers in individual
device drivers, not in ioconf.c. Use a different hack in isa_device.h
so that a new config(8) is not required yet.

pc98 parts approved by: kato


36735 07-Jun-1998 dfr

This commit fixes various 64bit portability problems required for
FreeBSD/alpha. The most significant item is to change the command
argument to ioctl functions from int to u_long. This change brings us
inline with various other BSD versions. Driver writers may like to
use (__FreeBSD_version == 300003) to detect this change.

The prototype FreeBSD/alpha machdep will follow in a couple of days
time.


34928 28-Mar-1998 bde

Removed unused #includes.


32350 08-Jan-1998 eivind

Make INET a proper option.

This will not make any of object files that LINT create change; there
might be differences with INET disabled, but hardly anything compiled
before without INET anyway. Now the 'obvious' things will give a
proper error if compiled without inet - ipx_ip, ipfw, tcp_debug. The
only thing that _should_ work (but can't be made to compile reasonably
easily) is sppp :-(

This commit move struct arpcom from <netinet/if_ether.h> to
<net/if_arp.h>.


31742 15-Dec-1997 eivind

Throw options IPX, IPXIP and IPTUNNEL into opt_ipx.h.

The #ifdef IPXIP in netipx/ipx_if.h is OK (used from ipx_usrreq.c and
ifconfig.c only).

I also fixed a typo IPXTUNNEL -> IPTUNNEL (and #ifdef'ed out the code
inside, as it never could have compiled - doh.)


31016 07-Nov-1997 phk

Remove a bunch of variables which were unused both in GENERIC and LINT.

Found by: -Wunused


29877 26-Sep-1997 msmith

The previous commit broke support for the Pro/10; detect which sort of
card we are using and calculate the IRQ accordingly.


29313 12-Sep-1997 msmith

Support Intel EtherExpress Pro 10+
PR: kern/4335
Reviewed by: Stephen Roznowski (sjr@home.net)


27555 20-Jul-1997 bde

Removed unused #includes.


27125 01-Jul-1997 bde

Don't depend on gcc's feature of permitting labels that aren't followed
by a statement.


26545 10-Jun-1997 gibbs

Fix two typos in this driver that prevented it from working properly.

PR: kern/3776
Submitted by: flash@hway.ru


24204 24-Mar-1997 bde

Don't include <sys/ioctl.h> in the kernel. Stage 2: include
<sys/sockio.h> instead of <sys/ioctl.h> in network files.


21769 16-Jan-1997 jkh

Add the ex driver (Intel EtherExpress Pro/10).

I have no idea if this works since I don't have one of the cards to test.
I also don't know what the LINT and GENERIC entries should look like,
so I just made up some values for now and left them commented out.
Someone who knows the factory settings for a Pro/10, please contact me!

Submitted-By: Javier Martín Rueda <jmrueda@diatel.upm.es>