Ejemplo n.º 1
0
    def load_topology_dpids(self):
        """
            Gets all DPIDs and datapath names from the
            topology.
        """
        topo = TopoReader().get_topology()

        try:
            for switch in topo['switches']:
                for dpid in topo['switches'][switch]['dpids']:
                    self.add_dpid(dpid, TopoReader().get_datapath_name(dpid))
            self.active = True
        except KeyError:
            pass
Ejemplo n.º 2
0
    def print_link_status(self, dpid, port, alert=False):
        """
            Now, just print the OESS link detected. The idea of this method
            is to generate alarms when time different from the moment packet
            is seen by ofp_sniffer with the time packet was sent is over
            many seconds.

            Args:
                dpid: source DPID in the OESS message
                port: source port in the OESS message
                alert: print only warning and critical
        """

        link = self.links[dpid][port]

        timestamp = str(datetime.fromtimestamp(link['timestamp']))
        topo_link = TopoReader().get_link_aliases(dpid,
                                                  port,
                                                  link['remote'],
                                                  link['port'],
                                                  option="Full")
        source_dpid = TopoReader().get_datapath_name(dpid)

        if timedelta(seconds=CRITICAL) > link['diff'] > timedelta(
                seconds=WARN):
            link['diff'] = str(link['diff']) + '  <-- Warning!'
            alert = True

        elif link['diff'] > timedelta(seconds=CRITICAL):
            link['diff'] = str(link['diff']) + '  <-- Critical!'
            alert = True

        if alert:
            if len(topo_link) > 0:
                self.print_header(True)
                print(self.layout % (topo_link, source_dpid, timestamp,
                                     link['last_seen'], link['diff']))
            else:
                self.print_header()
                print('%-24s %-4s %-24s %-4s %s\t %s\t %s' %
                      (dpid, port, link['remote'], link['port'], timestamp,
                       link['last_seen'], link['diff']))
Ejemplo n.º 3
0
 def __init__(self):
     self.printing_options = PrintingOptions()
     self.sanitizer = Sanitizer()
     self.oft = None
     self.stats = None
     self.cap = None
     self.packet_number = None
     self.load_apps = []
     self.packet_count = 1
     self.topo_reader = TopoReader()
     self.ofp_proxy = None
     self.load_config()
Ejemplo n.º 4
0
 def __init__(self):
     self.printing_options = PrintingOptions()
     self.sanitizer = Sanitizer()
     self.oft = None
     self.stats = None
     self.influx = None
     self.notifications = None
     self.trigger_event = threading.Event()
     self.cap = None
     self.packet_number = None
     self.load_apps = dict()
     self.packet_count = 1
     self.topo_reader = TopoReader()
     self.save_to_file = None
     self.ofp_proxy = None
     self.load_config()
Ejemplo n.º 5
0
 def get_topology():
     return TopoReader().get_json_topology()