-
Notifications
You must be signed in to change notification settings - Fork 0
OpenFlow related code for ns-3 with some workarounds. Original code is at http://code.nsnam.org/jpelkey3/openflow/ by Josh Pelkey.
License
TakashiSasaki/openflow
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
OpenFlow MPLS Notes: -------------------- This version of the OpenFlow reference system (0.89r2) was modified by Ericsson research to support MPLS. See http://www.openflowswitch.org/wk/index.php/OpenFlowMPLS for details. To build this version follow the instructions for building OpenFlow as normal but note that there is one additional dependency: - You must have libxml2-devel installed! OpenFlow Reference Release <http://openflowswitch.org> What is OpenFlow? ----------------- OpenFlow is a flow-based switch specification designed to enable researchers to run experiments in live networks. OpenFlow is based on a simple Ethernet flow switch that exposes a standardized interface for adding and removing flow entries. An OpenFlow switch consists of three parts: (1) A "flow table" in which each flow entry is associated with an action telling the switch how to process the flow, (2) a "secure channel" connecting the switch to a remote process (a controller), allowing commands and packets to be sent between the controller and the switch, and (3) an OpenFlow protocol implementation, providing an open and standard way for a controller to talk to the switch. An OpenFlow switch can thus serve as a simple datapath element that forwards packets between ports according to flow actions defined by the controller using OpenFlow commands. Example actions are: - Forward this flow's packets to the given port(s) - Drop this flow's packets - Encapsulate and forward this flow's packets to the controller. The OpenFlow switch is defined in detail in the OpenFlow switch Specification [2]. What's here? ------------ This distribution includes two different reference implementations of an OpenFlow switch. The first implementation, which is closely tied to Linux because it is partially implemented in the Linux kernel, has the following components: - A Linux kernel module that implements the flow table and OpenFlow protocol, in the datapath directory. - secchan, a program that implements the secure channel component of the reference switch. - dpctl, a tool for configuring the kernel module. - Hardware acceleration support, see README.hwtables The second implementation is a single userspace program, named "switch", that integrates all three parts of an OpenFlow switch. This distribution includes some additional software as well: - controller, a simple program that connects to any number of OpenFlow switches, commanding them to act as regular MAC learning switches. - vlogconf, a utility that can adjust the logging levels of a running secchan or controller. - ofp-pki, a utility for creating and managing the public-key infrastructure for OpenFlow switches. - A patch to tcpdump that enables it to parse OpenFlow messages. - A regression suite that tests OpenFlow functionality, please see regress/README. - A Wireshark dissector that can decode the OpenFlow wire protocol. Please see utilities/wireshark_dissectors/README. For installation instructions, read INSTALL. Each userspace program is also accompanied by a manpage. Platform support ---------------- Other than the Linux kernel module and userspace switch implementation, the software in the OpenFlow distribution should compile under Unix-like environments such as Linux, FreeBSD, Mac OS X, and Solaris. Our primary test environment is Debian GNU/Linux. Please contact us with portability-related bug reports or patches. The Linux kernel module is, of course, Linux-specific, and the secchan and dpctl utilities will not be as useful without the kernel module. The testing of the kernel module has focused on Linux 2.6.23. Linux 2.6 releases from 2.6.15 onward and Linux 2.4 releases from 2.4.20 onward should also work. The userspace switch implementation should be easy to port to Unix-like systems. The interface to network devices, in netdev.c, is the only code that should need to change. So far, only Linux is supported. We welcome ports to other platforms. GCC is the expected compiler. Bugs/Shortcomings ----------------- - The flowtable does not support the "normal processing" action. References ---------- [1] OpenFlow: Enabling Innovation in College Networks. Whitepaper. <http://openflowswitch.org/documents/openflow-wp-latest.pdf> [2] OpenFlow Switch Specification. <http://openflowswitch.org/documents/openflow-spec-latest.pdf> Contact ------- e-mail: info@openflowswitch.org www: http://openflowswitch.org/
About
OpenFlow related code for ns-3 with some workarounds. Original code is at http://code.nsnam.org/jpelkey3/openflow/ by Josh Pelkey.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published