freebsd with flexible iflib nic queues
Go to file
Pyun YongHyeon 7c10cf8c28 Switch to TX header format rather than directly manipulating header
structures.  This simplifies mbuf copy operation to USB buffers as
well as improving readability.  The controller supports Microsoft
LSOv1(aka TSO) but this change set does not include the support due
to copying overhead to USB buffers and large amount of memory waste.

Remove useless ZLP padding which seems to come from Linux.  Required
bits the code tried to set was not copied into USB buffer so it had
no effect.  Unlike Linux, FreeBSD USB stack automatically generates
ZLP so no explicit padding is required in driver.[1]

Micro-optimize updating IFCOUNTER_OPACKETS counter by moving it out
of TX loop since updating counter is not cheap operation as it did
long time ago and we already know how many number of packets were
queued after exiting the loop.

While here, fix a checksum offloading bug which will happen when
upper stack computes checksum while H/W checksum offloading is
active.  The controller should be notified to not recompute the
checksum in this case.

Reviewed by:	kevlo (initial version), hselasky
Pointed out by:	hselasky [1]
2016-08-18 05:07:02 +00:00
bin Remove description of P_FOLLOWFORK as this flag was removed. 2016-08-12 16:13:50 +00:00
cddl Regenerate DTrace tests. 2016-08-16 02:34:25 +00:00
contrib Pull in r262772 from upstream clang trunk (by Simon Pilgrim): 2016-08-17 21:57:11 +00:00
crypto Try to check whether each key file exists before adding it, and bail out 2016-08-08 10:46:18 +00:00
etc Regenerate DTrace tests. 2016-08-16 02:34:25 +00:00
gnu rename ARM's libunwind.S to to avoid conflict with llvm libunwind 2016-07-27 16:34:19 +00:00
include Add an implementation of fdatasync(2). 2016-08-15 19:08:51 +00:00
kerberos5 DIRDEPS_BUILD: Update dependencies 2016-06-14 16:55:05 +00:00
lib Pull in r262772 from upstream clang trunk (by Simon Pilgrim): 2016-08-17 21:57:11 +00:00
libexec Move defines common between rtld and libsysdecode into the header, 2016-08-12 19:31:41 +00:00
release Pass overrides to make(1) when building ports for arm/armv6 2016-08-09 22:48:46 +00:00
rescue DIRDEPS_BUILD: Fix and hookup rescue/rescue to the build. 2016-05-26 23:20:40 +00:00
sbin Add an ability to attach comment to check-state rules. 2016-08-14 18:34:16 +00:00
secure Disable assembly sources when compiler/assembler cannot compile certain 2016-08-17 22:13:39 +00:00
share rights(4): CAP_FSYNC also permits fdatasync(2). 2016-08-17 20:27:04 +00:00
sys Switch to TX header format rather than directly manipulating header 2016-08-18 05:07:02 +00:00
targets Add clang-format under WITH_CLANG_EXTRAS. 2016-06-17 16:46:58 +00:00
tests Only expect :encode_tv_random_million to fail on 64-bit platforms 2016-08-16 20:32:08 +00:00
tools Print out some more fields. 2016-08-12 01:13:34 +00:00
usr.bin Fix the output for scope statistics. 2016-08-17 16:56:20 +00:00
usr.sbin Ensure that the sector size is a multiple of 4096 to avoid creating 2016-08-15 09:30:21 +00:00
.arcconfig Remove project.name which is a product of a bygone era. 2016-04-21 04:33:07 +00:00
.arclint
COPYRIGHT Bump copyright year. 2015-12-31 11:21:45 +00:00
LOCKS
MAINTAINERS Remove myself from kern_timeout.c yeah! 2016-07-27 20:37:32 +00:00
Makefile Avoid showing the bootstrap make command for check-old, etc. 2016-08-12 13:52:51 +00:00
Makefile.inc1 Trim unneeded bootstrap after r301470 made 9.1 the minimum supported release. 2016-08-16 12:13:12 +00:00
Makefile.libcompat Don't disable binutils/elftoolchain bootstrapping with external compiler. 2016-07-24 18:50:11 +00:00
ObsoleteFiles.inc Remove the mcd(4) driver for Mitsumi CD-ROM players. 2016-08-15 20:38:02 +00:00
README README: remove nonexistent 'games' directory. 2016-05-18 10:43:13 +00:00
UPDATING Minor wording improvements to the note about pipe(2) removal. 2016-07-20 18:00:22 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree.  See build(7)
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The `buildkernel` and `installkernel` targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process.  See build(7), config(8),
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
for more information.

Note: If you want to build and install the kernel with the
`buildkernel` and `installkernel` targets, you might need to build
world before.  More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf
sub-directory.  GENERIC is the default configuration used in release builds.
NOTES contains entries and documentation for all possible
devices, not just those commonly used.


Source Roadmap:
---------------

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html