Do not use VLANMTU flag to decide if interface supports to run VLAN
Today there is a function called is_jumbo_capable() that detects if VLANMTU flag is supported by interface and this function is used to build the list of available parent interfaces to configure VLANs.
VLANMTU means interface can do 1500 MTU even using VLAN. Not having it is not a blocker to setup VLAN on the interface. Fix the code removing this check, but make sure only physical interfaces are being listed.
Updated by Chris Linstruth almost 2 years ago
Evaluated this but could not figure out how to test it in the negative sense. Tried to make existing NICs drop the VLAN_MTU option with -vlanmtu but no luck. Interfaces that should be available for VLANs still populate, however.
ETA: I am seeing ipsec VTI and OpenVPN interfaces available for VLAN assignment. That should probably not be the case.
Updated by Jim Pingle almost 2 years ago
The only way to really try it is to track down a bit of hardware that didn't allow VLANs before, but does now.
But that's a pretty rare case, so it may be that so long as a variety of interfaces that worked before still work now, it may be good enough.