Skip to content

An awesome list of papers, projects and communities about SDN.

License

Notifications You must be signed in to change notification settings

snlab-freedom/awesome-sdn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Awesome - Software Defined Networking

Awesome Build Status

A curated list of awesome SDN (Software Defined Networking) papers, projects and communities. Inspired by awesome-go and awesome-deep-learning-papers.

Table of Contents

Background

Before this list, there exist other lists to summarize the resources about SDN, such as Google SDN Reading List, ONF Recommended SDN Reading List and Awesome SDN from sdnds-tw. But these lists only focus on one aspect of the classic research papers, popular opensource projects and well-known communities. In my opinion, a comprehensive list about all of the aspects I just mentioned is necessary. Both beginners and professional people will benefit from it.

Software Projects

The initial version is forked from SDNDS-TW but re-organized. Thanks again!

Distributed Network OS

Controller

  • NOX - An open source development platform for C++-based software-defined networking (SDN) control applications.
  • NodeFlow - An OpenFlow Controller Node Style.
  • POX - A networking software platform written in Python
  • Ryu - A component-based software defined networking framework.
  • Floodlight - A java-based openflow controller.
  • Vyatta - The first commercial Controller built directly from OpenDaylight.
  • OpenContrail - A SDN project that utilizes SDN & NFV and provides all the necessary components for network virtualization.
  • IRIS - A Resursive SDN Openflow Controller created by SDN Research Section, ETRI.
  • Open MUL - A lightweight SDN/Openflow controller written almost entirely in C from scratch.
  • OESS - The Open Exchange Software Suite to configure and control OpenFlow Enabled switches.
  • Beehive Network Controller - A distributed SDN controller built on top of Beehive. It supports OpenFlow but can be easily extended for other southbound protocols.
  • Ravel - A software-defined networking (SDN) controller that uses a standard SQL database to represent the network.
  • Trema - A full-stack, easy-to-use framework for developing OpenFlow controllers in Ruby and C.

Software Switch

  • OpenvSwtich - Open vSwitch is a production quality, multilayer virtual switch.
  • Indigo - Indigo is an open source project aimed at enabling support for OpenFlow on physical and hypervisor switches.
  • CPqD- An OpenFlow 1.3 compatible user-space software switch implementation
  • Lagopus - A high-performance software OpenFlow 1.3 switch.
  • LINC-Switch - A pure OpenFlow software switch written in Erlang
  • snabbswitch - An open source virtualized Ethernet networking stack.

Network Devices Support

  • PicOS - A SDN OS for white box switches Layer-2/3 feature set with support for OpenFlow, OVSDB, and other protocols.
  • OpenNetworkLinux - A Linux distribution for "bare metal" switches, that is, network forwarding devices built from commodity components.
  • OpenSwitch - A linux network oerating system from Hewlett-Packard.

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.
  • POF - Protocol Oblivious Forwarding

SDN Application

TBD

Network Programming Language

  • 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.
  • Frenetic - The Frenetic Programming Language and Runtime System
  • Pyretic - Pyretic is one member of the Frenetic family of SDN programming languages.
  • NEMO - A domain specific language (DSL) based on abstraction of network models and conclusion of operation patterns.

Network Virtualization

  • FlowVisor - 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 - A network hypervisor that can create multiple virtual and programmable networks on top of a single physical infrastructure.

Library

  • loxigen - LoxiGen is a tool that generates OpenFlow protocol libraries for a number of languages.
  • openfaucet - openfaucet is a pure Python implementation of the OpenFlow 1.0.0 protocol, based on Twisted.
  • oflib-node - Oflib-node is an OpenFlow protocol library for Node. It converts between OpenFlow wire protocol messages and Javascript objects.
  • OpenFlowJ - A Java implementation of low-level OpenFlow packet marshalling/unmarshalling and IO operations.
  • nettle - A Haskell library for working with the OpenFlow protocol.
  • OCaml OpenFlow - A serialization and protocol library for OpenFlow.

Simulator / Emulator

  • Mininet - An Instant Virtual Network on your Laptop (or other PC)
  • Multinet - The goal of Multinet is to provide a fast, controlled and resource-efficient way to boot large-scale SDN topologies.
  • MaxiNet - A distributed emulator of Software-Defined Networks.
  • OpenNet - A simulator for software-defined wireless local area network.
  • EstiNet - A world-renowned software tool for network planning.
  • ns-3 - A discrete-event network simulator that supports openflow environment.

NetDevOp

  • NetIDE - Enable Network App programs to be executed, systematically tested, and refined on a variety of concrete SDN platforms.

Network Monitor / Analysis

  • PerfSonar - perfSONAR is a network measurement toolkit designed to provide federated coverage of paths, and help to establish end-to-end usage expectations.

Test Tool

  • oftest - OpenFlow Testing Framework.
  • STS - SDN Troubleshooting System, simulates network devices, allowing programmatically test cases generation.
  • nice-of - A tool to test OpenFlow controller application for the NOX controller platform.
  • OpenSDNCore - Virtualisation Testbed for NFV/SDN Environment.
  • OFLOPS - OpenFlow Operations Per Second. A benchmarking suite for openflow switches.

Orchestrator

Misc

Hardwares

OpenFlow Switch

TBD

NetFPGA

TBD

Chips

TBD

Research Papers

Please go to ONF SDN Reading List. Thanks again to ONF!

Additional Research Papers

Although ONF SDN Reading List has been very comprehensive, we may also find some other interesting papers. We will update this list into ONF SDN Reading List if necessary.

TBD

Tutorials

OpenDaylight

ONOS

Courses

Communities

Organization

  • ONF - Open Networking Foundation.
  • Open Source SDN - A collection of open source projects about SDN. Launched by ONF.
  • ON.Lab
  • SDxCentral - The Trusted News & Resource Site for Sofware-defined Everything (SDx), SDDC, SDN, SDS, Containers NFV, Cloud and Virtualization.
  • SDNHub
  • IETF Software Defined Networking Research Group (sdnrg)
  • SDNLAB - A leading platform of technology media and service which focus on innovative network technology in China.
  • OCP - A collaborative community focused on redesigning hardware technology to efficiently support the growing demands on compute infrastructure.

Blogs

Q & A

Acknowledgement

Thanks to Open Networking Foundation for summarizing the awesome paper reading list.

Thanks to SDNDS-TW for drafting the awesome list of SDN software resources.

About

An awesome list of papers, projects and communities about SDN.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published