**Open vSwitch (OVS)** is a production-quality, multilayer virtual switch designed for use as a vSwitch in virtualised server environments. It runs on every hypervisor host and handles the L2/L3 switching between VMs, containers, and the physical network — the foundational plumbing of any software-defined cloud network.
---
### First Principle: Every hypervisor host needs a programmable virtual switch. OVS is the standard.
Traditional Linux bridges handle basic L2 forwarding but lack the flow-based programming, VLAN support, and tunnelling capabilities needed in a cloud. OVS provides OpenFlow-compatible flow tables, VXLAN/Geneve tunnel support, and LACP bonding — everything you need to build tenant-isolated overlay networks at scale.
---
### Key Considerations
- **Flow Tables**: OVS uses OpenFlow-compatible flow tables that can be programmed by a controller (like [[OVN]]) or set manually.
- **Tunnelling**: Supports VXLAN, Geneve, and GRE tunnels for overlay networking — allowing VMs on different physical hosts to appear on the same L2 network.
- **DPDK Mode**: OVS-DPDK bypasses the kernel for packet processing, dramatically increasing throughput for network-intensive workloads. Critical for telco/NFV deployments.
- **[[OVN]] Integration**: [[OpenStack]] Neutron uses [[OVN]] as the control plane on top of OVS. OVN programs OVS flow tables automatically.
- **[[Cilium]] Alternative**: For pure container (Kubernetes) environments, [[Cilium]] using eBPF is increasingly replacing OVS for better performance and simpler operations.
---
### How It Fits
```
[[OVN]] (control plane, distributed routing)
→ Open vSwitch (per-host virtual switch)
→ Physical NICs / [[SONiC]] switches
```
[[OVN]] | [[Cilium]] | [[SONiC]] | [[OpenStack]] | [[FRRouting (FRR)]] | [[Open Source Hyperscaler MoC]]