如何使用Ryu SDN应用程序模拟延迟?

时间:2017-05-03 11:10:37

标签: python sdn ryu

我需要使用Ryu SDN控制器模拟网络延迟。我首先尝试在装饰器之后添加一个休眠时间,每当控制器在消息中接收到一个数据包时调用一个函数,但问题是这个函数在当前完成之前无法处理下一个数据包。有没有办法让这个功能成为多线程?

@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def _packet_in_handler(self, ev):
time.sleep(LATENCY)
...

1 个答案:

答案 0 :(得分:1)

如果您想模拟网络延迟,则应该尝试将延迟应用于链接而不是应用程序。

如果您使用的是网络模拟器,可以在其API中完成(例如mininet:mininet.link.TCLink)

如果您使用的是虚拟机,则可以设置netem来模拟正在使用的接口的延迟。