= Installing Open V switch on cons-wm-01 = Identifying information: {{{ hostname -f wm-asngw-01.orbit-lab.org more /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=9.04 DISTRIB_CODENAME=jaunty DISTRIB_DESCRIPTION="Ubuntu 9.04 uname -a Linux wm-asngw-01 2.6.28-18-server #60-Ubuntu SMP Fri Mar 12 05:41:54 UTC 2010 i686 GNU/Linux ifconfig eth0 Link encap:Ethernet HWaddr 00:1f:29:0e:3a:68 inet addr:10.41.0.3 Bcast:10.41.255.255 Mask:255.255.0.0 inet6 addr: fe80::21f:29ff:fe0e:3a68/64 Scope:Link UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 RX packets:636384 errors:0 dropped:0 overruns:0 frame:0 TX packets:828244 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:176839258 (176.8 MB) TX bytes:91011015 (91.0 MB) Interrupt:17 ... }}} ---- === 9/20/2010 === Currently In opt there is an existing open openvsiwtch tarball, but it seems to be for a slightly older version. I've copied the newest stable version from the openvswitch website. {{{ sudo wget http://openvswitch.org/releases/openvswitch-1.1.0pre2.tar.gz }}} I'm bascially following [http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL.Linux;hb=HEAD Linux] and [http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL.OpenFlow;hb=HEAD OpenFlow] guides. The build process went as follows: 1. I checked for some prerequisite apt-packages: * pkg-configure * libssl-dev * kernel-headers * build-essential 1. Run configure with kernel flag {{{ ./configure --with-l26=/lib/modules/`uname -r`/build }}} It ran from /opt/openvswitch-1.1.0pre2. Built kernel modules since the are Needed for the Openflow Implementation. 1. make 1. make install 1. Insert the modules {{{ insmod datapath/linux-2.6/openvswitch_mod.ko }}} Dmesg should note the addtion of the module: {{{ [5343452.547746] Open vSwitch 1.1.0pre2, built Sep 20 2010 17:04:53 }}} ---- == NOT SURE IF THIS IS NEEDED == The final step of the build involves initializing a config database: {{{ http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL.Linux;hb=HEAD }}} Once Built we need to start the database server and the switch damemon before we can do any thing with it: 1. Start the server with this command: {{{ ovsdb-server /usr/local/etc/ovs-vswitchd.conf.db --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,managers --private-key=db:SSL,private_key --certificate=db:SSL,certificate --bootstrap-ca-cert=db:SSL,ca_cert & }}} 1. initialize the database using ovs-vsctl (only needs to be done once) {{{ ovs-vsctl --no-wait init }}} 1. Once the database server is started, we next can start the switch server: {{{ ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock & }}} ---- We can create Virtual interfaces with the IP command [http://linux.die.net/man/8/ip IP manual] Something of the form {{{ >ip link add type veth }}} Once this is created, we can add the virtual interface to the open flow switch with ovs-dpctl. {{{ >ovs-dpctl add-dp dp0 >ovs-dpctl add-if dp0 veth0 >ovs-dpctl show system@dp0: flows: cur:0, soft-max:1024, hard-max:1048576 ports: cur:2, max:1024 groups: max:16 lookups: frags:0, hit:0, missed:12, lost:0 queues: max-miss:100, max-action:100 port 0: dp0 (internal) port 1: veth0 }}}