def METHOD_NAME(topology_m2, waitfor_async_attr, entries):
    """Tests replication behavior with valid
    nsDS5ReplicaWaitForAsyncResults attribute values
    :id: 117b6be2-cdab-422e-b0c7-3b88bbeec036
    :parametrized: yes
    :setup: Replication with two suppliers,
        wait for async set on all suppliers, try:
        None, '2000', '0', '-5'
    :steps:
        1. Set Replication Debugging loglevel for the errorlog
        2. Set nsslapd-logging-hr-timestamps-enabled to 'off' on both suppliers
        3. Gather all sync attempts,  group by timestamp
        4. Take the most common timestamp and assert it has appeared
           in the set range
    :expectedresults:
        1. Replication Debugging loglevel should be set
        2. nsslapd-logging-hr-timestamps-enabled  should be set
        3. Operation should be successful
        4. Errors log should have all timestamp appear
    """
    supplier1 = topology_m2.ms["supplier1"]
    supplier2 = topology_m2.ms["supplier2"]
    log.info("Set Replication Debugging loglevel for the errorlog")
    supplier1.config.loglevel((ErrorLog.REPLICA,))
    supplier2.config.loglevel((ErrorLog.REPLICA,))
    sync_dict = Counter()
    min_ap = waitfor_async_attr[1][0]
    max_ap = waitfor_async_attr[1][1]
    time.sleep(20)
    log.info("Gather all sync attempts within Counter dict, group by timestamp")
    with open(supplier1.errlog, 'r') as errlog:
        errlog_filtered = filter(lambda x: "waitfor_async_results" in x, errlog)
        # Watch only over unsuccessful sync attempts
        for line in errlog_filtered:
            if line.split()[3] != line.split()[4]:
                # A timestamp looks like:
                # [03/Jan/2018:14:35:15.806396035 +1000] LOGMESSAGE HERE
                # We want to assert a range of "seconds", so we need to reduce
                # this to a reasonable amount. IE:
                #   [03/Jan/2018:14:35:15
                # So to achieve this we split on ] and . IE.
                # [03/Jan/2018:14:35:15.806396035 +1000] LOGMESSAGE HERE
                #                                      ^ split here first
                #                      ^ now split here
                # [03/Jan/2018:14:35:15
                # ^ final result
                timestamp = line.split(']')[0].split('.')[0]
                sync_dict[timestamp] += 1
    log.info("Take the most common timestamp and assert it has appeared " \
             "in the range from %s to %s times" % (min_ap, max_ap))
    most_common_val = sync_dict.most_common(1)[0][1]
    log.debug("%s <= %s <= %s" % (min_ap, most_common_val, max_ap))
    assert min_ap <= most_common_val <= max_ap