]> git.proxmox.com Git - mirror_frr.git/blob - tests/topotests/docker/inner/openvswitch.sh
Merge pull request #3093 from donaldsharp/bgp_node_continued
[mirror_frr.git] / tests / topotests / docker / inner / openvswitch.sh
1 #!/bin/bash
2 #
3 # Copyright 2018 Network Device Education Foundation, Inc. ("NetDEF")
4 #
5 # Permission is hereby granted, free of charge, to any person obtaining
6 # a copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish,
9 # distribute, sublicense, and/or sell copies of the Software, and to
10 # permit persons to whom the Software is furnished to do so, subject to
11 # the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be
14 # included in all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20 # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 # SOFTWARE.
24
25 # Load shared functions
26 CDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
27 . $CDIR/funcs.sh
28
29 #
30 # Script begin
31 #
32
33 log_info "Configuring OpenvSwitch...."
34
35 # Configure OpenvSwitch so we are able to run mininet
36 mkdir -p /var/run/openvswitch
37 ovsdb-tool create /etc/openvswitch/conf.db \
38 /usr/share/openvswitch/vswitch.ovsschema
39 ovsdb-server /etc/openvswitch/conf.db \
40 --remote=punix:/var/run/openvswitch/db.sock \
41 --remote=ptcp:6640 --pidfile=ovsdb-server.pid >/dev/null 2>/dev/null & \
42 disown
43 ovs-vswitchd >/dev/null 2>/dev/null & disown
44
45 sleep 2
46
47 ovs-vsctl --no-wait -- init
48 ovs_version=$(ovs-vsctl -V | grep ovs-vsctl | awk '{print $4}')
49 ovs_db_version=$(\
50 ovsdb-tool schema-version /usr/share/openvswitch/vswitch.ovsschema)
51 ovs-vsctl --no-wait -- set Open_vSwitch . db-version="${ovs_db_version}"
52 ovs-vsctl --no-wait -- set Open_vSwitch . ovs-version="${ovs_version}"
53 ovs-vsctl --no-wait -- set Open_vSwitch . system-type="docker-ovs"
54 ovs-vsctl --no-wait -- set Open_vSwitch . system-version="0.1"
55 ovs-vsctl --no-wait -- \
56 set Open_vSwitch . external-ids:system-id=`cat /proc/sys/kernel/random/uuid`
57 ovs-vsctl --no-wait -- set-manager ptcp:6640
58 ovs-appctl -t ovsdb-server \
59 ovsdb-server/add-remote db:Open_vSwitch,Open_vSwitch,manager_options