Merge branch 'master' of nicira.dyndns.org:/srv/git/openflow
[sliver-openvswitch.git] / 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 a Linux-specific reference implementation
34 of an OpenFlow switch, comprising:
35
36         - A Linux kernel module that implements the flow table and
37           OpenFlow protocol.
38
39         - secchan, a program that implements the secure channel
40           component of the reference switch.
41
42         - dpctl, a tool for configuring the kernel module.
43
44 This distribution includes some additional software as well:
45
46         - controller, a simple program that connects to any number of
47           OpenFlow switches, commanding them to act as regular MAC
48           learning switches.
49
50         - vlogconf, a utility that can adjust the logging levels of a
51           running secchan or controller.
52
53         - ofp-pki, a utility for creating and managing the public-key
54           infrastructure for OpenFlow switches.
55
56         - A patch to tcpdump that enables it to parse OpenFlow
57           messages.
58
59 For installation instructions, read INSTALL.  This distribution also
60 includes manpages for each of its userspace programs, in the man/
61 directory.
62
63 Platform support
64 ----------------
65
66 Other than the Linux kernel module, the software in the OpenFlow
67 distribution should compile under Unix-like environments such as
68 Linux, FreeBSD, Mac OS X, and Solaris.  Our primary test environment
69 is Debian GNU/Linux.  Please contact us with portability-related bug
70 reports or patches.
71
72 The Linux kernel module is, of course, Linux-specific, and the secchan
73 and dpctl utilities will not be as useful without the kernel module.
74 The testing of the kernel module has focused on Linux 2.6.23.  Linux
75 2.6 releases from 2.6.15 onward and Linux 2.4 releases from 2.4.20
76 onward should also work.
77
78 GCC is the expected compiler.
79
80 Bugs/Shortcomings
81 -----------------
82
83 - The current flowtable does not support all statistics messages
84   mentioned in the Type 0 OpenFlow spec.
85
86 - The flowtable does not support the "normal processing" action.
87
88 - Configure/build system does not support separate build directory for
89   the datapath.  ./configure must be run from the source root.
90
91 - dpctl dump-flows may freeze when large numbers of flows are in the
92   flow table.  This has no effect on the datapath.
93
94 References
95 ----------
96
97     [1] OpenFlow: Enabling Innovation in College Networks.  Whitepaper.
98         <http://openflowswitch.org/alpha/openflow-wp-v0.1.pdf>
99
100     [2] OpenFlow Switch Specification.
101         <http://openflowswitch.org/alpha/openflow-spec-v0.2.pdf>        
102
103 Contact 
104 -------
105
106 e-mail: info@openflowswitch.org
107 www: http://openflowswitch.org/