Regression #14377


Cannot add a QinQ interface to a bridge

Added by Steve Wheeler about 1 year ago. Updated 8 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Plus Target Version:
Release Notes:
Affected Version:
Affected Architecture:


Attempting to create a bridge with a QinQ member results in the GUI timing out.

An existing bridge with a QinQ member will prevent the firewall booting when it attempts to create the bridge.

The bridge does not need to be assigned to hot this.

ifconfig will hang on a system that has a Bridged QinQ interface.

[23.05-RC][root@6100.stevew.lan]/root: ifconfig bridge0 addm ix2.100.200

load: 0.60  cmd: ifconfig 87870 [running] 7.54r 0.00u 7.53s 53% 3152k

Tested: pfSense-23.05.r.20230511.0600
This same configuration loaded OK in 23.01.

Actions #1

Updated by Kristof Provost about 1 year ago

  • Assignee set to Kristof Provost

I can also reproduce this on base FreeBSD. It appears to be due to incorrect locking in if_vlan, possibly as a result of the new netlink code, but I'm still debugging:

shared lock of (sx) vlan_sx @ /usr/src/sys/net/if_vlan.c:2192
while exclusively locked from /usr/src/sys/net/if_vlan.c:2307
panic: excl->share
cpuid = 29
time = 1683873033
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe015d4ad4b0
vpanic() at vpanic+0x152/frame 0xfffffe015d4ad500
panic() at panic+0x43/frame 0xfffffe015d4ad560
witness_checkorder() at witness_checkorder+0xcb5/frame 0xfffffe015d4ad720
_sx_slock_int() at _sx_slock_int+0x67/frame 0xfffffe015d4ad760
vlan_ioctl() at vlan_ioctl+0xf8/frame 0xfffffe015d4ad7c0
dump_iface() at dump_iface+0x12f/frame 0xfffffe015d4ad840
rtnl_handle_ifevent() at rtnl_handle_ifevent+0xab/frame 0xfffffe015d4ad8c0
if_setflag() at if_setflag+0xf6/frame 0xfffffe015d4ad930
ifpromisc() at ifpromisc+0x2a/frame 0xfffffe015d4ad960
vlan_setflags() at vlan_setflags+0x60/frame 0xfffffe015d4ad990
vlan_ioctl() at vlan_ioctl+0x216/frame 0xfffffe015d4ad9f0
if_setflag() at if_setflag+0xe4/frame 0xfffffe015d4ada60
ifpromisc() at ifpromisc+0x2a/frame 0xfffffe015d4ada90
bridge_ioctl_add() at bridge_ioctl_add+0x499/frame 0xfffffe015d4adb10
bridge_ioctl() at bridge_ioctl+0x328/frame 0xfffffe015d4adbc0
ifioctl() at ifioctl+0x972/frame 0xfffffe015d4adcc0
kern_ioctl() at kern_ioctl+0x1fe/frame 0xfffffe015d4add30
sys_ioctl() at sys_ioctl+0x154/frame 0xfffffe015d4ade00
amd64_syscall() at amd64_syscall+0x140/frame 0xfffffe015d4adf30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe015d4adf30
--- syscall (54, FreeBSD ELF64, ioctl), rip = 0x22b0f0ef8d8a, rsp = 0x22b0ec63f2c8, rbp = 0x22b0ec63f380 ---
KDB: enter: panic
[ thread pid 5715 tid 101132 ]
Actions #2

Updated by Kristof Provost about 1 year ago

  • Status changed from New to Waiting on Merge
Actions #3

Updated by Kristof Provost 11 months ago

  • Status changed from Waiting on Merge to Feedback
Actions #4

Updated by Jim Pingle 11 months ago

  • Project changed from pfSense Plus to pfSense
  • Category changed from Interfaces to Interfaces
  • Target version changed from 23.09 to 2.8.0
  • Affected Plus Version deleted (23.05)
  • Plus Target Version set to 23.09

Doesn't appear to be specific to Plus

Actions #5

Updated by Steve Wheeler 11 months ago

  • Status changed from Feedback to Closed

Looks good in todays snapshot:

[23.09-DEVELOPMENT][root@4100.stevew.lan]/root: ifconfig bridge0
bridge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1496
        description: Bridge0
        ether 58:9c:fc:10:16:55
        inet netmask 0xffffff00 broadcast
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: igc1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 2 priority 128 path cost 2000000
        member: igc0.100 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 10 priority 128 path cost 2000000
        member: igc0.100.200 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 11 priority 128 path cost 2000000
        groups: bridge
        nd6 options=1<PERFORMNUD>
[23.09-DEVELOPMENT][root@4100.stevew.lan]/root: uname -a
FreeBSD 4100.stevew.lan 14.0-CURRENT FreeBSD 14.0-CURRENT amd64 1400093 #1 plus-devel-main-n256122-db827fa2f51: Tue Aug  8 06:37:56 UTC 2023     root@freebsd:/var/jenkins/workspace/pfSense-Plus-snapshots-master-main/obj/amd64/ykQin6TF/var/jenkins/workspace/pfSense-Plus-snapshots-master-main/sources/FreeBSD-src-plus-devel-main/amd64.amd64/sys/pfSense amd64

Actions #6

Updated by Jim Pingle 8 months ago

  • Target version changed from 2.8.0 to 2.7.1

Also available in: Atom PDF