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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/19:17/21
2024/05/18:20/24

2024/03/20より396/1411
人気モジュール
No.1: フォーラム 17
No.2: QualNet概要 1
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット17

No.1:どっかの巡回ロボット14
No.2:Google巡回ロボット2
No.3:Baidu巡回ロボット1

日曜日からの合計
メイン
   Network Layer Protocol Implementation & Model Development
     ネクストホップを操作してルーティングを行いたい(OLSR)
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
oronain
投稿日時: 2011/7/4 19:26
新米
登録日: 2011/6/30
居住地:
投稿: 3
ネクストホップを操作してルーティングを行いたい(OLSR)
Qualnet5.0.2を使用しています。
最近QualNetに触れ始め、最近ではolsr_inria.cppの
「#define DEBUG_OUTPUT 0」を
「#define DEBUG_OUTPUT 1」に変え、デバックをし、Qualnet上でolsr.inriaを用いたトポロジーでOLSRのルーティングテーブルが見れるようになり、送信元から宛先までの経路がどうなっているのかがわかるようになりました。

何かほかにも、プログラムを書くなどし、QualNetに少しでも詳しくなりたいということで、続いて、ネクストホップを操作し、自分の望んだ端末をネクストホップに選択し経路を選択しくということを考えたのですが、「olsr_inria.cpp」のソースのどの部分にどういった書き込みを追加・削除すればいいでしょうか?

現在のシナリオでは7×7のCBR通信をGRID(正方形)で配置し、一番左下から右上の端末に対してCBR通信を行わせるようにしていますが、例えば、これのネクストホップを送信元からひたすら右に送信していき、一番右下の端末からはひたすら真上に経路を選択するにはどうcppファイルを変更し、ネクストホップを変更すればいいでしょうか?

以下に現在のシナリオとolsr_inria.cppを添付しておきます。
よろしくお願いします。
49node_olsr.zip
hed
投稿日時: 2011/7/4 19:47
一人前
登録日: 2006/7/3
居住地: 京都
投稿: 81
Re: ネクストホップを操作してルーティングを行いたい(OLSR)
OLSRの挙動には詳しくないので詳細はご自身で確認して頂きたいのですが、自分だったらこう調べる(ソースコードを追いかける)という方法をお伝えします。

RoutingOlsrInriaLayerという関数の中で以下のような処理があります。
ここではそれぞれ定期的なHelloやTC, MID, HNAを受信した際に何をするかがswitch文で分岐されています。OLSRではどのようなタイミングで経路を更新するかを御存知でしたら、それぞれの関数内で行っていることを初期化時に行うようにすればよいと思います。


     switch (msg->eventType)
    {
        case MSG_APP_OlsrPeriodicHello:
            // 省略
        case MSG_APP_OlsrPeriodicTc:
            // 省略
        case MSG_APP_OlsrPeriodicMid:
            // 省略
        case MSG_APP_OlsrPeriodicHna:
            // 省略
        // その他case等も省略
    }


初期化関数は名前から判断するとRoutingOlsrInriaInitではないでしょうか?
あらかじめ想定した宛先に対するネクストホップを各ノードで追加すれば経路が完成すると思います。

ただし、この変更だけだと定期的な制御パケットの交換により経路が更新されてしまう可能性があります。
そのため、初期化関数内のMESSAGE_Send関数をコメントアウトするなどして、定期的な制御パケットの送信を止めてあげる必要があるかもしれません。

参考になれば幸いです。
hed
投稿日時: 2011/7/4 19:50
一人前
登録日: 2006/7/3
居住地: 京都
投稿: 81
Re: ネクストホップを操作してルーティングを行いたい(OLSR)
あと、QualNetは有償のソフトウェアですのでソースコードをまるまる添付するのはライセンス的にまずいと思います。
(他のユーザの人もどうせ持っていますし。)

出来れば削除しておいた方が宜しいかと。
tya
投稿日時: 2011/7/4 21:39
半人前
登録日: 2010/11/30
居住地:
投稿: 21
Re: ネクストホップを操作してルーティングを行いたい(OLSR)
oronainさん こんにちは.

OLSRはHELLOメッセージやTCメッセージなどから得た情報などでルーティングテーブルを構築します.そのため,自分の望んだノードのネクストホップを意図的に変更するには,ソースコードを改良する必要があります.OLSR INRIAを使用しているようなので,このソースコードを改良して自分の望んだネクストホップを設定する方法(経路構築)をご自身で考える必要があります.もしくは,static routing tableを設定するというのはどうでしょうか?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT