diff options
Diffstat (limited to 'scripts/netjail/netjail_stop.sh')
-rwxr-xr-x | scripts/netjail/netjail_stop.sh | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/scripts/netjail/netjail_stop.sh b/scripts/netjail/netjail_stop.sh new file mode 100755 index 000000000..8f6c07f50 --- /dev/null +++ b/scripts/netjail/netjail_stop.sh | |||
@@ -0,0 +1,74 @@ | |||
1 | #!/bin/bash | ||
2 | . "$(dirname $0)/netjail_core.sh" | ||
3 | . "$(dirname $0)/topo.sh" | ||
4 | |||
5 | set -eu | ||
6 | set -x | ||
7 | |||
8 | export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | ||
9 | |||
10 | filename=$1 | ||
11 | PREFIX=$2 | ||
12 | readfile=$3 | ||
13 | |||
14 | if [ $readfile -eq 0 ] | ||
15 | then | ||
16 | read_topology_string $filename | ||
17 | else | ||
18 | read_topology $filename | ||
19 | fi | ||
20 | |||
21 | declare -A NODES | ||
22 | declare -A NODE_LINKS | ||
23 | |||
24 | netjail_bridge_name | ||
25 | NETWORK_NET=$RESULT | ||
26 | |||
27 | for X in $(seq $KNOWN); do | ||
28 | netjail_node_name | ||
29 | KNOWN_NODES[$X]=$RESULT | ||
30 | netjail_node_link_bridge_name | ||
31 | KNOWN_LINKS[$X]=$RESULT | ||
32 | netjail_node_unlink_bridge ${KNOWN_LINKS[$X]} | ||
33 | netjail_node_clear ${KNOWN_NODES[$X]} | ||
34 | done | ||
35 | |||
36 | for N in $(seq $GLOBAL_N); do | ||
37 | netjail_node_name | ||
38 | ROUTERS[$N]=$RESULT | ||
39 | netjail_node_link_bridge_name | ||
40 | NETWORK_LINKS[$N]=$RESULT | ||
41 | netjail_bridge_name | ||
42 | ROUTER_NETS[$N]=$RESULT | ||
43 | netjail_node_link_bridge_name | ||
44 | ROUTER_LINKS[$N]=$RESULT | ||
45 | |||
46 | if [ -d /tmp/netjail_scripts ] | ||
47 | then | ||
48 | if [ "" != "${R_SCRIPT[$N]}" ] | ||
49 | then | ||
50 | ip netns exec ${ROUTERS[$N]} ./${R_SCRIPT[$N]} ${ROUTERS[$N]} 0 $PREFIX | ||
51 | fi | ||
52 | rm -rf /tmp/netjail_scripts | ||
53 | fi | ||
54 | |||
55 | netjail_node_unlink_bridge ${ROUTER_LINKS[$N]} | ||
56 | |||
57 | for M in $(seq $LOCAL_M); do | ||
58 | netjail_node_name | ||
59 | NODES[$N,$M]=$RESULT | ||
60 | netjail_node_link_bridge_name | ||
61 | NODE_LINKS[$N,$M]=$RESULT | ||
62 | netjail_node_unlink_bridge ${NODE_LINKS[$N,$M]} | ||
63 | netjail_node_clear ${NODES[$N,$M]} | ||
64 | done | ||
65 | |||
66 | |||
67 | netjail_bridge_clear ${ROUTER_NETS[$N]} | ||
68 | netjail_node_unlink_bridge ${NETWORK_LINKS[$N]} | ||
69 | netjail_node_clear ${ROUTERS[$N]} | ||
70 | done | ||
71 | |||
72 | netjail_bridge_clear $NETWORK_NET | ||
73 | |||
74 | echo "Done" | ||