Page MenuHomeFreeBSD

ixl: Permit 802.1ad frames to pass though the chip
Needs ReviewPublic

Authored by lutz_donnerhacke.de on Mar 24 2020, 10:50 PM.

Details

Reviewers
bz
krzysztof.galazka_intel.com
erj
Group Reviewers
network
Summary

Intel X710 chips have an internal (on-chip) switch for various SDN purposes.
The internal switch used 0x88a8 to tag frames within the chip itself.
In order to keep the internal switch protected, the chip silently drops all packets with the currently used internal ethertype.

The ixl driver does already contain code to set the internally used ethertype, but this function is not called in any place.

This patch is a quick hack to change the internal switch_tag within the chip. It's only published to move things forward, to help people with run into the same problem (processing 802.1ad, or double tagged frames).

I'm unsure how move this into the normal ixl driver, but do not want to postphone this solution for a real world problem.

Test Plan
# tcpdump -eni ixl0 -c 2

nothing happens, no counters going up to tell about any incoming frame.

# sysctl -d dev.ixl.0.debug.switch_vlans
dev.ixl.0.debug.switch_vlans: HW Switch VLAN Configuration
# sysctl dev.ixl.0.debug.switch_vlans=0x9200
# dmesg | tail -1
ixl0: Setting switch config to switch_tag=9200, first_tag=0000, second_tag=0000
# tcpdump -eni ixl0 -c 2
23:49:16.356591 dc:39:6f:0a:10:78 > a0:23:9f:37:29:3f, ethertype 802.1Q-QinQ (0x88a8), length 78: vlan 2, p 0, ethertype 802.1Q, vlan 140, p 0, ethertype IPv4, 91.137.26.17 > 2.207.28.131: ICMP host 91.137.26.17 unreachable - admin prohibited filter, length 36
23:49:17.129581 00:1d:aa:d8:3d:99 > 00:07:b4:00:78:01, ethertype 802.1Q-QinQ (0x88a8), length 93: vlan 2, p 0, ethertype 802.1Q, vlan 140, p 0, ethertype IPv4, 5.102.161.204.33305 > 224.0.0.251.5353: 27179 PTR (QM)? 192.168.10.3.in-addr.arpa. (43)

Diff Detail

Repository
rS FreeBSD src repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 33821
Build 31038: arc lint + arc unit