Project

General

Profile

Feature #11492

add VLVF bypass to ixgbe core

Added by Robert Mustacchi over 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
networking
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

We need to update parts of our ixgbe core code to implement HW VLAN acceleration as part of the 11490 work (also see RFD-97). Intel made a large drop to the FreeBSD codebase in 2017; the details of which can be found under review D11232. My initial plan was to perform a full sync of the core code but after spending some time with this diff I decided it would be too disruptive and I'd likely break something. It's safer and quicker to cherry pick only the changes needed to support this new VLAN work.

We need to pull the "VLVF bypass" changes to support HW VLANs. The vlvf_bypass flag allows the caller to set the VFTA without setting the VLVFB. The VFTA is the VLAN filter table and controls VLAN L2 filtering; traffic will not pass L2 filtering if the packet's VID is not enabled in this table. The VLVFB controls VLAN pool switching: if the packet contains VID V then send it to pool P. There are a finite number of VLVFB registers. We want to dedicate those registers to reserved MAC groups so that MAC can guarantee that a reserved group has access to HW filtering (otherwise we'd have to SW classify thus nullifying the benefit of a reserved group). To make this guarantee, any MAC clients sharing a MAC address are placed on the default group (VLAN VNICs can share the same MAC addr across unique VLANs, though I would hope that's a very unlikely scenario in practice). In this case we don't need to set the VLVFB as the ixgbe Rx logic will route packets to the default pool/group if no other pool has a match. But we still need to set the VFTA to allow this traffic to pass L2 filtering. This is the purpose of VLVF bypass.


Related issues

Related to illumos gate - Bug #11490: SRS ring polling disabled for VLANsClosedRyan Zezeski

Actions
#1

Updated by Robert Mustacchi over 1 year ago

  • Related to Bug #11490: SRS ring polling disabled for VLANs added
#2

Updated by Electric Monk about 1 year ago

  • Status changed from New to Closed

git commit 84de666edc7f7d835057ae4807a387447c086bcf

commit  84de666edc7f7d835057ae4807a387447c086bcf
Author: Ryan Zezeski <ryan@zinascii.com>
Date:   2020-03-02T07:24:09.000Z

    11490 SRS ring polling disabled for VLANs
    11491 Want DLS bypass for VLAN traffic
    11492 add VLVF bypass to ixgbe core
    2869 duplicate packets with vnics over aggrs
    11489 DLS stat delete and aggr kstat can deadlock
    Portions contributed by: Theo Schlossnagle <jesus@omniti.com>
    Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Dan McDonald <danmcd@joyent.com>
    Reviewed by: Paul Winder <paul@winders.demon.co.uk>
    Approved by: Gordon Ross <gordon.w.ross@gmail.com>

Also available in: Atom PDF