package edu.usc.enl.dynamicmeasurement.process.scripts; import edu.usc.enl.dynamicmeasurement.algorithms.transform.EpochPacer; import edu.usc.enl.dynamicmeasurement.model.WildcardPattern; import edu.usc.enl.dynamicmeasurement.process.PacketUser; import edu.usc.enl.dynamicmeasurement.process.Simulator; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Created with IntelliJ IDEA. * User: Masoud * Date: 1/31/13 * Time: 7:45 PM */ public class TrafficReportScript { public static void main(String[] args) throws Exception { // FileListParser fileListParser = new FileListParser(); // fileListParser.parse(args[0]); // String[] packetsFile = fileListParser.getPacketsFile(); // String outputFile = "output/skew/2/skew1_w"; // WildcardPattern.TOTAL_LENGTH = 32; // int updateStepDuration = 1000000; // boolean resetOnStep = true; // int maxTime = 0; // new File(outputFile).getParentFile().mkdirs(); // { // Set<WildcardPattern> wildcards; // // create wildcard report user // WildcardReport user = new WildcardReport(); // //run simulator // new Simulator(maxTime).run(packetsFile, user); // wildcards = user.getWildcards(); // PacketUser user2 = new TrimmedTrafficReport2(updateStepDuration, resetOnStep, wildcards, outputFile, 16); // new Simulator(maxTime).run(packetsFile, user2); // } // { // //create traffic report user // List<WildcardPattern> monitors = new ArrayList<>(); // int items = 8; // for (int i = 0; i < items; i++) { // monitors.add(new WildcardPattern(i, WildcardPattern.TOTAL_LENGTH - 3, 0)); // } // PacketUser user = new TestPrefixReport(updateStepDuration, resetOnStep, monitors); // //run simulator // new Simulator(maxTime).run(packetsFile, user); // } // { // //create traffic report user // String folder = "E:\\enl\\measurement\\DynamicMonitor\\..\\caida2\\trace\\1"; // File folderFile = new File(folder); // File[] files = folderFile.listFiles(); // if (files == null) { // throw new Exception("Folder " + folder + " not found"); // } // Arrays.sort(files, new NumberAwareComparator()); // packetsFile = new String[files.length]; // int i = 0; // for (File file : files) { // packetsFile[i++] = file.getAbsolutePath(); // } // // PacketUser user = new SumReport(true, true); // user = new TransformHandler(user); // ((TransformHandler) user).addTransform(new SkewPacketUser(new WildcardPattern(0, 32, 0), 0.6)); //// user = new PacketFilter(user, new WildcardPattern(4, 32 - 4, 0)); // user = new EpochPacer(user, updateStepDuration); //// user = new SkewPacketUser(updateStepDuration, true, user, 1.2); //// user = new RandomAdditionPacketUser(updateStepDuration, true, user, 0.1, new Random(12392342)); // //run simulator // new Simulator(maxTime).run(packetsFile, user); // } // { // //create traffic report user // int wildcard = 0; // PacketUser user = new SkewFinderReport(updateStepDuration, resetOnStep, wildcard); // ((SkewFinderReport) user).setStatsOutputWriter(new PrintWriter(outputFile + "_" + wildcard + ".txt")); // user = new SkewPacketUser(updateStepDuration, true, user, 2); // //run simulator // new Simulator(maxTime).run(packetsFile, user); // } { //create traffic report user // PacketUser user = new SumReport(true, true); List<WildcardPattern> monitors = new ArrayList<>(); int items = 16; for (int i = 0; i < items; i++) { monitors.add(new WildcardPattern(i, WildcardPattern.TOTAL_LENGTH - 4, 0)); } // PacketUser user = new SumReportPrefixes(monitors, true); PacketUser user = new SumReport(true, true); user = new EpochPacer(user, 1000000); //run simulator new Simulator(0).run(new String[]{"F:\\trace\\pkt2all\\1\\20120920_0", "F:\\trace\\pkt2all\\1\\20120920_1", "F:\\trace\\pkt2all\\1\\20120920_2", "F:\\trace\\pkt2all\\1\\20120920_3", "F:\\trace\\pkt2all\\1\\20120920_4"}, user); // new Simulator(maxTime).run(new String[]{"E:\\enl\\measurement\\DynamicMonitor\\output\\test\\1\\trace\\1.txt"}, user); } } public Set<WildcardPattern> createTrimmedTree(int maxWildcards) { Set<WildcardPattern> snapshot = new HashSet<>(1 << (maxWildcards + 1), 1); for (int i = 0; i < (1 << maxWildcards); i++) { WildcardPattern w = new WildcardPattern(i, maxWildcards, 0); snapshot.add(w); while (w.canGoUp()) { if (w.isLeft()) { w = w.clone().goUp(); snapshot.add(w); } else { break; } } } return snapshot; } }