メイン Routing Protocols Implementation & Model Development マルチパス(複数経路)について | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
マルチパス(複数経路)について | Akihiro | 2015/6/5 15:12 |
Re: マルチパス(複数経路)について | Akihiro | 2015/6/8 16:36 |
Re: マルチパス(複数経路)について | maxam | 2015/6/8 19:38 |
Re: マルチパス(複数経路)について | Akihiro | 2015/6/9 16:11 |
Re: マルチパス(複数経路)について | maxam | 2015/6/9 16:54 |
Re: マルチパス(複数経路)について | Akihiro | 2015/7/3 20:56 |
» Re: マルチパス(複数経路)について | maxam | 2015/7/6 12:15 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
maxam | 投稿日時: 2015/7/6 12:15 |
常連 登録日: 2006/4/11 居住地: 投稿: 58 |
Re: マルチパス(複数経路)について こんにちは
>ソースコードのどの処理の部分に追加すればよいのでしょうか? 恐らくAodvCheckRouteExist関数付近だと思います。 Node 1で上位層からわたってきたパケットは、 IP層のRoutePacketAndSendToMac関数に渡され、さらに 関数ポインタrouterFunction経由で、 設定したルーティングプロトコルの関数に渡されます。 AODVの場合は、AodvRouterFunction()関数です。 この関数内で 自身がsrcNodeの場合は、 rtToDest = AodvCheckRouteExist( destAddr, &aodv->routeTable, &isValidRt); という関数が呼ばれます。 この関数内ではルーティングテーブルから適切なエントリを検索して 返しているので、ここで、「適切なエントリ」が複数あるなら どちらを選択するか切り替える処理を入れれば良いのではないでしょうか。 # ちなみにRouteRequestを出すきっかけになったパケットを含め # Routeが確立していない状態で発生したパケットは # 一旦AODV内のバッファに貯められていて(AodvInsertBuffer)、 # それらはRouteReplyが返り次第、 # AodvHandleReply関数内で送信されるので # ( // Send any buffered packets to the destination というコメントの部分ですね) # 上記の流れとは違う動きをします。ご注意ください。 というわけで、AodvCheckRouteExist関数付近を変更すれば 御希望の処理が実現可能じゃないかと思いますが、 AodvCheckRouteExist関数は何か所かから呼ばれているので、 他の処理に悪影響を及ぼさないかはチェックが必要かと。 ※一度、全AODV関数にブレークポイントはって流れを追うと理解が進む。。。かもしれません。 |
フラット表示 | 前のトピック | 次のトピック |