From b7e61a03f09b93cdaa91a3c6b13d967621483f5c Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Tue, 10 Nov 2020 20:02:47 +0100
Subject: interfaces: extend usage of new cmdinclude directive for bridge,
 bond, eth, peth, vxlan

Commit c46473a ("docs: add ..cmdinclude:: directive") added support for including
common text but only replacing individual labels so there can be source of truth
also for the documentation.
---
 docs/_include/interface-ipv6-addr-autoconf.txt | 20 +++++++++++++
 docs/_include/interface-ipv6-addr-eui64.txt    |  8 +++++
 docs/interfaces/bond.rst                       | 41 ++++++--------------------
 docs/interfaces/bridge.rst                     | 21 ++++---------
 docs/interfaces/common-ip-ipv6-addr.txt        |  8 -----
 docs/interfaces/common-ipv6-addr-autoconf.txt  | 12 --------
 docs/interfaces/ethernet.rst                   | 32 ++++++--------------
 docs/interfaces/pseudo-ethernet.rst            | 23 ++++++---------
 docs/interfaces/vxlan.rst                      | 36 ++++++----------------
 9 files changed, 70 insertions(+), 131 deletions(-)
 create mode 100644 docs/_include/interface-ipv6-addr-autoconf.txt
 create mode 100644 docs/_include/interface-ipv6-addr-eui64.txt
 delete mode 100644 docs/interfaces/common-ip-ipv6-addr.txt
 delete mode 100644 docs/interfaces/common-ipv6-addr-autoconf.txt

(limited to 'docs')

diff --git a/docs/_include/interface-ipv6-addr-autoconf.txt b/docs/_include/interface-ipv6-addr-autoconf.txt
new file mode 100644
index 00000000..22f9ee59
--- /dev/null
+++ b/docs/_include/interface-ipv6-addr-autoconf.txt
@@ -0,0 +1,20 @@
+.. cfgcmd:: set interfaces {{ var0 }} <interface> ipv6 address autoconf
+
+
+  :abbr:`SLAAC (Stateless Address Autoconfiguration)`
+  :rfc:`4862`. IPv6 hosts can configure themselves automatically when connected
+  to an IPv6 network using the Neighbor Discovery Protocol via :abbr:`ICMPv6
+  (Internet Control Message Protocol version 6)` router discovery messages.
+  When first connected to a network, a host sends a link-local router
+  solicitation multicast request for its configuration parameters; routers
+  respond to such a request with a router advertisement packet that contains
+  Internet Layer configuration parameters.
+
+  .. note:: This method automatically disables IPv6 traffic forwarding on the
+    interface in question.
+
+  Example:
+
+  .. code-block:: none
+
+    set interfaces {{ var0 }} {{ var1 }} ipv6 address autoconf
diff --git a/docs/_include/interface-ipv6-addr-eui64.txt b/docs/_include/interface-ipv6-addr-eui64.txt
new file mode 100644
index 00000000..40f22e5f
--- /dev/null
+++ b/docs/_include/interface-ipv6-addr-eui64.txt
@@ -0,0 +1,8 @@
+.. cfgcmd:: set interfaces {{ var0 }} <interface> 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 }} ipv6 address eui64 2001:db8:beef::/64
diff --git a/docs/interfaces/bond.rst b/docs/interfaces/bond.rst
index 9e67809a..78099f01 100644
--- a/docs/interfaces/bond.rst
+++ b/docs/interfaces/bond.rst
@@ -16,40 +16,17 @@ Configuration
 Address
 -------
 
-.. cfgcmd:: set interfaces bonding <interface> address <address | dhcp | dhcpv6>
+.. cmdinclude:: ../_include/interface-address.txt
+   :var0: bonding
+   :var1: bond0
 
-   Configure interface `<interface>` with one or more interface addresses.
-
-   * **address** can be specified multiple times as IPv4 and/or IPv6 address,
-     e.g. 192.0.2.1/24 and/or 2001:db8::1/64
-   * **dhcp** interface address is received by DHCP from a DHCP server on this
-     segment.
-   * **dhcpv6** interface address is received by DHCPv6 from a DHCPv6 server on
-     this segment.
-
-   Example:
-
-   .. code-block:: none
-
-     set interfaces bonding bond0 address 192.0.2.1/24
-     set interfaces bonding bond0 address 192.0.2.2/24
-     set interfaces bonding bond0 address 2001:db8::ffff/64
-     set interfaces bonding bond0 address 2001:db8:100::ffff/64
-
-
-.. cfgcmd:: set interfaces bonding <interface> ipv6 address autoconf
-
-   .. include:: common-ipv6-addr-autoconf.txt
-
-.. cfgcmd:: set interfaces bonding <interface> 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 bonding bond0 ipv6 address eui64 2001:db8:beef::/64
+.. cmdinclude:: ../_include/interface-ipv6-addr-autoconf.txt
+   :var0: bonding
+   :var1: bond0
 
+.. cmdinclude:: ../_include/interface-ipv6-addr-eui64.txt
+   :var0: bonding
+   :var1: bond0
 
 Link Administration
 -------------------
diff --git a/docs/interfaces/bridge.rst b/docs/interfaces/bridge.rst
index 26e67690..aec1c5d8 100644
--- a/docs/interfaces/bridge.rst
+++ b/docs/interfaces/bridge.rst
@@ -24,22 +24,13 @@ Address
    :var0: bridge
    :var1: br0
 
+.. cmdinclude:: ../_include/interface-ipv6-addr-autoconf.txt
+   :var0: bridge
+   :var1: br0
 
-.. cfgcmd:: set interfaces bridge <interface> ipv6 address autoconf
-
-   .. include:: common-ipv6-addr-autoconf.txt
-
-.. cfgcmd:: set interfaces bridge <interface> 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 bridge br0 ipv6 address eui64 2001:db8:beef::/64
-
+.. cmdinclude:: ../_include/interface-ipv6-addr-eui64.txt
+   :var0: bridge
+   :var1: br0
 
 .. cfgcmd:: set interfaces bridge <interface> aging <time>
 
diff --git a/docs/interfaces/common-ip-ipv6-addr.txt b/docs/interfaces/common-ip-ipv6-addr.txt
deleted file mode 100644
index f53eaeee..00000000
--- a/docs/interfaces/common-ip-ipv6-addr.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Configure interface `<interface>` with one or more interface addresses.
-
-* **address** can be specified multiple times as IPv4 and/or IPv6 address,
-  e.g. 192.0.2.1/24 and/or 2001:db8::1/64
-* **dhcp** interface address is received by DHCP from a DHCP server on this
-  segment.
-* **dhcpv6** interface address is received by DHCPv6 from a DHCPv6 server on
-  this segment.
diff --git a/docs/interfaces/common-ipv6-addr-autoconf.txt b/docs/interfaces/common-ipv6-addr-autoconf.txt
deleted file mode 100644
index 838b299f..00000000
--- a/docs/interfaces/common-ipv6-addr-autoconf.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-:abbr:`SLAAC (Stateless Address Autoconfiguration)`
-:rfc:`4862`. IPv6 hosts can configure themselves automatically when connected
-to an IPv6 network using the Neighbor Discovery Protocol via :abbr:`ICMPv6
-(Internet Control Message Protocol version 6)` router discovery messages.
-When first connected to a network, a host sends a link-local router
-solicitation multicast request for its configuration parameters; routers
-respond to such a request with a router advertisement packet that contains
-Internet Layer configuration parameters.
-
-.. note:: This method automatically disables IPv6 traffic forwarding on the
-  interface in question.
-
diff --git a/docs/interfaces/ethernet.rst b/docs/interfaces/ethernet.rst
index 95aef851..6d7d049f 100644
--- a/docs/interfaces/ethernet.rst
+++ b/docs/interfaces/ethernet.rst
@@ -10,31 +10,17 @@ Configuration
 Address
 -------
 
-.. cfgcmd:: set interfaces ethernet <interface> address <address | dhcp | dhcpv6>
+.. cmdinclude:: ../_include/interface-address.txt
+   :var0: ethernet
+   :var1: eth0
 
-   .. include:: common-ip-ipv6-addr.txt
+.. cmdinclude:: ../_include/interface-ipv6-addr-autoconf.txt
+   :var0: ethernet
+   :var1: eth0
 
-   Example:
-
-   .. code-block:: none
-
-     set interfaces ethernet eth0 address 192.0.2.1/24
-     set interfaces ethernet eth0 address 192.0.2.2/24
-     set interfaces ethernet eth0 address 2001:db8::ffff/64
-     set interfaces ethernet eth0 address 2001:db8:100::ffff/64
-
-.. cfgcmd:: set interfaces ethernet <interface> ipv6 address autoconf
-
-   .. include:: common-ipv6-addr-autoconf.txt
-
-.. cfgcmd:: set interfaces ethernet <interface> 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 ethernet eth0 ipv6 address eui64 2001:db8:beef::/64
+.. cmdinclude:: ../_include/interface-ipv6-addr-eui64.txt
+   :var0: ethernet
+   :var1: eth0
 
 Speed/Duplex
 ------------
diff --git a/docs/interfaces/pseudo-ethernet.rst b/docs/interfaces/pseudo-ethernet.rst
index a2066555..eec28981 100644
--- a/docs/interfaces/pseudo-ethernet.rst
+++ b/docs/interfaces/pseudo-ethernet.rst
@@ -44,22 +44,17 @@ Configuration
 Address
 -------
 
-.. cfgcmd:: set interfaces pseudo-ethernet <interface> address <address | dhcp | dhcpv6>
+.. cmdinclude:: ../_include/interface-address.txt
+   :var0: pseudo-ethernet
+   :var1: peth0
 
-   .. include:: common-ip-ipv6-addr.txt
+.. cmdinclude:: ../_include/interface-ipv6-addr-autoconf.txt
+   :var0: pseudo-ethernet
+   :var1: peth0
 
-   Example:
-
-   .. code-block:: none
-
-     set interfaces pseudo-ethernet peth0 address 192.0.2.1/24
-     set interfaces pseudo-ethernet peth0 address 192.0.2.2/24
-     set interfaces pseudo-ethernet peth0 address 2001:db8::ffff/64
-     set interfaces pseudo-ethernet peth0 address 2001:db8:100::ffff/64
-
-.. cfgcmd:: set interfaces pseudo-ethernet <interface> ipv6 address autoconf
-
-   .. include:: common-ipv6-addr-autoconf.txt
+.. cmdinclude:: ../_include/interface-ipv6-addr-eui64.txt
+   :var0: pseudo-ethernet
+   :var1: peth0
 
 Physical Asignment
 ------------------
diff --git a/docs/interfaces/vxlan.rst b/docs/interfaces/vxlan.rst
index bf3b6dee..dae08508 100644
--- a/docs/interfaces/vxlan.rst
+++ b/docs/interfaces/vxlan.rst
@@ -39,35 +39,17 @@ Configuration
 Address
 -------
 
-.. cfgcmd:: set interfaces vxlan <interface> address <address>
+.. cmdinclude:: ../_include/interface-address.txt
+   :var0: vxlan
+   :var1: vxlan0
 
-   Configure VXLAN interface `<interface>` with one or more interface
-   addresses. Address can be specified multiple times as IPv4 and/or IPv6
-   address, e.g. 192.0.2.1/24 and/or 2001:db8::1/64
-
-   Example:
-
-   .. code-block:: none
-
-     set interfaces vxlan vxlan0 address 192.0.2.1/24
-     set interfaces vxlan vxlan0 address 192.0.2.2/24
-     set interfaces vxlan vxlan0 address 2001:db8::ffff/64
-     set interfaces vxlan vxlan0 address 2001:db8:100::ffff/64
-
-
-.. cfgcmd:: set interfaces vxlan <interface> ipv6 address autoconf
-
-   .. include:: common-ipv6-addr-autoconf.txt
-
-.. cfgcmd:: set interfaces vxlan <interface> 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 vxlan vxlan0 ipv6 address eui64 2001:db8:beef::/64
+.. cmdinclude:: ../_include/interface-ipv6-addr-autoconf.txt
+   :var0: vxlan
+   :var1: vxlan0
 
+.. cmdinclude:: ../_include/interface-ipv6-addr-eui64.txt
+   :var0: vxlan
+   :var1: vxlan0
 
 .. cfgcmd:: set interfaces vxlan <interface> vni <number>
 
-- 
cgit v1.2.3