awesome-sdn

SDN reference

An extensive compilation of resources and technologies related to Software Defined Networks (SDN) for network administrators and developers.

A awesome list about Software Defined Network (SDN)

GitHub

1k stars
91 watching
211 forks
last commit: 4 months ago
Linked from 5 awesome lists

hacktoberfestnetwork-virtualizationopen-networkopenflowopenflow-controlleropenflow-protocoloverlay-networksdnswitch

Network Operating System

Beluganos 145 over 1 year ago Beluganos is a new network OS designed for white-box switches (OF-DPA), which can apply large-scale networks
Cumulus Linux Cumulus Linux is a powerful open network operating system that allows you to automate, customize and scale using web-scale principles like the world's largest data centers
FlexSwitch The first open source network protocol suite offering complete layer2/layer3 functionality for accelerating development and deployment of whitebox networking gear
Mion 8 about 4 years ago A switch OS based on ONLP API and Yocto project
OcNOS Extensive switching and routing protocol support with advanced capabilities such as MPLS and SDN
Open Network Linux, ONL A Linux distribution for "bare metal" switches, that is, network forwarding devices built from commodity components
OpenSwitch A linux network operating system from Dell EMC
OpenWrt Is a Linux Operating System targeting embedded devices
PicOS A SDN OS for white box switches Layer-2/3 feature set with support for OpenFlow, OVSDB, and other protocols
SONiC Software for Open Networking in the Cloud SONiC
Stratum An open source, silicon-independent switch operating system for software-defined networks

Install Environment

ONIE ONIE enables a bare metal network switch ecosystem where end users have a choice among different network operating systems

Software Switch

BESS 313 almost 2 years ago Berkeley Extensible Software Switch, BESS is a modular framework for software switches
bmv2 545 15 days ago A P4 software switch which is usually used as a tool to verify the funtions the developers describe in P4 language
CPqD 302 over 1 year ago An OpenFlow 1.3 compatible user-space software switch implementation
FD.IO Relentlessly focused on data IO speed and efficiency for more flexible and scalable networks and storage
Indigo 62 about 1 year ago Indigo is an open source project aimed at enabling support for OpenFlow on physical and hypervisor switches
Lagopus A high-performance software OpenFlow 1.3 switch
LINC-Switch 213 about 9 years ago A pure OpenFlow software switch written in Erlang
Open vSwitch Open vSwitch is a production quality, multilayer virtual switch
PISCES A Programmable, Protocol-Independent Software Switch
snabbswitch 2,975 3 months ago An open source virtualized Ethernet networking stack
ZeroTier 14,552 9 days ago ZeroTier is a software-based managed Ethernet switch for planet Earth

Network Virtualization

FlowVisor 164 about 11 years ago An OpenFlow controller that acts as a hypervisor/proxy between a switch and multiple controllers. Can slice multiple switches in parallel, effectively slicing a network
OpenVirtex 96 11 months ago A network hypervisor that can create multiple virtual and programmable networks on top of a single physical infrastructure

Protocol

OpenFlow A communications protocol that gives access to the forwarding plane of a network switch or router over the network
OF-Config OpenFlow Management and Configuration Protocol
OVSDB A communication protocol which used to manage the OpenvSwitch database
NETCONF
OpFlex
Path Computation Element Protocol, PCEP
Extensible Messaging and Presence Protocol, XMPP
P4 Runtime
gNMI 476 21 days ago gRPC Network Management Interface
gNOI 159 5 days ago gRPC Network Operations Interface

Controller

Beehive Network Controller 72 over 8 years ago A distributed SDN controller built on top of Beehive. It supports OpenFlow but can be easily extended for other southbound protocols
Floodlight 752 7 months ago A java-based OpenFlow controller
IRIS A Resursive SDN Openflow Controller created by SDN Research Section, ETRI
lighty.io core 135 8 days ago lighty.io core components - An open source development framework for building Java-based SDN controllers
Netrack 91 over 5 years ago An OpenFlow controller framework in Go
NodeFlow 58 over 12 years ago An OpenFlow Controller Node Style
NOX 139 almost 11 years ago An open source development platform for C++-based software-defined networking ( ) control applications
OESS 27 over 1 year ago The Open Exchange Software Suite to configure and control OpenFlow Enabled switches
ONOS Open Network Operating System
Open MUL A lightweight SDN/Openflow controller written almost entirely in C from scratch
Open Security Controller Software-defined security orchestration solution that automates deployment of virtualized network security functions, like next-generation firewall, intrusion prevention systems and application data controllers
OpenContrail A SDN project that utilizes SDN & NFV and provides all the necessary components for network virtualization
OpenDaylight OpenDaylight Platform
OVN OVN: Open Virtual Network for Open vSwitch
POX 628 about 1 month ago An open source development platform for Python-based software-defined networking ( ) control applications
Ravel 9 over 6 years ago A software-defined networking (SDN) controller that uses a standard SQL database to represent the network
Ryu A component-based software defined networking framework
Trema A full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C
Vyatta 43 about 9 years ago The first commercial Controller built directly from OpenDaylight

Simulator/Emulator

Containernet 397 2 months ago Mininet fork that allows to use Docker containers as hosts in emulated networks
EstiNet A world-renowned software tool for network planning
MaxiNet MaxiNet extends the famous Mininet emulation environment to span the emulation across several physical machines. This allows to emulate very large software-defined networks
Mininet An Instant Virtual Network on your Laptop (or other PC)
ns-3 A discrete-event network simulator that supports OpenFlow environment
OpenNet A simulator for software-defined wireless local area network
Tinynet 45 12 months ago A lightweight instant virtual network for rapid prototyping SDN

Language

Frenetic 224 about 1 year ago The Frenetic Programming Language and Runtime System
NEMO A domain specific language (DSL) based on abstraction of network models and conclusion of operation patterns
P4 A declarative language for expressing how packets are processed by the pipeline of a network forwarding element such as a switch, NIC, router or network function appliance
POF Protocol Oblivious Forwarding
Pyretic Pyretic is one member of the Frenetic family of SDN programming languages

Library

loxigen 96 over 1 year ago LoxiGen is a tool that generates OpenFlow protocol libraries for a number of languages
nettle 20 about 7 years ago A Haskell library for working with the OpenFlow protocol
OCaml OpenFlow 13 over 9 years ago A serialization and protocol library for OpenFlow
oflib-node 15 almost 13 years ago Oflib-node is an OpenFlow protocol library for Node. It converts between OpenFlow wire protocol messages and Javascript objects
openfaucet 25 about 12 years ago openfaucet is a pure Python implementation of the OpenFlow 1.0.0 protocol, based on Twisted
OpenFlowJ A Java implementation of low-level OpenFlow packet marshalling/unmarshalling and IO operations
Scapy Scapy is a powerful interactive packet manipulation program

Test

Cbenech 31 over 1 year ago Benchmarking tool for controllers
nice-of A tool to test OpenFlow controller application for the NOX controller platform
oftest 86 10 months ago OpenFlow Testing Framework
OpenSDNCore Virtualisation Testbed for NFV/SDN Environment
ptf 146 7 months ago A python based dataplane test framework based on unittest
STS SDN Troubleshooting System, simulates network devices, allowing programmatically test cases generation

NFV

OPNFV Accelerating NFV's evolution through an integrated, open platform

Overlay Network

GENEVE What is GENEVE?
NVGRE NVGRE-Network-Virtualization-using-Generic-Routing-Encapsulation
VXLAN Virtual Extensible LAN

Router

bgp4r 28 about 5 years ago BGP4R is a ruby library which enables the creation and manipulation of BGP messages. In BGP4R, all well-known BGP constructs are defined in classes
BGPFeeder 8 over 2 years ago
Bird The BIRD project aims to develop a fully functional dynamic IP routing daemon primarily targeted on (but not limited to) Linux, FreeBSD and other UNIX-like systems and distributed under the GNU General Public License
FreeRouter Java-based vRouter
FRRouting An IP routing protocol suite for Linux and Unix platforms which includes protocol daemons for BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng, PIM-SM/MSDP and LDP as well as very early support for IS-IS, EIGRP and NHRP
gobgp 3,653 18 days ago GoBGP is an open source BGP implementation designed from scratch for modern environment and implemented in a modern programming language, the Go Programming Language
Quagga Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro
yabgp 238 about 1 month ago YABGP is a yet another Python implementation for BGP Protocol. It can be used to establish BGP connections with all kinds of routers (include real Cisco/HuaWei/Juniper routers and some router simulators like GNS3) and receive/parse BGP messages for future analysis

Misc

Aether Project the first open source Enterprise 5G/LTE Edge-Cloud-as-a-Service platform (ECaaS)
Central Office Re-architected as a Datacenter, CORD Reference Implementation of a Service Delivery Platform that Provides Cloud Economies and Agility
Mininet Spear Narmox A online web service provides a visualization of Mininet Topology
Open Network Automation Platform, ONAP Alignment of the two projects creates a harmonized and comprehensive framework for real-time, policy-driven software automation of virtual network functions that will enable software, network, IT and cloud providers and developers to rapidly create new services
Open Source MANO Community, OSM
OPEN-Orchestrator Project, Open-O

High Performance Network

ASAP2 The ASAP2 accelerator is built on top of eSwitch NIC hardware, and allows either the entire virtual switch, or significant portions of virtual switch or distributed virtual router (DVR) operations to be offloaded to the Mellanox NIC
DPDK DPDK is a set of libraries and drivers for fast packet processing
RDMA Remote direct memory access (RDMA) is a direct memory access from the memory of one computer into that of another without involving either one's operating system. This permits high-throughput, low-latency networking
XDP XDP or eXpress Data Path provides a high performance, programmable network data path in the Linux kernel as part of the IO Visor Project. It is designed to run on any processors. The first supported CPU was Intel x86 and it is now extended to IBM POWER and ARM

Userspace Network Stack

drv-netif-dpdk 197 about 9 years ago drv-netif-dpdk is a DPDK network interface for rump kernels. The combined result is a userspace TCP/IP stack doing packet I/O via DPDK
f-stack 3,865 about 1 month ago F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API
mTCP 2,005 5 months ago mTCP is a highly scalable user-level TCP stack for multicore systems. mTCP source code is distributed under the Modified BSD License. For more detail, please refer to the LICENSE. The license term of io_engine driver and ported applications may differ from the mTCP’s
net-next-nuse 291 6 months ago Network Stack in Userspace (NUSE) NUSE allows us to use Linux network stack as a library which any applications can directory use by linking the library. Each application has its own network stack so, it provides an instant virtualized environment apart from a host operating system
nff-go 1,386 about 2 years ago NFF-Go becomes part of DPDK project umbrella under Linux Foundation! Mirror repo can be found here: . We will accept patches through DPDK mail-list and standard DPDK contribution process too

Analytics

Apache Spot Community-driven cybersecurity project, built from the ground up, to bring advanced analytics to all IT Telemetry data on an open, scalable platform
PNDA The scalable, open source big data analytics platform for networks and services
SNAS Streaming Network Analytics System (project SNAS) is a framework to collect, track and access tens of millions of routing objects (routers, peers, prefixes) in real time

Resources / Books

DevOps for Networking
Network Algorithmics:An Interdisciplinary Approach to Designing Fast Networked Devices
Network Programmability and Automation Skills for the Next-Generation Network Engineer
SDN: Software Defined Networks: An Authoritative Review of Network Programmability Technologies
SDN网络指南 (OpenSource Book in Chinese by Pengfei Ni)
SDN核心技术剖析和实战指南
Software Defined Networking with OpenFlow
圖解OpenFlow
重构网络-SDN架构与实现
深度解析SDN: 利益、战略、技术、实践
软件定义网络:SDN与OpenFlow解析

Resources / Paper

A Guided Tour of Data-Center Networking
A Survey on the Security of Stateful SDN Data Planes
High Performance Datacenter Networks: Architectures, Algorithms, and Opportunities
Re-architecting datacenter networks and stacks for low latency and high performance
SDN A Comprehensive Survey

Resources / Awesome Posts

VXLAN L3应用EVPN,呈现完整overlay网络

Backlinks from these awesome lists:

More related projects: