freebsd-nq/share
John Baldwin fe2ebb7644 Add support for configuring additional virtual interfaces (VIs) on a port.
Each virtual interface has its own MAC address, queues, and statistics.
The dedicated netmap interfaces (ncxgbeX / ncxlX) were already implemented
as additional VIs on each port.  This change allows additional non-netmap
interfaces to be configured on each port.  Additional virtual interfaces
use the naming scheme vcxgbeX or vcxlX.

Additional VIs are enabled by setting the hw.cxgbe.num_vis tunable to a
value greater than 1 before loading the cxgbe(4) or cxl(4) driver.
NB: The first VI on each port is the "main" interface (cxgbeX or cxlX).

T4/T5 NICs provide a limited number of MAC addresses for each physical port.
As a result, a maximum of six VIs can be configured on each port (including
the "main" interface and the netmap interface when netmap is enabled).

One user-visible result is that when netmap is enabled, packets received
or transmitted via the netmap interface are no longer counted in the stats
for the "main" interface, but are not accounted to the netmap interface.

The netmap interfaces now also have a new-bus device and export various
information sysctl nodes via dev.n(cxgbe|cxl).X.

The cxgbetool 'clearstats' command clears the stats for all VIs on the
specified port along with the port's stats.  There is currently no way to
clear the stats of an individual VI.

Reviewed by:	np
MFC after:	1 month
Sponsored by:	Chelsio
2015-12-03 00:02:01 +00:00
..
colldef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
ctypedef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
dict Add META_MODE support. 2015-06-13 19:20:56 +00:00
doc Rename the /usr/share/doc/legal files to driver.LICENSE to work around 2015-10-16 00:38:05 +00:00
dtrace META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
examples META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
i18n Add more SUBDIR_PARALLEL. 2015-10-15 22:55:08 +00:00
keys META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
locale-links META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
man Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
me Add META_MODE support. 2015-06-13 19:20:56 +00:00
misc Add myself (rpokala) and my mentor (jhb) 2015-11-20 21:03:04 +00:00
mk Add LIBNANDFS. 2015-12-02 05:23:12 +00:00
monetdef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
msgdef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
numericdef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
security META MODE: These need object directories to handle staging. 2015-11-26 01:14:27 +00:00
sendmail Use more appropriate ${SHAREDIR} rather than /usr/share. 2015-10-27 23:35:02 +00:00
skel Use more appropriate ${SHAREDIR} rather than /usr/share. 2015-10-27 23:35:02 +00:00
snmp Add META_MODE support. 2015-06-13 19:20:56 +00:00
syscons Add more SUBDIR_PARALLEL. 2015-10-15 22:55:08 +00:00
tabset Add META_MODE support. 2015-06-13 19:20:56 +00:00
termcap Add META_MODE support. 2015-06-13 19:20:56 +00:00
tests Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and 2015-10-12 08:16:03 +00:00
timedef META MODE: Fix 'make the-lot' with recent locale changes 2015-11-25 19:13:28 +00:00
vt META MODE: Update dependencies with 'the-lot' and add missing directories. 2015-12-01 05:23:19 +00:00
zoneinfo Install share/zoneinfo in a deterministic way by sorting the results from find 2015-10-17 09:26:16 +00:00
Makefile Merge from head 2015-10-19 11:51:10 +00:00
Makefile.inc