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 [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message