【ns3】SimpleChannelにDelayを設定

Created 2018年9月30日23:23
Updated 2018年9月30日23:24
Categories ns3

SimpleChannelにDelayを設定したかったのですが、SimpleChannelオブジェクトにはDelayを設定する関数なりコンストラクタの引数なりが全くありませんでした(つらい)。

解決方法を調べたのですが結構時間かかったので備忘録として書いておきます。

この方法はSimpleChannelだけでなく他のチャネルでも使えそうなので、よければ参考にしてください。

環境

  • ns-3.27
  • Ubuntu 16.04 LTS 64bit (on Docker)
  • Python 2.7

コード

from ns.core import Config, StringValue
Config.Set("/ChannelList/*/$ns3::SimpleChannel/Delay", StringValue("50ms"))

SimpleChannelのドキュメントを見るとprivate valueにDelayという値がありますが、ここを見る限り変更できません。

どうやら、Config.Set 関数でPrivateな値を変更できるようです(それはそれでどうなんだ)。

特定のデバイスだけを変更する場合は、/ChannelList/* のアスタリスクをChannelのIDに変更する事で実現できるようです。

また、SimpleChannelだけでなく他のChannelやNetDeviceにも使えるようです。

他のやり方については参考サイトを載せておきますので、いろいろと試してみてください。

参考サイト

コメントを投稿

コメント