Fixes #1047, Actually the code is trying to set flags on the parent. so allow it even for vlans since they will follow the parent. At least so seems on FreeBSD 10.
Make this a bit more clean to read