def test_get_port_rate_info_port_based(stc): ctor = CScriptableCreator() project = CStcSystem.Instance().GetObject("project") port = ctor.Create("port", project) # default streamblock ctor.Create("streamblock", port) assert tsc.get_port_rate_info(port, False)["FpsLoad"] == 84459 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 10 assert tsc.get_port_rate_info(port, False)["AvgPacketSize"] == 128 generator = port.GetObject("generator") gen_config = generator.GetObject("generatorconfig") # set fixed port rate gen_config.Set("FixedLoad", 1.0) update_generator(generator) assert tsc.get_port_rate_info(port, False)["FpsLoad"] == 8445 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 1 assert tsc.get_port_rate_info(port, False)["AvgPacketSize"] == 128 # set random port rate gen_config.Set("RandomMinLoad", 1.0) gen_config.Set("RandomMaxLoad", 3.0) gen_config.Set("LoadMode", "RANDOM") update_generator(generator) assert tsc.get_port_rate_info(port, False)["FpsLoad"] == 16891 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 2 assert tsc.get_port_rate_info(port, False)["AvgPacketSize"] == 128
def test_get_port_rate_info_priority_based(stc): ctor = CScriptableCreator() project = CStcSystem.Instance().GetObject("project") port = ctor.Create("port", project) # default streamblock streamblocks = [ctor.Create("streamblock", port)] assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 84459 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 10 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) generator = port.GetObject("generator") gen_config = generator.GetObject("generatorconfig") # set fixed port rate - should be ignored gen_config.Set("FixedLoad", 1.0) # priority mode -- until it's oversubscribed, the same as rate mode gen_config.Set("SchedulingMode", "PRIORITY_BASED") streamblocks[0].Set("Load", 3.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 25338 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 3 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # inactive streamblock streamblocks += [ctor.Create("streamblock", port)] streamblocks[1].Set("Active", False) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 25338 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 3 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # two active streamblocks streamblocks[1].Set("Active", True) streamblocks[1].Set("Load", 2.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 42230 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # different lengths streamblocks[0].Set("FixedFrameLength", 168) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 36839 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 149.66) # random lengths streamblocks[0].Set("FrameLengthMode", "INCR") streamblocks[0].Set("MinFrameLength", 64) streamblocks[0].Set("MaxFrameLength", 1024) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 23541 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 245.5) streamblocks[0].Set("FrameLengthMode", "FIXED") # oversubscribe first streamblock - second one not sent streamblocks[0].Set("Load", 101.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 664894 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 100 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 168) # oversubscribe second streamblock - first still sent streamblocks[0].Set("Load", 50.0) streamblocks[1].Set("Load", 100.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 754744 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 100 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 145.62)
def test_get_port_rate_info_rate_based(stc): ctor = CScriptableCreator() project = CStcSystem.Instance().GetObject("project") port = ctor.Create("port", project) # default streamblock streamblocks = [ctor.Create("streamblock", port)] assert tsc.get_port_rate_info(port, False)["FpsLoad"] == 84459 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 10 assert tsc.get_port_rate_info(port, False)["AvgPacketSize"] == 128 generator = port.GetObject("generator") gen_config = generator.GetObject("generatorconfig") # set fixed port rate - should be ignored gen_config.Set("FixedLoad", 1.0) # set block rate gen_config.Set("SchedulingMode", "RATE_BASED") streamblocks[0].Set("Load", 3.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 25338 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 3 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # inactive streamblock streamblocks += [ctor.Create("streamblock", port)] streamblocks[1].Set("Active", False) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 25338 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 3 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # two active streamblocks streamblocks[1].Set("Active", True) streamblocks[1].Set("Load", 2.0) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 42230 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 128) # different lengths streamblocks[0].Set("FixedFrameLength", 168) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 36839 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 149.66) # random lengths streamblocks[0].Set("FrameLengthMode", "INCR") streamblocks[0].Set("MinFrameLength", 64) streamblocks[0].Set("MaxFrameLength", 1024) update_generator(generator) assert round(tsc.get_port_rate_info(port, False)["FpsLoad"], 0) == 23541 assert tsc.get_port_rate_info(port, False)["PercentLoad"] == 5 assert (round(tsc.get_port_rate_info(port, False)["AvgPacketSize"], 2) == 245.5)