For SNAT, don't store the pre-fragment L2 header before actions are applied.
[sliver-openvswitch.git] / README
diff --git a/README b/README
index dd8ef51..8b9b7bd 100644 (file)
--- a/README
+++ b/README
@@ -8,7 +8,7 @@ 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.
 
 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
+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
 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
@@ -16,7 +16,7 @@ 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.
 
 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
+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:
 
 forwards packets between ports according to flow actions defined by
 the controller using OpenFlow commands.  Example actions are:
 
@@ -24,16 +24,16 @@ the controller using OpenFlow commands.  Example actions are:
     - Drop this flow's packets
     - Encapsulate and forward this flow's packets to the controller.
 
     - 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
+The OpenFlow switch is defined in detail in the OpenFlow switch
 Specification [2].
 
 What's here?
 ------------
 
 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:
+This distribution includes two 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.
 
        - A Linux kernel module that implements the flow table and
           OpenFlow protocol, in the datapath directory.
@@ -43,8 +43,14 @@ the following components:
 
        - dpctl, a tool for configuring the kernel module.
 
 
        - dpctl, a tool for configuring the kernel module.
 
-The second implementation is a single userspace program, named
-"switch", that integrates all three parts of an OpenFlow switch.
+The second implementation has the following components:
+
+        - udatapath, which implements the same functionality as the
+          Linux kernel module in userspace, at a cost in performance.
+
+        - secchan, a program that implements the secure channel
+          component of the reference switch (the same program used in
+          the kernel-based implementation).
 
 This distribution includes some additional software as well:
 
 
 This distribution includes some additional software as well:
 
@@ -61,9 +67,8 @@ This distribution includes some additional software as well:
        - A patch to tcpdump that enables it to parse OpenFlow
           messages.
 
        - A patch to tcpdump that enables it to parse OpenFlow
           messages.
 
-For installation instructions, read INSTALL.  This distribution also
-includes manpages for each of its userspace programs, in the man/
-directory.
+For installation instructions, read INSTALL.  Each userspace program
+is also accompanied by a manpage.
 
 Platform support
 ----------------
 
 Platform support
 ----------------
@@ -74,15 +79,15 @@ 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.
 
 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 Linux kernel module is, of course, Linux-specific, and the dpctl
+utility will not be useful without the kernel module.  The testing of
+the kernel module has focused on Linux 2.6.26.  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
+The userspace datapath implementation should be easy to port to
 Unix-like systems.  The interface to network devices, in netdev.c, is
 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
+the code most likely to need changes.  So far, only Linux is
 supported.  We welcome ports to other platforms.
 
 GCC is the expected compiler.
 supported.  We welcome ports to other platforms.
 
 GCC is the expected compiler.
@@ -90,7 +95,7 @@ GCC is the expected compiler.
 Bugs/Shortcomings
 -----------------
 
 Bugs/Shortcomings
 -----------------
 
-- The flowtable does not support the "normal processing" action.
+- The flow table does not support the "normal processing" action.
 
 References
 ----------
 
 References
 ----------