Regression #14377
closedCannot add a QinQ interface to a bridge
0%
Description
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 ^C^Z 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.
Updated by Kristof Provost over 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 ]
Updated by Kristof Provost over 1 year ago
- Status changed from New to Waiting on Merge
Fix in https://cgit.freebsd.org/src/commit/?id=92c23f6d9c2074f6deb0029d13a8c92b32797059
We'll pick that up with the next merge.
Updated by Kristof Provost over 1 year ago
- Status changed from Waiting on Merge to Feedback
Updated by Jim Pingle over 1 year 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
Updated by Steve Wheeler over 1 year 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 options=0 ether 58:9c:fc:10:16:55 inet 10.25.82.1 netmask 0xffffff00 broadcast 10.25.82.255 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
Updated by Jim Pingle about 1 year ago
- Target version changed from 2.8.0 to 2.7.1