bdi-network-resilience

Details

diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
index 955fd13..d12c3cd 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/ClassifierCapability.java
@@ -74,10 +74,18 @@ public class ClassifierCapability extends RouterAgentCapability implements
 				if (event != null) {
 					if (GoalStatus.ACHIEVED.equals(event.getStatus())) {
 						Set<Flow> malicious = role.classifyFlows(ip);
+						
 						for (Flow flow : malicious) {
 							belief(new Threat(flow), true);
 						}
-						addBelief(new BenignBelief(new Benign(ip)));
+						
+						//no more reports from classifier then we are done with this link
+						if(malicious.size() == 0){
+							addBelief(new BenignBelief(new Benign(ip)));
+						}
+						else{
+							setEndState(EndState.FAILED);
+						}
 					} else {
 						setEndState(EndState.FAILED);
 					}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
index b3d43fe..f545d87 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RateLimiterCapability.java
@@ -129,7 +129,7 @@ public class RateLimiterCapability extends RouterAgentCapability {
 		}
 	}
 
-	public static final int FLOW_LIMIT_RATE = 50;
+	public static final int FLOW_LIMIT_RATE = 90;
 	public static final int IP_LIMIT_RATE = 50;
 	public static final int LINK_LIMIT_RATE = 50;
 	private static final long serialVersionUID = -1705728861020677126L;
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/BDINetRApp.java b/network-resilience/src/br/ufrgs/inf/bdinetr/BDINetRApp.java
index 59f1618..07d06b6 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/BDINetRApp.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/BDINetRApp.java
@@ -123,10 +123,10 @@ public class BDINetRApp {
 			factory = new EscapeRouterComponentFactory();
 			//bdi4jade won't send any data to link monitor
 			NETWORK.addRouter(new Router(new Ip("whatever"), -1, "LINK_MONITOR", Role.LINK_MONITOR.getId(), factory));
-			NETWORK.addRouter(new Router(new Ip("192.168.123.6"), 5550, "RATE_LIMITER", Role.RATE_LIMITER.getId(), factory));
-			NETWORK.addRouter(new Router(new Ip("192.168.123.6"), 5551, "ANOMALY_DETECTION", Role.ANOMALY_DETECTION.getId(), factory));
-			NETWORK.addRouter(new Router(new Ip("192.168.123.6"), 5552, "CLASSIFIER", Role.CLASSIFIER.getId(), factory));
-			NETWORK.addRouter(new Router(new Ip("192.168.123.6"), 5553, "FLOW_EXPORTER", Role.FLOW_EXPORTER.getId(), factory));
+			NETWORK.addRouter(new Router(new Ip("10.0.0.101"), 5550, "RATE_LIMITER", Role.RATE_LIMITER.getId(), factory));
+			NETWORK.addRouter(new Router(new Ip("10.0.0.101"), 5551, "ANOMALY_DETECTION", Role.ANOMALY_DETECTION.getId(), factory));
+			NETWORK.addRouter(new Router(new Ip("10.0.0.101"), 5552, "CLASSIFIER", Role.CLASSIFIER.getId(), factory));
+			NETWORK.addRouter(new Router(new Ip("10.0.0.101"), 5553, "FLOW_EXPORTER", Role.FLOW_EXPORTER.getId(), factory));
 			break;
 		}
 
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/escape/EscapeClassifier.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/escape/EscapeClassifier.java
index 3db4794..50c145e 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/escape/EscapeClassifier.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/escape/EscapeClassifier.java
@@ -39,7 +39,7 @@ import br.ufrgs.inf.bdinetr.domain.omnet.event.ThreatEvent;
 public class EscapeClassifier extends EscapeRouterComponent implements
 		Classifier, Observer {
 
-	private static final long WAITING_TIME = 30000; //30s
+	private static final long WAITING_TIME = 20000;
 
 	private final Set<ThreatEvent> events;
 
@@ -52,8 +52,11 @@ public class EscapeClassifier extends EscapeRouterComponent implements
 	@Override
 	public Set<Flow> classifyFlows(Ip ip) {
 		synchronized (events) {
+			Set<Flow> flows = new HashSet<>();
+			
 			long begin = System.currentTimeMillis();
 			long elapsed = System.currentTimeMillis() - begin;
+			
 			while (events.isEmpty() || (elapsed < WAITING_TIME)) {
 				try {
 					log.info("Elapsed time: " + elapsed + " - Events empty: "
@@ -66,17 +69,18 @@ public class EscapeClassifier extends EscapeRouterComponent implements
 					log.warn(e);
 				}
 			}
-
+			
 			log.info("Finished receiving Threat events. Elapsed time: "
-					+ elapsed);
+					+ elapsed + " got " + events.size() + " messages.");
 
-			Set<Flow> flows = new HashSet<>();
 			Iterator<ThreatEvent> it = events.iterator();
+			
 			while (it.hasNext()) {
 				ThreatEvent event = it.next();
 				flows.add(event.getFlow());
 				it.remove();
 			}
+			
 			return flows;
 		}
 	}