0

Nを使用して、スレーブ ノードがマスター ノードにデータを送信するシミュレータをセットアップしましたBulkSendApp。問題は、操作の完了時間を記録する方法が見つからないように見えることです。フラグを使用したロギングについて知っていprefix_timeます(たとえば)

export 'NS_LOG=BulkSendApplication=level_all|prefix_func|prefix_time

ただし、これはすべてのパケットをログに記録するだけです。私は完了時間だけが欲しいです。アプリケーションクラス自体を変更せずに取得する方法はありますか?

4

2 に答える 2

1

このアプリケーション内の tx 終了イベントを通知するトレース ソースはありません。ただし、m_totBytes 変数に関連付けられたトレース ソースとして、またはトレースされたコールバックとして、簡単に追加できます。例えば:

static TypeId BukSendApplication::GetTypeId (void)
{
  static TypeId tid = // ...
    // ...
    .AddTraceSource ("TotBytes",
                     "Total number of bytes sent",
                     MakeTraceSourceAccessor (&BukSendApplication::m_totBytes))
    ;
  return tid;
}

と:

void TotBytes (uint32_t oldval, uint32_t newval) {}

Config::ConnectWithoutContext (
  "/NodeList/0/ApplicationList/0/$ns3::BulkSendApplication/TotBytes",
  MakeCallback (&TotBytesTracer));

ドキュメントにもこれに関する広範なドキュメントがあります: http://www.nsnam.org/docs/release/3.19/manual/html/tracing.html#overview

于 2014-03-04T08:55:24.993 に答える