Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/05:14/16
2024/05/04:22/24

2024/03/06より335/1375
人気モジュール
No.1: フォーラム 14
No.2: QualNet概要 1
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット11
No.2:Linux2
No.3:Unknown OS1

No.1:どっかの巡回ロボット11
No.2:Safari2
No.3:Unknown Browser1

日曜日からの合計
メイン
   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関数にブレークポイントはって流れを追うと理解が進む。。。かもしれません。

フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT