def IPv_analysis(IPv_type, exp_n, res_directory, coll, from_d, to_d, ext):
    input_file_path = res_directory + exp_n + '/5.split_data_for_analysis/' + IPv_type + '/' + coll + '_' + from_d + '-' + to_d + ext
    output_file_path = res_directory + exp_n + '/6.more_specifics_analysis/' + IPv_type + '/' + coll + '_' + from_d + '-' + to_d + '.csv'

    write_flag = f.overwrite_file(output_file_path)

    if write_flag:
        print "Loading " + input_file_path + "..."

        df = f.read_file(file_ext, input_file_path)
        df_sort = df.sort_values(by=['MONITOR', 'PREFIX', 'TIME'])
        df_sort = df_sort.reset_index(drop=True)
        df_sort = df_sort.drop(['Unnamed: 0'], axis=1)

        print "Data loaded successfully"

        # 1.Prefix visibility analysis
        print 'Getting visibility per prefix...'
        monitors, prefixes, visibilities_per_prefix, updates_per_prefix, ASes = prefix_visibility_analysis(
            df_sort, exp_n)

        df_prefixes_per_monitor = pd.DataFrame({
            'MONITOR': monitors,
            'PREFIX': prefixes
        })

        # 2.Clustering prefixes into more specifics, least_specifics and uniques (non-specifics)
        pref_types, deeps = clustering_prefixes(df_prefixes_per_monitor)

        df_visibility_per_prefix = pd.DataFrame({
            'MONITOR': monitors,
            'PREFIX': prefixes,
            'VISIBILITY': visibilities_per_prefix,
            'UPDATES': updates_per_prefix,
            'TYPE': pref_types,
            'DEEP': deeps,
            'ORIGIN': ASes
        })

        # 3.Clustering more specifics prefixes into TOP, single level and more specifics of other more specifics
        df_more_specifics = df_visibility_per_prefix[
            df_visibility_per_prefix['TYPE'] == 'more_specific']
        df_more_specifics = df_more_specifics.reset_index(drop=True)
        df_more_specifics = df_more_specifics.drop(['Unnamed: 0'], axis=1)

        pref_types, deeps = clustering_prefixes(df_more_specifics)

        # Replace types for more detailed types
        df_more_specifics['TYPE'] = pref_types

        df_others = df_visibility_per_prefix[
            df_visibility_per_prefix['TYPE'] != 'more_specific']
        df_others = df_others.reset_index(drop=True)
        df_others = df_others.drop(['Unnamed: 0'], axis=1)

        df_visibility_per_prefix = df_more_specifics.append(df_others,
                                                            ignore_index=True)

        output_file_path = res_directory + exp_n + '/6.more_specifics_analysis/' + IPv_type + '/' + collector + '_' + from_d + '-' + to_d + '.csv'
        f.save_file(df_visibility_per_prefix, ext, output_file_path)
Пример #2
0
    def saveFile(self):
        #Get the current textbox
        textbox = self.getTabText()
        
        #Save the file by creating a new fill        
        filename = tk.filedialog.asksaveasfilename()
        saved_text = textbox.get('1.0', tk.END)

        fm.save_file(filename, saved_text)

        #Add the file name to the title of the tab
        self.notebook.tab(textbox, text=filename)
    step_dir = '/5.split_data_for_analysis/IPv6'
    exp.per_step_dir(exp_name, step_dir)

    input_file_path = result_directory + exp_name + '/4.concatenate_RIB_data/' + collector + '_' + from_date + '-' + to_date + file_ext
    output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext

    write_flag = f.overwrite_file(output_file_path)

    if write_flag == 1:
        print "Loading " + input_file_path + "..."

        df_advises = f.read_file(file_ext, input_file_path)

        print "Data loaded successfully"

        print "Splitting {} advises...".format(len(df_advises))

        df_IPv4_updates, df_IPv6_updates = separate_IPv_types(df_advises)

        df_IPv4_updates = df_IPv4_updates.drop(['Unnamed: 0'], axis=1)
        df_IPv6_updates = df_IPv6_updates.drop(['Unnamed: 0'], axis=1)

        step_dir = '/5.split_data_for_analysis/IPv4'
        output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext

        f.save_file(df_IPv4_updates, file_ext, output_file_path)

        step_dir = '/5.split_data_for_analysis/IPv6'
        output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext

        f.save_file(df_IPv6_updates, file_ext, output_file_path)
                                print('UNAVAILABLE file: ' + file_path +
                                      'updates.' + year_str + month_str +
                                      dd_str + '.' + hh_str + mm_str)

        # DATA FIELDS
        times = []
        types = []
        s_IPs = []
        s_AS = []
        prefixes = []
        AS_PATHs = []

        # dump data into several lists
        for i in range(len(update_lines)):
            dump_into_lists(update_lines[i], times, types, s_IPs, s_AS,
                            prefixes, AS_PATHs, from_time, to_time)

        print(' Data saved as lists!')

        df_update = pd.DataFrame({
            'TIME': times,
            'TYPE': types,
            'MONITOR': s_IPs,
            'AS': s_AS,
            'PREFIX': prefixes,
            'AS_PATH': AS_PATHs
        })
        print(' Data Frame created!')

        f.save_file(df_update, file_ext, output_file_path)
Пример #5
0
    step_dir = '/7.combined_data'
    exp.per_step_dir(exp_name, step_dir)

    IP_versions = ['IPv4', 'IPv6']
    collectors = [
        'rrc00', 'rrc01', 'rrc04', 'rrc05', 'rrc07', 'rrc10', 'rrc11', 'rrc12',
        'rrc13'
    ]

    frames = []

    for IP_v in IP_versions:
        output_file_path = result_directory + exp_name + '/7.combined_data/' + IP_v + '/' + from_date + '-' + to_date + '.csv'
        write_flag = f.overwrite_file(output_file_path)

        if write_flag:
            for coll in collectors:
                df = pd.read_csv(result_directory + exp_name +
                                 '/6.more_specifics_analysis/' + IP_v + '/' +
                                 coll + '_' + from_date + '-' + to_date +
                                 '.csv')
                df = df.drop(['Unnamed: 0'], axis=1)
                df['collector'] = coll
                df['IPv'] = IP_v
                frames.append(df)

    result = pd.concat(frames)
    result = result.reset_index(drop=True)
    output_file_path = result_directory + exp_name + step_dir + '/' + from_date + '-' + to_date + '.csv'
    f.save_file(result, file_ext, output_file_path)
        df_time_mm = df_time_s // 60
        df_time_list = df_time_mm.tolist()

        df_type = df['TYPE']
        df_type_list = df_type.tolist()

        state_indexes = get_state_indexes(df_type_list)
        print(len(state_indexes))

        df_monitor = df['MONITOR']
        df_monitor_list = df_monitor.tolist()

        affected_messages = []

        print('\nSearching affected messages...')

        df_clean = df
        affected_indexes = []

        for i in reversed(state_indexes):
            affected_indexes += get_affected_message_indexes_per_STATE(
                i, df_monitor_list, df_type_list, df_time_list)

        df_clean = df_clean.drop(df.index[affected_indexes])
        df_clean = df_clean.reset_index(drop=True)
        df_clean = df_clean.drop(['Unnamed: 0'], axis=1)

        f.save_file(df_clean, file_ext, output_file_path)

        print('Clean data saved')
Пример #7
0
        df_RIBS = pd.DataFrame({
            'TIME': times,
            'TYPE': types,
            'MONITOR': s_IPs,
            'AS': s_AS,
            'PREFIX': prefixes,
            'AS_PATH': AS_PATHs
        })
        print(' Data Frame created!')

        # Load clean data
        input_file_path = result_directory + exp_name + '/3.data_cleaning/' + collector + '_' + from_date + '-' + to_date + file_ext
        output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext

        write_flag = f.overwrite_file(output_file_path)

        print "Loading " + input_file_path + "..."

        df_updates = f.read_file(file_ext, input_file_path)

        print "Data loaded successfully"

        print "Concatenating RIBs to updates"

        list_complete = [df_RIBS, df_updates]

        df_complete = pd.concat(list_complete)
        df_complete = df_complete.drop(['Unnamed: 0'], axis=1)

        f.save_file(df_complete, file_ext, output_file_path)
Пример #8
0
    experiments = getattr(exp, 'experiments')
    experiment = experiments[exp_name]

    from_date = experiment['initDay']
    to_date = experiment['endDay']
    result_directory = experiment['resultDirectory']
    file_ext = experiment['resultFormat']

    step_dir = '/2.sort_data_for_cleaning'
    exp.per_step_dir(exp_name, step_dir)

    input_file_path = result_directory + exp_name + '/1.load_data/' + collector + '_' + from_date + '-' + to_date + file_ext
    output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext

    write_flag = f.overwrite_file(output_file_path)

    if write_flag:
        print('Loading ' + input_file_path + ' ...')

        df = f.read_file(file_ext, input_file_path)

        df_sort = df.sort_values(by=['MONITOR', 'TIME'])

        df_sort = df_sort.reset_index(drop=True)
        df_sort = df_sort.drop(['Unnamed: 0'], axis=1)

        f.save_file(df_sort, file_ext, output_file_path)

        check_output(input_file_path, output_file_path)