Adding examples/ns3/multi_host
[nepi.git] / examples / ns3 / multi_host / experiment_interconnected.py
diff --git a/examples/ns3/multi_host/experiment_interconnected.py b/examples/ns3/multi_host/experiment_interconnected.py
new file mode 100644 (file)
index 0000000..f95bd77
--- /dev/null
@@ -0,0 +1,47 @@
+#\r
+#    NEPI, a framework to manage network experiments\r
+#    Copyright (C) 2013 INRIA\r
+#\r
+#    This program is free software: you can redistribute it and/or modify\r
+#    it under the terms of the GNU General Public License version 2 as\r
+#    published by the Free Software Foundation;\r
+#\r
+#    This program is distributed in the hope that it will be useful,\r
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+#    GNU General Public License for more details.\r
+#\r
+#    You should have received a copy of the GNU General Public License\r
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
+#\r
+# Author: Damien Saucez <damien.saucez@inria.fr>\r
+#         Alina Quereilhac <alina.quereilhac@inria.fr>\r
+\r
+from experiment import Experiment\r
+\r
+class ExperimentInterconnected(Experiment):\r
+    def __init__(self, ec, node, nb_nodes, real_time = True):                                                                                                                      \r
+        super(ExperimentInterconnected, self).__init__(ec, node, nb_nodes, real_time)\r
+        self.interconnected = False\r
+        self.fddev = None\r
+\r
+    def add_fdnetdevice(self, ip, prefix, nsnode = None):\r
+        # Sanity check\r
+        #\r
+        # only one FD device allowed\r
+        if self.fddev:\r
+            raise Exception("A FD device is already setup")\r
+\r
+        # Attach the FD device to the access point by default\r
+        if not nsnode:\r
+            nsnode = self.nsnodes[0]\r
+\r
+        # Create the FD device\r
+        self.fddev = self.ec.register_resource("ns3::FdNetDevice")\r
+        self.ec.set(self.fddev, "ip", ip)\r
+        self.ec.set(self.fddev, "prefix", prefix)\r
+\r
+        # attach it to the simulated node\r
+        self.ec.register_connection(nsnode, self.fddev)\r
+\r
+        return self.fddev\r