diff --git a/src/net/freertr/rtr/rtrIsisIface.java b/src/net/freertr/rtr/rtrIsisIface.java index 4c488ac146..d677a4e203 100644 --- a/src/net/freertr/rtr/rtrIsisIface.java +++ b/src/net/freertr/rtr/rtrIsisIface.java @@ -919,7 +919,11 @@ public static void routerGetHelp(userHelping l) { l.add(null, "5 . minimum take lowest"); l.add(null, "5 . average take average"); l.add(null, "5 . maximum take highest"); - l.add(null, "5 . differs take differences"); + l.add(null, "5 . summary take summary"); + l.add(null, "5 . dif-min take lowest of differences"); + l.add(null, "5 . dif-avg take average of differences"); + l.add(null, "5 . dif-max take highest of differences"); + l.add(null, "5 . dif-sum take summary of differences"); } /** diff --git a/src/net/freertr/rtr/rtrLsrpIface.java b/src/net/freertr/rtr/rtrLsrpIface.java index db9bc3053e..c5d9f06d33 100644 --- a/src/net/freertr/rtr/rtrLsrpIface.java +++ b/src/net/freertr/rtr/rtrLsrpIface.java @@ -529,7 +529,11 @@ public static void routerGetHelp(userHelping l) { l.add(null, "5 . minimum take lowest"); l.add(null, "5 . average take average"); l.add(null, "5 . maximum take highest"); - l.add(null, "5 . differs take differences"); + l.add(null, "5 . summary take summary"); + l.add(null, "5 . dif-min take lowest of differences"); + l.add(null, "5 . dif-avg take average of differences"); + l.add(null, "5 . dif-max take highest of differences"); + l.add(null, "5 . dif-sum take summary of differences"); } /** diff --git a/src/net/freertr/rtr/rtrOspf4iface.java b/src/net/freertr/rtr/rtrOspf4iface.java index af6c9f2ada..eb4edc76ab 100644 --- a/src/net/freertr/rtr/rtrOspf4iface.java +++ b/src/net/freertr/rtr/rtrOspf4iface.java @@ -871,7 +871,11 @@ public static void routerGetHelp(userHelping l) { l.add(null, "5 . minimum take lowest"); l.add(null, "5 . average take average"); l.add(null, "5 . maximum take highest"); - l.add(null, "5 . differs take differences"); + l.add(null, "5 . summary take summary"); + l.add(null, "5 . dif-min take lowest of differences"); + l.add(null, "5 . dif-avg take average of differences"); + l.add(null, "5 . dif-max take highest of differences"); + l.add(null, "5 . dif-sum take summary of differences"); } /** diff --git a/src/net/freertr/rtr/rtrOspf6iface.java b/src/net/freertr/rtr/rtrOspf6iface.java index 943aa74654..28acf85521 100644 --- a/src/net/freertr/rtr/rtrOspf6iface.java +++ b/src/net/freertr/rtr/rtrOspf6iface.java @@ -786,7 +786,11 @@ public static void routerGetHelp(userHelping l) { l.add(null, "5 . minimum take lowest"); l.add(null, "5 . average take average"); l.add(null, "5 . maximum take highest"); - l.add(null, "5 . differs take differences"); + l.add(null, "5 . summary take summary"); + l.add(null, "5 . dif-min take lowest of differences"); + l.add(null, "5 . dif-avg take average of differences"); + l.add(null, "5 . dif-max take highest of differences"); + l.add(null, "5 . dif-sum take summary of differences"); } /** diff --git a/src/net/freertr/rtr/rtrPvrpIface.java b/src/net/freertr/rtr/rtrPvrpIface.java index bf240805b4..b8bf30a939 100644 --- a/src/net/freertr/rtr/rtrPvrpIface.java +++ b/src/net/freertr/rtr/rtrPvrpIface.java @@ -572,7 +572,11 @@ public static void routerGetHelp(userHelping l) { l.add(null, "5 . minimum take lowest"); l.add(null, "5 . average take average"); l.add(null, "5 . maximum take highest"); - l.add(null, "5 . differs take differences"); + l.add(null, "5 . summary take summary"); + l.add(null, "5 . dif-min take lowest of differences"); + l.add(null, "5 . dif-avg take average of differences"); + l.add(null, "5 . dif-max take highest of differences"); + l.add(null, "5 . dif-sum take summary of differences"); l.add(null, "4 5 route-map-in process prefixes in ingress updates"); l.add(null, "5 . name of route map"); l.add(null, "4 5 route-map-out process prefixes in egress updates"); diff --git a/src/net/freertr/tab/tabAverage.java b/src/net/freertr/tab/tabAverage.java index 2a0dd9acc3..9796380c6b 100644 --- a/src/net/freertr/tab/tabAverage.java +++ b/src/net/freertr/tab/tabAverage.java @@ -11,7 +11,8 @@ public class tabAverage { /** - * mode, 0=none, 1=min, 2=avg, 3=max, 4=diff + * mode, 0=none, 1=min, 2=avg, 3=max, 4=sum, 5=dif-min, 6=dif-avg, + * 7=dig-max, 8=dif-sum */ public int algorithm = 1; @@ -96,7 +97,15 @@ public String getAlgoName() { case 3: return "maximum"; case 4: - return "differs"; + return "summary"; + case 5: + return "dif-min"; + case 6: + return "dif-avg"; + case 7: + return "dif-max"; + case 8: + return "dif-sum"; default: return "unknown=" + algorithm; } @@ -124,10 +133,26 @@ public void string2algo(String a) { algorithm = 3; return; } - if (a.equals("differs")) { + if (a.equals("summary")) { algorithm = 4; return; } + if (a.equals("dif-min")) { + algorithm = 5; + return; + } + if (a.equals("dif-avg")) { + algorithm = 6; + return; + } + if (a.equals("dif-max")) { + algorithm = 7; + return; + } + if (a.equals("dif-sum")) { + algorithm = 8; + return; + } algorithm = 0; } @@ -245,8 +270,67 @@ public int getResult(int met) { } break; case 4: + met = 0; + synchronized (vals) { + for (int i = 0; i < vals.size(); i++) { + int cur = vals.get(i); + met += cur; + } + } + break; + case 5: + met = Integer.MAX_VALUE; + synchronized (vals) { + int prv = vals.get(0); + for (int i = 1; i < vals.size(); i++) { + int cur = vals.get(i); + int dif = prv - cur; + prv = cur; + if (dif < 0) { + dif = -dif; + } + if (dif < met) { + met = dif; + } + } + } + break; + case 6: + met = 0; + synchronized (vals) { + int prv = vals.get(0); + for (int i = 1; i < vals.size(); i++) { + int cur = vals.get(i); + int dif = prv - cur; + prv = cur; + if (dif < 0) { + dif = -dif; + } + met += dif; + } + met /= vals.size(); + } + break; + case 7: + met = Integer.MIN_VALUE; + synchronized (vals) { + int prv = vals.get(0); + for (int i = 1; i < vals.size(); i++) { + int cur = vals.get(i); + int dif = prv - cur; + prv = cur; + if (dif < 0) { + dif = -dif; + } + if (dif > met) { + met = dif; + } + } + } + break; + case 8: + met = 0; synchronized (vals) { - met = 0; int prv = vals.get(0); for (int i = 1; i < vals.size(); i++) { int cur = vals.get(i); diff --git a/src/rtr.csv b/src/rtr.csv index fdc02e9743..9b80a2c102 100644 --- a/src/rtr.csv +++ b/src/rtr.csv @@ -1,6 +1,6 @@ url;file;result;test -;-;-;freeRouter v21.12.21-cur, done by cs@nop. --;-;-;2021-12-21 19:29:05, took 00:06:43, with 100 workers, on 2516 cases, 0 failed, 0 traces, 2 retries +-;-;-;2021-12-21 20:24:37, took 00:06:16, with 100 workers, on 2516 cases, 0 failed, 0 traces, 3 retries -;-;-;./rtr.bin http://sources.nop.hu/cfg/basic.tst;basic.tst;success;dummy test http://sources.nop.hu/cfg/conn-amt01.tst;conn-amt01.tst;success;amt over ipv4 diff --git a/src/rtr.html b/src/rtr.html index 1ed4ea0668..21c8cc7a20 100644 --- a/src/rtr.html +++ b/src/rtr.html @@ -11,7 +11,7 @@ tester release: freeRouter v21.12.21-cur, done by cs@nop.
-tested: 2021-12-21 19:29:05, took 00:06:43, with 100 workers, on 2516 cases, 0 failed, 0 traces, 2 retries
+tested: 2021-12-21 20:24:37, took 00:06:16, with 100 workers, on 2516 cases, 0 failed, 0 traces, 3 retries
jvm: ./rtr.bin

fileresulttest