[sr-dev] git:master: modules/lcr: added awk version of lcr_weight_test script

Juha Heinanen jh at tutpro.com
Wed Sep 29 12:56:49 CEST 2010


Module: sip-router
Branch: master
Commit: 2800504202dfb773baed7212949918848f0ea716
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=2800504202dfb773baed7212949918848f0ea716

Author: Juha Heinanen <jh at tutpro.com>
Committer: Juha Heinanen <jh at tutpro.com>
Date:   Wed Sep 29 13:56:05 2010 +0300

modules/lcr: added awk version of lcr_weight_test script

---

 modules/lcr/utils/lcr_weight_test.awk |   37 +++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/modules/lcr/utils/lcr_weight_test.awk b/modules/lcr/utils/lcr_weight_test.awk
new file mode 100755
index 0000000..fdb9a37
--- /dev/null
+++ b/modules/lcr/utils/lcr_weight_test.awk
@@ -0,0 +1,37 @@
+#!/usr/bin/awk -f
+
+# This script can be used to find out actual probabilities
+# that correspond to a list of LCR gateway weights.
+
+BEGIN {
+
+    if (ARGC < 2) {
+	printf("Usage: lcr_weight_test.php <list of weights (integers 1-254)>\n");
+	exit;
+    }
+
+    iters = 100000;
+
+    for (i = 1; i < ARGC; i++) {
+	counts[i] = 0;
+    }
+
+    for (i = 1; i <= iters; i++) {
+	for (j = 1; j < ARGC; j++) {
+	    elem[j] = ARGV[j] * rshift(int(2147483647 * rand()), 8);
+	};
+	at = 1;
+	max = elem[at];
+	for (j = 2; j < ARGC; j++) {
+	    if (elem[j] > max) {
+		max = elem[j];
+		at = j;
+	    }
+	}
+	counts[at] = counts[at] + 1;
+    }
+
+    for (i = 1; i < ARGC; i++) {
+	printf("weight %d probability %.4f\n", ARGV[i], counts[i]/iters);
+    }
+}




More information about the sr-dev mailing list