I finally got around to adding vlan support to the FreeBSD bridge driver. The vlan tag is now used in the bridge forwarding table so that the same device on two different vlans is treated as separate. The vlan changes in if_ethersubr.c made this easy now that the tag is always available in the mbuf header.