美文网首页
NS3基本命令学习

NS3基本命令学习

作者: 53324d792ce6 | 来源:发表于2016-03-09 20:44 被阅读639次

    脚本运行

    ./war --run scratch/myfirst
    

    日志设置

    可以在程序中给程序设置日志级别

    LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
    

    程序外export命令设置

    export NS_LOG=UdpEchoClientApplication=level_all
    export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'
    export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:UdpEchoServerApplication=level_all|prefix_func'
    export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time:UdpEchoServerApplication=level_all|prefix_func|prefix_time'
    export 'NS_LOG=*=level_all|prefix_func|prefix_time'
    export 'NS_LOG=*=level_all|prefix_func|prefix_time'
     ./waf --run scratch/myfirst > log.out 2>&1
    /*
    ./waf --run scratch/myfirst 1> log.out 2>&1
    Linux的IO输入输出有三类
    Standard Input 代码 0
    Standard Output 代码 1
    Standard Error 代码 2
    2>&1 &1表示类似1,错误输出绑定到1上
    */
    export NS_LOG= //清除脚本外ns3日志设置
    

    使用命令行参数(当次运行有效)

    CommandLine cmd;
    cmd.Parse (argc, argv);//在程序中加入
    ./waf --run "scratch/myfirst --PrintHelp"
    ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"
    ./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps"
    ./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps --ns3::PointToPointChannel::Delay=2ms --ns3::UdpEchoClient::MaxPackets=2"//要注释掉程序中原来的参数
    //自己添加命令行参数
    uint32_t nPackets = 1;
    CommandLine cmd;
    cmd.AddValue("nPackets", "Number of packets to echo", nPackets);
    //然后再运行./waf --run "scratch/myfirst --PrintHelp"就可以看到自己添加的参数了
    ./waf --run "scratch/myfirst --nPackets=2"
    

    使用Tracing

    Trace发送端是可以在仿真过程中产生信号事件并且提供有关数据访问通道。
    Trace发送端自身是没有用的,必须要跟接收端提供有用信息的代码段“相连”。这种发送端和接收端工作的基本原理是允许用户给已有的tracing发送端关联上新类型的接收端,而不需要编辑和重新编译仿真器的核心,一个用户可以在脚本中定义新的tracing接收端,并且可以将其关联到仿真核心中定义的tracing接收端

    ASCII 码Tracing

    增加以下代码
    #include <iostream>//就可以使用标准的C++输出
    然后,在Simulator::Run()前增加下面的代码:

    AsciiTraceHelper ascii;
    pointToPoint.EnableAsciiAll(ascii.CreateFileStream("myfirst.tr"));
    

    然后编译运行,使用trace可以更加详细的分析仿真过程

    启用pcap tracing

    pointToPoint.EnablePcapAll ("myfirst");
    

    用tcpdump读取结果或者用Wireshark读取结果

    tcpdump -nn -tt -r myfirst-0-0.pcap
    

    相关文章

      网友评论

          本文标题:NS3基本命令学习

          本文链接:https://www.haomeiwen.com/subject/eyctlttx.html