2017-05-03 4 views
0

Ryu SDNコントローラを使用してネットワークレイテンシをエミュレートする必要があります。私はまず、コントローラがメッセージ内のパケットを受信するたびに関数を呼び出すデコレータの後にスリープ時間を追加しようとしましたが、問題はこの関数が現在の処理が完了するまで次のパケットを処理できないことです。この機能をマルチスレッドにする方法はありますか?Ryu SDNアプリケーションを使用してレイテンシをエミュレートする方法は?

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

答えて

1

ネットワークレイテンシをエミュレートする場合は、アプリケーションではなくリンクにレイテンシを適用するようにしてください。

あなたはネットワークシミュレータを使用している場合、これはそのAPI(例えばmininet:mininet.link.TCLink)で行うことができる

あなたは仮想マシンを使用している場合は、上の遅延をエミュレートするためnetemを設定することができます使用しているインターフェイス

+0

私は実際のデバイスを使用しています。とにかくありがとう。 – HSC

+0

実際の物理デバイスにもnetemを使用できます。 – Hafager

+0

よかった、ありがとう。 – HSC

関連する問題