From 5a35f4d30e5c16bd85e811176cffa86b721112b7 Mon Sep 17 00:00:00 2001 From: Yuriy Andamasov Date: Sat, 2 May 2026 18:59:58 +0300 Subject: refactor(swap): rename imported .md files to md- prefix for swap mechanism MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restore the canary file naming convention that swap_sources.py expects: the imported MyST pages now live as docs//md-.md alongside the existing docs//.rst, so swap_sources.py --swap can rename them into place at build time. - 254 .md files renamed (every page with a matching .rst counterpart) - 2 MyST-only pages left at their final names (no .rst exists, no swap needed): docs/copyright.md, docs/automation/terraform/terraformvyos.md All 114 stems listed in docs/_swap.txt now have a corresponding md-.md source file ready to swap in. 🤖 Generated by [robots](https://vyos.io) --- docs/vpp/configuration/interfaces/bonding.md | 255 ----------------------- docs/vpp/configuration/interfaces/bridge.md | 194 ----------------- docs/vpp/configuration/interfaces/gre.md | 168 --------------- docs/vpp/configuration/interfaces/index.md | 49 ----- docs/vpp/configuration/interfaces/ipip.md | 119 ----------- docs/vpp/configuration/interfaces/loopback.md | 148 ------------- docs/vpp/configuration/interfaces/md-bonding.md | 255 +++++++++++++++++++++++ docs/vpp/configuration/interfaces/md-bridge.md | 194 +++++++++++++++++ docs/vpp/configuration/interfaces/md-gre.md | 168 +++++++++++++++ docs/vpp/configuration/interfaces/md-index.md | 49 +++++ docs/vpp/configuration/interfaces/md-ipip.md | 119 +++++++++++ docs/vpp/configuration/interfaces/md-loopback.md | 148 +++++++++++++ docs/vpp/configuration/interfaces/md-vxlan.md | 157 ++++++++++++++ docs/vpp/configuration/interfaces/md-xconnect.md | 108 ++++++++++ docs/vpp/configuration/interfaces/vxlan.md | 157 -------------- docs/vpp/configuration/interfaces/xconnect.md | 108 ---------- 16 files changed, 1198 insertions(+), 1198 deletions(-) delete mode 100644 docs/vpp/configuration/interfaces/bonding.md delete mode 100644 docs/vpp/configuration/interfaces/bridge.md delete mode 100644 docs/vpp/configuration/interfaces/gre.md delete mode 100644 docs/vpp/configuration/interfaces/index.md delete mode 100644 docs/vpp/configuration/interfaces/ipip.md delete mode 100644 docs/vpp/configuration/interfaces/loopback.md create mode 100644 docs/vpp/configuration/interfaces/md-bonding.md create mode 100644 docs/vpp/configuration/interfaces/md-bridge.md create mode 100644 docs/vpp/configuration/interfaces/md-gre.md create mode 100644 docs/vpp/configuration/interfaces/md-index.md create mode 100644 docs/vpp/configuration/interfaces/md-ipip.md create mode 100644 docs/vpp/configuration/interfaces/md-loopback.md create mode 100644 docs/vpp/configuration/interfaces/md-vxlan.md create mode 100644 docs/vpp/configuration/interfaces/md-xconnect.md delete mode 100644 docs/vpp/configuration/interfaces/vxlan.md delete mode 100644 docs/vpp/configuration/interfaces/xconnect.md (limited to 'docs/vpp/configuration/interfaces') diff --git a/docs/vpp/configuration/interfaces/bonding.md b/docs/vpp/configuration/interfaces/bonding.md deleted file mode 100644 index 0e6ec837..00000000 --- a/docs/vpp/configuration/interfaces/bonding.md +++ /dev/null @@ -1,255 +0,0 @@ ---- -lastproofread: '2026-03-09' ---- - -(vpp-config-interfaces-bonding)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP Bonding Configuration - -VPP bonding interfaces provide link aggregation capabilities by combining -multiple physical interfaces into a single logical interface for increased -bandwidth and redundancy. VPP bonding offers high-performance packet -processing compared to traditional Linux bonding. - -## Basic Configuration - -### Creating a Bonding Interface - -To create a VPP bonding interface: - -```{cfgcmd} set interfaces vpp bonding \ - -Create a bonding interface where ```` follows the naming -convention ``vppbond0``, ``vppbond1``, and so on. A kernel pair interface is -automatically created for the VPP bonding interface. This allows -standard Linux networking tools and services to interact with the VPP -bond. -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 -``` - -### Interface Description - -```{cfgcmd} set interfaces vpp bonding \ description \ - -Set a descriptive name for the bonding interface. -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 description "Primary uplink bond" -``` - -### Administrative Control - -```{cfgcmd} set interfaces vpp bonding \ disable - -Administratively disable the bonding interface. By default, interfaces -are enabled. -``` - -## Member Interface Configuration -### Adding Member Interfaces - -```{cfgcmd} set interfaces vpp bonding \ member interface \ - -Add physical interfaces as members of the bond. You can add multiple -interfaces to the same bond. -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 member interface eth0 -set interfaces vpp bonding vppbond0 member interface eth1 -``` -:::{note} -Member interfaces must have the same speed and duplex for optimal -performance. They must already be attached to VPP. -::: - -## Bonding Modes - -```{cfgcmd} set interfaces vpp bonding \ mode \ - -Configure the bonding mode. Available modes: -* **802.3ad**: IEEE 802.3ad Dynamic Link Aggregation (LACP) - Default -* **active-backup**: Fault tolerant, only one slave interface active -* **broadcast**: Transmits everything on all slave interfaces -* **round-robin**: Load balance by transmitting packets in sequential order -* **xor-hash**: Distribute based on hash policy -``` - -**Examples:** - -```none -# Use LACP (recommended for switch environments) -set interfaces vpp bonding vppbond0 mode 802.3ad - -# Use active-backup for simple failover -set interfaces vpp bonding vppbond0 mode active-backup -``` - -## Hash Policies - -For load balancing modes, configure how the system distributes traffic -across member interfaces: - -```{cfgcmd} set interfaces vpp bonding \ hash-policy \ - -Set the transmit hash policy: -* **layer2**: Use MAC addresses to generate hash (default) -* **layer2+3**: Combine MAC addresses and IP addresses -* **layer3+4**: Combine IP addresses and port numbers -``` - -**Examples:** - -```none -# Layer 2 hashing (default) -set interfaces vpp bonding vppbond0 hash-policy layer2 - -# Layer 3+4 for better distribution with multiple flows -set interfaces vpp bonding vppbond0 hash-policy layer3+4 -``` - -## MAC Address Configuration - -```{cfgcmd} set interfaces vpp bonding \ mac \ - -Set a specific MAC address for the bonding interface. -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 mac 00:11:22:33:44:55 -``` - -## IP Address Configuration - -```{cfgcmd} set interfaces vpp bonding \ address \ - -Configure IPv4 or IPv6 addresses on the kernel interface. You can -assign multiple addresses. -``` - -**Examples:** - -```none -# IPv4 address -set interfaces vpp bonding vppbond0 address 192.168.1.10/24 - -# IPv6 address -set interfaces vpp bonding vppbond0 address 2001:db8::10/64 - -# Multiple addresses -set interfaces vpp bonding vppbond0 address 192.168.1.10/24 -set interfaces vpp bonding vppbond0 address 10.0.0.10/8 -``` - -## MTU Configuration - -```{cfgcmd} set interfaces vpp bonding \ mtu \ - -Set the Maximum Transmission Unit (MTU) for the kernel interface. The -MTU must be compatible with the connected VPP interface. -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 mtu 9000 -``` -:::{note} -The MTU setting must match or be smaller than the MTU supported by the -associated VPP interface. -::: - -## VLAN Configuration - -VPP kernel interfaces support VLAN (Virtual LAN) sub-interfaces for -network segmentation. - -### Creating VLAN Sub-interfaces - -```{cfgcmd} set interfaces vpp bonding \ vif \ - -Create a VLAN sub-interface with the specified VLAN ID (0-4094). -``` - -**Example:** - -```none -set interfaces vpp bonding vppbond0 vif 100 -``` - -### VLAN Sub-interface Configuration - -VLAN sub-interfaces support the same configuration options as the parent -interface: - -```{cfgcmd} set interfaces vpp bonding \ vif \ address \ -``` - -```{cfgcmd} set interfaces vpp bonding \ vif \ description \ -``` - -```{cfgcmd} set interfaces vpp bonding \ vif \ disable -``` - -```{cfgcmd} set interfaces vpp bonding \ vif \ mtu \ -``` - -**Examples:** - -```none -# Configure VLAN 100 -set interfaces vpp bonding vppbond0 vif 100 address 192.168.100.1/24 -set interfaces vpp bonding vppbond0 vif 100 description "Management VLAN" -set interfaces vpp bonding vppbond0 vif 100 mtu 1500 - -# Configure VLAN 200 -set interfaces vpp bonding vppbond0 vif 200 address 192.168.200.1/24 -set interfaces vpp bonding vppbond0 vif 200 description "Guest VLAN" -``` - -## Complete Configuration Example - -Here's a complete example configuring a bonding interface with LACP: - -```none -# Create bonding interface -set interfaces vpp bonding vppbond0 -set interfaces vpp bonding vppbond0 description "Server uplink bond" - -# Configure bonding parameters -set interfaces vpp bonding vppbond0 mode 802.3ad -set interfaces vpp bonding vppbond0 hash-policy layer3+4 - -# Add member interfaces -set interfaces vpp bonding vppbond0 member interface eth0 -set interfaces vpp bonding vppbond0 member interface eth1 - -# Configure IP on kernel interface -set interfaces vpp bonding vppbond0 address 192.168.1.10/24 -``` - - -## Best Practices - -- Use **802.3ad mode** with LACP-capable switches for best performance - and standards compliance. -- Configure **layer3+4 hash policy** for environments with multiple - traffic flows. -- Ensure member interfaces have identical settings (speed, duplex, - MTU). diff --git a/docs/vpp/configuration/interfaces/bridge.md b/docs/vpp/configuration/interfaces/bridge.md deleted file mode 100644 index dbe4758b..00000000 --- a/docs/vpp/configuration/interfaces/bridge.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -lastproofread: '2026-03-10' ---- - -(vpp-config-interfaces-bridge)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP Bridge Configuration - -VPP bridge interfaces provide Layer 2 switching functionality, allowing -multiple interfaces to be connected at the data link layer. - -VPP bridges operate as learning bridges, automatically discovering MAC -addresses and building forwarding tables to efficiently switch traffic -between member interfaces. This provides transparent connectivity between -different network segments while maintaining the performance benefits of -VPP's optimized data plane. - -**Supported Member Interface Types:** - -VPP bridges support various interface types as members: -- Physical Ethernet interfaces (managed through linux-cp) -- {doc}`bonding` - VPP bonding interfaces -- {doc}`gre` - GRE tunnel interfaces -- {doc}`loopback` - Loopback interfaces (required for BVI) -- {doc}`vxlan` - VXLAN tunnel interfaces - -This flexibility allows you to create complex Layer 2 topologies -combining different networking technologies. - -## Basic Configuration - -### Creating a Bridge Interface - -```{cfgcmd} set interfaces vpp bridge \ - -Create a bridge interface where ```` follows the naming -convention ``vppbr1``, ``vppbr2``, etc. -``` -:::{note} -Bridge domain `vppbr0` is reserved by VPP and cannot be -configured through VyOS. Start with `vppbr1` for your bridge -configurations. -::: - -**Example:** - -```none -set interfaces vpp bridge vppbr1 -``` - -### Interface Description - -```{cfgcmd} set interfaces vpp bridge \ description \ - -Set a descriptive name for the bridge interface. -``` - -**Example:** - -```none -set interfaces vpp bridge vppbr1 description "Main campus bridge" -``` - -## Member Interface Configuration -### Adding Member Interfaces - -```{cfgcmd} set interfaces vpp bridge \ member interface \ - -Add an interface as a member of the bridge. -``` - -**Examples:** - -```none -# Add physical interfaces -set interfaces vpp bridge vppbr1 member interface eth0 -set interfaces vpp bridge vppbr1 member interface eth1 - -# Add other VPP interfaces -set interfaces vpp bridge vppbr1 member interface vppbond0 -set interfaces vpp bridge vppbr1 member interface vppgre1 -``` -:::{important} -Bridge members can include various interface types such as: -- Physical Ethernet interfaces (eth0, eth1, etc.) -- {doc}`bonding` - VPP bonding interfaces (vppbond0, vppbond1, etc.) -- {doc}`gre` - GRE tunnel interfaces -- {doc}`loopback` - Loopback interfaces -- {doc}`vxlan` - VXLAN tunnel interfaces -::: - -## Bridge Virtual Interface (BVI) - -A Bridge Virtual Interface (BVI) provides Layer 3 connectivity to a -bridge domain, allowing the bridge to have an IP address and participate -in routing. - -### Configuring BVI - -```{cfgcmd} set interfaces vpp bridge \ member interface \ bvi - -Designate a loopback interface as the Bridge Virtual Interface for -the bridge domain. -``` - -**Example:** - -```none -# Create a loopback interface first -set interfaces vpp loopback vpplo1 - -# Add it to the bridge as BVI -set interfaces vpp bridge vppbr1 member interface vpplo1 bvi -``` -:::{important} -**BVI Restrictions:** -- Only loopback interfaces can be configured as BVI -- Each bridge domain can have only one BVI interface -::: - -## Configuration Examples - -### Basic Bridge Setup - -```none -# Create bridge interface -set interfaces vpp bridge vppbr1 -set interfaces vpp bridge vppbr1 description "Office network bridge" - -# Add member interfaces -set interfaces vpp bridge vppbr1 member interface eth0 -set interfaces vpp bridge vppbr1 member interface eth1 -set interfaces vpp bridge vppbr1 member interface eth2 -``` - -### Bridge with BVI - -```none -# Create bridge and loopback for BVI -set interfaces vpp bridge vppbr2 -set interfaces vpp bridge vppbr2 description "Server segment with gateway" -set interfaces vpp loopback vpplo1 - -# Configure bridge members -set interfaces vpp bridge vppbr2 member interface eth3 -set interfaces vpp bridge vppbr2 member interface eth4 -set interfaces vpp bridge vppbr2 member interface vpplo1 bvi -``` - -### Multi-Technology Bridge - -```none -# Create bridge combining different interface types -set interfaces vpp bridge vppbr3 -set interfaces vpp bridge vppbr3 description "Hybrid network bridge" - -# Add various interface types -set interfaces vpp bridge vppbr3 member interface vppbond1 -set interfaces vpp bridge vppbr3 member interface vppgre1 -set interfaces vpp bridge vppbr3 member interface vppvxlan1 -set interfaces vpp bridge vppbr3 member interface vpplo2 bvi -``` - -## Integration with Kernel Interfaces - -Bridge interfaces can be integrated with kernel interfaces for -management and compatibility with standard Linux networking services. -This is accomplished by binding a kernel interface to the Bridge -Virtual Interface (BVI). - -**Example Integration:** - -```none -# Create VPP bridge with member interfaces -set interfaces vpp bridge vppbr1 -set interfaces vpp bridge vppbr1 member interface eth1 -set interfaces vpp bridge vppbr1 member interface eth2 - -# Create loopback interface and configure as BVI -set interfaces vpp loopback vpplo1 -set interfaces vpp bridge vppbr1 member interface vpplo1 bvi - -# Bind LCP kernel interface to the BVI loopback -set interfaces vpp loopback vpplo1 address '192.0.2.1/24' -``` - -This configuration creates a kernel interface bound to the BVI, -allowing standard Linux applications and routing daemons to interact -with the VPP bridge. The kernel interface provides Layer 3 access to -the bridge domain. diff --git a/docs/vpp/configuration/interfaces/gre.md b/docs/vpp/configuration/interfaces/gre.md deleted file mode 100644 index 30f49b15..00000000 --- a/docs/vpp/configuration/interfaces/gre.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-gre)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP GRE Configuration - -VPP GRE interfaces provide Generic Routing Encapsulation tunneling with -high-performance packet processing. GRE tunnels encapsulate various -protocols within IP packets, enabling connectivity across Layer 3 -networks while maintaining the performance benefits of VPP's optimized -data plane. - -## Basic Configuration - -### Creating a GRE Interface - -```{cfgcmd} set interfaces vpp gre \ - -Create a GRE interface where ```` follows the naming convention -``vppgre1``, ``vppgre2``, etc. -``` - -```{cfgcmd} set interfaces vpp gre \ remote \ - -Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 -addresses. -``` - -```{cfgcmd} set interfaces vpp gre \ source-address \ - -Set the tunnel source address. Must match an address configured on -the local system. -``` - -**Basic Example:** - -```none -set interfaces vpp gre vppgre1 -set interfaces vpp gre vppgre1 remote 203.0.113.2 -set interfaces vpp gre vppgre1 source-address 192.168.1.1 -``` - -## Interface Configuration -### Description and Administrative Control - -```{cfgcmd} set interfaces vpp gre \ description \ - -Set a descriptive name for the GRE interface. -``` - -```{cfgcmd} set interfaces vpp gre \ disable - -Administratively disable the GRE interface. -``` - -### Tunnel Type - -```{cfgcmd} set interfaces vpp gre \ tunnel-type \ - -Set the GRE tunnel encapsulation type: -* ``l3`` - Generic Routing Encapsulation for network layer traffic (default). -* ``teb`` - Transparent Ethernet Bridge for Layer 2 frame transport. -* ``erspan`` - Encapsulated Remote Switched Port Analyzer for traffic -mirroring. -``` - -### Kernel Interface Integration - -LCP kernel pair interface bound to the VPP GRE interface is created -automatically. This allows standard Linux networking tools and -services to interact with the VPP GRE. - -## IP Address Configuration - -```{cfgcmd} set interfaces vpp gre \ address \ - -Configure IPv4 or IPv6 addresses on the kernel interface. Multiple -addresses can be assigned. -``` - -**Examples:** - -```none -# IPv4 address -set interfaces vpp gre vppgre0 address 192.168.1.10/24 - -# IPv6 address -set interfaces vpp gre vppgre0 address 2001:db8::10/64 -``` - -## MTU Configuration - -```{cfgcmd} set interfaces vpp gre \ mtu \ - -Set the Maximum Transmission Unit (MTU) for the kernel interface. -The MTU must be compatible with the connected VPP interface. -``` - -**Example:** - -```none -set interfaces vpp gre vppgre0 mtu 9000 -``` -:::{note} -The MTU size must not exceed the MTU size -supported by the associated VPP interface. -::: - -## Configuration Examples - -### Layer 3 GRE Tunnel - -```none -# IPv4 GRE tunnel -set interfaces vpp gre vppgre1 -set interfaces vpp gre vppgre1 description "Site-to-site tunnel" -set interfaces vpp gre vppgre1 remote 203.0.113.10 -set interfaces vpp gre vppgre1 source-address 192.168.1.1 -set interfaces vpp gre vppgre1 tunnel-type l3 -``` - -### Layer 2 GRE Tunnel (TEB) - -```none -# Transparent Ethernet Bridge -set interfaces vpp gre vppgre2 -set interfaces vpp gre vppgre2 description "L2 extension tunnel" -set interfaces vpp gre vppgre2 remote 203.0.113.20 -set interfaces vpp gre vppgre2 source-address 192.168.1.1 -set interfaces vpp gre vppgre2 tunnel-type teb -``` - -### IPv6 GRE Tunnel - -```none -# IPv6 endpoints -set interfaces vpp gre vppgre3 -set interfaces vpp gre vppgre3 remote 2001:db8::2 -set interfaces vpp gre vppgre3 source-address 2001:db8::1 -``` - -### GRE with Kernel Interface - -```none -# GRE tunnel with management interface -set interfaces vpp gre vppgre4 -set interfaces vpp gre vppgre4 remote 203.0.113.30 -set interfaces vpp gre vppgre4 source-address 192.168.1.1 -set interfaces vpp gre vppgre4 address 10.0.1.1/30 -``` - -## Bridge Integration - -GRE interfaces can be added as members to VPP bridges for Layer 2 -switching. See {doc}`bridge` for detailed bridge configuration. - -```none -# Add TEB GRE tunnel to bridge -set interfaces vpp bridge vppbr1 -set interfaces vpp bridge vppbr1 member interface vppgre2 -set interfaces vpp bridge vppbr1 member interface eth1 -``` diff --git a/docs/vpp/configuration/interfaces/index.md b/docs/vpp/configuration/interfaces/index.md deleted file mode 100644 index 6f070ff1..00000000 --- a/docs/vpp/configuration/interfaces/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-index)= - -```{include} /_include/need_improvement.txt -``` - -# VPP Interfaces Configuration - -```{toctree} -:includehidden: true -:maxdepth: 1 - -bonding -bridge -gre -ipip -loopback -vxlan -xconnect -``` - -VyOS utilizes VPP (Vector Packet Processor) to provide high-performance data -plane processing. While physical interfaces are typically managed through the -Linux kernel using `linux-cp` (Linux Control Plane) integration, VyOS also -supports creating dedicated VPP interfaces for enhanced flexibility and -performance. - -## Why VPP Interfaces? - -VPP interfaces offer several advantages: - -- **Total Isolation**: VPP interfaces operate entirely within the VPP data - plane, providing isolation from the Linux kernel when needed. -- **Advanced Features**: Access to VPP-specific functionality not available - in standard Linux interfaces. -- **Flexible Deployment**: Some interface types are only available as VPP - interfaces or may not be supported by the kernel. -- **Specific scenarios**: Not all use cases require integration with the - Linux Kernel. - -### Integration with Kernel - -VyOS provides seamless integration between VPP and kernel networking. -This allows you to leverage the strengths of both approaches: -create interfaces inside VPP, and access them from the Linux kernel and other -services. diff --git a/docs/vpp/configuration/interfaces/ipip.md b/docs/vpp/configuration/interfaces/ipip.md deleted file mode 100644 index 80a724b0..00000000 --- a/docs/vpp/configuration/interfaces/ipip.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-ipip)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP IPIP Configuration - -VPP IPIP interfaces provide IP-in-IP tunneling with high-performance -packet processing. IPIP tunnels encapsulate IP packets within IP -packets, creating point-to-point connections across Layer 3 networks. - -## Basic Configuration - -### Creating an IPIP Interface - -```{cfgcmd} set interfaces vpp ipip \ - -Create an IPIP interface where ```` follows the naming -convention ``vppipip1``, ``vppipip2``, etc. -``` - -```{cfgcmd} set interfaces vpp ipip \ remote \ - -Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 -addresses. -``` - -```{cfgcmd} set interfaces vpp ipip \ source-address \ - -Set the tunnel source address. The source address must match an address -configured on the local system. -``` - -**Basic Example:** - -```none -set interfaces vpp ipip vppipip1 -set interfaces vpp ipip vppipip1 remote 203.0.113.2 -set interfaces vpp ipip vppipip1 source-address 192.168.1.1 -``` - -## Interface Configuration -### Description and Administrative Control - -```{cfgcmd} set interfaces vpp ipip \ description \ - -Set a descriptive name for the IPIP interface. -``` - -```{cfgcmd} set interfaces vpp ipip \ disable - -Administratively disable the IPIP interface. -``` - -### Kernel Interface Integration - -Kernel interface is bound to the VPP IPIP interface for management and -application compatibility. - -## IP Address Configuration - -```{cfgcmd} set interfaces vpp ipip \ address \ - -Configure IPv4 or IPv6 addresses on the kernel interface. Multiple -addresses can be assigned. -``` - -**Examples:** - -```none -# IPv4 address -set interfaces vpp ipip vppipip0 address 192.168.1.10/24 - -# IPv6 address -set interfaces vpp ipip vppipip0 address 2001:db8::10/64 -``` - -## MTU Configuration - -```{cfgcmd} set interfaces vpp ipip \ mtu \ - -Set the Maximum Transmission Unit (MTU) for the kernel interface. -The MTU must be compatible with the connected VPP interface. -``` - -## Configuration Examples -### IPv4 IPIP Tunnel - -```none -# Basic IPv4 IPIP tunnel -set interfaces vpp ipip vppipip1 -set interfaces vpp ipip vppipip1 description "Site-to-site IPIP tunnel" -set interfaces vpp ipip vppipip1 remote 203.0.113.10 -set interfaces vpp ipip vppipip1 source-address 192.168.1.1 -``` - -### IPv6 IPIP Tunnel - -```none -# IPv6 endpoints -set interfaces vpp ipip vppipip2 -set interfaces vpp ipip vppipip2 remote 2001:db8::2 -set interfaces vpp ipip vppipip2 source-address 2001:db8::1 -``` - -### IPIP with Kernel Interface - -```none -# IPIP tunnel with management interface -set interfaces vpp ipip vppipip3 -set interfaces vpp ipip vppipip3 remote 203.0.113.30 -set interfaces vpp ipip vppipip3 source-address 192.168.1.1 -set interfaces vpp ipip vppipip3 address 10.0.2.1/30 -``` diff --git a/docs/vpp/configuration/interfaces/loopback.md b/docs/vpp/configuration/interfaces/loopback.md deleted file mode 100644 index 844892a3..00000000 --- a/docs/vpp/configuration/interfaces/loopback.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-loopback)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP Loopback Interface Configuration - -VPP loopback interfaces provide virtual interfaces that remain -administratively up and are commonly used for stable addressing, -routing protocols, and as Bridge Virtual Interfaces (BVI). Loopback -interfaces in VPP offer high-performance virtual connectivity with optimized -packet processing. - -## Basic Configuration - -### Creating a Loopback Interface - -```{cfgcmd} set interfaces vpp loopback \ - -Create a loopback interface where ```` follows the naming -convention ``vpplo1``, ``vpplo2``, etc. -``` - -**Basic Example:** - -```none -set interfaces vpp loopback vpplo1 -``` - -## Interface Configuration -### Description and Administrative Control - -```{cfgcmd} set interfaces vpp loopback \ description \ - -Set a descriptive name for the loopback interface. -``` - -```{cfgcmd} set interfaces vpp loopback \ disable - -Administratively disable the loopback interface. -``` - -### Kernel Interface Integration - -Kernel interface is bound to the VPP loopback interface for management -and application compatibility. - -## IP Address Configuration - -```{cfgcmd} set interfaces vpp loopback \ address \ - -Configure IPv4 or IPv6 addresses on the kernel interface. Multiple -addresses can be assigned. -``` - -**Examples:** - -```none -# IPv4 address -set interfaces vpp loopback vpplo1 address 192.168.1.10/24 - -# IPv6 address -set interfaces vpp loopback vpplo1 address 2001:db8::10/64 -``` - -## MTU Configuration - -```{cfgcmd} set interfaces vpp loopback \ mtu \ - -Set the Maximum Transmission Unit (MTU) for the kernel interface. -The MTU must be compatible with the connected VPP interface. -``` - -## VLAN Configuration - -VPP kernel interfaces support VLAN (Virtual LAN) sub-interfaces for network -segmentation. - -### Creating VLAN Sub-interfaces - -```{cfgcmd} set interfaces vpp loopback \ vif \ - -Create a VLAN sub-interface with the specified VLAN ID (0-4094). -``` - -### VLAN Sub-interface Configuration - -VLAN sub-interfaces support the same configuration options as the parent -interface: - -```{cfgcmd} set interfaces vpp loopback \ vif \ address \ -``` - -```{cfgcmd} set interfaces vpp loopback \ vif \ description \ -``` - -```{cfgcmd} set interfaces vpp loopback \ vif \ disable -``` - -```{cfgcmd} set interfaces vpp loopback \ vif \ mtu \ -``` - -**Examples:** - -```none -# Configure VLAN 100 -set interfaces vpp loopback vpplo1 vif 100 address 192.168.100.1/24 -set interfaces vpp loopback vpplo1 vif 100 description "Management VLAN" -set interfaces vpp loopback vpplo1 vif 100 mtu 1500 - -# Configure VLAN 200 -set interfaces vpp loopback vpplo1 vif 200 address 192.168.200.1/24 -set interfaces vpp loopback vpplo1 vif 200 description "Guest VLAN" -``` - -## Configuration Examples -### Basic Loopback Interface - -```none -# Create simple loopback -set interfaces vpp loopback vpplo1 -set interfaces vpp loopback vpplo1 description "Router ID interface" -``` - -### Loopback with Kernel Interface - -```none -# Loopback with management access -set interfaces vpp loopback vpplo2 -set interfaces vpp loopback vpplo2 description "Management loopback" -set interfaces vpp loopback vpplo2 address 10.255.255.1/32 -``` - -### Bridge Virtual Interface (BVI) - -```none -# Loopback as BVI for bridge -set interfaces vpp loopback vpplo3 -set interfaces vpp loopback vpplo3 description "Bridge gateway interface" -set interfaces vpp bridge vppbr1 -set interfaces vpp bridge vppbr1 member interface vpplo3 bvi -set interfaces vpp loopback vpplo3 address 192.168.100.1/24 -``` diff --git a/docs/vpp/configuration/interfaces/md-bonding.md b/docs/vpp/configuration/interfaces/md-bonding.md new file mode 100644 index 00000000..0e6ec837 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-bonding.md @@ -0,0 +1,255 @@ +--- +lastproofread: '2026-03-09' +--- + +(vpp-config-interfaces-bonding)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP Bonding Configuration + +VPP bonding interfaces provide link aggregation capabilities by combining +multiple physical interfaces into a single logical interface for increased +bandwidth and redundancy. VPP bonding offers high-performance packet +processing compared to traditional Linux bonding. + +## Basic Configuration + +### Creating a Bonding Interface + +To create a VPP bonding interface: + +```{cfgcmd} set interfaces vpp bonding \ + +Create a bonding interface where ```` follows the naming +convention ``vppbond0``, ``vppbond1``, and so on. A kernel pair interface is +automatically created for the VPP bonding interface. This allows +standard Linux networking tools and services to interact with the VPP +bond. +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 +``` + +### Interface Description + +```{cfgcmd} set interfaces vpp bonding \ description \ + +Set a descriptive name for the bonding interface. +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 description "Primary uplink bond" +``` + +### Administrative Control + +```{cfgcmd} set interfaces vpp bonding \ disable + +Administratively disable the bonding interface. By default, interfaces +are enabled. +``` + +## Member Interface Configuration +### Adding Member Interfaces + +```{cfgcmd} set interfaces vpp bonding \ member interface \ + +Add physical interfaces as members of the bond. You can add multiple +interfaces to the same bond. +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 member interface eth0 +set interfaces vpp bonding vppbond0 member interface eth1 +``` +:::{note} +Member interfaces must have the same speed and duplex for optimal +performance. They must already be attached to VPP. +::: + +## Bonding Modes + +```{cfgcmd} set interfaces vpp bonding \ mode \ + +Configure the bonding mode. Available modes: +* **802.3ad**: IEEE 802.3ad Dynamic Link Aggregation (LACP) - Default +* **active-backup**: Fault tolerant, only one slave interface active +* **broadcast**: Transmits everything on all slave interfaces +* **round-robin**: Load balance by transmitting packets in sequential order +* **xor-hash**: Distribute based on hash policy +``` + +**Examples:** + +```none +# Use LACP (recommended for switch environments) +set interfaces vpp bonding vppbond0 mode 802.3ad + +# Use active-backup for simple failover +set interfaces vpp bonding vppbond0 mode active-backup +``` + +## Hash Policies + +For load balancing modes, configure how the system distributes traffic +across member interfaces: + +```{cfgcmd} set interfaces vpp bonding \ hash-policy \ + +Set the transmit hash policy: +* **layer2**: Use MAC addresses to generate hash (default) +* **layer2+3**: Combine MAC addresses and IP addresses +* **layer3+4**: Combine IP addresses and port numbers +``` + +**Examples:** + +```none +# Layer 2 hashing (default) +set interfaces vpp bonding vppbond0 hash-policy layer2 + +# Layer 3+4 for better distribution with multiple flows +set interfaces vpp bonding vppbond0 hash-policy layer3+4 +``` + +## MAC Address Configuration + +```{cfgcmd} set interfaces vpp bonding \ mac \ + +Set a specific MAC address for the bonding interface. +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 mac 00:11:22:33:44:55 +``` + +## IP Address Configuration + +```{cfgcmd} set interfaces vpp bonding \ address \ + +Configure IPv4 or IPv6 addresses on the kernel interface. You can +assign multiple addresses. +``` + +**Examples:** + +```none +# IPv4 address +set interfaces vpp bonding vppbond0 address 192.168.1.10/24 + +# IPv6 address +set interfaces vpp bonding vppbond0 address 2001:db8::10/64 + +# Multiple addresses +set interfaces vpp bonding vppbond0 address 192.168.1.10/24 +set interfaces vpp bonding vppbond0 address 10.0.0.10/8 +``` + +## MTU Configuration + +```{cfgcmd} set interfaces vpp bonding \ mtu \ + +Set the Maximum Transmission Unit (MTU) for the kernel interface. The +MTU must be compatible with the connected VPP interface. +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 mtu 9000 +``` +:::{note} +The MTU setting must match or be smaller than the MTU supported by the +associated VPP interface. +::: + +## VLAN Configuration + +VPP kernel interfaces support VLAN (Virtual LAN) sub-interfaces for +network segmentation. + +### Creating VLAN Sub-interfaces + +```{cfgcmd} set interfaces vpp bonding \ vif \ + +Create a VLAN sub-interface with the specified VLAN ID (0-4094). +``` + +**Example:** + +```none +set interfaces vpp bonding vppbond0 vif 100 +``` + +### VLAN Sub-interface Configuration + +VLAN sub-interfaces support the same configuration options as the parent +interface: + +```{cfgcmd} set interfaces vpp bonding \ vif \ address \ +``` + +```{cfgcmd} set interfaces vpp bonding \ vif \ description \ +``` + +```{cfgcmd} set interfaces vpp bonding \ vif \ disable +``` + +```{cfgcmd} set interfaces vpp bonding \ vif \ mtu \ +``` + +**Examples:** + +```none +# Configure VLAN 100 +set interfaces vpp bonding vppbond0 vif 100 address 192.168.100.1/24 +set interfaces vpp bonding vppbond0 vif 100 description "Management VLAN" +set interfaces vpp bonding vppbond0 vif 100 mtu 1500 + +# Configure VLAN 200 +set interfaces vpp bonding vppbond0 vif 200 address 192.168.200.1/24 +set interfaces vpp bonding vppbond0 vif 200 description "Guest VLAN" +``` + +## Complete Configuration Example + +Here's a complete example configuring a bonding interface with LACP: + +```none +# Create bonding interface +set interfaces vpp bonding vppbond0 +set interfaces vpp bonding vppbond0 description "Server uplink bond" + +# Configure bonding parameters +set interfaces vpp bonding vppbond0 mode 802.3ad +set interfaces vpp bonding vppbond0 hash-policy layer3+4 + +# Add member interfaces +set interfaces vpp bonding vppbond0 member interface eth0 +set interfaces vpp bonding vppbond0 member interface eth1 + +# Configure IP on kernel interface +set interfaces vpp bonding vppbond0 address 192.168.1.10/24 +``` + + +## Best Practices + +- Use **802.3ad mode** with LACP-capable switches for best performance + and standards compliance. +- Configure **layer3+4 hash policy** for environments with multiple + traffic flows. +- Ensure member interfaces have identical settings (speed, duplex, + MTU). diff --git a/docs/vpp/configuration/interfaces/md-bridge.md b/docs/vpp/configuration/interfaces/md-bridge.md new file mode 100644 index 00000000..dbe4758b --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-bridge.md @@ -0,0 +1,194 @@ +--- +lastproofread: '2026-03-10' +--- + +(vpp-config-interfaces-bridge)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP Bridge Configuration + +VPP bridge interfaces provide Layer 2 switching functionality, allowing +multiple interfaces to be connected at the data link layer. + +VPP bridges operate as learning bridges, automatically discovering MAC +addresses and building forwarding tables to efficiently switch traffic +between member interfaces. This provides transparent connectivity between +different network segments while maintaining the performance benefits of +VPP's optimized data plane. + +**Supported Member Interface Types:** + +VPP bridges support various interface types as members: +- Physical Ethernet interfaces (managed through linux-cp) +- {doc}`bonding` - VPP bonding interfaces +- {doc}`gre` - GRE tunnel interfaces +- {doc}`loopback` - Loopback interfaces (required for BVI) +- {doc}`vxlan` - VXLAN tunnel interfaces + +This flexibility allows you to create complex Layer 2 topologies +combining different networking technologies. + +## Basic Configuration + +### Creating a Bridge Interface + +```{cfgcmd} set interfaces vpp bridge \ + +Create a bridge interface where ```` follows the naming +convention ``vppbr1``, ``vppbr2``, etc. +``` +:::{note} +Bridge domain `vppbr0` is reserved by VPP and cannot be +configured through VyOS. Start with `vppbr1` for your bridge +configurations. +::: + +**Example:** + +```none +set interfaces vpp bridge vppbr1 +``` + +### Interface Description + +```{cfgcmd} set interfaces vpp bridge \ description \ + +Set a descriptive name for the bridge interface. +``` + +**Example:** + +```none +set interfaces vpp bridge vppbr1 description "Main campus bridge" +``` + +## Member Interface Configuration +### Adding Member Interfaces + +```{cfgcmd} set interfaces vpp bridge \ member interface \ + +Add an interface as a member of the bridge. +``` + +**Examples:** + +```none +# Add physical interfaces +set interfaces vpp bridge vppbr1 member interface eth0 +set interfaces vpp bridge vppbr1 member interface eth1 + +# Add other VPP interfaces +set interfaces vpp bridge vppbr1 member interface vppbond0 +set interfaces vpp bridge vppbr1 member interface vppgre1 +``` +:::{important} +Bridge members can include various interface types such as: +- Physical Ethernet interfaces (eth0, eth1, etc.) +- {doc}`bonding` - VPP bonding interfaces (vppbond0, vppbond1, etc.) +- {doc}`gre` - GRE tunnel interfaces +- {doc}`loopback` - Loopback interfaces +- {doc}`vxlan` - VXLAN tunnel interfaces +::: + +## Bridge Virtual Interface (BVI) + +A Bridge Virtual Interface (BVI) provides Layer 3 connectivity to a +bridge domain, allowing the bridge to have an IP address and participate +in routing. + +### Configuring BVI + +```{cfgcmd} set interfaces vpp bridge \ member interface \ bvi + +Designate a loopback interface as the Bridge Virtual Interface for +the bridge domain. +``` + +**Example:** + +```none +# Create a loopback interface first +set interfaces vpp loopback vpplo1 + +# Add it to the bridge as BVI +set interfaces vpp bridge vppbr1 member interface vpplo1 bvi +``` +:::{important} +**BVI Restrictions:** +- Only loopback interfaces can be configured as BVI +- Each bridge domain can have only one BVI interface +::: + +## Configuration Examples + +### Basic Bridge Setup + +```none +# Create bridge interface +set interfaces vpp bridge vppbr1 +set interfaces vpp bridge vppbr1 description "Office network bridge" + +# Add member interfaces +set interfaces vpp bridge vppbr1 member interface eth0 +set interfaces vpp bridge vppbr1 member interface eth1 +set interfaces vpp bridge vppbr1 member interface eth2 +``` + +### Bridge with BVI + +```none +# Create bridge and loopback for BVI +set interfaces vpp bridge vppbr2 +set interfaces vpp bridge vppbr2 description "Server segment with gateway" +set interfaces vpp loopback vpplo1 + +# Configure bridge members +set interfaces vpp bridge vppbr2 member interface eth3 +set interfaces vpp bridge vppbr2 member interface eth4 +set interfaces vpp bridge vppbr2 member interface vpplo1 bvi +``` + +### Multi-Technology Bridge + +```none +# Create bridge combining different interface types +set interfaces vpp bridge vppbr3 +set interfaces vpp bridge vppbr3 description "Hybrid network bridge" + +# Add various interface types +set interfaces vpp bridge vppbr3 member interface vppbond1 +set interfaces vpp bridge vppbr3 member interface vppgre1 +set interfaces vpp bridge vppbr3 member interface vppvxlan1 +set interfaces vpp bridge vppbr3 member interface vpplo2 bvi +``` + +## Integration with Kernel Interfaces + +Bridge interfaces can be integrated with kernel interfaces for +management and compatibility with standard Linux networking services. +This is accomplished by binding a kernel interface to the Bridge +Virtual Interface (BVI). + +**Example Integration:** + +```none +# Create VPP bridge with member interfaces +set interfaces vpp bridge vppbr1 +set interfaces vpp bridge vppbr1 member interface eth1 +set interfaces vpp bridge vppbr1 member interface eth2 + +# Create loopback interface and configure as BVI +set interfaces vpp loopback vpplo1 +set interfaces vpp bridge vppbr1 member interface vpplo1 bvi + +# Bind LCP kernel interface to the BVI loopback +set interfaces vpp loopback vpplo1 address '192.0.2.1/24' +``` + +This configuration creates a kernel interface bound to the BVI, +allowing standard Linux applications and routing daemons to interact +with the VPP bridge. The kernel interface provides Layer 3 access to +the bridge domain. diff --git a/docs/vpp/configuration/interfaces/md-gre.md b/docs/vpp/configuration/interfaces/md-gre.md new file mode 100644 index 00000000..30f49b15 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-gre.md @@ -0,0 +1,168 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-gre)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP GRE Configuration + +VPP GRE interfaces provide Generic Routing Encapsulation tunneling with +high-performance packet processing. GRE tunnels encapsulate various +protocols within IP packets, enabling connectivity across Layer 3 +networks while maintaining the performance benefits of VPP's optimized +data plane. + +## Basic Configuration + +### Creating a GRE Interface + +```{cfgcmd} set interfaces vpp gre \ + +Create a GRE interface where ```` follows the naming convention +``vppgre1``, ``vppgre2``, etc. +``` + +```{cfgcmd} set interfaces vpp gre \ remote \ + +Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 +addresses. +``` + +```{cfgcmd} set interfaces vpp gre \ source-address \ + +Set the tunnel source address. Must match an address configured on +the local system. +``` + +**Basic Example:** + +```none +set interfaces vpp gre vppgre1 +set interfaces vpp gre vppgre1 remote 203.0.113.2 +set interfaces vpp gre vppgre1 source-address 192.168.1.1 +``` + +## Interface Configuration +### Description and Administrative Control + +```{cfgcmd} set interfaces vpp gre \ description \ + +Set a descriptive name for the GRE interface. +``` + +```{cfgcmd} set interfaces vpp gre \ disable + +Administratively disable the GRE interface. +``` + +### Tunnel Type + +```{cfgcmd} set interfaces vpp gre \ tunnel-type \ + +Set the GRE tunnel encapsulation type: +* ``l3`` - Generic Routing Encapsulation for network layer traffic (default). +* ``teb`` - Transparent Ethernet Bridge for Layer 2 frame transport. +* ``erspan`` - Encapsulated Remote Switched Port Analyzer for traffic +mirroring. +``` + +### Kernel Interface Integration + +LCP kernel pair interface bound to the VPP GRE interface is created +automatically. This allows standard Linux networking tools and +services to interact with the VPP GRE. + +## IP Address Configuration + +```{cfgcmd} set interfaces vpp gre \ address \ + +Configure IPv4 or IPv6 addresses on the kernel interface. Multiple +addresses can be assigned. +``` + +**Examples:** + +```none +# IPv4 address +set interfaces vpp gre vppgre0 address 192.168.1.10/24 + +# IPv6 address +set interfaces vpp gre vppgre0 address 2001:db8::10/64 +``` + +## MTU Configuration + +```{cfgcmd} set interfaces vpp gre \ mtu \ + +Set the Maximum Transmission Unit (MTU) for the kernel interface. +The MTU must be compatible with the connected VPP interface. +``` + +**Example:** + +```none +set interfaces vpp gre vppgre0 mtu 9000 +``` +:::{note} +The MTU size must not exceed the MTU size +supported by the associated VPP interface. +::: + +## Configuration Examples + +### Layer 3 GRE Tunnel + +```none +# IPv4 GRE tunnel +set interfaces vpp gre vppgre1 +set interfaces vpp gre vppgre1 description "Site-to-site tunnel" +set interfaces vpp gre vppgre1 remote 203.0.113.10 +set interfaces vpp gre vppgre1 source-address 192.168.1.1 +set interfaces vpp gre vppgre1 tunnel-type l3 +``` + +### Layer 2 GRE Tunnel (TEB) + +```none +# Transparent Ethernet Bridge +set interfaces vpp gre vppgre2 +set interfaces vpp gre vppgre2 description "L2 extension tunnel" +set interfaces vpp gre vppgre2 remote 203.0.113.20 +set interfaces vpp gre vppgre2 source-address 192.168.1.1 +set interfaces vpp gre vppgre2 tunnel-type teb +``` + +### IPv6 GRE Tunnel + +```none +# IPv6 endpoints +set interfaces vpp gre vppgre3 +set interfaces vpp gre vppgre3 remote 2001:db8::2 +set interfaces vpp gre vppgre3 source-address 2001:db8::1 +``` + +### GRE with Kernel Interface + +```none +# GRE tunnel with management interface +set interfaces vpp gre vppgre4 +set interfaces vpp gre vppgre4 remote 203.0.113.30 +set interfaces vpp gre vppgre4 source-address 192.168.1.1 +set interfaces vpp gre vppgre4 address 10.0.1.1/30 +``` + +## Bridge Integration + +GRE interfaces can be added as members to VPP bridges for Layer 2 +switching. See {doc}`bridge` for detailed bridge configuration. + +```none +# Add TEB GRE tunnel to bridge +set interfaces vpp bridge vppbr1 +set interfaces vpp bridge vppbr1 member interface vppgre2 +set interfaces vpp bridge vppbr1 member interface eth1 +``` diff --git a/docs/vpp/configuration/interfaces/md-index.md b/docs/vpp/configuration/interfaces/md-index.md new file mode 100644 index 00000000..6f070ff1 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-index.md @@ -0,0 +1,49 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-index)= + +```{include} /_include/need_improvement.txt +``` + +# VPP Interfaces Configuration + +```{toctree} +:includehidden: true +:maxdepth: 1 + +bonding +bridge +gre +ipip +loopback +vxlan +xconnect +``` + +VyOS utilizes VPP (Vector Packet Processor) to provide high-performance data +plane processing. While physical interfaces are typically managed through the +Linux kernel using `linux-cp` (Linux Control Plane) integration, VyOS also +supports creating dedicated VPP interfaces for enhanced flexibility and +performance. + +## Why VPP Interfaces? + +VPP interfaces offer several advantages: + +- **Total Isolation**: VPP interfaces operate entirely within the VPP data + plane, providing isolation from the Linux kernel when needed. +- **Advanced Features**: Access to VPP-specific functionality not available + in standard Linux interfaces. +- **Flexible Deployment**: Some interface types are only available as VPP + interfaces or may not be supported by the kernel. +- **Specific scenarios**: Not all use cases require integration with the + Linux Kernel. + +### Integration with Kernel + +VyOS provides seamless integration between VPP and kernel networking. +This allows you to leverage the strengths of both approaches: +create interfaces inside VPP, and access them from the Linux kernel and other +services. diff --git a/docs/vpp/configuration/interfaces/md-ipip.md b/docs/vpp/configuration/interfaces/md-ipip.md new file mode 100644 index 00000000..80a724b0 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-ipip.md @@ -0,0 +1,119 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-ipip)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP IPIP Configuration + +VPP IPIP interfaces provide IP-in-IP tunneling with high-performance +packet processing. IPIP tunnels encapsulate IP packets within IP +packets, creating point-to-point connections across Layer 3 networks. + +## Basic Configuration + +### Creating an IPIP Interface + +```{cfgcmd} set interfaces vpp ipip \ + +Create an IPIP interface where ```` follows the naming +convention ``vppipip1``, ``vppipip2``, etc. +``` + +```{cfgcmd} set interfaces vpp ipip \ remote \ + +Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 +addresses. +``` + +```{cfgcmd} set interfaces vpp ipip \ source-address \ + +Set the tunnel source address. The source address must match an address +configured on the local system. +``` + +**Basic Example:** + +```none +set interfaces vpp ipip vppipip1 +set interfaces vpp ipip vppipip1 remote 203.0.113.2 +set interfaces vpp ipip vppipip1 source-address 192.168.1.1 +``` + +## Interface Configuration +### Description and Administrative Control + +```{cfgcmd} set interfaces vpp ipip \ description \ + +Set a descriptive name for the IPIP interface. +``` + +```{cfgcmd} set interfaces vpp ipip \ disable + +Administratively disable the IPIP interface. +``` + +### Kernel Interface Integration + +Kernel interface is bound to the VPP IPIP interface for management and +application compatibility. + +## IP Address Configuration + +```{cfgcmd} set interfaces vpp ipip \ address \ + +Configure IPv4 or IPv6 addresses on the kernel interface. Multiple +addresses can be assigned. +``` + +**Examples:** + +```none +# IPv4 address +set interfaces vpp ipip vppipip0 address 192.168.1.10/24 + +# IPv6 address +set interfaces vpp ipip vppipip0 address 2001:db8::10/64 +``` + +## MTU Configuration + +```{cfgcmd} set interfaces vpp ipip \ mtu \ + +Set the Maximum Transmission Unit (MTU) for the kernel interface. +The MTU must be compatible with the connected VPP interface. +``` + +## Configuration Examples +### IPv4 IPIP Tunnel + +```none +# Basic IPv4 IPIP tunnel +set interfaces vpp ipip vppipip1 +set interfaces vpp ipip vppipip1 description "Site-to-site IPIP tunnel" +set interfaces vpp ipip vppipip1 remote 203.0.113.10 +set interfaces vpp ipip vppipip1 source-address 192.168.1.1 +``` + +### IPv6 IPIP Tunnel + +```none +# IPv6 endpoints +set interfaces vpp ipip vppipip2 +set interfaces vpp ipip vppipip2 remote 2001:db8::2 +set interfaces vpp ipip vppipip2 source-address 2001:db8::1 +``` + +### IPIP with Kernel Interface + +```none +# IPIP tunnel with management interface +set interfaces vpp ipip vppipip3 +set interfaces vpp ipip vppipip3 remote 203.0.113.30 +set interfaces vpp ipip vppipip3 source-address 192.168.1.1 +set interfaces vpp ipip vppipip3 address 10.0.2.1/30 +``` diff --git a/docs/vpp/configuration/interfaces/md-loopback.md b/docs/vpp/configuration/interfaces/md-loopback.md new file mode 100644 index 00000000..844892a3 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-loopback.md @@ -0,0 +1,148 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-loopback)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP Loopback Interface Configuration + +VPP loopback interfaces provide virtual interfaces that remain +administratively up and are commonly used for stable addressing, +routing protocols, and as Bridge Virtual Interfaces (BVI). Loopback +interfaces in VPP offer high-performance virtual connectivity with optimized +packet processing. + +## Basic Configuration + +### Creating a Loopback Interface + +```{cfgcmd} set interfaces vpp loopback \ + +Create a loopback interface where ```` follows the naming +convention ``vpplo1``, ``vpplo2``, etc. +``` + +**Basic Example:** + +```none +set interfaces vpp loopback vpplo1 +``` + +## Interface Configuration +### Description and Administrative Control + +```{cfgcmd} set interfaces vpp loopback \ description \ + +Set a descriptive name for the loopback interface. +``` + +```{cfgcmd} set interfaces vpp loopback \ disable + +Administratively disable the loopback interface. +``` + +### Kernel Interface Integration + +Kernel interface is bound to the VPP loopback interface for management +and application compatibility. + +## IP Address Configuration + +```{cfgcmd} set interfaces vpp loopback \ address \ + +Configure IPv4 or IPv6 addresses on the kernel interface. Multiple +addresses can be assigned. +``` + +**Examples:** + +```none +# IPv4 address +set interfaces vpp loopback vpplo1 address 192.168.1.10/24 + +# IPv6 address +set interfaces vpp loopback vpplo1 address 2001:db8::10/64 +``` + +## MTU Configuration + +```{cfgcmd} set interfaces vpp loopback \ mtu \ + +Set the Maximum Transmission Unit (MTU) for the kernel interface. +The MTU must be compatible with the connected VPP interface. +``` + +## VLAN Configuration + +VPP kernel interfaces support VLAN (Virtual LAN) sub-interfaces for network +segmentation. + +### Creating VLAN Sub-interfaces + +```{cfgcmd} set interfaces vpp loopback \ vif \ + +Create a VLAN sub-interface with the specified VLAN ID (0-4094). +``` + +### VLAN Sub-interface Configuration + +VLAN sub-interfaces support the same configuration options as the parent +interface: + +```{cfgcmd} set interfaces vpp loopback \ vif \ address \ +``` + +```{cfgcmd} set interfaces vpp loopback \ vif \ description \ +``` + +```{cfgcmd} set interfaces vpp loopback \ vif \ disable +``` + +```{cfgcmd} set interfaces vpp loopback \ vif \ mtu \ +``` + +**Examples:** + +```none +# Configure VLAN 100 +set interfaces vpp loopback vpplo1 vif 100 address 192.168.100.1/24 +set interfaces vpp loopback vpplo1 vif 100 description "Management VLAN" +set interfaces vpp loopback vpplo1 vif 100 mtu 1500 + +# Configure VLAN 200 +set interfaces vpp loopback vpplo1 vif 200 address 192.168.200.1/24 +set interfaces vpp loopback vpplo1 vif 200 description "Guest VLAN" +``` + +## Configuration Examples +### Basic Loopback Interface + +```none +# Create simple loopback +set interfaces vpp loopback vpplo1 +set interfaces vpp loopback vpplo1 description "Router ID interface" +``` + +### Loopback with Kernel Interface + +```none +# Loopback with management access +set interfaces vpp loopback vpplo2 +set interfaces vpp loopback vpplo2 description "Management loopback" +set interfaces vpp loopback vpplo2 address 10.255.255.1/32 +``` + +### Bridge Virtual Interface (BVI) + +```none +# Loopback as BVI for bridge +set interfaces vpp loopback vpplo3 +set interfaces vpp loopback vpplo3 description "Bridge gateway interface" +set interfaces vpp bridge vppbr1 +set interfaces vpp bridge vppbr1 member interface vpplo3 bvi +set interfaces vpp loopback vpplo3 address 192.168.100.1/24 +``` diff --git a/docs/vpp/configuration/interfaces/md-vxlan.md b/docs/vpp/configuration/interfaces/md-vxlan.md new file mode 100644 index 00000000..2139f120 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-vxlan.md @@ -0,0 +1,157 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-vxlan)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP VXLAN Configuration + +VPP VXLAN interfaces provide virtual extensible local area network (VXLAN) +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 interfaces vpp vxlan \ + +Create a VXLAN interface where ```` follows the naming +convention ``vppvxlan1``, ``vppvxlan2``, etc. +``` + +```{cfgcmd} set interfaces vpp vxlan \ vni \ + +Set the Virtual Network Identifier (VNI) for the VXLAN tunnel. Valid range +is 0-16777214. +``` + +```{cfgcmd} set interfaces vpp vxlan \ remote \ + +Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 +addresses. +``` + +```{cfgcmd} set interfaces vpp vxlan \ source-address \ + +Set the tunnel source address. Must match an address configured on the +local system. +``` + +**Basic Example:** + +```none +set interfaces vpp vxlan vppvxlan1 +set interfaces vpp vxlan vppvxlan1 vni 100 +set interfaces vpp vxlan vppvxlan1 remote 203.0.113.2 +set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1 +``` + +## Interface Configuration +### Description and Administrative Control + +```{cfgcmd} set interfaces vpp vxlan \ description \ + +Set a descriptive name for the VXLAN interface. +``` + +```{cfgcmd} set interfaces vpp vxlan \ disable + +Administratively disable the VXLAN interface. +``` + +### Kernel Interface Integration + +The kernel interface is bound to the VXLAN tunnel for management and +application compatibility. + +## IP Address Configuration + +```{cfgcmd} set interfaces vpp vxlan \ address \ + +Configure IPv4 or IPv6 addresses on the kernel interface. Multiple +addresses can be assigned. +``` + +**Examples:** + +```none +set interfaces vpp vxlan vppvxlan1 address 192.168.1.10/24 +set interfaces vpp vxlan vppvxlan1 address 2001:db8::10/64 +``` + +## MTU Configuration + +```{cfgcmd} set interfaces vpp vxlan \ mtu \ + +Set the Maximum Transmission Unit (MTU) for the kernel interface. The MTU +must be compatible with the connected VPP interface. +``` + +## Configuration Examples +### Basic VXLAN Tunnel + +```none +# IPv4 VXLAN tunnel +set interfaces vpp vxlan vppvxlan1 +set interfaces vpp vxlan vppvxlan1 description "Tenant A network extension" +set interfaces vpp vxlan vppvxlan1 vni 1000 +set interfaces vpp vxlan vppvxlan1 remote 203.0.113.10 +set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1 +``` + +### IPv6 VXLAN Tunnel + +```none +# IPv6 endpoints +set interfaces vpp vxlan vppvxlan2 +set interfaces vpp vxlan vppvxlan2 vni 2000 +set interfaces vpp vxlan vppvxlan2 remote 2001:db8::2 +set interfaces vpp vxlan vppvxlan2 source-address 2001:db8::1 +``` + +### VXLAN with Kernel Interface + +```none +# VXLAN tunnel with management interface +set interfaces vpp vxlan vppvxlan3 +set interfaces vpp vxlan vppvxlan3 vni 3000 +set interfaces vpp vxlan vppvxlan3 remote 203.0.113.30 +set interfaces vpp vxlan vppvxlan3 source-address 192.168.1.1 +set interfaces vpp vxlan vppvxlan3 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 more information. + +```none +# Add VXLAN tunnel to bridge +set interfaces vpp bridge vppbr1 +set interfaces vpp bridge vppbr1 member interface vppvxlan1 +set interfaces vpp bridge vppbr1 member interface eth1 +set interfaces vpp bridge vppbr1 member interface vpplo1 bvi +``` + +### Multi-Tenant Configuration + +```none +# Multiple VNIs for tenant separation +set interfaces vpp vxlan vppvxlan10 +set interfaces vpp vxlan vppvxlan10 description "Tenant A - Production" +set interfaces vpp vxlan vppvxlan10 vni 1001 +set interfaces vpp vxlan vppvxlan10 remote 203.0.113.20 +set interfaces vpp vxlan vppvxlan10 source-address 192.168.1.1 + +set interfaces vpp vxlan vppvxlan11 +set interfaces vpp vxlan vppvxlan11 description "Tenant A - Development" +set interfaces vpp vxlan vppvxlan11 vni 1002 +set interfaces vpp vxlan vppvxlan11 remote 203.0.113.21 +set interfaces vpp vxlan vppvxlan11 source-address 192.168.1.1 +``` diff --git a/docs/vpp/configuration/interfaces/md-xconnect.md b/docs/vpp/configuration/interfaces/md-xconnect.md new file mode 100644 index 00000000..b970da28 --- /dev/null +++ b/docs/vpp/configuration/interfaces/md-xconnect.md @@ -0,0 +1,108 @@ +--- +lastproofread: '2026-03-13' +--- + +(vpp-config-interfaces-xconnect)= + +```{include} /_include/need_improvement.txt +``` + + +# VPP XConnect Configuration + +VPP XConnect provides direct Layer 2 packet forwarding between two +interfaces with maximum transparency and minimal overhead. XConnect +creates a simple point-to-point bridge that forwards all Layer 2 packets +bidirectionally without MAC learning or flooding, making it ideal for +transparent connectivity scenarios. + +XConnect operates as a super-transparent bridge, forwarding all frames +between the connected interfaces without any packet inspection or +modification. This provides the simplest possible Layer 2 forwarding with +VPP's high-performance packet processing. + +## Comparison with Bridges + +- **XConnect**: Point-to-point only, no MAC learning, maximum + transparency, minimal overhead +- **Bridge**: Multi-port, MAC learning, broadcast handling, more + features but higher overhead + +Choose XConnect when you need simple point-to-point Layer 2 forwarding +with maximum performance and transparency. Use bridges when you need +multi-port switching with MAC learning and broadcast handling. + +## Basic Configuration + +### Creating an XConnect Interface + +```{cfgcmd} set interfaces vpp xconnect \ + +Create an XConnect interface where ```` follows the naming +convention ``vppxcon1``, ``vppxcon2``, etc. +``` + +```{cfgcmd} set interfaces vpp xconnect \ member interface \ + +Add an interface as a member of the XConnect. Exactly two member +interfaces must be configured to create bidirectional forwarding. +``` + +**Basic Example:** + +```none +set interfaces vpp xconnect vppxcon1 +set interfaces vpp xconnect vppxcon1 member interface eth0 +set interfaces vpp xconnect vppxcon1 member interface eth1 +``` + +This configuration creates transparent forwarding between `eth0` and `eth1`, +where any packet received on either interface is immediately forwarded to +the other without any processing. + +## Interface Configuration + +```{cfgcmd} set interfaces vpp xconnect \ description \ + +Set a descriptive name for the XConnect interface. +``` + +## Configuration Examples +### Physical Interface XConnect + +```none +# Connect two physical interfaces +set interfaces vpp xconnect vppxcon1 +set interfaces vpp xconnect vppxcon1 description "Transparent wire between ports" +set interfaces vpp xconnect vppxcon1 member interface eth0 +set interfaces vpp xconnect vppxcon1 member interface eth1 +``` + +This creates a transparent wire between two physical ports, effectively +making them function as a single cable. + +### Tunnel to Physical XConnect + +```none +# Connect tunnel to physical interface +set interfaces vpp xconnect vppxcon2 +set interfaces vpp xconnect vppxcon2 description "GRE tunnel to physical bridge" +set interfaces vpp xconnect vppxcon2 member interface vppgre1 +set interfaces vpp xconnect vppxcon2 member interface eth2 +``` + +This forwards all traffic from a GRE tunnel directly to a physical +interface and vice versa. + +### Mixed Interface Types + +```none +# Connect different interface types +set interfaces vpp xconnect vppxcon3 +set interfaces vpp xconnect vppxcon3 description "VXLAN to bonding bridge" +set interfaces vpp xconnect vppxcon3 member interface vppvxlan1 +set interfaces vpp xconnect vppxcon3 member interface vppbond0 +``` + +This demonstrates XConnect's flexibility in connecting various VPP interface +types. diff --git a/docs/vpp/configuration/interfaces/vxlan.md b/docs/vpp/configuration/interfaces/vxlan.md deleted file mode 100644 index 2139f120..00000000 --- a/docs/vpp/configuration/interfaces/vxlan.md +++ /dev/null @@ -1,157 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-vxlan)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP VXLAN Configuration - -VPP VXLAN interfaces provide virtual extensible local area network (VXLAN) -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 interfaces vpp vxlan \ - -Create a VXLAN interface where ```` follows the naming -convention ``vppvxlan1``, ``vppvxlan2``, etc. -``` - -```{cfgcmd} set interfaces vpp vxlan \ vni \ - -Set the Virtual Network Identifier (VNI) for the VXLAN tunnel. Valid range -is 0-16777214. -``` - -```{cfgcmd} set interfaces vpp vxlan \ remote \ - -Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 -addresses. -``` - -```{cfgcmd} set interfaces vpp vxlan \ source-address \ - -Set the tunnel source address. Must match an address configured on the -local system. -``` - -**Basic Example:** - -```none -set interfaces vpp vxlan vppvxlan1 -set interfaces vpp vxlan vppvxlan1 vni 100 -set interfaces vpp vxlan vppvxlan1 remote 203.0.113.2 -set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1 -``` - -## Interface Configuration -### Description and Administrative Control - -```{cfgcmd} set interfaces vpp vxlan \ description \ - -Set a descriptive name for the VXLAN interface. -``` - -```{cfgcmd} set interfaces vpp vxlan \ disable - -Administratively disable the VXLAN interface. -``` - -### Kernel Interface Integration - -The kernel interface is bound to the VXLAN tunnel for management and -application compatibility. - -## IP Address Configuration - -```{cfgcmd} set interfaces vpp vxlan \ address \ - -Configure IPv4 or IPv6 addresses on the kernel interface. Multiple -addresses can be assigned. -``` - -**Examples:** - -```none -set interfaces vpp vxlan vppvxlan1 address 192.168.1.10/24 -set interfaces vpp vxlan vppvxlan1 address 2001:db8::10/64 -``` - -## MTU Configuration - -```{cfgcmd} set interfaces vpp vxlan \ mtu \ - -Set the Maximum Transmission Unit (MTU) for the kernel interface. The MTU -must be compatible with the connected VPP interface. -``` - -## Configuration Examples -### Basic VXLAN Tunnel - -```none -# IPv4 VXLAN tunnel -set interfaces vpp vxlan vppvxlan1 -set interfaces vpp vxlan vppvxlan1 description "Tenant A network extension" -set interfaces vpp vxlan vppvxlan1 vni 1000 -set interfaces vpp vxlan vppvxlan1 remote 203.0.113.10 -set interfaces vpp vxlan vppvxlan1 source-address 192.168.1.1 -``` - -### IPv6 VXLAN Tunnel - -```none -# IPv6 endpoints -set interfaces vpp vxlan vppvxlan2 -set interfaces vpp vxlan vppvxlan2 vni 2000 -set interfaces vpp vxlan vppvxlan2 remote 2001:db8::2 -set interfaces vpp vxlan vppvxlan2 source-address 2001:db8::1 -``` - -### VXLAN with Kernel Interface - -```none -# VXLAN tunnel with management interface -set interfaces vpp vxlan vppvxlan3 -set interfaces vpp vxlan vppvxlan3 vni 3000 -set interfaces vpp vxlan vppvxlan3 remote 203.0.113.30 -set interfaces vpp vxlan vppvxlan3 source-address 192.168.1.1 -set interfaces vpp vxlan vppvxlan3 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 more information. - -```none -# Add VXLAN tunnel to bridge -set interfaces vpp bridge vppbr1 -set interfaces vpp bridge vppbr1 member interface vppvxlan1 -set interfaces vpp bridge vppbr1 member interface eth1 -set interfaces vpp bridge vppbr1 member interface vpplo1 bvi -``` - -### Multi-Tenant Configuration - -```none -# Multiple VNIs for tenant separation -set interfaces vpp vxlan vppvxlan10 -set interfaces vpp vxlan vppvxlan10 description "Tenant A - Production" -set interfaces vpp vxlan vppvxlan10 vni 1001 -set interfaces vpp vxlan vppvxlan10 remote 203.0.113.20 -set interfaces vpp vxlan vppvxlan10 source-address 192.168.1.1 - -set interfaces vpp vxlan vppvxlan11 -set interfaces vpp vxlan vppvxlan11 description "Tenant A - Development" -set interfaces vpp vxlan vppvxlan11 vni 1002 -set interfaces vpp vxlan vppvxlan11 remote 203.0.113.21 -set interfaces vpp vxlan vppvxlan11 source-address 192.168.1.1 -``` diff --git a/docs/vpp/configuration/interfaces/xconnect.md b/docs/vpp/configuration/interfaces/xconnect.md deleted file mode 100644 index b970da28..00000000 --- a/docs/vpp/configuration/interfaces/xconnect.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -lastproofread: '2026-03-13' ---- - -(vpp-config-interfaces-xconnect)= - -```{include} /_include/need_improvement.txt -``` - - -# VPP XConnect Configuration - -VPP XConnect provides direct Layer 2 packet forwarding between two -interfaces with maximum transparency and minimal overhead. XConnect -creates a simple point-to-point bridge that forwards all Layer 2 packets -bidirectionally without MAC learning or flooding, making it ideal for -transparent connectivity scenarios. - -XConnect operates as a super-transparent bridge, forwarding all frames -between the connected interfaces without any packet inspection or -modification. This provides the simplest possible Layer 2 forwarding with -VPP's high-performance packet processing. - -## Comparison with Bridges - -- **XConnect**: Point-to-point only, no MAC learning, maximum - transparency, minimal overhead -- **Bridge**: Multi-port, MAC learning, broadcast handling, more - features but higher overhead - -Choose XConnect when you need simple point-to-point Layer 2 forwarding -with maximum performance and transparency. Use bridges when you need -multi-port switching with MAC learning and broadcast handling. - -## Basic Configuration - -### Creating an XConnect Interface - -```{cfgcmd} set interfaces vpp xconnect \ - -Create an XConnect interface where ```` follows the naming -convention ``vppxcon1``, ``vppxcon2``, etc. -``` - -```{cfgcmd} set interfaces vpp xconnect \ member interface \ - -Add an interface as a member of the XConnect. Exactly two member -interfaces must be configured to create bidirectional forwarding. -``` - -**Basic Example:** - -```none -set interfaces vpp xconnect vppxcon1 -set interfaces vpp xconnect vppxcon1 member interface eth0 -set interfaces vpp xconnect vppxcon1 member interface eth1 -``` - -This configuration creates transparent forwarding between `eth0` and `eth1`, -where any packet received on either interface is immediately forwarded to -the other without any processing. - -## Interface Configuration - -```{cfgcmd} set interfaces vpp xconnect \ description \ - -Set a descriptive name for the XConnect interface. -``` - -## Configuration Examples -### Physical Interface XConnect - -```none -# Connect two physical interfaces -set interfaces vpp xconnect vppxcon1 -set interfaces vpp xconnect vppxcon1 description "Transparent wire between ports" -set interfaces vpp xconnect vppxcon1 member interface eth0 -set interfaces vpp xconnect vppxcon1 member interface eth1 -``` - -This creates a transparent wire between two physical ports, effectively -making them function as a single cable. - -### Tunnel to Physical XConnect - -```none -# Connect tunnel to physical interface -set interfaces vpp xconnect vppxcon2 -set interfaces vpp xconnect vppxcon2 description "GRE tunnel to physical bridge" -set interfaces vpp xconnect vppxcon2 member interface vppgre1 -set interfaces vpp xconnect vppxcon2 member interface eth2 -``` - -This forwards all traffic from a GRE tunnel directly to a physical -interface and vice versa. - -### Mixed Interface Types - -```none -# Connect different interface types -set interfaces vpp xconnect vppxcon3 -set interfaces vpp xconnect vppxcon3 description "VXLAN to bonding bridge" -set interfaces vpp xconnect vppxcon3 member interface vppvxlan1 -set interfaces vpp xconnect vppxcon3 member interface vppbond0 -``` - -This demonstrates XConnect's flexibility in connecting various VPP interface -types. -- cgit v1.2.3