summaryrefslogtreecommitdiff
path: root/docs/vpp/configuration/interfaces/vxlan.rst
diff options
context:
space:
mode:
authorzdc <taras@vyos.io>2025-08-29 19:53:13 +0300
committerzdc <taras@vyos.io>2025-09-04 19:02:26 +0300
commit00faafed96d86a970bf566c79f1bfd304630ccaa (patch)
tree71f3592ffd0c2965bbb7ddc85bc30ffb95219119 /docs/vpp/configuration/interfaces/vxlan.rst
parentdff952a88be472d0f317873a7b5ea852c6e5f29f (diff)
downloadvyos-documentation-00faafed96d86a970bf566c79f1bfd304630ccaa.tar.gz
vyos-documentation-00faafed96d86a970bf566c79f1bfd304630ccaa.zip
VPP: Add comprehensive VPP documentation
This commit introduces extensive documentation for VyOS VPP (Vector Packet Processing) Dataplane interfaces and features, including examples. Features documented: * VPP integration description, base requirements and limitations * VPP dataplane core settings * Features enabled in the dataplane: ACL, IPsec, NAT, sFlow * VPP interface types: bonding, bridge, GRE, IPIP, kernel, loopback, VXLAN, XConnect Note: This is an initial documentation version that will require ongoing improvements based on user feedback and questions, real-world deployment testing and validation, additional use cases and configuration scenarios discovered in production. Therefore, all pages are marked as "need improvement".
Diffstat (limited to 'docs/vpp/configuration/interfaces/vxlan.rst')
-rw-r--r--docs/vpp/configuration/interfaces/vxlan.rst135
1 files changed, 135 insertions, 0 deletions
diff --git a/docs/vpp/configuration/interfaces/vxlan.rst b/docs/vpp/configuration/interfaces/vxlan.rst
new file mode 100644
index 00000000..3bd03cc6
--- /dev/null
+++ b/docs/vpp/configuration/interfaces/vxlan.rst
@@ -0,0 +1,135 @@
+:lastproofread: 2025-09-04
+
+.. _vpp_config_interfaces_vxlan:
+
+.. include:: /_include/need_improvement.txt
+
+#######################
+VPP VXLAN Configuration
+#######################
+
+VPP VXLAN interfaces provide Virtual eXtensible Local Area Network tunneling with high-performance packet processing. VXLAN extends Layer 2 domains across Layer 3 networks using UDP encapsulation, enabling scalable multi-tenant networking while leveraging VPP's optimized data plane.
+
+Basic Configuration
+-------------------
+
+Creating a VXLAN Interface
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN>
+
+ Create a VXLAN interface where ``<vxlanN>`` follows the naming convention vxlan1, vxlan2, etc.
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> vni <vni>
+
+ Set the Virtual Network Identifier (VNI) for the VXLAN tunnel. Valid range is 0-16777214.
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> remote <address>
+
+ Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 addresses.
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> source-address <address>
+
+ Set the tunnel source address. Must match an address configured on the local system.
+
+**Basic Example:**
+
+.. code-block:: none
+
+ set vpp interfaces vxlan vxlan1
+ set vpp interfaces vxlan vxlan1 vni 100
+ set vpp interfaces vxlan vxlan1 remote 203.0.113.2
+ set vpp interfaces vxlan vxlan1 source-address 192.168.1.1
+
+Interface Configuration
+-----------------------
+
+Description and Administrative Control
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> description <description>
+
+ Set a descriptive name for the VXLAN interface.
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> disable
+
+ Administratively disable the VXLAN interface.
+
+Kernel Interface Integration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. cfgcmd:: set vpp interfaces vxlan <vxlanN> kernel-interface <interface-name>
+
+ Bind a kernel interface to the VXLAN tunnel for management and application compatibility.
+
+For detailed information about kernel interface integration, see :doc:`kernel`.
+
+Configuration Examples
+----------------------
+
+Basic VXLAN Tunnel
+^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: none
+
+ # IPv4 VXLAN tunnel
+ set vpp interfaces vxlan vxlan1
+ set vpp interfaces vxlan vxlan1 description "Tenant A network extension"
+ set vpp interfaces vxlan vxlan1 vni 1000
+ set vpp interfaces vxlan vxlan1 remote 203.0.113.10
+ set vpp interfaces vxlan vxlan1 source-address 192.168.1.1
+
+IPv6 VXLAN Tunnel
+^^^^^^^^^^^^^^^^^
+
+.. code-block:: none
+
+ # IPv6 endpoints
+ set vpp interfaces vxlan vxlan2
+ set vpp interfaces vxlan vxlan2 vni 2000
+ set vpp interfaces vxlan vxlan2 remote 2001:db8::2
+ set vpp interfaces vxlan vxlan2 source-address 2001:db8::1
+
+VXLAN with Kernel Interface
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: none
+
+ # VXLAN tunnel with management interface
+ set vpp interfaces vxlan vxlan3
+ set vpp interfaces vxlan vxlan3 vni 3000
+ set vpp interfaces vxlan vxlan3 remote 203.0.113.30
+ set vpp interfaces vxlan vxlan3 source-address 192.168.1.1
+ set vpp interfaces vxlan vxlan3 kernel-interface vpptun3
+ set vpp kernel-interfaces vpptun3 address 10.0.3.1/24
+
+Bridge Integration
+------------------
+
+VXLAN interfaces are commonly used as members in VPP bridges for Layer 2 extension. See :doc:`bridge` for detailed bridge configuration.
+
+.. code-block:: none
+
+ # Add VXLAN tunnel to bridge
+ set vpp interfaces bridge br1
+ set vpp interfaces bridge br1 member interface vxlan1
+ set vpp interfaces bridge br1 member interface eth1
+ set vpp interfaces bridge br1 member interface lo1 bvi
+
+Multi-Tenant Configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: none
+
+ # Multiple VNIs for tenant separation
+ set vpp interfaces vxlan vxlan10
+ set vpp interfaces vxlan vxlan10 description "Tenant A - Production"
+ set vpp interfaces vxlan vxlan10 vni 1001
+ set vpp interfaces vxlan vxlan10 remote 203.0.113.20
+ set vpp interfaces vxlan vxlan10 source-address 192.168.1.1
+
+ set vpp interfaces vxlan vxlan11
+ set vpp interfaces vxlan vxlan11 description "Tenant A - Development"
+ set vpp interfaces vxlan vxlan11 vni 1002
+ set vpp interfaces vxlan vxlan11 remote 203.0.113.21
+ set vpp interfaces vxlan vxlan11 source-address 192.168.1.1