Integration tests for GBP and GBP-SFC
[integration/test.git] / csit / suites / groupbasedpolicy / common_scripts / flowcount.sh
diff --git a/csit/suites/groupbasedpolicy/common_scripts/flowcount.sh b/csit/suites/groupbasedpolicy/common_scripts/flowcount.sh
new file mode 100644 (file)
index 0000000..5cdeac3
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+: ' Returns ovs-ofctl dump-flows command output for a table
+    specified in argument by table ID and ovs-ofctl dump-groups
+    output. If no table specified in args, the sum of flows for
+    each table is returned in the output.
+'
+
+set -e
+
+sw=$(sudo ovs-vsctl show | egrep -E 'Bridge.*sw' | awk '{print $2}' | sed  -e 's/"//g')
+if [ "$1" ]
+then
+        echo "GROUPS:";
+        ovs-ofctl dump-groups $sw -OOpenFlow13;
+        echo;echo "FLOWS:";ovs-ofctl dump-flows $sw -OOpenFlow13 table=$1 --rsort=priority
+    echo
+    printf "Flow count: "
+    echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=$1 | wc -l)-1))
+else
+        printf "No table entered. $sw flow count: ";
+        echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 | wc -l)-1))
+        printf "\nTable0: PortSecurity:  "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=0| wc -l)-1))
+        printf "\nTable1: IngressNat:    "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=1| wc -l)-1))
+        printf "\nTable2: SourceMapper:  "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=2| wc -l)-1))
+        printf "\nTable3: DestMapper:    "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=3| wc -l)-1))
+        printf "\nTable4: PolicyEnforcer:"; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=4| wc -l)-1))
+        printf "\nTable5: EgressNAT:     "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=5| wc -l)-1))
+        printf "\nTable6: External:      "; echo $(($(ovs-ofctl dump-flows $sw -OOpenFlow13 table=6| wc -l)-1))
+fi
+