Feature #11357

want i40e multi-group support

Added by Robert Mustacchi 9 months ago. Updated 9 months ago.

driver - device drivers
Start date:
Due date:
% Done:


Estimated time:


Currently, i40e supports only one MAC group. This means that no MAC clients (such as VNICs) can take advantage of HW classification because all traffic must travel through a single group. The goal of this task to implement multi-group support for i40e, specifically:

  • provide as many MAC groups as possible given the NICs resources
  • support multiple rings + RSS for each group (for now perhaps use the same number as ixgbe)
  • make sure that we still have a "default group" to send multicast traffic, or traffic for clients for which we couldn't get a dedicated group

I ran the following tests under DEBUG bits. I ran these tests on both X722 and X710 parts.

  • run dlsend/dlrecv between primary clients (in both directions)
  • run ping between primary clients (both directions)
  • rung iperf3 TCP + UDP between primary clients (both directions), verify Rx HW lanes
  • create VNIC and verify its assigned Rx HW group via dladm show-phys -H
  • run dlsend/dlrecv across VNIC (both directions)
  • run ping across VNIC (both directinos)
  • run iperf3 TCP + UDP across VNIC (both directions), verify Rx HW lanes
  • create VLAN VNIC
  • run dlsend/dlrecv across VLAN VNIC (both directions)
  • run ping across VLAN VNIC (both directions)
  • run iperf3 TCP + UDP across VLAN VNIC (both directions), no HW classification because that's future work in OS-6769
  • create enough VNICs to eat all Rx HW groups, create one more VNIC which will be assigned to default Rx group, then verify traffic flows over this VNIC



Updated by Electric Monk 9 months ago

  • Status changed from New to Closed

git commit 09aee6126f680324a9b019f9b4c77309dc611bf9

commit  09aee6126f680324a9b019f9b4c77309dc611bf9
Author: Ryan Zezeski <>
Date:   2019-07-15T18:17:00.000Z

    11356 Want Fortville TSO support
    11357 want i40e multi-group support
    11358 i40e_alloc_ring_mem() unwinds when it shouldn't
    11359 Rework i40e transmit descriptor logic
    Portions contributed by: Rob Johnston <>
    Reviewed by: Robert Mustacchi <>
    Reviewed by: Patrick Mooney <>
    Reviewed by: Randy Fishel <>
    Approved by: Garrett D'Amore <>

Also available in: Atom PDF