示例#1
0
def ovs_openflow_ecn(network, testname, bw=10, latency=50, qlen=200,
                     duration=10, qmins={50000}, ecn_tcp_flag=False, wait_seconds=10):
    """
    # 设置 使用 外部 ecn
    :param qmins:          queue min 监控大小
    :param ecn_tcp_flag : 使用ecn tcp 或 ip 控制
    :param testname:    # 测试名称
    :param network:
    :param bw:          # 10Mbps 带宽
    :param latency:     # 50ms 延时
    :param qlen:        # 队列长度
    :param duration:    # 运行时间
    :param wait_seconds: 附加等候时间, 等候进程结束 或是延 长helper程序运行
    :return:
    """
    # print_mininet_objs(net)
    result_all = {}
    red_ecn = False

    # 无ecn测试 TEST01
    default_minmax = ""
    queue_setup_fullname = "%s ECN:%s qlen:%s bw:%sMbps lat:%sms duraion:%s" % (
        testname, red_ecn, qlen, bw, latency, duration)
    info("*** setup queue %s\n" % queue_setup_fullname)
    test01_06_setup_queue_and_latency(network, ecn=red_ecn, bw=bw, queue_len=qlen, latency=latency,
                                      redminmax=default_minmax)

    for min_queue in qmins:
        testfullname = "sdn_ecn %s min:%s qlen:%s bw:%sMbps lat:%sms duraion:%s" % (
            testname + str(min_queue), min_queue, qlen, bw, latency, duration)
        info("*** setup ecn_ovs_helper (min= %s) for mod_ecn \n" % min_queue)
        ecn_ovs_helper.init_switch()
        info("*** running %s ...\n" % testfullname)
        result_all[testfullname] = \
            ecn_util.mesure_ping_and_netperf(network, round_count=1,
                                             round_duration=duration, ping_interval=0.1, ovs_helper=True,
                                             qmin=min_queue, ecn_tcp_flag=ecn_tcp_flag, ovs_helper_wait=wait_seconds)

        info("*** waiting %s seconds for all processes finished ...\n" % wait_seconds)
        sleep(wait_seconds)  # 每轮间隔一些时间, 等候所有进程结束

    ecn_util.dump_result(result_all)
    ecn_result.average_result(result_all.values())
    debug("%s\n" % str(result_all.keys()))
    return result_all
示例#2
0
 def run_this_bench():
     return ecn_util.mesure_ping_and_netperf(network, round_count=1, round_duration=duration, ping_interval=0.1)