summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-11-24 19:38:52 +0100
committerChristian Poessinger <christian@poessinger.com>2020-11-24 19:38:52 +0100
commit7399b53b9d09ef07219631f79aeebd87c1b98d1e (patch)
treee404040fc4923a2dd999c72ec670cd85d76e7bf3
parentcdb3550aaf1beb0d2069f33c5e66a232f7cbdee1 (diff)
downloadvyos-documentation-7399b53b9d09ef07219631f79aeebd87c1b98d1e.tar.gz
vyos-documentation-7399b53b9d09ef07219631f79aeebd87c1b98d1e.zip
interfaces: add generic QinQ VLAN documentation
-rw-r--r--docs/_include/interface-address-with-dhcp.txt11
-rw-r--r--docs/_include/interface-description.txt5
-rw-r--r--docs/_include/interface-dhcp-options.txt16
-rw-r--r--docs/_include/interface-dhcpv6-options.txt16
-rw-r--r--docs/_include/interface-dhcpv6-prefix-delegation.txt12
-rw-r--r--docs/_include/interface-disable-link-detect.txt4
-rw-r--r--docs/_include/interface-disable.txt5
-rw-r--r--docs/_include/interface-ipv6-addr-autoconf.txt4
-rw-r--r--docs/_include/interface-ipv6-addr-eui64.txt4
-rw-r--r--docs/_include/interface-mac.txt4
-rw-r--r--docs/_include/interface-mtu.txt4
-rw-r--r--docs/_include/interface-vlan-8021ad.txt143
-rw-r--r--docs/_include/interface-vlan-8021q.txt (renamed from docs/_include/interface-vlan.txt)8
-rw-r--r--docs/_include/interface-vrf.txt4
-rw-r--r--docs/_include/need_improvement.txt5
-rw-r--r--docs/common-references.rst3
-rw-r--r--docs/interfaces/advanced-index.rst2
-rw-r--r--docs/interfaces/bond.rst2
-rw-r--r--docs/interfaces/bridge.rst2
-rw-r--r--docs/interfaces/ethernet.rst12
-rw-r--r--docs/interfaces/pseudo-ethernet.rst2
-rw-r--r--docs/interfaces/qinq.rst77
-rw-r--r--docs/interfaces/vlan.rst69
-rw-r--r--docs/interfaces/wireless.rst12
24 files changed, 227 insertions, 199 deletions
diff --git a/docs/_include/interface-address-with-dhcp.txt b/docs/_include/interface-address-with-dhcp.txt
index 20cd53ac..4ff78c01 100644
--- a/docs/_include/interface-address-with-dhcp.txt
+++ b/docs/_include/interface-address-with-dhcp.txt
@@ -1,4 +1,5 @@
-.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }} address <address | dhcp |
+.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
+ {{ var5 }} {{ var6 }} address <address | dhcp |
dhcpv6>
Configure interface `<interface>` with one or more interface addresses.
@@ -14,7 +15,7 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} address 192.0.2.1/24
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} address 2001:db8::1/64
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcp
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6 \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address 192.0.2.1/24
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} address 2001:db8::1/64
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6 \ No newline at end of file
diff --git a/docs/_include/interface-description.txt b/docs/_include/interface-description.txt
index 4347b837..064d9559 100644
--- a/docs/_include/interface-description.txt
+++ b/docs/_include/interface-description.txt
@@ -1,4 +1,5 @@
-.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }} description <description>
+.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
+ {{ var5 }} {{ var6 }} description <description>
Set a human readable, descriptive alias for this connection. Alias is used by
e.g. the :opcmd:`show interfaces` command or SNMP based monitoring tools.
@@ -7,4 +8,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} description 'This is an awesome interface running on VyOS' \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} description 'This is an awesome interface running on VyOS' \ No newline at end of file
diff --git a/docs/_include/interface-dhcp-options.txt b/docs/_include/interface-dhcp-options.txt
index 2bc23efc..1a0ce260 100644
--- a/docs/_include/interface-dhcp-options.txt
+++ b/docs/_include/interface-dhcp-options.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcp-options client-id <description>
+ {{ var5 }} {{ var6 }} dhcp-options client-id <description>
:rfc:`2131` states: The client MAY choose to explicitly provide the identifier
through the 'client identifier' option. If the client supplies a 'client
@@ -11,10 +11,10 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcp-options client-id 'foo-bar'
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options client-id 'foo-bar'
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcp-options host-name <hostname>
+ {{ var5 }} {{ var6 }} dhcp-options host-name <hostname>
Instead of sending the real system hostname to the DHCP server, overwrite the
host-name with this given-value.
@@ -23,10 +23,10 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcp-options host-name 'VyOS'
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options host-name 'VyOS'
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcp-options vendor-class-id <vendor-id>
+ {{ var5 }} {{ var6 }} dhcp-options vendor-class-id <vendor-id>
The vendor-class-id option can be used to request a specific class of vendor
options from the server.
@@ -35,10 +35,10 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcp-options vendor-class-id 'VyOS'
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options vendor-class-id 'VyOS'
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcp-options no-default-route
+ {{ var5 }} {{ var6 }} dhcp-options no-default-route
Only request an address from the DHCP server but do not request a default
gateway.
@@ -47,4 +47,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcp-options no-default-route
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcp-options no-default-route
diff --git a/docs/_include/interface-dhcpv6-options.txt b/docs/_include/interface-dhcpv6-options.txt
index 00b5e817..a54a7dce 100644
--- a/docs/_include/interface-dhcpv6-options.txt
+++ b/docs/_include/interface-dhcpv6-options.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-options parameters-only
+ {{ var5 }} {{ var6 }} dhcpv6-options parameters-only
This statement specifies dhcp6c to only exchange informational configuration
parameters with servers. A list of DNS server addresses is an example of such
@@ -8,27 +8,27 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-options parameters-only
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-options parameters-only
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-options rapid-commit
+ {{ var5 }} {{ var6 }} dhcpv6-options rapid-commit
When rapid-commit is specified, dhcp6c will include a rapid-commit option in
solicit messages and wait for an immediate reply instead of advertisements.
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-options rapid-commit
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-options rapid-commit
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-options temporary
+ {{ var5 }} {{ var6 }} dhcpv6-options temporary
Request only a temporary address and not form an IA_NA (Identity Association
for Non-temporary Addresses) partnership.
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-options temporary
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-options temporary
.. cmdinclude:: ../_include/interface-dhcpv6-prefix-delegation.txt
:var0: {{ var0 }}
@@ -36,3 +36,7 @@
:var2: {{ var2 }}
:var3: {{ var3 }}
:var4: {{ var4 }}
+ :var5: {{ var5 }}
+ :var6: {{ var6 }}
+ :var7: {{ var7 }}
+
diff --git a/docs/_include/interface-dhcpv6-prefix-delegation.txt b/docs/_include/interface-dhcpv6-prefix-delegation.txt
index 21721400..99132d17 100644
--- a/docs/_include/interface-dhcpv6-prefix-delegation.txt
+++ b/docs/_include/interface-dhcpv6-prefix-delegation.txt
@@ -4,7 +4,7 @@ VyOS 1.3 (equuleus) supports DHCPv6-PD (:rfc:`3633`). DHCPv6 Prefix Delegation
is supported by most ISPs who provide native IPv6 for consumers on fixed networks.
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-option pd <id> length <length>
+ {{ var5 }} {{ var6 }} dhcpv6-option pd <id> length <length>
Some ISPs by default only delegate a /64 prefix. To request for a specific
prefix size use this option to request for a bigger delegation for this pd
@@ -17,10 +17,10 @@ is supported by most ISPs who provide native IPv6 for consumers on fixed network
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-options pd 0 length 56
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-options pd 0 length 56
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-option pd <id> interface <delegatee> address <address>
+ {{ var5 }} {{ var6 }} dhcpv6-option pd <id> interface <delegatee> address <address>
Specify the interface address used locally on the interfcae where the prefix
has been delegated to. ID must be a decimal integer.
@@ -35,10 +35,10 @@ is supported by most ISPs who provide native IPv6 for consumers on fixed network
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-option pd 0 interface eth8 address 65534
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-option pd 0 interface eth8 address 65534
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- dhcpv6-option pd <id> interface <delegatee> sla-id <id>
+ {{ var5 }} {{ var6 }} dhcpv6-option pd <id> interface <delegatee> sla-id <id>
Specify the identifier value of the site-level aggregator (SLA) on the
interface. ID must be a decimal number greater then 0 which fits in the
@@ -51,5 +51,5 @@ is supported by most ISPs who provide native IPv6 for consumers on fixed network
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} dhcpv6-option pd 0 interface eth8 sla-id 1
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} dhcpv6-option pd 0 interface eth8 sla-id 1
diff --git a/docs/_include/interface-disable-link-detect.txt b/docs/_include/interface-disable-link-detect.txt
index efd45e46..1a766715 100644
--- a/docs/_include/interface-disable-link-detect.txt
+++ b/docs/_include/interface-disable-link-detect.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- disable-link-detect
+ {{ var5 }} {{ var6 }} disable-link-detect
Use this command to direct an interface to not detect any physical state
changes on a link, for example, when the cable is unplugged.
@@ -10,4 +10,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} disable-link-detect \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} disable-link-detect \ No newline at end of file
diff --git a/docs/_include/interface-disable.txt b/docs/_include/interface-disable.txt
index a9511d8e..774c1cdd 100644
--- a/docs/_include/interface-disable.txt
+++ b/docs/_include/interface-disable.txt
@@ -1,4 +1,5 @@
-.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }} disable
+.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
+ {{ var5 }} {{ var6 }} disable
Disable given `<interface>`. It will be placed in administratively down
(``A/D``) state.
@@ -7,4 +8,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} disable \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} disable \ No newline at end of file
diff --git a/docs/_include/interface-ipv6-addr-autoconf.txt b/docs/_include/interface-ipv6-addr-autoconf.txt
index e349a730..fea1125e 100644
--- a/docs/_include/interface-ipv6-addr-autoconf.txt
+++ b/docs/_include/interface-ipv6-addr-autoconf.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- ipv6 address autoconf
+ {{ var5 }} {{ var6 }} ipv6 address autoconf
:abbr:`SLAAC (Stateless Address Autoconfiguration)` :rfc:`4862`. IPv6 hosts
can configure themselves automatically when connected to an IPv6 network using
@@ -16,4 +16,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} ipv6 address autoconf
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ipv6 address autoconf
diff --git a/docs/_include/interface-ipv6-addr-eui64.txt b/docs/_include/interface-ipv6-addr-eui64.txt
index 10732bf3..e6a58372 100644
--- a/docs/_include/interface-ipv6-addr-eui64.txt
+++ b/docs/_include/interface-ipv6-addr-eui64.txt
@@ -1,9 +1,9 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- ipv6 address eui64 <prefix>
+ {{ var5 }} {{ var6 }} ipv6 address eui64 <prefix>
:abbr:`EUI-64 (64-Bit Extended Unique Identifier)` as specified in
:rfc:`4291` allows a host to assign iteslf a unique 64-Bit IPv6 address.
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} ipv6 address eui64 2001:db8:beef::/64
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} ipv6 address eui64 2001:db8:beef::/64
diff --git a/docs/_include/interface-mac.txt b/docs/_include/interface-mac.txt
index 2daeaccf..03aa6106 100644
--- a/docs/_include/interface-mac.txt
+++ b/docs/_include/interface-mac.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- mac <xx:xx:xx:xx:xx:xx>
+ {{ var5 }} {{ var6 }} mac <xx:xx:xx:xx:xx:xx>
Configure user defined :abbr:`MAC (Media Access Control)` address on given
`<interface>`.
@@ -8,4 +8,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} mac '00:01:02:03:04:05' \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mac '00:01:02:03:04:05' \ No newline at end of file
diff --git a/docs/_include/interface-mtu.txt b/docs/_include/interface-mtu.txt
index 8509779b..76812507 100644
--- a/docs/_include/interface-mtu.txt
+++ b/docs/_include/interface-mtu.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- mtu <mtu>
+ {{ var5 }} {{ var6 }} mtu <mtu>
Configure :abbr:`MTU (Maximum Transmission Unit)` on given `<interface>`. It
is the size (in bytes) of the largest ethernet frame sent on this link.
@@ -8,4 +8,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} mtu 1450 \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} mtu 9000 \ No newline at end of file
diff --git a/docs/_include/interface-vlan-8021ad.txt b/docs/_include/interface-vlan-8021ad.txt
new file mode 100644
index 00000000..a1e971be
--- /dev/null
+++ b/docs/_include/interface-vlan-8021ad.txt
@@ -0,0 +1,143 @@
+.. 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-ipv6-addr-autoconf.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-addr-eui64.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
+
+.. include:: ../common-references.rst
diff --git a/docs/_include/interface-vlan.txt b/docs/_include/interface-vlan-8021q.txt
index f1948e84..2c7e58f7 100644
--- a/docs/_include/interface-vlan.txt
+++ b/docs/_include/interface-vlan-8021q.txt
@@ -1,11 +1,11 @@
-IEEE 802.1q, often referred to as Dot1q, is the networking standard that supports
+IEEE 802.1q_, often referred to as Dot1q, is the networking standard that supports
virtual LANs (VLANs) on an IEEE 802.3 Ethernet network. The standard defines a
system of VLAN tagging for Ethernet frames and the accompanying procedures to be
used by bridges and switches in handling such frames. The standard also contains
provisions for a quality-of-service prioritization scheme commonly known as IEEE
802.1p and defines the Generic Attribute Registration Protocol.
-Portions of the network which are VLAN-aware (i.e., IEEE 802.1q conformant) can
+Portions of the network which are VLAN-aware (i.e., IEEE 802.1q_ conformant) can
include VLAN tags. When a frame enters the VLAN-aware portion of the network, a
tag is added to represent the VLAN membership. Each frame must be distinguishable
as being within exactly one VLAN. A frame in the VLAN-aware portion of the network
@@ -106,4 +106,6 @@ term used for this is ``vif``.
:var1: {{ var1 }}
:var2: vif
:var3: <vlan-id>
- :var4: 10 \ No newline at end of file
+ :var4: 10
+
+.. include:: ../common-references.rst \ No newline at end of file
diff --git a/docs/_include/interface-vrf.txt b/docs/_include/interface-vrf.txt
index 450c82aa..1fa94f9f 100644
--- a/docs/_include/interface-vrf.txt
+++ b/docs/_include/interface-vrf.txt
@@ -1,5 +1,5 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> {{ var2 }} {{ var3 }}
- vrf <vrf>
+ {{ var5 }} {{ var6 }} vrf <vrf>
Place interface in given VRF instance.
@@ -10,4 +10,4 @@
.. code-block:: none
- set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} vrf red \ No newline at end of file
+ set interfaces {{ var0 }} {{ var1 }} {{ var2 }} {{ var4 }} {{ var5 }} {{ var7 }} vrf red \ No newline at end of file
diff --git a/docs/_include/need_improvement.txt b/docs/_include/need_improvement.txt
index f7556465..1ce50685 100644
--- a/docs/_include/need_improvement.txt
+++ b/docs/_include/need_improvement.txt
@@ -8,8 +8,9 @@
<p class="admonition-title">Call for Contributions</p>
-This page needs improvements, examples and explanations.
-Please take a look at the Contributing Guide for :ref:`documentation`.
+This section needs improvements, examples and explanations.
+
+Please take a look at the Contributing Guide for our :ref:`documentation`.
.. raw:: html
diff --git a/docs/common-references.rst b/docs/common-references.rst
index d7e376eb..79881972 100644
--- a/docs/common-references.rst
+++ b/docs/common-references.rst
@@ -1,3 +1,6 @@
.. _`accel-ppp`: https://accel-ppp.org/
.. _`Secure Socket Tunneling Protocol`: https://en.wikipedia.org/wiki/Secure_Socket_Tunneling_Protocol
.. _Phabricator: https://phabricator.vyos.net/
+
+.. _802.1ad: https://en.wikipedia.org/wiki/IEEE_802.1ad
+.. _802.1q: https://en.wikipedia.org/wiki/IEEE_802.1Q
diff --git a/docs/interfaces/advanced-index.rst b/docs/interfaces/advanced-index.rst
index 6e35dac2..7b9bde1e 100644
--- a/docs/interfaces/advanced-index.rst
+++ b/docs/interfaces/advanced-index.rst
@@ -17,9 +17,7 @@ Network Interfaces
macsec
pppoe
pseudo-ethernet
- qinq
tunnel
- vlan
vxlan
wireless
wirelessmodem
diff --git a/docs/interfaces/bond.rst b/docs/interfaces/bond.rst
index eea35e2c..7faddd6f 100644
--- a/docs/interfaces/bond.rst
+++ b/docs/interfaces/bond.rst
@@ -259,7 +259,7 @@ Bond options
VLAN
====
-.. cmdinclude:: ../_include/interface-vlan.txt
+.. cmdinclude:: ../_include/interface-vlan-8021q.txt
:var0: bond
:var1: bond0
diff --git a/docs/interfaces/bridge.rst b/docs/interfaces/bridge.rst
index 045ae2a8..dc94a761 100644
--- a/docs/interfaces/bridge.rst
+++ b/docs/interfaces/bridge.rst
@@ -116,7 +116,7 @@ links providing fault tolerance if an active link fails.
VLAN
====
-.. cmdinclude:: ../_include/interface-vlan.txt
+.. cmdinclude:: ../_include/interface-vlan-8021q.txt
:var0: bridge
:var1: br0
diff --git a/docs/interfaces/ethernet.rst b/docs/interfaces/ethernet.rst
index 343a7d59..8b1ad6bd 100644
--- a/docs/interfaces/ethernet.rst
+++ b/docs/interfaces/ethernet.rst
@@ -52,7 +52,17 @@ Ethernet options
VLAN
====
-.. cmdinclude:: ../_include/interface-vlan.txt
+Regular VLANs (802.1q)
+----------------------
+
+.. cmdinclude:: ../_include/interface-vlan-8021q.txt
+ :var0: ethernet
+ :var1: eth0
+
+QinQ (802.1ad)
+--------------
+
+.. cmdinclude:: ../_include/interface-vlan-8021ad.txt
:var0: ethernet
:var1: eth0
diff --git a/docs/interfaces/pseudo-ethernet.rst b/docs/interfaces/pseudo-ethernet.rst
index d4eb8eff..c2baca39 100644
--- a/docs/interfaces/pseudo-ethernet.rst
+++ b/docs/interfaces/pseudo-ethernet.rst
@@ -60,6 +60,6 @@ Pseudo Ethernet/MACVLAN options
VLAN
====
-.. cmdinclude:: ../_include/interface-vlan.txt
+.. cmdinclude:: ../_include/interface-vlan-8021q.txt
:var0: pseudo-ethernet
:var1: peth0
diff --git a/docs/interfaces/qinq.rst b/docs/interfaces/qinq.rst
deleted file mode 100644
index 01d9c64a..00000000
--- a/docs/interfaces/qinq.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-.. include:: ../_include/need_improvement.txt
-
-.. _qinq-interface:
-
-QinQ (802.1ad)
---------------
-
-IEEE 802.1ad was an Ethernet networking standard informally known as QinQ as
-an amendment to IEEE standard :ref:`vlan-interface`. 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 ethertype 0x88a8).
-
-Configuration commands:
-
-.. code-block:: none
-
- interfaces
- ethernet <eth[0-999]>
- address <ipv4>
- address <ipv6>
- description <txt>
- disable
- ip
- <usual IP options>
- ipv6
- <usual IPv6 options>
- vif-s <[0-4096]>
- address <ipv4>
- address <ipv6>
- description <txt>
- disable
- ip
- <usual IP options>
- ipv6
- <usual IPv6 options>
- vif-c <[0-4096]>
- address <ipv4>
- address <ipv6>
- description <txt>
- disable
- ip
- <usual IP options>
- ipv6
- <usual IPv6 options>
-
-
-Example:
-
-.. code-block:: none
-
- set interfaces ethernet eth0 vif-s 333
- set interfaces ethernet eth0 vif-s 333 address 192.0.2.10/32
- set interfaces ethernet eth0 vif-s 333 vif-c 777
- set interfaces ethernet eth0 vif-s 333 vif-c 777 address 10.10.10.10/24
-
-.. _802.1ad: https://en.wikipedia.org/wiki/IEEE_802.1ad \ No newline at end of file
diff --git a/docs/interfaces/vlan.rst b/docs/interfaces/vlan.rst
deleted file mode 100644
index 55656d5d..00000000
--- a/docs/interfaces/vlan.rst
+++ /dev/null
@@ -1,69 +0,0 @@
-.. _vlan-interface:
-
-VLAN (802.1q)
--------------
-
-IEEE 802.1q, often referred to as Dot1q, is the networking standard that
-supports virtual LANs (VLANs) on an IEEE 802.3 Ethernet network. The
-standard defines a system of VLAN tagging for Ethernet frames and the
-accompanying procedures to be used by bridges and switches in handling
-such frames. The standard also contains provisions for a quality-of-service
-prioritization scheme commonly known as IEEE 802.1p and defines the Generic
-Attribute Registration Protocol.
-
-Portions of the network which are VLAN-aware (i.e., IEEE 802.1q conformant)
-can include VLAN tags. When a frame enters the VLAN-aware portion of the
-network, a tag is added to represent the VLAN membership. Each frame must
-be distinguishable as being within exactly one VLAN. A frame in the
-VLAN-aware portion of the network that does not contain a VLAN tag is
-assumed to be flowing on the native VLAN.
-
-The standard was developed by IEEE 802.1, a working group of the IEEE 802
-standards committee, and continues to be actively revised. One of the
-notable revisions is 802.1Q-2014 which incorporated IEEE 802.1aq (Shortest
-Path Bridging) and much of the IEEE 802.1d standard.
-
-802.1a VLAN interfaces are represented as virtual sub-interfaces in VyOS. The
-term used for this is ``vif``. Configuration of a tagged sub-interface is
-accomplished using the configuration command:
-``set interfaces ethernet <name> vif <vlan-id>``
-
-To assign a vif 100 using the VLAN 100 tag to physical interface eth1 use:
-
-.. code-block:: none
-
- set interfaces ethernet eth1 vif 100 description 'VLAN 100'
- set interfaces ethernet eth1 vif 100 address '192.168.100.1/24'
- set interfaces ethernet eth1 vif 100 address '2001:db8:100::1/64'
-
-Resulting in:
-
-.. code-block:: none
-
- ethernet eth1 {
- address 192.168.100.1/24
- address 2001:db8:100::1/64
- description INSIDE
- duplex auto
- hw-id 00:53:29:44:3b:19
- smp_affinity auto
- speed auto
- vif 100 {
- address 192.168.100.1/24
- description "VLAN 100"
- }
- }
-
-VLAN interfaces are shown as `<name>.<vlan-id>`, e.g. `eth1.100`:
-
-.. code-block:: none
-
- vyos@vyos:~$ show interfaces
- Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
- Interface IP Address S/L Description
- --------- ---------- --- -----------
- eth0 172.16.51.129/24 u/u OUTSIDE
- eth1 192.168.0.1/24 u/u INSIDE
- eth1.100 192.168.100.1/24 u/u VLAN 100
- lo 127.0.0.1/8 u/u
- ::1/128
diff --git a/docs/interfaces/wireless.rst b/docs/interfaces/wireless.rst
index b51eb274..2de3b126 100644
--- a/docs/interfaces/wireless.rst
+++ b/docs/interfaces/wireless.rst
@@ -375,7 +375,17 @@ Resulting in
VLAN
====
-.. cmdinclude:: ../_include/interface-vlan.txt
+Regular VLANs (802.1q)
+----------------------
+
+.. cmdinclude:: ../_include/interface-vlan-8021q.txt
+ :var0: wireless
+ :var1: wlan0
+
+QinQ (802.1ad)
+--------------
+
+.. cmdinclude:: ../_include/interface-vlan-8021ad.txt
:var0: wireless
:var1: wlan0