| VLAN(4) | Device Drivers Manual | VLAN(4) | 
vlan —
pseudo-device vlan
vlan interface provides support for IEEE 802.1Q
  Virtual Local Area Networks (VLAN). This supports the trunking of more than
  one network on a single network interface by using 802.1Q tagged and untagged
  frames.
To use a vlan interface, the administrator
    must first create the interface and then specify the VID (VLAN identifier,
    the first 12 bits from a 16-bit integer which distinguishes each VLAN from
    any others) and (parent) physical interface associated with the VLAN. This
    can be done by using the
    ifconfig(8)
    create, vlan, and
    vlanif subcommands from a shell command line or
    script. From within a C program, use the
    ioctl(2) system call with the
    SIOCSIFCREATE and
    SIOCSIFVLAN arguments.
Packets sent through a vlan interface are
    tagged with the VID and passed to the parent interface for transmission.
    Tagged packets received on the parent interface are passed to the
    vlan interface with the corresponding VID associated
    with the parent interface. Packets sent directly through the parent
    interface are transmitted as untagged frames. Untagged frames received on
    the parent interface are handled by the parent interface. Tagged frames
    received on the parent interface with a VID of 0 and an EtherType of IP or
    IPv6 are processed on the parent interface. Tagged frames received on the
    parent interface for which no vlan interface with a
    matching VID exists are dropped and counted as “unknown
    protocol”. (These are displayed by the
    ifconfig(8)
    -v option.)
If the vlan pseudo-device is not
    configured in the kernel only packets tagged with a VID of 0 are
  processed.
To be compatible with other IEEE 802.1Q devices, the
    vlan interface supports a 1500 byte MTU, which means
    that the parent interface will have to handle packets that are 4 bytes
    larger than the original Ethernet standard.
vlan can be used with devices not
    supporting the IEEE 802.1Q MTU, but then the MTU of the
    vlan interface will be 4 bytes too small and will
    not interoperate properly with other IEEE 802.1Q devices, unless the MTU of
    the other hosts on the VLAN are also lowered to match.
ifconfig vlan0 create ifconfig vlan0 vlan 6 vlanif tlp0
After this set up, IP addresses (and/or other protocols) can be assigned to the vlan0 interface. All other hosts on the Ethernet connected to tlp0 which configure a VLAN and use VID six will see all traffic transmitted through vlan0.
The same VLAN can be created at system startup time by placing the following in /etc/ifconfig.vlan0:
create vlan 6 vlanif tlp0
vlan device first appeared in
  NetBSD 1.5.1, and was derived from a VLAN
  implementation that appeared in FreeBSD and
  OpenBSD.
vlan interfaces do not currently inherit changes
  made to the physical interfaces' MTU.
| May 29, 2017 | NetBSD 9.4 |