]>
Commit | Line | Data |
---|---|---|
1dd4bfdd LG |
1 | #!/bin/bash |
2 | ||
3 | # additional macvlan interface for lxc | |
4 | ||
5 | # TODO: add additional iptables rules / ipv6 / ip_forward | |
6 | ||
7 | ||
8 | macvlan_test_config(){ | |
9 | ||
10 | # check if all required configurations have been set | |
11 | # Source any configurable options | |
12 | test ! -r /etc/sysconfig/lxc_macvlan || | |
13 | . /etc/sysconfig/lxc_macvlan | |
14 | ||
15 | # Tests for data provided in /etc/sysconfig/lxc_macvlan | |
16 | if [ -z "$MACVLAN_DEV" ]; then | |
17 | echo "MACVLAN_DEV not set is /etc/sysconfig/lxc_macvlan" | |
18 | exit 6 | |
19 | fi | |
20 | ||
21 | if [ -z "$MACVLAN_NAME" ]; then | |
22 | echo "MACVLAN_NAME not set is /etc/sysconfig/lxc_macvlan" | |
23 | exit 6 | |
24 | fi | |
25 | ||
26 | if [ -z "$MACVLAN_ADDRESS" ]; then | |
27 | echo "MACVLAN_ADDRESS not set is /etc/sysconfig/lxc_macvlan" | |
28 | exit 6 | |
29 | fi | |
30 | } | |
31 | ||
32 | macvlan_gen_default_hwaddr(){ | |
33 | # If not defined MACVLAN_HWADDRESS, calculate it from MACVLAN_ADDRESS | |
34 | echo $MACVLAN_ADDRESS | awk -F "/" '{print $1}' | awk -F "." '{ printf "00:16:3e:%x:%x:%x\n", $2, $3, $4 }' | |
35 | } | |
36 | ||
37 | macvlan_start() { | |
38 | echo "LXC macvlan interface start" | |
39 | echo 1 > /proc/sys/net/ipv4/ip_forward | |
40 | macvlan_test_config | |
41 | ||
42 | set -e | |
43 | if [ -z "$MACVLAN_HWADDRESS" ]; then | |
44 | MACVLAN_HWADDRESS=`macvlan_gen_default_hwaddr` | |
45 | fi | |
46 | ip link add link $MACVLAN_DEV name $MACVLAN_NAME address $MACVLAN_HWADDRESS type macvlan mode bridge | |
47 | ip link set $MACVLAN_NAME up | |
48 | ip address add $MACVLAN_ADDRESS brd + dev $MACVLAN_NAME | |
49 | } | |
50 | ||
51 | macvlan_stop() { | |
52 | echo "LXC macvlan interface stop" | |
53 | macvlan_test_config | |
54 | ||
55 | set -e | |
56 | ip link set $MACVLAN_NAME down | |
57 | ip link del $MACVLAN_NAME | |
58 | } | |
59 | ||
60 | macvlan_status() { | |
61 | echo "LXC macvlan interface status" | |
62 | macvlan_test_config | |
63 | ||
64 | set -e | |
65 | ip addr show $MACVLAN_NAME | |
66 | } |