Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Nov 2002 08:55:30 -0800
From:      "Sam Leffler" <sam@errno.com>
To:        <freebsd-net@freebsd.org>
Subject:   CFR: network patch
Message-ID:  <212201c284ec$26cea3a0$52557f42@errno.com>

next in thread | raw e-mail | index | archive | help
http://www.freebsd.org/~sam/network.patch.gz

has a patch that contains a bunch of changes to the network interface layer
and related drivers.  These changes are intended to reduce incompatibilities
between freebsd and netbsd so that work can be more easily exchanged/shared.
In particular, this stuff came up while working with the netbsd
if_ieee80211subr.c code; a common layer to be shared by all 802.11 drivers.

Many of the changes are "mechanical".  Some change ABI's and as such I'd
like to get them into 5.0-R since otherwise we'll be stuck until 6.0.

Everything in this patch has been tested except for some of the hardware
drivers (see below).  In addition I did some performance testing of the vlan
mods and see almost identical performance running netperf over a 100baseT
network w/ and w/o hardware tagging (.1% drop).

A list of the changes are:

1. Add BPF support for multiple link types per interface (so, for example,
you can tap at both 802.11 and Ethernet).
2. Wrap bpf_mtap and bpf_tap calls in macros to hide implementation details
and ease code portability.
3. Add an if_input method to struct ifnet and replace all references to
ether_input by (*if_input)(...).
4. Change the calling convention for ether_input: leave the ethernet header
in the mbuf and possibly the FCS.
5. Change ether_ifattach and ether_ifdetach to remove the param that says
whether bpf is supported.
6. Change ether_ifattach to take an ethernet address explicitly that's used
to fillin the link level address (and temporarily the arpcom ethernet mac).
7. Change drivers to call ether_ifioctl for the default case and rely on
it's error return.
8. Drivers that support vlan tagging in h/w now mark this in their
capabilities.
9. Drivers that support large mtu's for vlan headers now mark this in their
capabilities.
10. The mechanism for dealing with vlan-encapsulated packets is changed to
use packet tags and to always go through ether_input.  Among other things
this eliminates the need for anyone but ether_input to know about
vlan_input_p.
11. The vlan code now auto-recognizes interface capabilities w.r.t. vlans
and does the right thing.
12. The vlan code now handles promiscuous mode correctly.
13. Change net/ethernet.h to add definitions from netbsd and to move some
stuff out.
14. Add some #defines to net/if.h for netbsd compatibility

I'm interested in all manner of comments, but please send nits directly to
me rather than everyone.  If you have hardware to test the le, ie, or wl
drivers I'd really appreciate help as these have non-trivial changes that
are currently untested.

    Sam


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?212201c284ec$26cea3a0$52557f42>