add in dependencies folder loadgen_SB.sh script
diff --git a/TestON/dependencies/loadgen_SB.sh b/TestON/dependencies/loadgen_SB.sh
new file mode 100755
index 0000000..41b12fd
--- /dev/null
+++ b/TestON/dependencies/loadgen_SB.sh
@@ -0,0 +1,153 @@
+#!/bin/bash
+'''
+This is the southbound load generator to generator topology events for tests, such as scale-out and performance testing.
+Example command: ./loadgen_SB.sh startload "1.1.1.1:6633 2.2.2.2:6633" 100 4 100 300 11 - will have 100 switches RR connection to the list of controllers. There will be 4 dataplane ports per switch; switch connection rate (aggregated) is 100 switch/second; duration is 300 seconds; "11" is used as part of the dpid to distinguish switch generated from multiple instances of this generator. Switch disconnnect will use "127.0.0.1:10000" as its connection."
+'''
+
+case "$1" in
+ addsw)
+ numsw=$2
+ ;;
+ delsw)
+ numsw=$2
+ ;;
+ startload)
+ list_ctrl=$2;numsw=$3;numport=$4;rate=$5;duration=$6;prefix_dpid=$7
+ sleeptimer=$(echo "scale=4; (1/$rate)"|bc)
+ ;;
+ chksw)
+ numsw=$2
+ ;;
+ *)
+ #echo "Enter action:"
+ #echo "addsw number_switches - addsw 200"
+ #echo "delsw number_switches - delsw 200"
+ echo "startload list of controllers numsw numportPerSW rate(#/s) duration(s) dpid_prefix - startload "1.1.1.1 2.2.2.2 3.3.3.3" 100 4 10 300 11 #switches will be evenly spread to those controllers"
+ echo "prefix_dpid is the first two octect of dpid in hex, such as "11", or "aa"."
+ echo "This command will first add numb_of_switches to OVSDB; then generate the load as configured; when finished, delete all switches from OVSDB."
+ #echo "chsw num_switches - chsw 200 #get all switches and their current controller connection"
+ exit 1
+esac
+
+add-ovs ()
+{
+ for ((i=1;i<=$numsw;i++))
+ do
+ str=$(printf '%014X' $i); dpid=$prefix_dpid$str
+ echo "adding ovs switch s$i"
+ sudo ovs-vsctl add-br "s"$i
+ sudo ovs-vsctl set bridge "s"$i other-config:datapath-id=$dpid
+
+ #echo "adding $numport dataplane ports to switch s$i ... "
+ for ((p=1; p<=$numport; p++))
+ do
+ echo "adding port $p to switch s$i ... "
+ sudo ovs-vsctl add-port "s"$i "s"$i"p"$p
+ done
+ done
+}
+
+del-ovs ()
+{
+ for ((i=1;i<=$numsw;i++))
+ do
+ #echo "deleting ovs switch s$i"
+ sudo ovs-vsctl del-br "s"$i
+ done
+}
+
+conn-ovs ()
+{
+ i=1
+ while (($i<=$numsw))
+ do
+ for ctrl_port in ${list_ctrl[@]}
+ do
+ if (($i!=0))
+ then
+ #ovsctrl="tcp:"$ctrl_port
+ #echo "s"$i
+ sudo ovs-vsctl --no-wait --no-syslog set-controller "s"$i "tcp:"$ctrl_port &
+ let i+=1
+ sleep $sleeptimer
+ fi
+ done
+ done
+}
+
+disconn-ovs ()
+{
+ i=1
+ while (($i<=$numsw))
+ do
+ ovsctrl="tcp:127.0.0.1:10000"
+ #echo "s"$i
+ sudo ovs-vsctl --no-wait set-controller "s"$i $ovsctrl &
+ let i+=1
+ sleep $sleeptimer
+ done
+}
+
+get-ovs ()
+{
+ i=$numsw
+ while (($i>0))
+ do
+ echo "s"$i
+ sudo ovs-vsctl get-controller "s"$i
+ let i-=1
+ done
+
+}
+
+loadsw ()
+{
+ echo "adding $numsw ovs switches..."
+ add-ovs
+
+ echo "starting to generate south bound load ...."
+ let "roundtime = numsw / rate"
+ #let "iter = duration / roundtime / 2 "
+ iter=1
+ echo "Running load for $duration seconds..."
+ start=$(date +%s )
+ time while [[ $(( $(date +%s) - start )) -lt $duration ]]
+ do
+ #echo "start time is: $start"
+ #echo "current time is: $(date +%s)"
+ #echo "diff is: $(($(date +%s) - $start ))"
+ time conn-ovs; echo "Number of switches connected: $numsw. Events generated: $(( ($numport + 2) * $numsw )) - each switch added generates one switch event, one default port event, and $numport dataplane port events."
+ time disconn-ovs; echo "Number of switches disconnected: $numsw. Events generated: $(( ($numport + 2) * $numsw )) - each switch added generates one switch event, one default port event, and $numport dataplane port events."
+ let "iter = iter + 1"
+ done
+ echo "Iteration is: $iter"
+ let "total = (( iter * numsw * (numport + 2))) "
+ echo "************************** "
+ echo "Total number of switches connected/disconnected: $(( iter * numsw * 2 )). Total events generated: $(( 2 * total)) - each switch added generates one switch event, one default port event, and $numport dataplane port events."
+ echo "**************************"
+ echo ""
+ echo "deleting $numsw ovs switches ..."
+ del-ovs
+}
+
+case "$1" in
+ addsw)
+ time add-ovs
+ ;;
+ delsw)
+ time del-ovs
+ ;;
+ startload)
+ echo $sleeptimer
+ time loadsw
+ ;;
+ chksw)
+ time get-ovs
+ ;;
+ #*)
+ #exit 1
+esac
+
+
+
+