User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Software-Defined Networking

A awesome list about Software Defined Network (SDN)

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Dec. 1, 2020, 6:08 a.m.

Thank you sdnds-tw & contributors
View Topic on GitHub:
sdnds-tw/awesome-sdn

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Network Operating System

The new network OS designed for white-box switches based on open API.

93
12
10m
Apache-2.0

Base OS switch for networking

1
1
96d
n/a

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.

The first open source network protocol suite offering complete layer2/layer3 functionality for accelerating development and deployment of whitebox networking gear

Extensive switching and routing protocol support with advanced capabilities such as MPLS and SDN

A Linux distribution for "bare metal" switches, that is, network forwarding devices built from commodity components.

A linux network operating system from Dell EMC.

OpenWrt is an operating system (in particular, an embedded operating system) based on the Linux kernel, primarily used on embedded devices to route network traffic. The main components are the Linux kernel, util-linux, uClibc or musl, and BusyBox. All components have been optimized for size, to be small enough for fitting into the limited storage and memory available in home routers.

A SDN OS for white box switches Layer-2/3 feature set with support for OpenFlow, OVSDB, and other protocols.

Software for Open Networking in the Cloud SONiC

An open source, silicon-independent switch operating system for software-defined networks

Install Environment

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

Software Switch

BESS: Berkeley Extensible Software Switch

210
122
63d
n/a

The reference P4 software switch

253
220
32d
Apache-2.0

OpenFlow 1.3 switch.

256
184
6m
n/a

Core OpenFlow agent and infrastructure modules

62
61
20d
n/a

OpenFlow Software Switch written in Erlang

208
81
5y 99d
n/a

Snabb: Simple and fast packet networking

2.7K
302
1y 24d
Apache-2.0

A Smart Ethernet Switch for Earth

6K
744
5d
n/a

Relentlessly focused on data IO speed and efficiency for more flexible and scalable networks and storage

A high-performance software OpenFlow 1.3 switch.

Open vSwitch is a production quality, multilayer virtual switch.

A Programmable, Protocol-Independent Software Switch.

Network Virtualization

FlowVisor - A network hypervisor

144
69
7y 95d
n/a

The OpenVirteX Virtualization Platform

67
50
18d
Apache-2.0

Protocol

gRPC Network Management Interface

207
100
119d
Apache-2.0

gRPC Network Operations Interface (gNOI) defines a set of gRPC-based microservices for executing operational commands on network devices.

71
26
115d
Apache-2.0

A communications protocol that gives access to the forwarding plane of a network switch or router over the network.

OpenFlow Management and Configuration Protocol

A communication protocol which used to manage the OpenvSwitch database.

Controller

Distributed SDN controller built on top of beehive.

56
20
4y 8m
Apache-2.0

Floodlight SDN OpenFlow Controller

656
586
49d
Apache-2.0

Lightweight OpenDaylight runtime library.

59
48
2d
EPL-1.0

The OpenFlow middleware library

43
16
1y 8m
MIT

Example No.de based OpenFLow Controller

57
22
8y 5m
n/a

The NOX Controller

127
86
6y 9m
n/a

The Network Development and Deployment Initiative (NDDI), a partnership between Internet2, Indiana University and others was formed to create a new network platform and complementary software, which together will support global scientific research in a revolutionary new way. The Open Exchange Software Suite (OESS) is the first software product to emerge from this partnership. Internet2's 100G nationwide AL2S network is also a product of this effort.

24
24
61d
n/a

The POX network software platform

512
440
6m
Apache-2.0

A Database-Defined Network Controller

8
8
2y 5m
Apache-2.0

Brocade Vyatta Controller Repo

42
9
5y 47d
n/a

A Resursive SDN Openflow Controller created by SDN Research Section, ETRI.

Open Network Operating System.

A lightweight SDN/Openflow controller written almost entirely in C from scratch.

Software-defined security orchestration solution that automates deployment of virtualized network security functions, like next-generation firewall, intrusion prevention systems and application data controllers

OVN

OVN: Open Virtual Network for Open vSwitch

A full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C.

Simulator/Emulator

Mininet fork adding support for container-based (e.g. Docker) emulated hosts.

193
103
25d
n/a

A lightweight instant virtual network for rapid prototyping SDN

41
3
2y 6m
Apache-2.0

A world-renowned software tool for network planning

MaxiNet extends the famous Mininet emulation environment to span the emulation across several physical machines. This allows to emulate very large software-defined networks.

An Instant Virtual Network on your Laptop (or other PC)

A discrete-event network simulator that supports OpenFlow environment.

Language

The Frenetic Programming Language and Runtime System

192
53
11d
n/a

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 is one member of the Frenetic family of SDN programming languages.

Library

OpenFlow protocol bindings for multiple languages

90
126
65d
n/a

Haskell library implementing OpenFlow protocol versions 1.0 and 1.3

19
7
3y 60d
BSD-3-Clause

Serialization library for OpenFlow

13
4
5y 8m
n/a

Oflib for Node.js

15
17
8y 11m
BSD-3-Clause

OpenFlow 1.0.0 protocol implementation

26
10
8y 54d
Apache-2.0

A Java implementation of low-level OpenFlow packet marshalling/unmarshalling and IO operations.

Scapy is a powerful interactive packet manipulation program.

Test

Mirror of oflops (cbench) from git://gitosis.stanford.edu/oflops.git

22
20
4y 10m
n/a

OpenFlow Switch Test Framework

77
104
54d
n/a

Packet Test Framework

70
53
13d
n/a

A tool to test OpenFlow controller application for the NOX controller platform.

Virtualisation Testbed for NFV/SDN Environment.

STS

SDN Troubleshooting System, simulates network devices, allowing programmatically test cases generation.

NFV

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

Overlay Network

NVGRE-Network-Virtualization-using-Generic-Routing-Encapsulation

Router

BGP4R is a BGP-4 ruby library to create, send, and receive BGP messages in an object oriented manner.

26
7
1y 35d
n/a

A BGPv4 daemon to distribute an infrequently-changing set of static routes

4
1
1y 10m
n/a

BGP implemented in the Go Programming Language

2.07K
439
1d
Apache-2.0

Yet Another BGP Python Implementation

173
56
63d
Apache-2.0

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.

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.

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.

Misc

Reference Implementation of a Service Delivery Platform that Provides Cloud Economies and Agility.

A online web service provides a visualization of Mininet Topology

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.

High Performance Network

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 is a set of libraries and drivers for fast packet processing.

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

Userspace Network Stack

DPDK interface driver for userspace TCP/IP stack

188
57
5y 45d
n/a

F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.

2.65K
673
6d
n/a

mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems

1.56K
379
1y 14d
n/a

Network Stack in Userspace

241
59
4y 5m
n/a

NFF-Go -Network Function Framework for GO (former YANFF)

980
120
103d
BSD-3-Clause

Analytics

Community-driven cybersecurity project, built from the ground up, to bring advanced analytics to all IT Telemetry data on an open, scalable platform

The scalable, open source big data analytics platform for networks and services.

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.

Books

Paper

Awesome Posts