**Overview** IEEE 802.1ad_, commonly known as QinQ, is an Ethernet standard first published as an amendment to 802.1q_ in 2005, then officially merged into the base standard in 2011. Unlike the original 802.1q_, which allows a single VLAN header per Ethernet frame, QinQ allows two VLAN headers per Ethernet frame, for the inner and the outer VLAN tags. Most often the inner VLAN tag comes from a customer while the outer tag is used by the service provider to differentiate between traffic of different customers. **Frame structure and ethertypes** The IEEE 802.1ad_ (QinQ) frame includes two VLAN tags: * **The outer service tag (S-TAG):** The S-TAG is typically added by the provider. It uses the Ethertype 0x88a8 by default. * **The inner customer tag (C-TAG):** The C-TAG is generated by the customer's equipment and remains unchanged during transit. It uses the Ethertype 0x8100. **Implementation in VyOS** In VyOS, these tag types are associated with the following CLI options: * ``vif-s``: Corresponds to the S-TAG (Ethertype 0x88a8). * ``vif-c``: Corresponds to the C-TAG (Ethertype 0x8100). .. cmdinclude:: /_include/interface-address-with-dhcp.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-description.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-disable.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-disable-link-detect.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-mac.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-mtu.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-ip.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-ipv6.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-vrf.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 **DHCP(v6)** .. cmdinclude:: /_include/interface-dhcp-options.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-dhcpv6-options.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. cmdinclude:: /_include/interface-dhcpv6-prefix-delegation.txt :var0: {{ var0 }} :var1: {{ var1 }} :var2: vif-s :var3: :var4: 1000 :var5: vif-c :var6: :var7: 20 .. include:: /_include/common-references.txt