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

パスワード:


パスワード紛失

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

2024/03/16より393/1400
人気モジュール
No.1: フォーラム 60
No.2: ニュース 2
No.3: QualNet概要 1
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット49
No.2:Unknown OS1

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

日曜日からの合計
メイン
   Routing Protocols Implementation & Model Development
     DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について
投稿するにはまず登録を

題名 投稿者 日時
   DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について you 2008/7/10 13:53
     Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について mast 2008/7/10 14:39
     Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について you 2008/7/14 17:30
       Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について hiro 2008/7/14 20:45
       » Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について you 2008/7/16 0:56
           Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について mast 2008/7/16 14:18
             Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について you 2008/7/24 14:41
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
you
投稿日時: 2008/7/16 0:56
新米
登録日: 2007/12/25
居住地:
投稿: 11
Re: DSRにおいてパケットを中継するノードの持つ情報をパケットに追加する方法について
hiroさん

ご回答ありがとうございます。

まだドキュメンテーションをしっかり読めておらず恐縮ですが、
追加で気になる事が生じたため、質問させて頂きます。

mastさんのご回答により、
「自身のアドレスをパケットに追加している」箇所の
おおよその見当をつける事ができました。

しかし、DsrRelayRREQ()の// Copy the path fieldsにおいて
CopyされたnewPktPtrはDsrRelayRREQ()の最下部にある

    // Done with packet copying
    NetworkIpSendRawMessageToMacLayerWithDelay(
        node,
        newMsg,
        srcAddr,
        ANY_DEST,
        IPTOS_PREC_INTERNETCONTROL,
        IPPROTO_DSR,
        ttl,
        DEFAULT_INTERFACE,
        ANY_DEST,
        (clocktype) (RANDOM_erand(dsr->seed) * DSR_BROADCAST_JITTER));


において利用されていません。

    newPktSize = recvPktSize + sizeof(NodeAddress);

    newMsg = MESSAGE_Alloc(node, MAC_LAYER, 0, MSG_MAC_FromNetwork);

    MESSAGE_PacketAlloc(node, newMsg, newPktSize, TRACE_DSR);

    newPktPtr = (unsigned char *) MESSAGE_ReturnPacket(newMsg);


これは上記の一連のプログラムにおいて、
newMsgのパケットへのポインタが返却された事により、
newPktPtrにおいてnewMsgに対するcopy等の操作が可能になり、
最終的にNetworkIpSendRawMessageToMacLayerWithDelay()の
newMsgにおいてcopy完了後のものが利用されているという
解釈でよろしいでしょうか?

=================================================================

もうひとつ質問があります。

routing_dsr.cppにおいて、
データパケットの受信を確認する箇所として、
DsrRouterFunction()の

        // Packet is not originated in this node
        if (NetworkIpIsMyIP(node, ipHeader->ip_dst))
        {
            // source route option should be eliminated in the previous node.
            // if the packet contains only source route option then the
            // packet will not have any dsr header in it.

            // If it contains any other option that will be handled by
            // Handle protocol packet.

            // So this portion of the code will do nothing

            // update statistics for number of data packet received. If IP
            // protocol is DSR it might be a Route Reply or a Route Error.

            if (ipHeader->ip_p != IPPROTO_DSR)
            {
                dsr->stats.numDataRecved++;
            }

            return;


以外ないという事でよろしいでしょうか?
routing_dsr.cppにおいてデータパケットを受信した際の
受信処理はこの箇所で行うしかないのでしょうか?

長文になってしまい、分かりにくい説明になってしまい
申し訳ありませんが、ぜひ助言をよろしくお願い致します。
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT