MSI-X
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 243
In the case of Multivector selection, it is not mandatory to enable all four RSS queues or enable all VRQs/send
queues. So, in the case of Multivector, RSS vector#1 through vector#4 are useful only in conjunction with the
respective number of RSS queues or CPU# enable. For example, if only three receive queues are receiving
traffic, and the Multivector mode is selected by the driver, then even though vectors 0, 1, 2, and 3 remain active,
vector#4 never triggers. Hence, in Multivector RSS mode the receive queues are hard-mapped 1:1 with MSI-X
vectors 1 through 4. Therefore it is not permissible to regroup receive queues into vectors in an arbitrary manner.
This policy also applies to Multivector IOV mode.
Consequently, Multivector mode must only be selected in conjunction with the enabling of either RSS or IOV.
In Single Vector mode, all receive traffic is indicated via Vector#0. In RSS mode, all four receive queue
indications, and all four Send Completions are thus grouped together in Vector#0. While in IOV mode, all 17 Rx
queues and all 16 Tx queues are grouped into Vector#0. Also, this mode must be used when RSS and IOV are
both disabled (but MSI-X is enabled, although it is not anticipated that doing this has any real-world usefulness).
There could be instances when the OS enables RSS but allocates only one MSI-X vector to our device. The
Broadcom driver would resort to choosing Single Vector mode in such a scenario.
The BCM5718 family offers two product SKUs. The MSI-X table size requested by each differs:
• BCM5717: This controller advertises MSI-X table size = 5.
• BCM5718: This controller advertises an MSI-X table size = 17 by default; however, an NVRAM
Configuration option is be provided to limit the Table Size to 5 if desired.
Note:
There is no known use case for enabling Multiple Tx queues (TSS) without enabling either RSS
or IOV. Therefore, doing so is not permitted.
Note:
When MSI-X is disabled, INTx or MSI continue to function as in legacy device implementations.
The data structures used in INTx and MSI mode are identical to those in Single Vector MSI-X mode.