メイン Routing Settings AODVの経路表について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yosio | 投稿日時: 2011/12/3 10:38 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
AODVの経路表について お世話になります。
初歩的な質問で申し訳ありません。 経路表に新たに項目を追加して、その項目に数値を中継端末から受け取りたいのですが、routing_AODVの.cppと.hのソースコードどの部分を変更していけばいいのか、教えてもらえませんか? 後、HELLOメッセージに情報を付加させたいのですがそれは可能なのですか? .hでの構造体を.cppで呼び出して、処理しているのはわかるのですが、実際の追加と変更点がわかりません。 あと、参考になる資料があればお願いします。 初めてのトピですので、失礼な質問の仕方をしていたら申し訳ありません。よろしくお願いします。 |
ino | 投稿日時: 2011/12/8 14:11 |
新米 登録日: 2011/1/24 居住地: 投稿: 16 |
Re: AODVの経路表について どうも。
ちょっと亀レスになってしまいましたが参考になれば幸いです。 > 経路表に新たに項目を追加 .hで"table"で検索すると 構造体でAodvRoutingTableが見つかり、これっぽいですね。 この中身のAodvRouteEntry* routeHashTable[AODV_ROUTE_HASH_TABLE_SIZE]; が本体っぽく、AodvRouteEntryが結局AODVで扱う経路表の1行に相当するようです。 ですのでこの構造体に所望のメンバを追加すればよさそうです。 > 後、HELLOメッセージに情報を付加させたい 情報を付加するには 1. 実際に送るパケットの構造を拡張して付加情報を格納する 2. MessageのInfoフィールドを使う(実際のパケットとは別にこっそり付加情報を仕込んでおくような機能) の2通りがあるかと思います。 関数AodvBroadcastHelloMessageを例にすると、 1.をするには、MESSAGE_PacketAllocでAllocした領域にAodvRrepPacketの構造で 書き込んでいますが、このAllocで付加情報分余計に領域を確保し、所望の構造で書きこむよう修正 2.をするには、MESSAGE_AppendInfoなどを使用してパケットとは別に領域を確保し そこに付加情報を格納するような修正となります。 Infoに関してはProgrammersGuideに記載がありますが、 QualNetのソースで使用されている箇所を適当に探して読んだほうが 参考になるかもしれません。 |
yosio | 投稿日時: 2011/12/9 13:26 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
Re: AODVの経路表について 返信ありがとうございます。
とても参考になるお答えありがとうございます。 私C++言語が苦手で書き方等でもご指摘を頂けたらと思っています。 ご教示の方お願いします。 > 経路表に新たに項目を追加の件 .hの中身を確認しました。 Uint32で >525//リンクは、リンク障害が発生した場合に、ローカルで修復可能で>526ある場合。 >527 BOOL locallyRepairable; 下の場所に追加してやってみます。 実際にその後の出力はOutputWindowsに出力されるのですか? > 後、HELLOメッセージに情報を付加させたい 情報を付加するには 1. 実際に送るパケットの構造を拡張して付加情報を格納する の前者の方法で考えています。 >1.をするには、MESSAGE_PacketAllocでAllocした領域に >AodvRrepPacketの構造で >書き込んでいますが、このAllocで付加情報分余計に領域を確保し、所>望の構造で書きこむよう修正 パケットの最後に付け足したいと考えているのですがその場合ですと、どこに追加したらよろしいですか? 一応、Infoのソースの検索とProgrammersGuideを翻訳して見てみます。 |
ino | 投稿日時: 2011/12/9 14:09 |
新米 登録日: 2011/1/24 居住地: 投稿: 16 |
Re: AODVの経路表について yosioさん
1. > 実際にその後の出力はOutputWindowsに出力されるのですか? 1.1「OutputWindows」とはGUI下部のOutput Windowのことでしょうか? ここにはqualnet.exeから標準出力へ吐き出されているものが表示されます (間違ってたらどなたかご指摘お願いします。)。 1.2「その後の出力」とはどういうことを想定されていますか? あるタイミングで、付加した情報を表示したいというのであれば 適当な箇所にprintfなどを追加していただければここに出力されます。 何かしらの統計情報を保持しており、シミュレーション最後にそれを出力したい ということであれば、IO_PritStatを使用すれば.statファイルへの出力が行われ グラフで確認することができます。AodvFinalizeなどを参考にしてみてください。 2. > パケットの最後に付け足したいと考えているのですがその場合ですと、 > どこに追加したらよろしいですか? AodvBroadcastHelloMessageでは関数MESSAGE_PacketAllocに pktSizeを与えてそのサイズの領域を確保しています。 これはint pktSize = sizeof(AodvRrepPacket);でAodvRrepPacket構造体の サイズです。例えばこのAodvRrepPacket構造体自体にメンバを追加すれば sizeofで追加後のサイズが得られ、領域も余分に確保されることになります。 あとはこの追加したメンバのところに値を格納すればいいわけです。 (つまり以下と同じようなことをする。) rrepPkt = (AodvRrepPacket *) pktPtr; rrepPkt->typeBitsPrefixSizeHop = typeBitsPrefixSizeHop; ・・・ あと、受信側でも取得するための修正が必要です。 ただし、AodvRrepPacket構造体はいろいろな箇所に使われていますので それらの箇所で影響があるか確認が必要です。べつの構造体として定義する のも手ですね。 |
yosio | 投稿日時: 2011/12/9 15:31 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
Re: AODVの経路表について 言葉足らずの質問でお手数おかけします。
>1 その後の出力とは、項目がふえたこと確認したかったので、 printf()を追加して表示させようとしてやっているのですが 追加する場所がわからないので質問してみました。 >1.2「その後の出力」とはどういうことを想定されていますか? 一応、経路が更新されるたびに出力したいと考えています。 >2わかりやすいく詳しい説明ありがとうございます。 お答えしてくれたことを参考にソースプログラムをいじってみます。 又、何かわからないとこありましたら、ご教示をお願いいたします。 |
yosio | 投稿日時: 2011/12/12 13:18 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
Re: AODVの経路表について ino>おかげさまでルーティングテーブルに項目を追加できました。
>お世話になりました。 私の見ているとこが間違っていました。ありがとうございました。 申し訳ないですが、もう一つ質問があります。Helloパケットに負荷させる情報のことで、ノードが持っているパケット数を負荷させたいのです。たぶん、バッファ内に入っていると思っているのですが、どこに記載されているのか、どこから数値を取得すればよいのか?を教えてください。 |
ino | 投稿日時: 2011/12/12 14:54 |
新米 登録日: 2011/1/24 居住地: 投稿: 16 |
Re: AODVの経路表について yosioさん、どうもです
QualNetではMacが送るべきパケットがキューにあるかどうか調べる関数が どのプロトコルでも大体あり、〜HasPacketToSendという名前がついてます。 ここから呼び出し先をたどっていけば、きっとQueueにアクセスしている所が あって、パケット数とか取得できるに違いない!と期待してソースを追いかけてみます。 dot11ではMacDot11NetworkLayerHasPacketToSendですね。 その中のMacDot11StationMoveAPacketFromTheNetworkLayerToTheLocalBuffer をたどるとSchedulerクラスのインスタンスがあり、Node構造体からたどって取得できる ことがわかります。 さらに、このクラスの定義を見るとQueueDataが見つかりました。 publicなメンバ関数にnumberInQueueというのがありこれを使えばよさそう。 引数にpriorityの指定が必要ですが、if_queue.hに #define ALL_PRIORITIES -1 という定義があります。これを使えば全Queueの合計が返ってくる? 後半は想像ですので、あとは実際に試してみてください。 |
yosio | 投稿日時: 2011/12/12 16:42 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
Re: AODVの経路表について 速い返信有難うございます。
言われた通りやってみます。 |
yosio | 投稿日時: 2011/12/31 20:59 |
常連 登録日: 2011/11/24 居住地: 投稿: 41 |
Re: AODVの経路表について いつもお世話になっております。 経路表に前ホップ端末のIPアドレスの項目を追加したいのですが、どうしたらよいでしょうか? 前ホップのアドレスが入っているprevHopといろいろな所にあるのですが構造体が苦手でわかりません。 ご教示よろしくお願いいたします。 |
ino | 投稿日時: 2012/1/5 13:51 |
新米 登録日: 2011/1/24 居住地: 投稿: 16 |
Re: AODVの経路表について 明けましておめでとうございます。
> 経路表に前ホップ端末のIPアドレスの項目を追加したいのですが、どうしたらよいでしょうか? 経路表の追加箇所は前レスのとおりです。 格納すべき値(元ネタ)をどこから引っ張ってくればよいか?という話題でしょうか? > 前ホップのアドレスが入っているprevHopといろいろな所にある 「いろいろな所にある」とは具体的にソースのどこでしょうか。 それらのうちどれを使用すべきなのかわからないということでしょうか? ちょっと疑問点が汲み取り切れませんでした。 |
(1) 2 3 4 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |