freebsd-nq/sys/dev/cxgbe
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
..
common Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
firmware cxgbe/t4_tom: add a knob to the default configuration file to tune 2015-11-10 02:29:19 +00:00
iw_cxgbe Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
tom Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
adapter.h Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
if_cxl.c cxgbe(4): Add a minimal if_cxl module that pulls in the real driver as 2015-02-06 01:10:04 +00:00
offload.h cxgbe(4): tidy up some of the interaction between the Upper Layer 2015-02-08 09:28:55 +00:00
osdep.h Add hooks in base cxgbe(4) for the iWARP upper-layer driver. Update a 2013-08-28 20:45:45 +00:00
t4_ioctl.h cxgbe(4): T4_SET_SCHED_CLASS and T4_SET_SCHED_QUEUE ioctls to program 2013-12-03 18:34:52 +00:00
t4_l2t.c Revert r279934, r279938; this is going to be fixed in sbuf instead. 2015-03-14 13:04:39 +00:00
t4_l2t.h
t4_main.c Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
t4_mp_ring.c Allow cxgbe(4) to be built on i386. Driver attach will succeed only on a subset 2015-01-16 01:32:40 +00:00
t4_mp_ring.h cxgbe(4): major tx rework. 2014-12-31 23:19:16 +00:00
t4_netmap.c Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
t4_sge.c Add support for configuring additional virtual interfaces (VIs) on a port. 2015-12-03 00:02:01 +00:00
t4_tracer.c cxgbe(4): Remove stray if_up from the code that creates the tracing ifnet. 2014-05-23 01:45:44 +00:00