Python 开放堆中子带宽限制法

Python 开放堆中子带宽限制法,python,openstack,bandwidth,openstack-neutron,Python,Openstack,Bandwidth,Openstack Neutron,现在我正在学习OpenStack中的中子QoS服务。这里有一条规则,即“带宽限制”。在的用户指南中,我可以限制网络的带宽,在使用Iperf后,我已经验证了带宽限制是否有效 ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) -------------------------------

现在我正在学习OpenStack中的中子QoS服务。这里有一条规则,即“带宽限制”。在的用户指南中,我可以限制网络的带宽,在使用Iperf后,我已经验证了带宽限制是否有效

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 10.30.0.7 port 5001 connected with 192.168.115.105 port
42726
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 6.5 sec  1.25 MBytes  1.62 Mbits/sec
现在我搞不清楚中子是什么方法限制了网络或端口的带宽。通过检查源代码,我没有找到带宽限制的方法

有谁知道中子的方法吗?哪些部分在限制带宽方面起着重要作用


感谢您的帮助:)

中子中的带宽限制是使用“QoS”(“服务质量”)驱动程序实现的。所使用的特定驱动程序取决于您的配置,但其中一个示例是
中子/plugins/ml2/drivers/openvswitch/agent/extension\u drivers/qos\u driver.py
中的OVS(开放式vSwitch)驱动程序

此代码利用对出口(数据包离开交换机)执行带宽整形(数据包查询和输出速率控制)和对入口(数据包进入交换机)执行策略(丢弃数据包)


linuxbridge插件的QoS位于
中子/plugins/ml2/drivers/linuxbridge/agent/extension\u drivers/QoS\u driver.py
,它通过
中子/agent/Linux/tc_lib.py
中的包装器使用标准Linux(
tc
)。我的配置基于。我想这是因为linuxbridge插件。请问,如果我更改tc_lib.py,可能会导致更多的数据包丢失?我想更改流量控制,以便使用Iperf验证丢包差异。谢谢。我对中子代码的这一部分不太熟悉,这里的评论对讨论来说是个糟糕的地方。你可能想把这个问题带到办公室。