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

パスワード:


パスワード紛失

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

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

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

日曜日からの合計
メイン
   Miscellaneous: Architecture & Generic Development Questions
     パケットの伝送を行うプロトコルの書き方について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
forum_support
投稿日時: 2005/12/20 16:06
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について

settings/choces.xml 

を編集していただければIDEから設定できるようになります。

ただし、これはシミュレーションシナリオファイルを作成する
ためだけの設定ですから、シミュレータは実際にこのパラメータ
を読み込むコードを追加しておかなければなりません。

QN3.9でIDEからシミュレーションを実行するまでの流れをおさらいすると

(1) IDE でシナリオを作成すると XML形式の .scn ファイルが
作成されます。

(2) RUNボタンを押すと、IDEは .scn ファイルを元に、シナリオ
ディレクトリ内に .config/.app/.node 等のシミュレーション実行
用のファイルを作成します。
※ここで、choice.xml で指定した key に対してIDEで設定した
※パラメータが
※<KEY> <PARAMETER>
※といったフォーマットで .config ファイル中に埋め込まれます。
(3)PLAYボタンを押すとqualnet.exe が .config ファイルを読み込
みシミュレーションを実行します。この .config ファイルの読み込
み処理で、新規に追加した <KEY>と<PARAMETER>を読み込むようにソ
ースコードを修正する必要があります。

ファイル読み込みは IO_Read*** といったAPI群を利用することに
なります。
masamura
投稿日時: 2005/12/20 16:33
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
ご返答ありがとうございます.

引用:

(3)PLAYボタンを押すとqualnet.exe が .config ファイルを読み込
みシミュレーションを実行します。この .config ファイルの読み込
み処理で、新規に追加した <KEY>と<PARAMETER>を読み込むようにソ
ースコードを修正する必要があります。

ファイル読み込みは IO_Read*** といったAPI郡を利用することに
なります。


ここでおっしゃるソースコードとは,
作成したMACプロトコルの.cppのことでしょうか?
既存のALOHAを参考にしましたが, そのような表記は見当たりませんでした.
あまりよく分かっていないので,
具体例を挙げて教えていただけたらと思います.
よろしくお願い致します.
forum_support
投稿日時: 2005/12/20 17:32
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について
Alohoa初期化部のコールスタックは次のようになっていることが
ソースコードから読み取れます。

1.PARTITION_InitializeNodes
2.MAC_Initialize
3.ProcessInputFileSubnetLine
4.AddNodeToSubnet
5.AlohaInit

3 の関数で、使用するプロトコル名を読み込み 4に引数で
それを渡しています。

4 の関数中では、以下のように読み込んだプロトコル名にたいして、
初期化処理をそれぞれ呼び出しています。

if (strcmp(macProtocolName, "SWITCHED-ETHERNET") == 0)
{
      SWITCHED-ETHERNET の初期化処理
   return;
}
else if (strcmp(macProtocolName, "MAC802.3") == 0)
{
 802.3 の初期化処理
}
・
・
else if (if (strcmp(macProtocolName, "ALOHA") == 0) {
    node->macData[interfaceIndex]->macProtocol=MAC_PROTOCOL_ALOHA;
    AlohaInit(node, interfaceIndex, interfaceAddress,nodeInput, nodesInSubnet);
}
・
・
・


プロトコルを追加されたのであれば、この else if 文を追加して
プロトコル初期化関数を呼べばよいです。

さらにIDEが適切に追加プロトコルのパラメータをconfigファイルに落とせるように、choice.xml中の
<subcategory title="MAC Protocol" class="interface,device,atmdevice"> 以下に他のMACプロトコル
の設定をまねて、追加したプロトコルのパラメータを追記していた
だくことになります。
masamura
投稿日時: 2005/12/20 17:50
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
早速のご回答ありがとうございました.

引用:

Alohoa初期化部のコールスタックは次のようになっていることが
ソースコードから読み取れます。

1.PARTITION_InitializeNodes
2.MAC_Initialize
3.ProcessInputFileSubnetLine
4.AddNodeToSubnet
5.AlohaInit

3 の関数で、使用するプロトコル名を読み込み 4に引数で
それを渡しています。

4 の関数中では、以下のように読み込んだプロトコル名にたいして、
初期化処理をそれぞれ呼び出しています。

プロトコルを追加されたのであれば、この else if 文を追加して
プロトコル初期化関数を呼べばよいです。


4については, mac.cppに既に追記してあります.
(一応, シミュレーションは1ホップの通信であればできているようです.)

1,2,3,5に関して, 追記を行うところはないとの解釈でよいのでしょうか?
参考までにそれぞれがどのファイルに既述されているか,
教えていただけないでしょうか?

よろしくお願い致します.
forum_support
投稿日時: 2005/12/20 18:59
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について
引用:

masamuraさんは書きました:

4については, mac.cppに既に追記してあります.
(一応, シミュレーションは1ホップの通信であればできているようです.)

1,2,3,5に関して, 追記を行うところはないとの解釈でよいのでしょうか?
参考までにそれぞれがどのファイルに既述されているか,
教えていただけないでしょうか?

よろしくお願い致します.


1,2,3については、他レイヤのプロトコルを修正したり
特殊なことをしていないのであれば修正箇所は無いと思
います。

5 については、 masamura さんがおつくりになった
プロトコルに依存しますので、お作りになったプロトコル
で必要な初期化処理を記述してください。

各関数の位置については、以下のとおりです。grep -R xxxx 等
をお使いになるか、Windows の検索機能等ですぐに分かると思い
ます。私は windows 環境で使用していますが、Cygwin を利用して
grep 検索をよく行います。または、以前お知らせした doxygen
を使うか、VC++ や gccのデッバッガーフロントエンド等を用い
て確認する方法もあります。

1.PARTITION_InitializeNodes : addons/seq/partition.cpp
2.MAC_Initialize : mac/mac.cpp
3.ProcessInputFileSubnetLine : mac/mac.cpp
4.AddNodeToSubnet : mac/mac.cpp
5.AlohaInit : mac/aloha.cpp
masamura
投稿日時: 2005/12/20 19:08
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
ご返答ありがとうございます.

mac.cpp内にあるものに関しては私の努力不足でした.
申し訳ありません.

おそらく, 他の触るところはないので, 問題はないと思います.

週末からお休みとのことで, かなり不安になってきました...
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT