# openvswitch/ovs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openvswitch-ovs).**

3,904 stars · 1,994 forks · C · apache-2.0

## Links

- GitHub: https://github.com/openvswitch/ovs
- awesome-repositories: https://awesome-repositories.com/repository/openvswitch-ovs.md

## Description

Open vSwitch is a software-defined network switch and high-performance data plane engine. It functions as a virtual layer 2 switch and network orchestrator, implementing the OpenFlow protocol to decouple the control plane from the data plane for programmable network forwarding.

The project distinguishes itself through a userspace-kernel datapath split and the use of poll-mode drivers for kernel-bypass acceleration. It provides a network tunneling gateway to extend virtual networks across physical hosts and utilizes a transactional, schema-based configuration database with state replication for high availability.

Its capability surface includes comprehensive network forwarding with support for link aggregation, VLAN segmentation, and packet header manipulation. It incorporates security primitives such as firewall rule implementation, connection state tracking, and IPsec tunnel encryption. Additionally, it offers traffic engineering tools for quality of service enforcement and observability features including sFlow monitoring and packet path tracing.

The system is managed via a command-line interface for switch configuration and network topology simulation.

## Tags

### DevOps & Infrastructure

- [Software-Defined Networking Services](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/networking-connectivity/software-defined-networking-services.md) — Provides a software-defined networking platform to programmatically define and update network forwarding rules.
- [Layer 2 Tunnels](https://awesome-repositories.com/f/devops-infrastructure/virtual-network-tunnels/layer-2-tunnels.md) — Encapsulates Ethernet frames to extend virtual layer 2 networks across physical layer 3 boundaries.
- [Poll-Mode Drivers](https://awesome-repositories.com/f/devops-infrastructure/hardware-acceleration-drivers/poll-mode-drivers.md) — Uses poll-mode drivers to bypass the kernel network stack, achieving higher throughput and lower latency.
- [Transactional Configuration Storage](https://awesome-repositories.com/f/devops-infrastructure/storage-configurations/transactional-configuration-storage.md) — Implements a transactional database for persistent storage of switch settings, accessible via C and Python bindings. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))

### Networking & Communication

- [OpenFlow Virtual Switches](https://awesome-repositories.com/f/networking-communication/openflow-virtual-switches.md) — Implements a software-defined network switch using the OpenFlow protocol to decouple control and data planes.
- [OpenFlow Control Protocols](https://awesome-repositories.com/f/networking-communication/control-plane-protocols/openflow-control-protocols.md) — Implements the OpenFlow protocol to decouple the control plane from the data plane for programmable network forwarding.
- [Network Traffic Routing](https://awesome-repositories.com/f/networking-communication/network-traffic-routing.md) — Directs data across virtual networks using a protocol supporting multiple tables and tag matching. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))
- [Overlay Networks](https://awesome-repositories.com/f/networking-communication/overlay-networks.md) — Connects virtual machines across physical hosts using encapsulated tunnels to create a unified logical overlay network.
- [Forwarding Controllers](https://awesome-repositories.com/f/networking-communication/packet-engines/forwarding-controllers.md) — Exposes network forwarding functions to programmatic control via standardized management interfaces. ([source](https://docs.openvswitch.org/en/latest/internals/charter/))
- [Packet Processing Frameworks](https://awesome-repositories.com/f/networking-communication/packet-engines/packet-processing-frameworks.md) — Provides a programmable framework for routing packets through a sequence of tables and actions for complex header manipulation.
- [Pipeline-Based Packet Routing](https://awesome-repositories.com/f/networking-communication/pipeline-based-packet-routing.md) — Directs packets to specific ports, controllers, or queues using a pipeline of processing actions. ([source](https://docs.openvswitch.org/en/latest/ref/))
- [SDN Data Planes](https://awesome-repositories.com/f/networking-communication/sdn-data-planes.md) — Provides a high-performance packet processing engine with hardware offloading and kernel-bypass capabilities.
- [Traffic Tunnels](https://awesome-repositories.com/f/networking-communication/traffic-tunnels.md) — Encapsulates network data streams within transport protocols to extend virtual networks across physical servers. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))
- [Tunneling Gateways](https://awesome-repositories.com/f/networking-communication/tunneling-gateways.md) — Functions as a network tunneling gateway to extend virtual networks across physical hosts via VXLAN and GRE.
- [Virtual Layer 2 Switches](https://awesome-repositories.com/f/networking-communication/virtual-layer-2-switches.md) — Functions as a virtualized switching platform managing VLANs and packet forwarding for virtual machines and containers.
- [Virtual Local Area Networks](https://awesome-repositories.com/f/networking-communication/virtual-local-area-networks.md) — Implements virtual local area networks to isolate traffic and prevent interference between virtual machines. ([source](https://docs.openvswitch.org/en/latest/howto/))
- [Hardware Switching Offload](https://awesome-repositories.com/f/networking-communication/hardware-switching-offload.md) — Provides interfaces to extend software-defined networking capabilities to physical hardware-level switching. ([source](https://docs.openvswitch.org/en/latest/intro/))
- [Network Diagnostics](https://awesome-repositories.com/f/networking-communication/network-diagnostics.md) — Traces packet paths and samples flows to analyze behavior and debug connectivity issues in virtual networks.
- [Network Traffic Management](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/network-traffic-management.md) — Manages bandwidth and prioritizes specific data flows using quality of service policies and rate limiting.
- [Network Interface Bonding](https://awesome-repositories.com/f/networking-communication/network-interface-bonding.md) — Implements standard bonding protocols to combine multiple physical interfaces into a single logical link. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))
- [Network Task Offloads](https://awesome-repositories.com/f/networking-communication/packet-capture-engines/hardware-offloads/network-task-offloads.md) — Offloads checksum calculations and segment processing from the CPU to network hardware. ([source](https://docs.openvswitch.org/en/latest/topics/))
- [Hardware-Accelerated Packet Forwarding](https://awesome-repositories.com/f/networking-communication/packet-engines/packet-processing-frameworks/hardware-accelerated-packet-forwarding.md) — Offloads packet matching and forwarding rules to physical NIC hardware for line-rate performance. ([source](https://docs.openvswitch.org/en/latest/contents/))
- [Packet Manipulation Toolkits](https://awesome-repositories.com/f/networking-communication/packet-manipulation-toolkits.md) — Modifies, strips, or adds network layer fields to packets during the switching process. ([source](https://docs.openvswitch.org/en/latest/ref/))
- [Connection State Management](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/connection-state-management.md) — Tracks the state and history of network connections to manage packet flow based on session state. ([source](https://docs.openvswitch.org/en/latest/contents/))
- [Traffic Rate Limiters](https://awesome-repositories.com/f/networking-communication/traffic-rate-limiters.md) — Enforces bandwidth policies to cap the maximum data rate for specific network ports or flows. ([source](https://docs.openvswitch.org/en/latest/contents/))
- [Virtual Machine Connectivity](https://awesome-repositories.com/f/networking-communication/virtual-machine-connectivity.md) — Establishes secure private tunnels to connect remote virtual machines across different physical hosts. ([source](https://docs.openvswitch.org/en/latest/contents/))

### Operating Systems & Systems Programming

- [Datapath Splits](https://awesome-repositories.com/f/operating-systems-systems-programming/datapath-splits.md) — Separates the high-level control plane in userspace from the fast-path packet forwarding performed in the kernel.
- [Virtual Network Management](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-networking/virtual-network-management.md) — Manages virtual network interfaces, bonds physical links, and implements VLAN segmentation for virtualized environments.

### System Administration & Monitoring

- [Switch Configuration Management](https://awesome-repositories.com/f/system-administration-monitoring/switch-configuration-management.md) — Provides a command-line interface for controlling switch processes, loading kernel modules, and managing system settings. ([source](https://docs.openvswitch.org/en/latest/ref/))
- [Traffic Shaping and Prioritization](https://awesome-repositories.com/f/system-administration-monitoring/network-configuration-services/traffic-shaping-and-prioritization.md) — Configures quality of service policies and policing to manage bandwidth and prioritize critical traffic. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))
- [Network Traffic Analysis](https://awesome-repositories.com/f/system-administration-monitoring/network-traffic-analysis.md) — Analyzes packet flow using sampling and tracing tools to diagnose network behavior. ([source](https://cdn.jsdelivr.net/gh/openvswitch/ovs@main/README.md))
- [sFlow Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/network-traffic-analysis/sflow-monitoring.md) — Supports network packet sampling and flow data export via sFlow for real-time traffic analysis. ([source](https://docs.openvswitch.org/en/latest/howto/))
- [Packet Path Tracing](https://awesome-repositories.com/f/system-administration-monitoring/packet-path-tracing.md) — Tracks individual packet movements through the switch to diagnose forwarding logic and connectivity issues. ([source](https://docs.openvswitch.org/en/latest/topics/))

### Data & Databases

- [Schema-Based Data Models](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-modeling-schemas/schema-based-data-models.md) — Uses a schema-based system within its transactional database to manage switch settings and enforce structural integrity. ([source](https://docs.openvswitch.org/en/latest/ref/))
- [Database Replication](https://awesome-repositories.com/f/data-databases/database-replication.md) — Synchronizes configuration data across multiple servers to ensure high availability of the switch state. ([source](https://docs.openvswitch.org/en/latest/topics/))
- [Configuration Transaction Engines](https://awesome-repositories.com/f/data-databases/database-transactions/configuration-transaction-engines.md) — Utilizes a transactional, schema-based configuration database to ensure consistency across switch clusters.

### Security & Cryptography

- [Access Control Lists](https://awesome-repositories.com/f/security-cryptography/access-restrictions/access-control-lists.md) — Implements access control lists to filter network traffic based on specific permit or deny criteria. ([source](https://docs.openvswitch.org/en/latest/tutorials/))
- [Traffic Isolation](https://awesome-repositories.com/f/security-cryptography/account-management/traffic-isolation.md) — Implements network-level traffic isolation to segregate virtual machine communication and ensure tenant privacy. ([source](https://docs.openvswitch.org/en/latest/contents/))
- [Encrypted Tunneling](https://awesome-repositories.com/f/security-cryptography/encrypted-tunneling.md) — Secures data transmission between switches using encryption protocols to ensure authenticity and privacy. ([source](https://docs.openvswitch.org/en/latest/howto/))
- [Firewalls](https://awesome-repositories.com/f/security-cryptography/firewalls.md) — Implements firewalling actions and connection tracking to secure network data flows. ([source](https://docs.openvswitch.org/en/latest/ref/))
- [Secure Tunneling](https://awesome-repositories.com/f/security-cryptography/secure-tunneling.md) — Encrypts tunnel data using IPsec to ensure privacy and integrity for traffic between switches. ([source](https://docs.openvswitch.org/en/latest/tutorials/))
