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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/03/28:14/17
2024/03/27:18/22

2024/01/28より299/1300
人気モジュール
No.1: フォーラム 66
No.2: QualNet概要 5
No.3: ニュース 3
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット55
No.2:Linux6
No.3:Windows NT2

No.1:どっかの巡回ロボット51
No.2:Safari7
No.3:Majestic-12巡回ロボット2

日曜日からの合計
メイン
   Network Layer Settings: IP, QoS, Queuing & Scheduling
     IPアドレスの扱いに関して
投稿するにはまず登録を

題名 投稿者 日時
 » IPアドレスの扱いに関して TakaoIto 2011/10/12 19:20
     Re: IPアドレスの扱いに関して mast 2011/10/12 20:59
       Re: IPアドレスの扱いに関して TakaoIto 2011/10/13 15:38
         Re: IPアドレスの扱いに関して mast 2011/10/13 20:49
           Re: IPアドレスの扱いに関して TakaoIto 2011/10/17 18:12
             Re: IPアドレスの扱いに関して 7208op 2011/10/21 18:12
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
TakaoIto
投稿日時: 2011/10/12 19:20
新米
登録日: 2010/4/23
居住地: 東京
投稿: 7
IPアドレスの扱いに関して
こんにちは

QualNet(自分が使用しているのはEXataです)におけるIPv4アドレスの扱いについてソースコードを読んでいたのですが,少々混乱してきてしまいました.
お助け頂ければ幸いです.



私は,アドホックネットワークにおいて,IPアドレスを自動で割り振るような研究をしている者です.
そのため,GUI上からアドレスを読み込まずに,シミュレーションを実行中にネットワーク状況を読んで新規の参加端末へアドレスを割り振る必要があります.

そこでまず,IPアドレスをどこでコンフィグファイルから読み込んできて,どこで割り振っているのか調べていました.
QUALNET_HOME\gui\settings\protocol_models\network_layer.prt内で定義されている
下記の行でのkey="IP-ADDRESS"をIO_~~関数で読み込んで整形して設定しているのだろうと思っていたのですが,全く見当たりませんでした.

<variable name="IPv4 Address" key="IP-ADDRESS" type="Dotted decimal" interfaceindex="true" 〜〜〜〜〜〜

おそらくアドレスを実際にnode構造体の中に設定しているのは,network_ip.cpp内の7522行目付近におけるNetworkIpAddNewInterface()関数の

ip->interfaceInfo[interfaceIndex]->ipAddress = interfaceIpAddress;

という箇所であろうと推測しております.

そこで,この関数が誰から呼ばれているのか遡っているのですが,

NetworkIpAddNewInterface():network_ip.cpp

MacAddNewInterface():mac.cpp

AddNodeToSubnet():mac.cpp

ProcessSubnetLine():mac.cpp

MAC_Initialize():mac.cpp

PARTITION_InitializeNodes():partition.cpp

今ここです

一向に終着地点が見つかりません.

どこで"IP-ADDRESS"というkeyからファイル読み込みを行っているのでしょうか?
それとも,ずっと気になっていたのですが,
ノードに関するファイル入力情報を管理しているらしいNodeInput(fileio.h)という人が何かを先にやっているのでしょうか?



それと,割り振られているアドレスを各所でprintfを使って確認していたのですが,上記でも示しましたnetwork_ip.cpp内の7522行目付近

ip->interfaceInfo[interfaceIndex]->ipAddress = interfaceIpAddress;

について,printfで出力してみました.
すると,右辺にあるinterfaceIpAddressの方は%xで出力できたのですが(見れれば良いので,16進数表記のままです)
左辺にあるip->interfaceInfo[interfaceIndex]->ipAddressの方はエラーを吐いてしまったり,中身がnullや0といった出力となっていました.

何故かと思い調べてみたのですが,右辺はNodeAddress型で左辺はD_NodeAddress型である,というくらいの違いしか分かりませんでした.
NodeAddress型はmain.hで定義されているのですが,D_NodeAddress型はどこで定義されているのでしょうか?
そもそもこのD_とは何者なのでしょうか?

以上の2点についてご教示頂けると助かります.
何卒よろしくお願いします.
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT