X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=debian%2Fopenvswitch-switch.README.Debian;h=44154bd21718bfb9a491c872040ea3cd1b02fa9d;hb=HEAD;hp=ef92d3eef5176e4c31a9defaa31f878ec7546527;hpb=3d92fe960c9ad10fab3978623e4f77045340c36b;p=sliver-openvswitch.git diff --git a/debian/openvswitch-switch.README.Debian b/debian/openvswitch-switch.README.Debian index ef92d3eef..44154bd21 100644 --- a/debian/openvswitch-switch.README.Debian +++ b/debian/openvswitch-switch.README.Debian @@ -1,16 +1,178 @@ 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 , 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