Esempio n. 1
0
 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)
Esempio n. 2
0
 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)