def METHOD_NAME(counter_type, counts_output):
    leading_rows = _PARSER_PARAMETERS[counter_type].leading_rows
    header_rows = _PARSER_PARAMETERS[counter_type].header_rows
    status_columns = _PARSER_PARAMETERS[counter_type].status_columns
    # Skip any leading rows in the output
    trimmed_output = counts_output[leading_rows:]
    # Skip over the status columns to get the counter names
    counter_names = trimmed_output[0].split()[status_columns:]
    # Skip over the header rows to get to the actual counts
    interface_counts = trimmed_output[header_rows:]
    counts_dict = {}
    for row in interface_counts:
        tokens = row.split()
        interface = tokens[0].upper()
        counts_dict[interface] = {}
        # Skip over the status columns so the counter names and drop counts line up
        drop_counts = tokens[status_columns:]
        for i in range(len(drop_counts)):   # pylint: disable=consider-using-enumerate
            counts_dict[interface][counter_names[i]] = drop_counts[i]
    return counts_dict