bdi-network-resilience
Changes
network-resilience/.classpath 1(+1 -0)
Details
network-resilience/.classpath 1(+1 -0)
diff --git a/network-resilience/.classpath b/network-resilience/.classpath
index 0f45fde..0d9993f 100644
--- a/network-resilience/.classpath
+++ b/network-resilience/.classpath
@@ -11,5 +11,6 @@
<classpathentry kind="lib" path="lib/xmlrpc-client-3.1.3.jar"/>
<classpathentry kind="lib" path="lib/xmlrpc-common-3.1.3.jar"/>
<classpathentry kind="lib" path="lib/xmlrpc-server-3.1.3.jar"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/bdi-jade-extensions"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
index b5bc5ef..8612756 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/AnomalyDetectionCapability.java
@@ -249,8 +249,8 @@ public class AnomalyDetectionCapability extends RouterAgentCapability implements
.getBelief(new Restricted(ip));
if ((benign == null || !benign.getValue())
&& (restricted == null || !restricted.getValue())) {
- // Anomalous(l) AND !(not Benign(l)) AND
- // !(Restricted(l)) --> AttackPrevented(l)
+ // Anomalous(ip) AND !(not Benign(l)) AND
+ // !(Restricted(l)) --> Restricted(ip)
goal(goalUpdateSet, new Restricted(ip), true);
}
}
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSAgent.java b/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSAgent.java
new file mode 100644
index 0000000..277fa0e
--- /dev/null
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSAgent.java
@@ -0,0 +1,27 @@
+package br.ufrgs.inf.bdinetr.palliative;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import bdi4jade.core.SingleCapabilityAgent;
+import br.ufrgs.inf.bdinetr.agent.RouterAgent;
+import br.ufrgs.inf.bdinetr.domain.Router;
+import br.ufrgs.inf.bdinetr.domain.ontology.BDINetROntology;
+import jade.content.lang.sl.SLCodec;
+
+public class BDI2DoSAgent extends SingleCapabilityAgent {
+
+ private static final Log log = LogFactory.getLog(RouterAgent.class);
+ private static final long serialVersionUID = 6534875498063013722L;
+
+ public BDI2DoSAgent(Router router) {
+ super(new BDI2DoSCapability(router));
+ }
+
+ @Override
+ protected void init() {
+ getContentManager().registerLanguage(new SLCodec());
+ getContentManager().registerOntology(BDINetROntology.getInstance());
+ }
+
+}
\ No newline at end of file
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSCapability.java
new file mode 100644
index 0000000..adcd1bf
--- /dev/null
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/palliative/BDI2DoSCapability.java
@@ -0,0 +1,51 @@
+package br.ufrgs.inf.bdinetr.palliative;
+
+import bdi4jade.belief.Belief;
+import bdi4jade.belief.TransientBelief;
+import bdi4jade.extension.palliative.PalliativeCapability;
+import br.ufrgs.inf.bdinetr.agent.FlowExporterCapability;
+import br.ufrgs.inf.bdinetr.agent.RateLimiterCapability;
+import br.ufrgs.inf.bdinetr.domain.AnomalyDetection;
+import br.ufrgs.inf.bdinetr.domain.Classifier;
+import br.ufrgs.inf.bdinetr.domain.FlowExporter;
+import br.ufrgs.inf.bdinetr.domain.LinkMonitor;
+import br.ufrgs.inf.bdinetr.domain.RateLimiter;
+import br.ufrgs.inf.bdinetr.domain.Role;
+import br.ufrgs.inf.bdinetr.domain.Router;
+
+public class BDI2DoSCapability extends PalliativeCapability {
+
+ public static final String ROUTER_BELIEF = "router";
+ private static final long serialVersionUID = 4633237702870865396L;
+
+ @bdi4jade.annotation.Belief
+ private final Belief<String, Router> router;
+
+ public BDI2DoSCapability(Router router) {
+ this.router = new TransientBelief<>(ROUTER_BELIEF, router);
+
+ addPartCapability(new RateLimiterCapability(getRateLimiter()));
+ addPartCapability(new FlowExporterCapability(getFlowExporter()));
+ }
+
+ private LinkMonitor getLinkMonitor() {
+ return (LinkMonitor) router.getValue().getRole(Role.LINK_MONITOR);
+ }
+
+ private RateLimiter getRateLimiter() {
+ return (RateLimiter) router.getValue().getRole(Role.RATE_LIMITER);
+ }
+
+ private FlowExporter getFlowExporter() {
+ return (FlowExporter) router.getValue().getRole(Role.FLOW_EXPORTER);
+ }
+
+ private Classifier getClassifier() {
+ return (Classifier) router.getValue().getRole(Role.CLASSIFIER);
+ }
+
+ private AnomalyDetection getAnomalyDetection() {
+ return (AnomalyDetection) router.getValue().getRole(Role.ANOMALY_DETECTION);
+ }
+
+}