init(): initial commit
This commit is contained in:
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eux pipefail
|
||||
|
||||
# containerlab needs some time to setup links
|
||||
sleep $CONTAINERLAB_TIMEOUT
|
||||
|
||||
if [ "$ROLE" = "switch" ]; then
|
||||
echo "Configuring as switch with MAC=$MAC"
|
||||
|
||||
if [ "$VLAN" = "yes" ]; then
|
||||
ip link add name br0 type bridge vlan_filtering 1
|
||||
else
|
||||
ip link add name br0 type bridge
|
||||
fi
|
||||
|
||||
ip link set dev br0 address $MAC
|
||||
ip link set br0 up
|
||||
for i in eth1 eth2 eth3 eth4; do
|
||||
ip link set $i master br0
|
||||
ip link set $i up
|
||||
done
|
||||
|
||||
if [ "$VLAN" = "yes" ]; then
|
||||
bridge vlan add dev eth1 vid 10 pvid untagged
|
||||
bridge vlan add dev eth2 vid 20 pvid untagged
|
||||
bridge vlan add dev eth4 vid 10,20
|
||||
fi
|
||||
|
||||
echo "Switch setup complete"
|
||||
|
||||
elif [ "$ROLE" = "bridge" ]; then
|
||||
echo "Configuring as bridge with MAC=$MAC"
|
||||
|
||||
if [ "$VLAN" = "yes" ]; then
|
||||
ip link add name br0 type bridge vlan_filtering 1
|
||||
else
|
||||
ip link add name br0 type bridge
|
||||
fi
|
||||
|
||||
ip link set dev br0 address $MAC
|
||||
ip link set br0 up
|
||||
ip link set eth1 master br0
|
||||
ip link set eth2 master br0
|
||||
ip link set eth1 up
|
||||
ip link set eth2 up
|
||||
|
||||
if [ "$VLAN" = "yes" ]; then
|
||||
bridge vlan add dev eth1 vid 10,20
|
||||
bridge vlan add dev eth2 vid 10,20
|
||||
fi
|
||||
|
||||
echo "Bridge setup complete"
|
||||
|
||||
elif [ "$ROLE" = "host" ]; then
|
||||
echo "Configuring as host with MAC=$MAC"
|
||||
|
||||
ip link set dev eth1 down
|
||||
ip link set dev eth1 address $MAC
|
||||
ip link set dev eth1 up
|
||||
|
||||
echo "Host setup complete"
|
||||
|
||||
else
|
||||
echo "Unknown ROLE: $ROLE"
|
||||
fi
|
||||
|
||||
sleep infinity
|
||||
Reference in New Issue
Block a user