set different site name for each router

Change-Id: Ic81d8d9908923dfafce777c091fc9b288ade7400
refs: #2719
diff --git a/ndn/experiments/experiment.py b/ndn/experiments/experiment.py
index e7b713a..e70c02c 100644
--- a/ndn/experiments/experiment.py
+++ b/ndn/experiments/experiment.py
@@ -48,10 +48,10 @@
     def setup(self):
         for host in self.net.hosts:
             # Set strategy
-            host.nfd.setStrategy("/ndn/edu", self.strategy)
+            host.nfd.setStrategy("/ndn/", self.strategy)
 
             # Start ping server
-            host.cmd("ndnpingserver /ndn/edu/" + str(host) + " > ping-server &")
+            host.cmd("ndnpingserver /ndn/" + str(host) + "-site/" + str(host) + " > ping-server &")
 
             # Create folder to store ping data
             host.cmd("mkdir ping-data")
@@ -66,16 +66,14 @@
 
         # Checking for convergence
         for host in self.net.hosts:
-            statusRouter = host.cmd("nfd-status -b | grep /ndn/edu/%C1.Router/cs/")
-            statusPrefix = host.cmd("nfd-status -b | grep /ndn/edu/")
+            statusRouter = host.cmd("nfd-status -b | grep site/%C1.Router/cs/")
+            statusPrefix = host.cmd("nfd-status -b | grep ndn | grep site | grep -v Router")
             didNodeConverge = True
             for node in self.nodes.split(","):
-                    if ("/ndn/edu/%C1.Router/cs/" + node) not in statusRouter:
-                        didNodeConverge = False
-                        didNlsrConverge = False
-                    if str(host) != node and ("/ndn/edu/" + node) not in statusPrefix:
-                        didNodeConverge = False
-                        didNlsrConverge = False
+                if ( ("/ndn/" + node + "-site/%C1.Router/cs/" + node) not in statusRouter or
+                      str(host) != node and ("/ndn/" + node + "-site/" + node) not in statusPrefix ):
+                    didNodeConverge = False
+                    didNlsrConverge = False
 
             host.cmd("echo " + str(didNodeConverge) + " > convergence-result &")
 
@@ -89,7 +87,7 @@
     def ping(self, source, dest, nPings):
         # Use "&" to run in background and perform parallel pings
         print "Scheduling ping(s) from %s to %s" % (source.name, dest.name)
-        source.cmd("ndnping -t -c "+ str(nPings) + " /ndn/edu/" + dest.name + " >> ping-data/" + dest.name + ".txt &")
+        source.cmd("ndnping -t -c "+ str(nPings) + " /ndn/" + dest.name + "-site/" + dest.name + " >> ping-data/" + dest.name + ".txt &")
         time.sleep(0.2)
 
     def startPings(self):
@@ -107,8 +105,8 @@
         print("Bringing %s up" % host.name)
         host.nfd.start()
         host.nlsr.start()
-        host.nfd.setStrategy("/ndn/edu", self.strategy)
-        host.cmd("ndnpingserver /ndn/edu/" + str(host) + " > ping-server &")
+        host.nfd.setStrategy("/ndn/", self.strategy)
+        host.cmd("ndnpingserver /ndn/" + str(host) + "-site/" + str(host) + " > ping-server &")
 
     def startPctPings(self):
         nNodesToPing = int(round(len(self.net.hosts)*self.pctTraffic))
@@ -143,4 +141,3 @@
     @staticmethod
     def register(name, experimentClass):
         ExperimentManager.register(name, experimentClass)
-
diff --git a/ndn/nfd.py b/ndn/nfd.py
index 8e39a39..d779a69 100644
--- a/ndn/nfd.py
+++ b/ndn/nfd.py
@@ -59,7 +59,7 @@
         node.cmd("export HOME=%s" % node.homeFolder)
 
     def start(self):
-        NdnApplication.start(self, "nfd --config %s 2>> %s &" % (self.confFile, self.logFile))
+        NdnApplication.start(self, "nfd --config %s >> %s 2>&1 &" % (self.confFile, self.logFile))
         time.sleep(2)
 
     def setStrategy(self, name, strategy):
diff --git a/ndn/nlsr.py b/ndn/nlsr.py
index 6033b38..43176b4 100644
--- a/ndn/nlsr.py
+++ b/ndn/nlsr.py
@@ -39,13 +39,9 @@
         self.logDir = "%s/log" % node.homeFolder
         node.cmd("mkdir %s" % self.logDir)
 
-        # Configure basic router information in nlsr.conf based on host name
-        node.cmd("sudo sed -i 's|router .*|router %s|g' %s" % (self.routerName, self.confFile))
-        node.cmd("sudo sed -i 's|log-dir .*|log-dir %s|g' %s" % (self.logDir, self.confFile))
-        node.cmd("sudo sed -i 's|seq-dir .*|seq-dir %s|g' %s" % (self.logDir, self.confFile))
-        node.cmd("sudo sed -i 's|prefix .*netlab|prefix /ndn/edu/%s|g' %s" % (node.name, self.confFile))
-
     def start(self):
+        # Removed & at the end, was giving key not found error
+        # This way NLSR is daemonized fully before continuing
         NdnApplication.start(self, "nlsr -d -f {}".format(self.confFile))
 
     @staticmethod
@@ -81,7 +77,7 @@
             shutil.copyfile("{}/root.cert".format(securityDir), "{}/root.cert".format(nodeSecurityFolder))
 
             # Create site certificate
-            siteName = "/ndn/edu"
+            siteName = "ndn/{}-site".format(host.name)
             siteKeyFile = "{}/site.keys".format(nodeSecurityFolder)
             siteCertFile = "{}/site.cert".format(nodeSecurityFolder)
             Nlsr.createKey(host, siteName, siteKeyFile)
@@ -157,7 +153,7 @@
         general =  "general\n"
         general += "{\n"
         general += "  network /ndn/\n"
-        general += "  site /edu\n"
+        general += "  site /{}-site\n".format(self.node.name)
         general += "  router /%C1.Router/cs/" + self.node.name + "\n"
         general += "  log-level " + self.logLevel + "\n"
         general += "  log-dir " + self.node.homeFolder + "/log\n"
@@ -187,7 +183,7 @@
 
                 neighbors += "neighbor\n"
                 neighbors += "{\n"
-                neighbors += "  name /ndn/edu/%C1.Router/cs/" + other.name + "\n"
+                neighbors += "  name /ndn/" + other.name + "-site/%C1.Router/cs/" + other.name + "\n"
                 neighbors += "  face-uri udp://" + str(ip) + "\n"
                 neighbors += "  link-cost " + linkCost + "\n"
                 neighbors += "}\n"
@@ -220,7 +216,7 @@
 
         advertising =  "advertising\n"
         advertising += "{\n"
-        advertising += "  prefix /ndn/edu/" + self.node.name + "\n"
+        advertising += "  prefix /ndn/" + self.node.name + "-site/" + self.node.name + "\n"
         advertising += "}\n"
 
         return advertising