gns3-registry/docker/openvswitch/boot.sh
2024-05-09 00:26:22 +07:00

58 lines
1.4 KiB
Bash

#!/bin/bash
#
# Copyright (C) 2024 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
if [[ ! -f "/etc/openvswitch/conf.db" ]]
then
ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema
ovsdb-server --detach --pidfile --remote=punix:/var/run/openvswitch/db.sock
ovs-vswitchd --detach --pidfile
ovs-vsctl --no-wait init
x=0
until [[ $x = "4" ]]; do
ovs-vsctl add-br br$x
ovs-vsctl set bridge br$x datapath_type=netdev
x=$((x+1))
done
if [[ $MANAGEMENT_INTERFACE == 1 ]]
then
x=1
else
x=0
fi
until [[ $x = "16" ]]; do
ovs-vsctl add-port br0 eth$x
x=$((x+1))
done
else
ovsdb-server --detach --pidfile --remote=punix:/var/run/openvswitch/db.sock
ovs-vswitchd --detach --pidfile
fi
x=0
until [[ $x = "4" ]]; do
ip link set dev br$x up
x=$((x+1))
done
/bin/bash