def req_handler_manage_bridge(self, cbt): try: olid = cbt.request.params["OverlayId"] br = self._ovl_net[olid] tnlid = cbt.request.params["TunnelId"] if cbt.request.params["UpdateType"] == "LnkEvConnected": port_name = cbt.request.params["TapName"] self._tunnels[olid][tnlid] = { "PeerId": cbt.request.params["PeerId"], "TunnelId": tnlid, "ConnectedTimestamp": cbt.request.params["ConnectedTimestamp"], "TapName": port_name, "MAC": Modlib.delim_mac_str(cbt.request.params["MAC"]), "PeerMac": Modlib.delim_mac_str(cbt.request.params["PeerMac"]) } br.add_port(port_name) self.log("LOG_INFO", "Port %s added to bridge %s", port_name, str(br)) elif cbt.request.params["UpdateType"] == "LnkEvRemoved": self._tunnels[olid].pop(tnlid, None) if br.bridge_type == OvsBridge.bridge_type: port_name = cbt.request.params.get("TapName") if port_name: br.del_port(port_name) self.log("LOG_INFO", "Port %s removed from bridge %s", port_name, str(br)) except RuntimeError as err: self.register_cbt("Logger", "LOG_WARNING", str(err)) cbt.set_response(None, True) self.complete_cbt(cbt)
def req_handler_manage_bridge(self, cbt): try: olid = cbt.request.params["OverlayId"] br = self._ovl_net[olid] port_name = cbt.request.params.get("TapName") tnlid = cbt.request.params["TunnelId"] if cbt.request.params["UpdateType"] == "LnkEvCreated": # block external system components from attempting to configure our # tunnel as a source of traffic #port_name = cbt.request.params["TapName"] Modlib.runshell([ "sysctl", "net.ipv6.conf.{}.disable_ipv6=1".format(port_name) ]) Modlib.runshell([OvsBridge.iptool, "addr", "flush", port_name]) elif cbt.request.params["UpdateType"] == "LnkEvConnected": #port_name = cbt.request.params["TapName"] self._tunnels[olid][port_name] = { "PeerId": cbt.request.params["PeerId"], "TunnelId": tnlid, "ConnectedTimestamp": cbt.request.params["ConnectedTimestamp"], "TapName": port_name, "MAC": Modlib.delim_mac_str(cbt.request.params["MAC"]), "PeerMac": Modlib.delim_mac_str(cbt.request.params["PeerMac"]) } self._tunnels[olid]["DSeq"] = self._tunnels[olid]["DSeq"] + 1 br.add_port(port_name) self.log("LOG_INFO", "Port %s added to bridge %s", port_name, str(br)) elif cbt.request.params["UpdateType"] == "LnkEvRemoved": self._tunnels[olid].pop(port_name, None) if br.bridge_type == OvsBridge.bridge_type: self._tunnels[olid][ "DSeq"] = self._tunnels[olid]["DSeq"] + 1 br.del_port(port_name) self.log("LOG_INFO", "Port %s removed from bridge %s", port_name, str(br)) except RuntimeError as err: self.register_cbt("Logger", "LOG_WARNING", str(err)) cbt.set_response(None, True) self.complete_cbt(cbt)