Setting tag sliver-openvswitch-2.2.90-1
[sliver-openvswitch.git] / debian / openvswitch-switch.README.Debian
index ef92d3e..44154bd 100644 (file)
 README.Debian for openvswitch-switch
 ---------------------------------
 
-* The switch must be configured before it can be used.  Edit
-  /etc/default/openvswitch-switch, then start the switch manually with
-  "/etc/init.d/openvswitch-switch start".
+To use the Linux kernel-based switch implementation, you will need an
+Open vSwitch kernel module.  There are multiple ways to obtain one.
+In order of increasing manual effort, these are:
 
-* To use the Linux kernel-based switch implementation, you will need
-  to build and install the Open vSwitch kernel module.  To do so, install
-  the openvswitch-datapath-source package, then follow the instructions
-  given in /usr/share/doc/openvswitch-datapath-source/README.Debian
+       * Use a Linux kernel 3.3 or later, which has an integrated Open
+        vSwitch kernel module.
 
-* This package does not yet support the userspace datapath-based
-  switch implementation.
+        The upstream Linux kernel module lacks a few features that
+        are in the third-party module.  For details, please see the
+        FAQ, "What features are not available in the Open vSwitch
+        kernel datapath that ships as part of the upstream Linux
+        kernel?".
 
- -- Ben Pfaff <blp@nicira.com>, Mon, 30 Aug 2010 09:51:19 -0700
+       * Install the "openvswitch-datapath-dkms" Debian package that
+        you built earlier.  This should automatically build and
+        install the Open vSwitch kernel module for your running
+        kernel.
+
+        This option requires that you have a compiler and toolchain
+        installed on the machine where you run Open vSwitch, which
+        may be unacceptable in some production server environments.
+
+       * Install the "openvswitch-datapath-source" Debian package, use
+        "module-assistant" to build a Debian package of the Open
+        vSwitch kernel module for your kernel, and then install that
+        Debian package.
+
+        You can install the kernel module Debian packages that you
+        build this way on the same machine where you built it or on
+        another machine or machines, which means that you don't
+        necessarily have to have any build infrastructure on the
+        machines where you use the kernel module.
+
+        /usr/share/doc/openvswitch-datapath-source/README.Debian has
+        details on the build process.
+
+       * Build and install the kernel module by hand.
+
+
+Debian network scripts integration
+----------------------------------
+This package lets a user to optionally configure Open vSwitch bridges
+and ports from /etc/network/interfaces. Please refer to the interfaces(5)
+manpage for more details regarding /etc/network/interfaces.
+
+The stanzas that configure the OVS bridges should begin with "allow-ovs"
+followed by name of the bridge. Here is an example.
+allow-ovs br0
+
+The stanzas that configure the OVS ports should begin with
+"allow-${bridge-name}" followed by name of the port. Here is an example.
+allow-br0 eth0
+
+The following OVS specific "command" options are supported:
+
+    - ovs_type: This can either be OVSBridge, OVSPort, OVSIntPort, OVSBond or
+      OVSTunnel depending on whether you configure a bridge, port, an internal
+      port, a bond or a tunnel. This is a required option.
+
+    - ovs_ports: This option specifies all the ports that belong to a bridge.
+
+    - ovs_bridge: This options specifies a bridge to which a port belongs.
+      This is a required option for a port.
+
+    - ovs_bonds: This option specifies the list of physical interfaces to be
+      bonded together.
+
+    - ovs_tunnel_type: For "OVSTunnel" interfaces, the type of the tunnel.
+      For example, "gre", "vxlan", etc.
+
+    - ovs_tunnel_options: For "OVSTunnel" interfaces, this field should be
+      used to specify the tunnel options like remote_ip, key, etc.
+
+    - ovs_options: This option lets you add extra arguments to a ovs-vsctl
+      command. See examples.
+
+    - ovs_extra: This option lets you run additional ovs-vsctl commands,
+      separated by "--" (double dash). Variables can be part of the "ovs_extra"
+      option. You can provide all the standard environmental variables
+      described in the interfaces(5) man page. You can also pass shell
+      commands.
+
+More implementation specific details can be seen in the examples.
+
+Examples:
+--------
+ex 1: A standalone bridge.
+
+allow-ovs br0
+iface br0 inet static
+    address 192.168.1.1
+    netmask 255.255.255.0
+    ovs_type OVSBridge
+
+ex 2: A bridge with one port.
+
+allow-ovs br0
+iface br0 inet dhcp
+    ovs_type OVSBridge
+    ovs_ports eth0
+
+allow-br0 eth0
+iface eth0 inet manual
+    ovs_bridge br0
+    ovs_type OVSPort
+
+ex 3: A bridge with multiple physical ports.
+
+allow-ovs br0
+iface br0 inet dhcp
+    ovs_type OVSBridge
+    ovs_ports eth0 eth1
+
+allow-br0 eth0
+iface eth0 inet manual
+    ovs_bridge br0
+    ovs_type OVSPort
+
+allow-br0 eth1
+iface eth1 inet manual
+    ovs_bridge br0
+    ovs_type OVSPort
+
+ex 4: A bridge with an OVS internal port.
+
+allow-ovs br1
+iface br1 inet static
+    address 192.168.1.1
+    netmask 255.255.255.0
+    ovs_type OVSBridge
+    ovs_ports vlan100
+
+allow-br1 vlan100
+iface vlan100 inet manual
+    ovs_bridge br1
+    ovs_type OVSIntPort
+    ovs_options tag=100
+    ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)
+
+ex 5: Bonding.
+
+allow-ovs br2
+iface br2 inet static
+    address 192.170.1.1
+    netmask 255.255.255.0
+    ovs_type OVSBridge
+    ovs_ports bond0
+
+allow-br2 bond0
+iface bond0 inet manual
+    ovs_bridge br2
+    ovs_type OVSBond
+    ovs_bonds eth2 eth3
+    ovs_options bond_mode=balance-tcp lacp=active
+
+ex 6: Tunnel.
+
+allow-ovs br1
+iface br1 inet static
+    address 192.168.1.1
+    netmask 255.255.255.0
+    ovs_type OVSBridge
+    ovs_ports gre1
+
+allow-br1 gre1
+iface gre1 inet manual
+    ovs_bridge br1
+    ovs_type OVSTunnel
+    ovs_tunnel_type gre
+    ovs_tunnel_options options:remote_ip=182.168.1.2 options:key=1
+
+ex 7: Create and destroy bridges.
+
+ifup --allow=ovs $list_of_bridges
+ifdown --allow=ovs $list_of_bridges