Commit dd0d6565 authored by Binh Nguyen's avatar Binh Nguyen

Add scripts for new topology

parent 7ffcf41c
#!/bin/bash
source net_info.sh
SSH_SD="ssh -t -t"
DOMAIN=$(hostname | awk -F'.' '{print $2"."$3"."$4"."$5}')
#----------node1---------
echo "Add IPv6 addresses on node 1"
$SSH_SD "node1.$DOMAIN" "sudo ip -6 addr add $n1_a dev $n1_a_dev"
$SSH_SD "node1.$DOMAIN" "sudo ip -6 addr add $n1_lb dev lo"
#----------node2---------
echo "Add IPv6 addresses on node 2"
$SSH_SD "node2.$DOMAIN" "sudo ip -6 addr add $n2_a dev $n2_a_dev"
$SSH_SD "node2.$DOMAIN" "sudo ip -6 addr add $n2_b dev $n2_b_dev"
$SSH_SD "node2.$DOMAIN" "sudo ip -6 addr add $n2_c dev $n2_c_dev"
$SSH_SD "node2.$DOMAIN" "sudo ip -6 addr add $n2_lb dev lo"
#----------node3---------
echo "Add IPv6 addresses on node 3"
$SSH_SD "node3.$DOMAIN" "sudo ip -6 addr add $n3_b dev $n3_b_dev"
$SSH_SD "node3.$DOMAIN" "sudo ip -6 addr add $n3_d dev $n3_d_dev"
$SSH_SD "node3.$DOMAIN" "sudo ip -6 addr add $n3_e dev $n3_e_dev"
$SSH_SD "node3.$DOMAIN" "sudo ip -6 addr add $n3_lb dev lo"
#----------node4---------
echo "Add IPv6 addresses on node 4"
$SSH_SD "node4.$DOMAIN" "sudo ip -6 addr add $n4_d dev $n4_d_dev"
$SSH_SD "node4.$DOMAIN" "sudo ip -6 addr add $n4_c dev $n4_c_dev"
$SSH_SD "node4.$DOMAIN" "sudo ip -6 addr add $n4_lb dev lo"
#----------node5---------
echo "Add IPv6 addresses on node 5"
$SSH_SD "node5.$DOMAIN" "sudo ip -6 addr add $n5_e dev $n5_e_dev"
$SSH_SD "node5.$DOMAIN" "sudo ip -6 addr add $n5_lb dev lo"
#!/bin/bash
source net_info.sh
SSH_SD="ssh -t -t"
#Node name for SSH
DOMAIN=$(hostname | awk -F'.' '{print $2"."$3"."$4"."$5}')
SRC_NODE="node1.$DOMAIN"
MID_NODES=("node2.$DOMAIN" "node4.$DOMAIN")
EGRESS_NODE="node3.$DOMAIN"
#IP and interfaces
SRC_IP=$n1_a
SRC_MAC=$n1_a_mac
SRC_DEV=$n1_a_dev
DST_IP=$n5_e
DST_MAC=$n5_e_mac
DST_DEV=$n5_e_dev
#segments
MID_SEGS=("$n4_c" "$n3_lb") #via node2's netb adjacency and node3.
MID_SEG_MACS=("$n4_c_mac" "$n3_d_mac")
MID_SEG_DEVS=("$n2_c_dev" "$n4_d_dev")
MID_NODE_SRH_INFS=("$n2_a_dev" "$n4_c_dev")
#egress DEV (to destination)
EGRESS_DEV=$n3_e_dev
#egress DEV (receiving)
EGRESS_DEV_IN=$n3_d_dev
#----------node1-----------------
echo ""
echo "Install rules on source node $SRC_NODE"
echo "--------------------------------------"
#ip route to node 5:
$SSH_SD $SRC_NODE "sudo ip -6 route del $DST_IP/128 dev $SRC_DEV"
#arp to node 5 via node 2:
$SSH_SD $SRC_NODE "sudo ip -6 neigh del $DST_IP lladdr $n2_a_mac dev $SRC_DEV"
#----------node2 (ingress)-------------
echo ""
echo "Install rules on ingress nodes ${MID_NODES[0]}"
echo "--------------------------------------"
#ip forwarding for pkts to DST_IP
$SSH_SD ${MID_NODES[0]} "sudo ip -6 route del $DST_IP/128 dev ${MID_SEG_DEVS[0]} encap seg6 mode encap segs $MID_SEGS"
#arp for DST_IP
$SSH_SD ${MID_NODES[0]} "sudo ip -6 neigh del $DST_IP lladdr ${MID_SEG_MACS[0]} dev ${MID_SEG_DEVS[0]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD ${MID_NODES[0]} "sudo ip -6 route del ${MID_SEGS[0]}/128 dev ${MID_SEG_DEVS[0]}"
#----------node4 (core node)-------------
echo ""
echo "Install rules on core nodes ${MID_NODES[1]}"
echo "--------------------------------------"
#arp for the next segment (eg, node3's loopback)
$SSH_SD ${MID_NODES[0]} "sudo ip -6 neigh del ${MIG_SEGS[1]} lladdr ${MID_SEG_MACS[1]} dev ${MID_SEG_DEVS[1]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD ${MID_NODES[0]} "sudo ip -6 route del ${MID_SEGS[1]}/128 dev ${MID_SEG_DEVS[1]}"
#--------node3 (egress)--------------
echo ""
echo "Install rules on egress node $EGRESS_NODE"
echo "--------------------------------------"
#ip forwarding for pkts to DST_IP.
$SSH_SD $EGRESS_NODE "sudo ip -6 route del $DST_IP/128 dev $EGRESS_DEV"
#arp for DST_IP
$SSH_SD $EGRESS_NODE "sudo ip -6 neigh del $DST_IP lladdr $DST_MAC dev $EGRESS_DEV"
#!/bin/bash
#deploy and run myself
echo "#!/bin/bash" > net_info.sh
hn=$(hostname)
echo "Get info of node $hn ..."
./get_info.sh >> net_info.sh
for i in 2 3 4 5
do
echo "Get info of node $i ..."
scp get_info.sh node$i:~/ > /dev/null
ssh node$i "./get_info.sh" >> net_info.sh
done
echo "DONE. See net_info.sh"
#!/bin/bash
LB_IP="fc01::1"
INF="/proj/PhantomNet/binh/simeca_scripts/get_interface_map.pl"
#NODE1
hn=$(hostname | awk -F'.' '{print $1}')
if [ "$hn" == "node1" ]; then
echo "#Node $hn..."
n1_a_dev=$($INF | grep neta | awk '{print $3}')
n1_a_mac=$(ifconfig | grep $n1_a_dev | awk '{print $5}')
n1_a=$(ifconfig | grep -A3 $n1_a_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
echo "n1_lb=\"$LB_IP\""
echo "n1_a=\"$n1_a\""
echo "n1_a_mac=\"$n1_a_mac\""
echo "n1_a_dev=\"$n1_a_dev\""
fi
#NODE2
hn=$(hostname | awk -F'.' '{print $1}')
if [ "$hn" == "node2" ]; then
echo "#Node $hn..."
n2_a_dev=$($INF | grep neta | awk '{print $3}')
n2_a_mac=$(ifconfig | grep $n2_a_dev | awk '{print $5}')
n2_a=$(ifconfig | grep -A3 $n2_a_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
n2_b_dev=$($INF | grep netb | awk '{print $3}')
n2_b_mac=$(ifconfig | grep $n2_b_dev | awk '{print $5}')
n2_b=$(ifconfig | grep -A3 $n2_b_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
n2_c_dev=$($INF | grep netc | awk '{print $3}')
n2_c_mac=$(ifconfig | grep $n2_c_dev | awk '{print $5}')
n2_c=$(ifconfig | grep -A3 $n2_c_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
echo "n2_lb=\"$LB_IP\""
echo "n2_a=\"$n2_a\""
echo "n2_a_mac=\"$n2_a_mac\""
echo "n2_a_dev=\"$n2_a_dev\""
echo "n2_b=\"$n2_b\""
echo "n2_b_mac=\"$n2_b_mac\""
echo "n2_b_dev=\"$n2_b_dev\""
echo "n2_c=\"$n2_c\""
echo "n2_c_mac=\"$n2_c_mac\""
echo "n2_c_dev=\"$n2_c_dev\""
fi
#NODE3
hn=$(hostname | awk -F'.' '{print $1}')
if [ "$hn" == "node3" ]; then
echo "#Node $hn..."
n3_b_dev=$($INF | grep netb | awk '{print $3}')
n3_b_mac=$(ifconfig | grep $n3_b_dev | awk '{print $5}')
n3_b=$(ifconfig | grep -A3 $n3_b_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
n3_d_dev=$($INF | grep netd | awk '{print $3}')
n3_d_mac=$(ifconfig | grep $n3_d_dev | awk '{print $5}')
n3_d=$(ifconfig | grep -A3 $n3_d_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
n3_e_dev=$($INF | grep nete | awk '{print $3}')
n3_e_mac=$(ifconfig | grep $n3_e_dev | awk '{print $5}')
n3_e=$(ifconfig | grep -A3 $n3_e_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
echo "n3_lb=\"$LB_IP\""
echo "n3_b=\"$n3_b\""
echo "n3_b_mac=\"$n3_b_mac\""
echo "n3_b_dev=\"$n3_b_dev\""
echo "n3_d=\"$n3_d\""
echo "n3_d_mac=\"$n3_d_mac\""
echo "n3_d_dev=\"$n3_d_dev\""
echo "n3_e=\"$n3_e\""
echo "n3_e_mac=\"$n3_e_mac\""
echo "n3_e_dev=\"$n3_e_dev\""
fi
#NODE4
hn=$(hostname | awk -F'.' '{print $1}')
if [ "$hn" == "node4" ]; then
echo "#Node $hn..."
n4=$($INF)
n4_c_dev=$($INF | grep netc | awk '{print $3}')
n4_c_mac=$(ifconfig | grep $n4_c_dev | awk '{print $5}')
n4_c=$(ifconfig | grep -A3 $n4_c_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
n4_d_dev=$($INF | grep netd | awk '{print $3}')
n4_d_mac=$(ifconfig | grep $n4_d_dev | awk '{print $5}')
n4_d=$(ifconfig | grep -A3 $n4_d_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
echo "n4_lb=\"$LB_IP\""
echo "n4_c=\"$n4_c\""
echo "n4_c_mac=\"$n4_c_mac\""
echo "n4_c_dev=\"$n4_c_dev\""
echo "n4_d=\"$n4_d\""
echo "n4_d_mac=\"$n4_d_mac\""
echo "n4_d_dev=\"$n4_d_dev\""
fi
#NODE5
hn=$(hostname | awk -F'.' '{print $1}')
if [ "$hn" == "node5" ]; then
echo "#Node $hn..."
n5_e_dev=$($INF | grep nete | awk '{print $3}')
n5_e_mac=$(ifconfig | grep $n5_e_dev | awk '{print $5}')
n5_e=$(ifconfig | grep -A3 $n5_e_dev | grep inet6 | grep "fe80::" | awk '{print $3}' | awk -F'/' '{print $1}' | sed s/fe80::/2001::/ )
echo "n5_lb=\"$LB_IP\""
echo "n5_e=\"$n5_e\""
echo "n5_e_mac=\"$n5_e_mac\""
echo "n5_e_dev=\"$n5_e_dev\""
fi
#!/bin/bash
source net_info.sh
SSH_SD="ssh -t -t"
#Node name for SSH
DOMAIN=$(hostname | awk -F'.' '{print $2"."$3"."$4"."$5}')
SRC_NODE="node5.$DOMAIN"
MID_NODES=("node4.$DOMAIN")
EGRESS_NODE="node2.$DOMAIN"
INGRESS_NODE="node3.$DOMAIN"
#IP and interfaces
SRC_IP=$n5_e
SRC_MAC=$n5_e_mac
SRC_DEV=$n5_e_dev
DST_IP=$n1_a
DST_MAC=$n1_a_mac
DST_DEV=$n1_a_dev
#segments
MID_SEGS=("$n4_d" "$n2_c") #via node3's netd adjacency and node2.
MID_SEG_MACS=("$n4_d_mac" "$n2_c_mac")
MID_SEG_DEVS=("$n3_d_dev" "$n4_c_dev")
MID_NODE_SRH_INFS=("$n4_d_dev")
INGRESS_INF="$n3_e_dev"
#egress DEV (to destination)
EGRESS_DEV=$n2_a_dev
#egress DEV (receiving)
EGRESS_DEV_IN=$n2_c_dev
#----------node5-----------------
echo ""
echo "Install rules on source node $SRC_NODE"
echo "--------------------------------------"
#ip route to node 1:
$SSH_SD $SRC_NODE "sudo ip -6 route add $DST_IP/128 dev $SRC_DEV"
#arp to node 1 via node 2:
$SSH_SD $SRC_NODE "sudo ip -6 neigh add $DST_IP lladdr $n3_e_mac dev $SRC_DEV"
#if rerun the arp assignment, need to use "replace"
$SSH_SD $SRC_NODE "sudo ip -6 neigh replace $DST_IP lladdr $n3_e_mac dev $SRC_DEV"
#----------node3 (ingress)-------------
echo ""
echo "Install rules on ingress nodes $INGRESS_NODE"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.$INGRESS_INF.seg6_enabled=1"
#ip forwarding for pkts to DST_IP
$SSH_SD $INGRESS_NODE "sudo ip -6 route add $DST_IP/128 dev ${MID_SEG_DEVS[0]} encap seg6 mode encap segs ${MID_SEGS[0]},${MID_SEGS[1]}"
#arp for DST_IP
$SSH_SD $INGRESS_NODE "sudo ip -6 neigh add $DST_IP lladdr ${MID_SEG_MACS[0]} dev ${MID_SEG_DEVS[0]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD $INGRESS_NODE "sudo ip -6 route add ${MID_SEGS[0]}/128 dev ${MID_SEG_DEVS[0]}"
#----------node4 (core node)-------------
echo ""
echo "Install rules on core nodes ${MID_NODES[0]}"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.${MID_NODE_SRH_INFS[0]}.seg6_enabled=1"
#arp for the next segment
$SSH_SD ${MID_NODES[0]} "sudo ip -6 neigh add ${MID_SEGS[1]} lladdr ${MID_SEG_MACS[1]} dev ${MID_SEG_DEVS[1]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD ${MID_NODES[0]} "sudo ip -6 route add ${MID_SEGS[1]}/128 dev ${MID_SEG_DEVS[1]}"
#--------node2 (egress)--------------
echo ""
echo "Install rules on egress node $EGRESS_NODE"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.$EGRESS_DEV_IN.seg6_enabled=1"
#ip forwarding for pkts to DST_IP.
$SSH_SD $EGRESS_NODE "sudo ip -6 route add $DST_IP/128 dev $EGRESS_DEV"
#arp for DST_IP
$SSH_SD $EGRESS_NODE "sudo ip -6 neigh add $DST_IP lladdr $DST_MAC dev $EGRESS_DEV"
#!/bin/bash
source net_info.sh
SSH_SD="ssh -t -t"
#Node name for SSH
DOMAIN=$(hostname | awk -F'.' '{print $2"."$3"."$4"."$5}')
SRC_NODE="node1.$DOMAIN"
MID_NODES=("node4.$DOMAIN")
EGRESS_NODE="node3.$DOMAIN"
INGRESS_NODE="node2.$DOMAIN"
#IP and interfaces
SRC_IP=$n1_a
SRC_MAC=$n1_a_mac
SRC_DEV=$n1_a_dev
DST_IP=$n5_e
DST_MAC=$n5_e_mac
DST_DEV=$n5_e_dev
#segments
MID_SEGS=("$n4_c" "$n3_d") #via node2's netc adjacency and node4.
MID_SEG_MACS=("$n4_c_mac" "$n3_d_mac")
MID_SEG_DEVS=("$n2_c_dev" "$n4_d_dev")
MID_NODE_SRH_INFS=("$n4_c_dev")
INGRESS_INF="$n2_a_dev"
#egress DEV (to destination)
EGRESS_DEV=$n3_e_dev
#egress DEV (receiving)
EGRESS_DEV_IN=$n3_d_dev
#----------node1-----------------
echo ""
echo "Install rules on source node $SRC_NODE"
echo "--------------------------------------"
#ip route to node 5:
$SSH_SD $SRC_NODE "sudo ip -6 route add $DST_IP/128 dev $SRC_DEV"
#arp to node 5 via node 2:
$SSH_SD $SRC_NODE "sudo ip -6 neigh add $DST_IP lladdr $n2_a_mac dev $SRC_DEV"
#if rerun the arp assignment, need to use "replace"
$SSH_SD $SRC_NODE "sudo ip -6 neigh replace $DST_IP lladdr $n2_a_mac dev $SRC_DEV"
#----------node2 (ingress)-------------
echo ""
echo "Install rules on ingress nodes $INGRESS_NODE"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD $INGRESS_NODE "sudo sysctl net.ipv6.conf.$INGRESS_INF.seg6_enabled=1"
#ip forwarding for pkts to DST_IP
$SSH_SD $INGRESS_NODE "sudo ip -6 route add $DST_IP/128 dev ${MID_SEG_DEVS[0]} encap seg6 mode encap segs ${MID_SEGS[0]},${MID_SEGS[1]}"
#arp for DST_IP
$SSH_SD $INGRESS_NODE "sudo ip -6 neigh add $DST_IP lladdr ${MID_SEG_MACS[0]} dev ${MID_SEG_DEVS[0]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD $INGRESS_NODE "sudo ip -6 route add ${MID_SEGS[0]}/128 dev ${MID_SEG_DEVS[0]}"
#----------node4 (core node)-------------
echo ""
echo "Install rules on core nodes ${MID_NODES[0]}"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD ${MID_NODES[0]} "sudo sysctl net.ipv6.conf.${MID_NODE_SRH_INFS[0]}.seg6_enabled=1"
#arp for the next segment
$SSH_SD ${MID_NODES[0]} "sudo ip -6 neigh add ${MID_SEGS[1]} lladdr ${MID_SEG_MACS[1]} dev ${MID_SEG_DEVS[1]}"
#ip forwarding for pkts to next-hop (encapsulated pkt's destination)
$SSH_SD ${MID_NODES[0]} "sudo ip -6 route add ${MID_SEGS[1]}/128 dev ${MID_SEG_DEVS[1]}"
#--------node3 (egress)--------------
echo ""
echo "Install rules on egress node $EGRESS_NODE"
echo "--------------------------------------"
#enable IPV6 forwarding
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.all.forwarding=1"
#enable SRH processing flag on node
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.all.seg6_enabled=1"
#enable SRH processing flag on interface
$SSH_SD $EGRESS_NODE "sudo sysctl net.ipv6.conf.$EGRESS_DEV_IN.seg6_enabled=1"
#ip forwarding for pkts to DST_IP.
$SSH_SD $EGRESS_NODE "sudo ip -6 route add $DST_IP/128 dev $EGRESS_DEV"
#arp for DST_IP
$SSH_SD $EGRESS_NODE "sudo ip -6 neigh add $DST_IP lladdr $DST_MAC dev $EGRESS_DEV"
#!/bin/bash
source net_info.sh
iperf -u -V -c $n5_e -b 1000m
#!/bin/bash
#Node node1...
n1_lb="fc01::1"
n1_a="2001::204:23ff:feb7:1e9a"
n1_a_mac="00:04:23:b7:1e:9a"
n1_a_dev="enp9s4f0"
#Node node2...
n2_lb="fc01::1"
n2_a="2001::204:23ff:feb7:1905"
n2_a_mac="00:04:23:b7:19:05"
n2_a_dev="enp10s3f1"
n2_b="2001::204:23ff:feb7:1902"
n2_b_mac="00:04:23:b7:19:02"
n2_b_dev="enp9s4f0"
n2_c="2001::204:23ff:feb7:1903"
n2_c_mac="00:04:23:b7:19:03"
n2_c_dev="enp9s4f1"
#Node node3...
n3_lb="fc01::1"
n3_b="2001::204:23ff:feb7:1939"
n3_b_mac="00:04:23:b7:19:39"
n3_b_dev="enp9s4f1"
n3_d="2001::204:23ff:feb7:192f"
n3_d_mac="00:04:23:b7:19:2f"
n3_d_dev="enp10s3f1"
n3_e="2001::204:23ff:feb7:1938"
n3_e_mac="00:04:23:b7:19:38"
n3_e_dev="enp9s4f0"
#Node node4...
n4_lb="fc01::1"
n4_c="2001::204:23ff:feb7:3e89"
n4_c_mac="00:04:23:b7:3e:89"
n4_c_dev="enp9s4f1"
n4_d="2001::204:23ff:feb7:3e88"
n4_d_mac="00:04:23:b7:3e:88"
n4_d_dev="enp9s4f0"
#Node node5...
n5_lb="fc01::1"
n5_e="2001::204:23ff:feb7:17d4"
n5_e_mac="00:04:23:b7:17:d4"
n5_e_dev="enp9s4f0"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment