/// findOptimizedPath function /// It finds an optimized path for transfering data by continuously /// call StatMux class findNextNode method private int[] findOptimizedPath(int src, int dst, PacketType typeP) { int i = 1; int[] a = new int[5]; a[0] = src; for (int j = 1; j < 5; j++) { a[j] = statMux.findNextNode(a[j - 1], dst, typeP); } return a; }
// getDelay function // It takes in an optimized path and packet type as input. // Based on input, the function calculates delay occured when traveling // through the optimized path public double getDelay(int[] opath, PacketType type) { double delay = 0; for (int i = 1; i < 4; i++) { Router temp = statMux.getRouter(opath[i] - 4); int flow = temp.getFlowLevel(); int delayR = temp.getDelay(); int priority = temp.getPriority(type); int thr = temp.getThroughput(); packThrough[i - 1] = thr; if (priority == 1) { loss[i - 1] = thr / 10.0; } if (priority == 2) { loss[i - 1] = thr / 5.0; } delay += numPack / thr + delayR + priority * flow; } return delay; }