experiment: Add multiple failure experiment
Change-Id: Ia7e856606ec483f0bb63840a0e40399058e5b6ac
diff --git a/bin/minindn b/bin/minindn
index 9c2d240..1c92097 100755
--- a/bin/minindn
+++ b/bin/minindn
@@ -7,6 +7,7 @@
from mininet.link import TCLink
from mininet.conf_parser import parse_hosts, parse_links
+from ndn.experiments.multiple_failure_experiment import MultipleFailureExperiment
from ndn.experiments.pingall_experiment import PingallExperiment
from ndn.experiments.failure_experiment import FailureExperiment
from ndn.ndn_host import NdnHost, CpuLimitedNdnHost
@@ -32,6 +33,7 @@
pingall = False
hr = False
failure = False
+ isMultipleFailure = False
parser = optparse.OptionParser(usage)
@@ -53,6 +55,9 @@
parser.add_option("--failure", action="store_true", dest="failure",
help="Run failure experiment, specify the number of pings using pingall")
+ parser.add_option("--multiple-failure", action="store_true", dest="isMultipleFailure",
+ help="Run multiple failure experiment; each node will fail and recover once")
+
parser.add_option("--no-cli", action="store_false", dest="isCliEnabled",
help="Run experiments and exit without showing the command line interface")
@@ -64,6 +69,7 @@
hr = options.hr
faces = options.faces
failure = options.failure
+ isMultipleFailure = options.isMultipleFailure
isCliEnabled = options.isCliEnabled
if ctime is None:
@@ -77,7 +83,7 @@
else:
file = arg[0]
- return file, testbed, pingall, ctime, hr, faces, failure, isCliEnabled
+ return file, testbed, pingall, ctime, hr, faces, failure, isMultipleFailure, isCliEnabled
class NdnTopo(Topo):
def __init__(self, conf_arq, **opts):
@@ -105,7 +111,7 @@
info('Parse of ' + conf_arq + ' done.\n')
-def execute(template_file='minindn.conf', testbed=False, pingall=None, ctime=None, hr=False, faces=3, failure=False, isCliEnabled=True):
+def execute(template_file='minindn.conf', testbed=False, pingall=None, ctime=None, hr=False, faces=3, failure=False, isMultipleFailure=False, isCliEnabled=True):
"Create a network based on template_file"
home = expanduser("~")
@@ -163,7 +169,10 @@
nodes = nodes[0:-1]
- if failure is True:
+ if isMultipleFailure is True:
+ test = MultipleFailureExperiment(net, nodes, ctime, Nfd.STRATEGY_BEST_ROUTE_V3)
+ test.start()
+ elif failure is True:
test = FailureExperiment(net, nodes, ctime, Nfd.STRATEGY_BEST_ROUTE_V3)
test.start()
elif pingall is not None:
@@ -183,7 +192,7 @@
if __name__ == '__main__':
hosts_conf = []
links_conf = []
- template, testbed, pingall, ctime, hr, faces, failure, isCliEnabled = parse_args()
+ template, testbed, pingall, ctime, hr, faces, failure, isMultipleFailure, isCliEnabled = parse_args()
setLogLevel('info')
- execute(template, testbed, pingall, ctime, hr, faces, failure, isCliEnabled)
+ execute(template, testbed, pingall, ctime, hr, faces, failure, isMultipleFailure, isCliEnabled)