Skip to content

Commit

Permalink
automatic commit at releng box
Browse files Browse the repository at this point in the history
  • Loading branch information
mc36 committed Dec 21, 2021
1 parent 8fb2572 commit 2605d4a
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 19 deletions.
8 changes: 8 additions & 0 deletions src/net/freertr/cfg/cfgIfc.java
Expand Up @@ -1591,6 +1591,8 @@ public enum tunnelType {
"interface .*! router ospf[4|6] .* dynamic-divisor 1",
"interface .*! router ospf[4|6] .* dynamic-multiply 1",
"interface .*! router ospf[4|6] .* dynamic-ignore 0",
"interface .*! router ospf[4|6] .* dynamic-skip-min 0",
"interface .*! router ospf[4|6] .* dynamic-skip-max 0",
"interface .*! router ospf[4|6] .* dynamic-algo minimum",
// pvrp
"interface .*! router pvrp[4|6] .* split-horizon",
Expand Down Expand Up @@ -1621,6 +1623,8 @@ public enum tunnelType {
"interface .*! router pvrp[4|6] .* dynamic-divisor 1",
"interface .*! router pvrp[4|6] .* dynamic-multiply 1",
"interface .*! router pvrp[4|6] .* dynamic-ignore 0",
"interface .*! router pvrp[4|6] .* dynamic-skip-min 0",
"interface .*! router pvrp[4|6] .* dynamic-skip-max 0",
"interface .*! router pvrp[4|6] .* dynamic-algo minimum",
"interface .*! no router pvrp[4|6] .* label-in",
"interface .*! no router pvrp[4|6] .* label-out",
Expand Down Expand Up @@ -1660,6 +1664,8 @@ public enum tunnelType {
"interface .*! router lsrp[4|6] .* dynamic-divisor 1",
"interface .*! router lsrp[4|6] .* dynamic-multiply 1",
"interface .*! router lsrp[4|6] .* dynamic-ignore 0",
"interface .*! router lsrp[4|6] .* dynamic-skip-min 0",
"interface .*! router lsrp[4|6] .* dynamic-skip-max 0",
"interface .*! router lsrp[4|6] .* dynamic-algo minimum",
// eigrp
"interface .*! router eigrp[4|6] .* split-horizon",
Expand Down Expand Up @@ -1720,6 +1726,8 @@ public enum tunnelType {
"interface .*! router isis[4|6] .* dynamic-divisor 1",
"interface .*! router isis[4|6] .* dynamic-multiply 1",
"interface .*! router isis[4|6] .* dynamic-ignore 0",
"interface .*! router isis[4|6] .* dynamic-skip-min 0",
"interface .*! router isis[4|6] .* dynamic-skip-max 0",
"interface .*! router isis[4|6] .* dynamic-algo minimum",
// vlan
"interface .*! no vlan subif-macs",
Expand Down
14 changes: 14 additions & 0 deletions src/net/freertr/rtr/rtrIsisIface.java
Expand Up @@ -431,6 +431,8 @@ public void routerGetConfig(List<String> l, String beg, int filter) {
l.add(cmds.tabulator + beg + "dynamic-divisor " + echoParam.divisor);
l.add(cmds.tabulator + beg + "dynamic-multiply " + echoParam.multiply);
l.add(cmds.tabulator + beg + "dynamic-ignore " + echoParam.ignorer);
l.add(cmds.tabulator + beg + "dynamic-skip-min " + echoParam.discardLo);
l.add(cmds.tabulator + beg + "dynamic-skip-max " + echoParam.discardHi);
l.add(cmds.tabulator + beg + "dynamic-algo " + echoParam.getAlgoName());
}

Expand Down Expand Up @@ -679,6 +681,14 @@ public void routerDoConfig(String a, cmds cmd) {
echoParam.ignorer = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-min")) {
echoParam.discardLo = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-max")) {
echoParam.discardHi = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-algo")) {
echoParam.string2algo(cmd.word());
lower.genLsps(3);
Expand Down Expand Up @@ -900,6 +910,10 @@ public static void routerGetHelp(userHelping l) {
l.add(null, "5 . <num> multiplier");
l.add(null, "4 5 dynamic-ignore ignore small differences");
l.add(null, "5 . <num> maximum unreported change");
l.add(null, "4 5 dynamic-skip-min discard small measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-skip-max discard big measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-algo calculation to do");
l.add(null, "5 . none nothing");
l.add(null, "5 . minimum take lowest");
Expand Down
14 changes: 14 additions & 0 deletions src/net/freertr/rtr/rtrLsrpIface.java
Expand Up @@ -446,6 +446,8 @@ public void routerGetConfig(List<String> l, String beg, int filter) {
l.add(cmds.tabulator + beg + "dynamic-divisor " + echoParam.divisor);
l.add(cmds.tabulator + beg + "dynamic-multiply " + echoParam.multiply);
l.add(cmds.tabulator + beg + "dynamic-ignore " + echoParam.ignorer);
l.add(cmds.tabulator + beg + "dynamic-skip-min " + echoParam.discardLo);
l.add(cmds.tabulator + beg + "dynamic-skip-max " + echoParam.discardHi);
l.add(cmds.tabulator + beg + "dynamic-algo " + echoParam.getAlgoName());
}

Expand Down Expand Up @@ -518,6 +520,10 @@ public static void routerGetHelp(userHelping l) {
l.add(null, "5 . <num> multiplier");
l.add(null, "4 5 dynamic-ignore ignore small differences");
l.add(null, "5 . <num> maximum unreported change");
l.add(null, "4 5 dynamic-skip-min discard small measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-skip-max discard big measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-algo calculation to do");
l.add(null, "5 . none nothing");
l.add(null, "5 . minimum take lowest");
Expand Down Expand Up @@ -715,6 +721,14 @@ public void routerDoConfig(String a, cmds cmd) {
echoParam.ignorer = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-min")) {
echoParam.discardLo = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-max")) {
echoParam.discardHi = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-algo")) {
echoParam.string2algo(cmd.word());
lower.todo.set(0);
Expand Down
14 changes: 14 additions & 0 deletions src/net/freertr/rtr/rtrOspf4iface.java
Expand Up @@ -388,6 +388,8 @@ public void routerGetConfig(List<String> l, String beg, int filter) {
l.add(cmds.tabulator + beg + "dynamic-divisor " + echoParam.divisor);
l.add(cmds.tabulator + beg + "dynamic-multiply " + echoParam.multiply);
l.add(cmds.tabulator + beg + "dynamic-ignore " + echoParam.ignorer);
l.add(cmds.tabulator + beg + "dynamic-skip-min " + echoParam.discardLo);
l.add(cmds.tabulator + beg + "dynamic-skip-max " + echoParam.discardHi);
l.add(cmds.tabulator + beg + "dynamic-algo " + echoParam.getAlgoName());
for (int i = 0; i < neighs.size(); i++) {
rtrOspf4neigh ntry = neighs.get(i);
Expand Down Expand Up @@ -662,6 +664,14 @@ public void routerDoConfig(String a, cmds cmd) {
echoParam.ignorer = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-min")) {
echoParam.discardLo = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-max")) {
echoParam.discardHi = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-algo")) {
echoParam.string2algo(cmd.word());
schedWork(3);
Expand Down Expand Up @@ -852,6 +862,10 @@ public static void routerGetHelp(userHelping l) {
l.add(null, "5 . <num> multiplier");
l.add(null, "4 5 dynamic-ignore ignore small differences");
l.add(null, "5 . <num> maximum unreported change");
l.add(null, "4 5 dynamic-skip-min discard small measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-skip-max discard big measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-algo calculation to do");
l.add(null, "5 . none nothing");
l.add(null, "5 . minimum take lowest");
Expand Down
14 changes: 14 additions & 0 deletions src/net/freertr/rtr/rtrOspf6iface.java
Expand Up @@ -348,6 +348,8 @@ public void routerGetConfig(List<String> l, String beg) {
l.add(cmds.tabulator + beg + "dynamic-divisor " + echoParam.divisor);
l.add(cmds.tabulator + beg + "dynamic-multiply " + echoParam.multiply);
l.add(cmds.tabulator + beg + "dynamic-ignore " + echoParam.ignorer);
l.add(cmds.tabulator + beg + "dynamic-skip-min " + echoParam.discardLo);
l.add(cmds.tabulator + beg + "dynamic-skip-max " + echoParam.discardHi);
l.add(cmds.tabulator + beg + "dynamic-algo " + echoParam.getAlgoName());
for (int i = 0; i < neighs.size(); i++) {
rtrOspf6neigh ntry = neighs.get(i);
Expand Down Expand Up @@ -597,6 +599,14 @@ public void routerDoConfig(String a, cmds cmd) {
echoParam.ignorer = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-min")) {
echoParam.discardLo = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-max")) {
echoParam.discardHi = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-algo")) {
echoParam.string2algo(cmd.word());
schedWork(3);
Expand Down Expand Up @@ -767,6 +777,10 @@ public static void routerGetHelp(userHelping l) {
l.add(null, "5 . <num> multiplier");
l.add(null, "4 5 dynamic-ignore ignore small differences");
l.add(null, "5 . <num> maximum unreported change");
l.add(null, "4 5 dynamic-skip-min discard small measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-skip-max discard big measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-algo calculation to do");
l.add(null, "5 . none nothing");
l.add(null, "5 . minimum take lowest");
Expand Down
15 changes: 15 additions & 0 deletions src/net/freertr/rtr/rtrPvrpIface.java
Expand Up @@ -485,6 +485,8 @@ public void routerGetConfig(List<String> l, String beg, int filter) {
l.add(cmds.tabulator + beg + "dynamic-divisor " + echoParam.divisor);
l.add(cmds.tabulator + beg + "dynamic-multiply " + echoParam.multiply);
l.add(cmds.tabulator + beg + "dynamic-ignore " + echoParam.ignorer);
l.add(cmds.tabulator + beg + "dynamic-skip-min " + echoParam.discardLo);
l.add(cmds.tabulator + beg + "dynamic-skip-max " + echoParam.discardHi);
l.add(cmds.tabulator + beg + "dynamic-algo " + echoParam.getAlgoName());
cmds.cfgLine(l, labelIn == null, cmds.tabulator, beg + "label-in", "" + labelIn);
cmds.cfgLine(l, labelOut == null, cmds.tabulator, beg + "label-out", "" + labelOut);
Expand Down Expand Up @@ -561,11 +563,16 @@ public static void routerGetHelp(userHelping l) {
l.add(null, "5 . <num> multiplier");
l.add(null, "4 5 dynamic-ignore ignore small differences");
l.add(null, "5 . <num> maximum unreported change");
l.add(null, "4 5 dynamic-skip-min discard small measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-skip-max discard big measures");
l.add(null, "5 . <num> number of values");
l.add(null, "4 5 dynamic-algo calculation to do");
l.add(null, "5 . none nothing");
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, "4 5 route-map-in process prefixes in ingress updates");
l.add(null, "5 . <name:rm> name of route map");
l.add(null, "4 5 route-map-out process prefixes in egress updates");
Expand Down Expand Up @@ -749,6 +756,14 @@ public void routerDoConfig(String a, cmds cmd) {
echoParam.ignorer = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-min")) {
echoParam.discardLo = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-skip-max")) {
echoParam.discardHi = bits.str2num(cmd.word());
return;
}
if (a.equals("dynamic-algo")) {
echoParam.string2algo(cmd.word());
lower.notif.wakeup();
Expand Down
93 changes: 74 additions & 19 deletions src/net/freertr/tab/tabAverage.java
Expand Up @@ -21,30 +21,40 @@ public class tabAverage {
public int buckets = 5;

/**
* echo minimum
* minimum result
*/
public int minimum;

/**
* echo minimum
* maximum result
*/
public int maximum;

/**
* echo divisor
* divide result
*/
public int divisor = 1;

/**
* echo multiplier
* multiply result
*/
public int multiply = 1;

/**
* echo relaxer
* relaxer changes
*/
public int ignorer = 0;

/**
* discard smallest values
*/
public int discardLo = 0;

/**
* discard highest values
*/
public int discardHi = 0;

private int lastReported;

private final List<Integer> pastValues;
Expand Down Expand Up @@ -160,12 +170,57 @@ public int getResult(int met) {
if (pastValues.size() < 1) {
return met;
}
List<Integer> vals = pastValues;
for (int o = 0; o < discardLo; o++) {
List<Integer> v = new ArrayList<Integer>();
synchronized (vals) {
for (int i = 0; i < vals.size(); i++) {
v.add(vals.get(i));
}
}
int val = Integer.MAX_VALUE;
int seq = -1;
for (int i = 0; i < v.size(); i++) {
int cur = v.get(i);
if (cur < val) {
val = cur;
seq = i;
}
}
if (seq < 0) {
return met;
}
v.remove(seq);
vals = v;
}
for (int o = 0; o < discardHi; o++) {
List<Integer> v = new ArrayList<Integer>();
synchronized (vals) {
for (int i = 0; i < vals.size(); i++) {
v.add(vals.get(i));
}
}
int val = Integer.MIN_VALUE;
int seq = -1;
for (int i = 0; i < v.size(); i++) {
int cur = v.get(i);
if (cur > val) {
val = cur;
seq = i;
}
}
if (seq < 0) {
return met;
}
v.remove(seq);
vals = v;
}
switch (algorithm) {
case 1:
met = Integer.MAX_VALUE;
synchronized (pastValues) {
for (int i = 0; i < pastValues.size(); i++) {
int cur = pastValues.get(i);
synchronized (vals) {
for (int i = 0; i < vals.size(); i++) {
int cur = vals.get(i);
if (cur < met) {
met = cur;
}
Expand All @@ -174,31 +229,31 @@ public int getResult(int met) {
break;
case 2:
met = 0;
synchronized (pastValues) {
for (int i = 0; i < pastValues.size(); i++) {
int cur = pastValues.get(i);
synchronized (vals) {
for (int i = 0; i < vals.size(); i++) {
int cur = vals.get(i);
met += cur;
}
met /= pastValues.size();
met /= vals.size();
}
break;
case 3:
met = Integer.MIN_VALUE;
synchronized (pastValues) {
for (int i = 0; i < pastValues.size(); i++) {
int cur = pastValues.get(i);
synchronized (vals) {
for (int i = 0; i < vals.size(); i++) {
int cur = vals.get(i);
if (cur > met) {
met = cur;
}
}
}
break;
case 4:
synchronized (pastValues) {
synchronized (vals) {
met = 0;
int prv = pastValues.get(0);
for (int i = 1; i < pastValues.size(); i++) {
int cur = pastValues.get(i);
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) {
Expand Down

0 comments on commit 2605d4a

Please sign in to comment.