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
def run_this_bench(): return ecn_util.mesure_ping_and_netperf(network, round_count=1, round_duration=duration, ping_interval=0.1)