freebsd-skq/sys/net
luigi 3ac0fcfb97 A bunch of netmap fixes:
USERSPACE:
1. add support for devices with different number of rx and tx queues;

2. add better support for zero-copy operation, adding an extra field
   to the netmap ring to indicate how many buffers we have already processed
   but not yet released (with help from Eddie Kohler);

3. The two changes above unfortunately require an API change, so while
   at it add a version field and some spares to the ioctl() argument
   to help detect mismatches.

4. update the manual page for the two changes above;

5. update sample applications in tools/tools/netmap

KERNEL:

1. simplify the internal structures moving the global wait queues
   to the 'struct netmap_adapter';

2. simplify the functions that map kring<->nic ring indexes

3. normalize device-specific code, helps mainteinance;

4. start exploring the impact of micro-optimizations (prefetch etc.)
   in the ixgbe driver.
   Use 'legacy' descriptors on the tx ring and prefetch slots gives
   about 20% speedup at 900 MHz. Another 7-10% would come from removing
   the explict calls to bus_dmamap* in the core (they are effectively
   NOPs in this case, but it takes expensive load of the per-buffer
   dma maps to figure out that they are all NULL.

   Rx performance not investigated.

I am postponing the MFC so i can import a few more improvements
before merging.
2012-02-27 19:05:01 +00:00
..
bpf_buffer.c - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf_buffer.h - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf_filter.c Clear the filter memory area before using it. Leaving it uninitialized may 2011-07-14 21:06:22 +00:00
bpf_jitter.c General style cleanup, no functional change. 2009-11-20 21:12:40 +00:00
bpf_jitter.h
bpf_zerocopy.c - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf_zerocopy.h - Fix trivial typo 2012-01-14 17:07:52 +00:00
bpf.c Consumers of bpfdetach() expect it to remove all bpf_if structs from the 2012-01-10 00:48:29 +00:00
bpf.h Revert r228986 until it can be reworked to avoid panicing the kernel when the 2011-12-31 07:21:28 +00:00
bpfdesc.h
bridgestp.c Only look for a usable MAC address for the bridge ID from ports within our 2012-02-24 17:50:36 +00:00
bridgestp.h bstp_input() always consumes the packet so remove the mbuf handling dance 2012-02-23 00:59:21 +00:00
ethernet.h
fddi.h
firewire.h
flowtable.c Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
flowtable.h
ieee8023ad_lacp.c Using the flowid in the mbuf assumes the network card is giving a good hash for 2012-02-22 22:01:30 +00:00
ieee8023ad_lacp.h
if_arc.h
if_arcsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_arp.h
if_atm.h
if_atmsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_bridge.c bstp_input() always consumes the packet so remove the mbuf handling dance 2012-02-23 00:59:21 +00:00
if_bridgevar.h
if_clone.c - Use generic alloc_unr(9) allocator for if_clone, instead 2011-11-28 14:44:59 +00:00
if_clone.h - Use generic alloc_unr(9) allocator for if_clone, instead 2011-11-28 14:44:59 +00:00
if_dead.c
if_debug.c Add infrastructure to allow all frames/packets received on an interface 2011-07-03 12:22:02 +00:00
if_disc.c
if_dl.h
if_edsc.c
if_ef.c
if_enc.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_enc.h
if_epair.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_ethersubr.c A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
if_faith.c Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
if_fddisubr.c Tag mbufs of all incoming frames or packets with the interface's FIB 2011-07-03 16:08:38 +00:00
if_fwsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_gif.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_gif.h
if_gre.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_gre.h gre(4) was using a field in the softc to detect possible recursion. 2011-06-18 09:34:03 +00:00
if_iso88025subr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_lagg.c Add a sysctl/tunable default value for the use_flowid sysctl in r232008. 2012-02-23 21:56:53 +00:00
if_lagg.h Using the flowid in the mbuf assumes the network card is giving a good hash for 2012-02-22 22:01:30 +00:00
if_llatbl.c A flowtable entry can continue referencing an llentry indefinitely if the entry is repeatedly 2012-01-26 20:02:40 +00:00
if_llatbl.h When using flowtable llentrys can outlive the interface with which they're associated 2012-02-23 18:21:37 +00:00
if_llc.h
if_loop.c
if_media.c
if_media.h Since r228571 CARP is no longer an interface. 2012-01-06 12:05:43 +00:00
if_mib.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_mib.h
if_sppp.h
if_spppfr.c Remove a few bits of FreeBSD 2.x compatibility code. 2011-11-14 18:21:27 +00:00
if_spppsubr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
if_stf.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_stf.h
if_tap.c In r191367 the need for if_free_type() was removed and a new member 2011-11-11 22:57:52 +00:00
if_tap.h
if_tapvar.h
if_tun.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
if_tun.h
if_types.h A major overhaul of the CARP implementation. The ip_carp.c was started 2011-12-16 12:16:56 +00:00
if_var.h g/c last bit of old ipv6 prefix management. 2012-02-08 22:05:26 +00:00
if_vlan_var.h Clarify throughout the vlan(4) code the difference between a "tag" (the 2012-01-12 18:39:37 +00:00
if_vlan.c Clarify throughout the vlan(4) code the difference between a "tag" (the 2012-01-12 18:39:37 +00:00
if.c g/c last bit of old ipv6 prefix management. 2012-02-08 22:05:26 +00:00
if.h Introduce a new NET_RT_IFLISTL API to query the address list. It works 2012-02-11 06:02:16 +00:00
iso88025.h
netisr_internal.h Rework netisr policy mechanism so that per-protocol dispatch policies can 2011-05-24 12:34:19 +00:00
netisr.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
netisr.h Rework netisr policy mechanism so that per-protocol dispatch policies can 2011-05-24 12:34:19 +00:00
netmap_user.h A bunch of netmap fixes: 2012-02-27 19:05:01 +00:00
netmap.h A bunch of netmap fixes: 2012-02-27 19:05:01 +00:00
pfil.c
pfil.h
pfkeyv2.h
ppp_defs.h
radix_mpath.c When the RADIX_MPATH kernel option is enabled, the RADIX_MPATH code tries 2011-08-25 04:31:20 +00:00
radix_mpath.h
radix.c
radix.h Make KBI changes required for future MFCing of inpcb rtentry / llentry caching. 2011-09-20 20:27:26 +00:00
raw_cb.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
raw_cb.h Pass the fibnum where we need filtering of the message on the 2011-09-28 13:48:36 +00:00
raw_usrreq.c Pass the fibnum where we need filtering of the message on the 2011-09-28 13:48:36 +00:00
route.c Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
route.h Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
rtsock.c Introduce a new NET_RT_IFLISTL API to query the address list. It works 2012-02-11 06:02:16 +00:00
slcompress.c
slcompress.h
vnet.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
vnet.h
zlib.c
zlib.h Change some headers such that lang/gcc* ports no longer patch them. 2012-02-14 12:50:20 +00:00
zutil.h