.. include:: /_include/need_improvement.txt

IEEE 802.1ad_ was an Ethernet networking standard informally known as QinQ as
an amendment to IEEE standard 802.1q VLAN interfaces as described above.
802.1ad was incorporated into the base 802.1q_ standard in 2011. The technique
is also known as provider bridging, Stacked VLANs, or simply QinQ or Q-in-Q.
"Q-in-Q" can for supported devices apply to C-tag stacking on C-tag (Ethernet
Type = 0x8100).

The original 802.1q_ specification allows a single Virtual Local Area Network
(VLAN) header to be inserted into an Ethernet frame. QinQ allows multiple
VLAN tags to be inserted into a single frame, an essential capability for
implementing Metro Ethernet network topologies. Just as QinQ extends 802.1Q,
QinQ itself is extended by other Metro Ethernet protocols.

In a multiple VLAN header context, out of convenience the term "VLAN tag" or
just "tag" for short is often used in place of "802.1q_ VLAN header". QinQ
allows multiple VLAN tags in an Ethernet frame; together these tags constitute
a tag stack. When used in the context of an Ethernet frame, a QinQ frame is a
frame that has 2 VLAN 802.1q_ headers (double-tagged).

In VyOS the terms ``vif-s`` and ``vif-c`` stand for the ethertype tags that
are used.

The inner tag is the tag which is closest to the payload portion of the frame.
It is officially called C-TAG (customer tag, with ethertype 0x8100). The outer
tag is the one closer/closest to the Ethernet header, its name is S-TAG
(service tag with Ethernet Type = 0x88a8).


.. cmdinclude:: /_include/interface-address-with-dhcp.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-description.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-disable.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-disable-link-detect.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-mac.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-mtu.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-ip.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-ipv6.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-vrf.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

**DHCP(v6)**

.. cmdinclude:: /_include/interface-dhcp-options.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-dhcpv6-options.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. cmdinclude:: /_include/interface-dhcpv6-prefix-delegation.txt
   :var0: {{ var0 }}
   :var1: {{ var1 }}
   :var2: vif-s
   :var3: <vlan-id>
   :var4: 1000
   :var5: vif-c
   :var6: <vlan-id>
   :var7: 20

.. include:: /_include/common-references.txt