Commit 7032161beb0e3081d6d9157921a4c64c74c1113b
0 parents
new project
Showing
1 changed file
with
110 additions
and
0 deletions
README
0 → 100755
| 1 | +++ a/README | |
| 1 | + OpenFlow Reference Release <http://openflowswitch.org> | |
| 2 | + | |
| 3 | +What is OpenFlow? | |
| 4 | +----------------- | |
| 5 | + | |
| 6 | +OpenFlow is a flow-based switch specification designed to enable | |
| 7 | +researchers to run experiments in live networks. OpenFlow is based on a | |
| 8 | +simple Ethernet flow switch that exposes a standardized interface for | |
| 9 | +adding and removing flow entries. | |
| 10 | + | |
| 11 | +An OpenFlow switch consists of three parts: (1) A "flow table" in | |
| 12 | +which each flow entry is associated with an action telling the switch | |
| 13 | +how to process the flow, (2) a "secure channel" connecting the switch | |
| 14 | +to a remote process (a controller), allowing commands and packets to | |
| 15 | +be sent between the controller and the switch, and (3) an OpenFlow | |
| 16 | +protocol implementation, providing an open and standard way for a | |
| 17 | +controller to talk to the switch. | |
| 18 | + | |
| 19 | +An OpenFlow switch can thus serve as a simple datapath element that | |
| 20 | +forwards packets between ports according to flow actions defined by | |
| 21 | +the controller using OpenFlow commands. Example actions are: | |
| 22 | + | |
| 23 | + - Forward this flow's packets to the given port(s) | |
| 24 | + - Drop this flow's packets | |
| 25 | + - Encapsulate and forward this flow's packets to the controller. | |
| 26 | + | |
| 27 | +The OpenFlow switch is defined in detail in the OpenFlow switch | |
| 28 | +Specification [2]. | |
| 29 | + | |
| 30 | +What's here? | |
| 31 | +------------ | |
| 32 | + | |
| 33 | +This distribution includes one reference implementations of an | |
| 34 | +OpenFlow switch. This implementation has the following components: | |
| 35 | + | |
| 36 | + - ofdatapath, which implements the flow table in user space. | |
| 37 | + | |
| 38 | + - ofprotocol, a program that implements the secure channel | |
| 39 | + component of the reference switch. | |
| 40 | + | |
| 41 | + - dpctl, a tool for configuring the switch. | |
| 42 | + | |
| 43 | +This distribution includes some additional software as well: | |
| 44 | + | |
| 45 | + - controller, a simple program that connects to any number of | |
| 46 | + OpenFlow switches, commanding them to act as regular MAC | |
| 47 | + learning switches. | |
| 48 | + | |
| 49 | + - vlogconf, a utility that can adjust the logging levels of a | |
| 50 | + running ofprotocol or controller. | |
| 51 | + | |
| 52 | + - ofp-pki, a utility for creating and managing the public-key | |
| 53 | + infrastructure for OpenFlow switches. | |
| 54 | + | |
| 55 | + - A patch to tcpdump that enables it to parse OpenFlow | |
| 56 | + messages. | |
| 57 | + | |
| 58 | + - A regression suite that tests OpenFlow functionality, please | |
| 59 | + see regress/README. | |
| 60 | + | |
| 61 | + - A Wireshark dissector that can decode the OpenFlow wire | |
| 62 | + protocol. Please see utilities/wireshark_dissectors/README. | |
| 63 | + | |
| 64 | +For installation instructions, read INSTALL. Each userspace program | |
| 65 | +is also accompanied by a manpage. | |
| 66 | + | |
| 67 | +What's NOT here? | |
| 68 | +---------------- | |
| 69 | + | |
| 70 | +The reference implementation no longer includes the Linux kernel module | |
| 71 | +or the NetFPGA implementation. The OpenFlow consortium intends to | |
| 72 | +release these separately from the reference design. | |
| 73 | + | |
| 74 | +Platform support | |
| 75 | +---------------- | |
| 76 | + | |
| 77 | +Other than the userspace switch implementation, the software in the | |
| 78 | +OpenFlow distribution should compile under Unix-like environments such | |
| 79 | +as Linux, FreeBSD, Mac OS X, and Solaris. Our primary test environment | |
| 80 | +is Debian GNU/Linux. Please contact us with portability-related bug | |
| 81 | +reports or patches. | |
| 82 | + | |
| 83 | +The userspace datapath implementation should be easy to port to | |
| 84 | +Unix-like systems. The interface to network devices, in netdev.c, is | |
| 85 | +the code most likely to need changes. So far, only Linux is | |
| 86 | +supported. We welcome ports to other platforms. | |
| 87 | + | |
| 88 | +GCC is the expected compiler. | |
| 89 | + | |
| 90 | +Bugs/Shortcomings | |
| 91 | +----------------- | |
| 92 | + | |
| 93 | +- The flow table does not support the "normal processing" action. | |
| 94 | + | |
| 95 | +References | |
| 96 | +---------- | |
| 97 | + | |
| 98 | + [1] OpenFlow: Enabling Innovation in College Networks. Whitepaper. | |
| 99 | + <http://openflowswitch.org/documents/openflow-wp-latest.pdf> | |
| 100 | + | |
| 101 | + [2] OpenFlow Switch Specification. | |
| 102 | + <http://openflowswitch.org/documents/openflow-spec-latest.pdf> | |
| 103 | + | |
| 104 | +Contact | |
| 105 | +------- | |
| 106 | + | |
| 107 | +Public discussion list: openflow-discuss@openflowswitch.org | |
| 108 | +Direct e-mail: info@openflowswitch.org | |
| 109 | + | |
| 110 | +Web: http://openflowswitch.org/ | ... | ... |