- # create link if everything is correct
- if (node1 is not None and isinstance(node1, OVSKernelSwitch)
- and node2 is not None and isinstance(node2, OVSKernelSwitch)):
- self.mnet.addLink(node1, node2) # TODO we need TCLinks with user defined performance here
- else:
- raise Exception(
- "one of the given nodes is not a Mininet switch or None")
+ # try to give containers a default IP
+ if isinstance( node1, Docker ):
+ if not "params1" in params:
+ params["params1"] = {}
+ if not "ip" in params["params1"]:
+ params["params1"]["ip"] = self.getNextIp()
+ if isinstance( node2, Docker ):
+ if not "params2" in params:
+ params["params2"] = {}
+ if not "ip" in params["params2"]:
+ params["params2"]["ip"] = self.getNextIp()
+
+ return self.mnet.addLink(node1, node2, **params) # TODO we need TCLinks with user defined performance here
+
+ def removeLink(self, link=None, node1=None, node2=None):
+ """
+ Removes a link. Can either be specified by link object,
+ or the nodes the link connects. Wraps Dockernet method.
+ """
+ logging.debug("removeLink: n1=%s n2=%s" % (str(node1), str(node2)))
+ return self.mnet.removeLink(link=link, node1=node1, node2=node2)