summaryrefslogtreecommitdiff
path: root/jenkins/netns-setup
blob: 0fadb2aa54f04ec5c6c1bf3a4468a4ae5f6f523a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh

set -e

DISTS=$(perl -e 'use YAML::Syck;
	$y = LoadFile("pgapt-jobs.yaml");
	@d = grep { exists $_->{yamltemplates} } @$y;
	print "@{$d[0]->{yamltemplates}->{dist_axis}->{values}}";'
)

prefix="10.1"
net=1

for dist in $DISTS; do
	for bits in 64 32; do
		ns="newpid$dist$bits"
		veth="veth$dist$bits"
		ceth="ceth$dist$bits"

		ip netns add $ns 2> /dev/null || :

		ip link del $veth 2> /dev/null || :
		ip link add $veth type veth peer name $ceth
		ip link set $ceth netns $ns
		ip a add $prefix.$net.1/24 dev $veth
		ip link set $veth up
		ip netns exec $ns ip link set lo up
		ip netns exec $ns ip a add $prefix.$net.2/24 dev $ceth
		ip netns exec $ns ip link set $ceth up
		ip netns exec $ns ip r add default via $prefix.$net.1

		net=$((net + 1))
	done
done

iptables -vnL FORWARD | grep -q 'veth+' || \
	iptables -A FORWARD -i veth+ -j ACCEPT
iptables -t nat -vnL POSTROUTING | grep -q 'MASQUERADE' || \
	iptables -t nat -A POSTROUTING -o wlan2 -j MASQUERADE