Feature #11361
closedi40e default VSI sometimes lacks implicit L2 filter
100%
Description
Up until this point, all testing against X710/X722 parts has shown two different behaviors with regards to the implicit L2 filter on the Default VSI.
1. The Default VSI has an implicit L2 filter for the factory MAC address and it counts against the total number of L2 filters used.
2. The same as #1 but it DOES NOT count against the total used.
But recently a customer seems to have encountered a third behavior:
3. The Default VSI DOES NOT have an implicit L2 filter for the factory MAC address.
This third behavior causes `i40e_config_def_vsi()` to fail and the following message to be printed to the logs.
2018-12-05T14:59:26.886836+00:00 tcn002 i40e: [ID 517869 kern.warning] WARNING: i40e0: Failed to remove primary MAC from default VSI: -53 (2)
This message is saying that the request to delete the primary (aka factory) MAC has failed with ENOENT. Here is the code:
/* * The controller places an implicit L2 filter for the primary * MAC pointing to the default VSI. We remove this filter to * prevent duplicate delivery of packets destined for the * primary MAC address as DLS will create the same filter on a * non-default VSI for the primary MAC client. */ bzero(&filt, sizeof (filt)); bcopy(hw->mac.port_addr, filt.mac_addr, ETHERADDRL); filt.flags = I40E_AQC_MACVLAN_DEL_PERFECT_MATCH; filt.vlan_tag = 0; ASSERT3U(i40e->i40e_resources.ifr_nmacfilt_used, <=, 1); err = i40e_aq_remove_macvlan(hw, I40E_DEF_VSI_SEID(i40e), &filt, 1, NULL); if (err != I40E_SUCCESS) { i40e_error(i40e, "Failed to remove primary MAC from default VSI" ": %d (%d)", err, hw->aq.asq_last_status); return (B_FALSE); }
And here is the information for the controller the customer is running:
Dual Marvell 88E1512 PHY Gigabit Ethernet Controller via Intel C621 Chipset
pci15d9,37d1, instance #0 Driver properties: name='api-version' type=string items=1 dev=none value='1.5' name='firmware-build' type=string items=1 dev=none value='c25b' name='firmware-version' type=string items=1 dev=none value='3.1' name='printed-board-assembly' type=string items=1 dev=none value='' name='fm-accchk-capable' type=boolean dev=none name='fm-dmachk-capable' type=boolean dev=none name='fm-errcb-capable' type=boolean dev=none name='fm-ereport-capable' type=boolean dev=none Hardware properties: name='pci-msix-capid-pointer' type=int items=1 value=00000070 name='pci-msi-capid-pointer' type=int items=1 value=00000050 name='pcie-serial' type=byte items=8 value=ac.1f.6b.ff.ff.1e.8c.6e name='acpi-namespace' type=string items=1 value='\_SB_.PC03.BR3A.EPCU.VSP3.FPK0' name='assigned-addresses' type=int items=10 value=c3600010.00000000.c4000000.00000000.01000000.c360001c.00000000.c5008000.00000000.00008000 name='reg' type=int items=15 value=00600000.00000000.00000000.00000000.00000000.43600010.00000000.00000000.00000000.01000000.4360001c.00000000.00000000.00000000.00008000 name='compatible' type=string items=13 value='pciex8086,37d1.15d9.37d1.8' + 'pciex8086,37d1.15d9.37d1' + 'pciex8086,37d1.8' + 'pciex8086,37d1' + 'pciexclass,020000' + 'pciexclass,0200' + 'pci8086,37d1.15d9.37d1.8' + 'pci8086,37d1.15d9.37d1' + 'pci15d9,37d1' + 'pci8086,37d1.8' + 'pci8086,37d1' + 'pciclass,020000' + 'pciclass,0200' name='model' type=string items=1 value='Ethernet controller' name='power-consumption' type=int items=2 value=00000001.00000001 name='devsel-speed' type=int items=1 value=00000000 name='interrupts' type=int items=1 value=00000001 name='subsystem-vendor-id' type=int items=1 value=000015d9 name='subsystem-id' type=int items=1 value=000037d1 name='unit-address' type=string items=1 value='0' name='class-code' type=int items=1 value=00020000 name='revision-id' type=int items=1 value=00000008 name='vendor-id' type=int items=1 value=00008086 name='device-id' type=int items=1 value=000037d1 name='vendor-name' type=string items=1 value='Intel Corporation' name='device-name' type=string items=1 value='Ethernet Connection X722 for 1GbE' name='subsystem-name' type=string items=1 value='unknown subsystem' Device Minor Nodes: dev=(296,1) dev_path=/pci@5a,0/pci8086,2030@0/pci8086,37c0@0/pci8086,37c5@3/pci15d9,37d1@0:i40e0 spectype=chr type=minor dev_link=/dev/i40e0 dev=(296,1004) dev_path=<clone> Device Minor Layered Under: mod=udp accesstype=chr dev_path=/pseudo/udp@0 dev=(296,1003) dev_path=<clone> Device Minor Layered Under: mod=udp accesstype=chr dev_path=/pseudo/udp@0 pci15d9,37d1, instance #1 Driver properties: name='api-version' type=string items=1 dev=none value='1.5' name='firmware-build' type=string items=1 dev=none value='c25b' name='firmware-version' type=string items=1 dev=none value='3.1' name='printed-board-assembly' type=string items=1 dev=none value='' name='fm-accchk-capable' type=boolean dev=none name='fm-dmachk-capable' type=boolean dev=none name='fm-errcb-capable' type=boolean dev=none name='fm-ereport-capable' type=boolean dev=none Hardware properties: name='pci-msix-capid-pointer' type=int items=1 value=00000070 name='pci-msi-capid-pointer' type=int items=1 value=00000050 name='pcie-serial' type=byte items=8 value=ac.1f.6b.ff.ff.1e.8c.6e name='acpi-namespace' type=string items=1 value='\_SB_.PC03.BR3A.EPCU.VSP3.FPK1' name='assigned-addresses' type=int items=10 value=c3600110.00000000.c3000000.00000000.01000000.c360011c.00000000.c5000000.00000000.00008000 name='reg' type=int items=15 value=00600100.00000000.00000000.00000000.00000000.43600110.00000000.00000000.00000000.01000000.4360011c.00000000.00000000.00000000.00008000 name='compatible' type=string items=13 value='pciex8086,37d1.15d9.37d1.8' + 'pciex8086,37d1.15d9.37d1' + 'pciex8086,37d1.8' + 'pciex8086,37d1' + 'pciexclass,020000' + 'pciexclass,0200' + 'pci8086,37d1.15d9.37d1.8' + 'pci8086,37d1.15d9.37d1' + 'pci15d9,37d1' + 'pci8086,37d1.8' + 'pci8086,37d1' + 'pciclass,020000' + 'pciclass,0200' name='model' type=string items=1 value='Ethernet controller' name='power-consumption' type=int items=2 value=00000001.00000001 name='devsel-speed' type=int items=1 value=00000000 name='interrupts' type=int items=1 value=00000001 name='subsystem-vendor-id' type=int items=1 value=000015d9 name='subsystem-id' type=int items=1 value=000037d1 name='unit-address' type=string items=1 value='0,1' name='class-code' type=int items=1 value=00020000 name='revision-id' type=int items=1 value=00000008 name='vendor-id' type=int items=1 value=00008086 name='device-id' type=int items=1 value=000037d1 name='vendor-name' type=string items=1 value='Intel Corporation' name='device-name' type=string items=1 value='Ethernet Connection X722 for 1GbE' name='subsystem-name' type=string items=1 value='unknown subsystem' Device Minor Nodes: dev=(296,2) dev_path=/pci@5a,0/pci8086,2030@0/pci8086,37c0@0/pci8086,37c5@3/pci15d9,37d1@0,1:i40e1 spectype=chr type=minor dev_link=/dev/i40e1
The current assumption is that this controller/firmware lacks the implicit filter. But it's worth pointing out that the code assumes the implicit filters is a untagged traffic filter. Perhaps there is a chance that the filter is for any tagged traffic (i.e. created with the I40E_AQC_MACVLAN_ADD_IGNORE_VLAN flag).
Updated by Electric Monk almost 3 years ago
- Status changed from New to Closed
git commit 35c41bec7bc78a7cb9515709725049bc12064c04
commit 35c41bec7bc78a7cb9515709725049bc12064c04 Author: Ryan Zezeski <rpz@joyent.com> Date: 2019-07-15T18:17:01.000Z 11361 i40e default VSI sometimes lacks implicit L2 filter Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Randy Fishel <randyf@sibernet.com> Approved by: Garrett D'Amore <garrett@damore.org>