2017-12-10 12 views
0

omnet ++を使用して、マルチキャストグループアドレスの特定のルートエントリを変更しています。通常、マルチキャストルートエントリは、メッセージの送信元に最適な(最短の)ルートを使用して追加されます。C++でのルートエントリ条件

しかし、私がする必要があるのは、特定のマルチキャストアドレスに対してこの動作を変更して、ソース条件に最短のパスを使用せず、代わりに「最初のエントリ」を使用することです。

私が言っていることは、次のような到着時刻の3つのインターフェイスを経由してルータ上で(マルチキャストルートエントリがない)マルチキャストパケットを受信した場合です。1.eth0 2.eth1 3.eth2、iteth自動的にインターフェイスeth0をRPFとして設定し、これが最適なパスであるかどうかを計算しません。

正常な動作は既にomnettにコード化されていましたが、新しいルートを追加する機能が見つかったとき、どこに新しいルートを追加するのか分かりません。

internalAddMulticastRoute

AddMulticastRoute

答えて

0

私の知る限り理解し、あなたが投稿した方法は、実際にインタフェースが使用されているに関しては何もチェックしない:マルチキャストルートが追加されるたびに、それが簡単に格納され、中古。 addMulicastRouteがどこに呼び出されているのか見てみたいかもしれません。優先順位を制御するコードが存在する可能性があります。 internalAddMulticastRouteのコードは、ルーティングテーブル(upper_boundでソートされたまま)のみを構成します。どのインタフェースを使用するかを制御したい場合は、ルーティングテーブルのエントリを変更する必要があります。 addMulticastRouteに電話する前に確認を行うことをおすすめします。

+0

私は正しいものを見つけたと思いますか?これはPIMDM.ccの新しいルートを作成します。 https://image.prntscr.com/image/YwhBxpDpRnqCAZCgmYINow.png ただし、存在しない場合にのみ作成されます。すぐに正しいRPFをチェックしていませんか?ソースへのパスが短いマルチキャストパケットが他のインターフェイスに来たら、RPF intをそのインターフェイスに変更する必要があります。 https://image.prntscr.com/image/ckEIO1XWRCS1jEgVjcUOlw.png –

+0

わかりません。それらは 'addMulticastRoute'メソッドを呼び出す他のコードかもしれません。あなたが投稿した画像は、無関係のコード断片しか含まれていないので、本当に役立たない。ライブラリやそれが実装する標準のドキュメントを見ましたか? –