Пример #1
0
    def __init__(self, topo, soft_labels=None, ruleset_pkl=None):
        self.topo = topo
        self.switch_num = len(topo)
        self.soft_labels = soft_labels

        self.shortest_pathes = {label: {} for label in range(self.switch_num)}
        self.get_shortest_pathes()

        if ruleset_pkl is not None:
            self.ruleset = element.de_serialize(ruleset_pkl)

        self.install_num = {}
        self.predictor = None
Пример #2
0
 def generate_real_traffic(self, filename, sw_list=None):  # sw_list: senders 
     # real pcap/pkl -> syn traffic 
     self.traffic = traffic.Traffic()
     if filename.find('.pcap') != -1:
         real_traffic = traffic.Traffic(filename)
     elif filename.find('.pkl') != -1:
         real_traffic = element.de_serialize(filename)
     else:
         raise NameError('Error. Not a valid input file format. Return')
         return
     real_pkts = real_traffic.pkts
     syn_pkts = self.traffic_mapping(real_pkts, sw_list)
     self.traffic.add_pkts(syn_pkts)
     return
Пример #3
0
    def generate_ruleset_from_traffic(self, traffic_pkl, mask=24, rate=0, maxdep=setting.INF):
        traffic = element.de_serialize(traffic_pkl)
        from random import random
        for pkt in traffic.pkts:
            if pkt.dstip in self.rules: continue
            dice = random()
            if dice <= rate:
                dstprefix = element.int2ip(element.get_ip_range(pkt.dstip, mask)[0])
                self.rules[pkt.dstip] = (24, dstprefix)
                self.ruleset.add((24, dstprefix))
            else:
                self.rules[pkt.dstip] = (32, pkt.dstip)
                self.ruleset.add((32, pkt.dstip))
        
        self.get_depset(maxdep)

        return
Пример #4
0
 def generate_log_traffic(self, pkl_file):  # traffic pkl -> traffic
     self.traffic = element.de_serialize(pkl_file)
     return