综合记录monitor的例子和源码:
https://github.com/mininet/mininet-util
https://github.com/mininet/mininet-tests
https://bitbucket.org/kunyi731/cs244pa2/src/9f9140ddaa5b?at=final
-------------------以下内容更新于2018年5月8日--------------
通过长时间的测试和脚本修改,确定:
上述monitor的方式是从TC入手,对主机和路由器之间的路径是可以检测的。但是对于路由器与路由器之间的路径是不可以检测的。原因是mininet使用的路由器交换机为OVS。OVS的队列值是要通过桥接(bridge)的方式加上ovs指令的方式配置端口队列。
相关OVS的知识和端口队列配置总结如下:
https://blog.csdn.net/zhengmx100/article/details/54729272
https://www.sdnlab.com/sdn-guide/14747.html
http://aidaiz.com/openvswitch-qos/
http://users.ecs.soton.ac.uk/drn/ofertie/openflow_qos_mininet.pdf
https://mailman.stanford.edu/pipermail/mininet-discuss/2013-December/003639.html
https://github.com/brownsys/pane/blob/nib-rewrite/scripts/ovs-set-port-queue-min.sh
通过上述配置的交换机队列端口为OVSinterface,对应链路为普通的Link。如果链路要设置带宽丢包延迟ECN,交换机端口需要为TCinterface,对应链路为TCLink。
这两种端口、链路是完全不同的,非融合的。
所以目前来看,路由器之间为TClink,要检测队列长度是无法检测。