ndnSIM场景文件的放置

nsnSIM自己的场景文件放的方式有两种:

  • 第一种可以放在自己的目录里编译速度很快,而且要NS-LOG只能在debug模式下使用,这时场景文件必须放在自己的目录下(我理解是这样,若错了请及时反馈我);但是修改程序源文件后要去不同目录下先编译;
  • 第二种方式是把场景文件直接放在examples目录下,配置时直接在ns-3下 ./waf configure --enable-examples./waf ,编译速度较慢,但是之后无论是修改NFD、cxx还是场景文件,直接在ns-3 下 ./waf --run (发现可以同时完成编译和运行)

1. 创建自己的目录里放自己的场景文件

Step 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
mkdir ndnSIM  
cd ndnSIM
git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM
# 以上部分是ndnSIM常规安装
# Build and install NS-3 and ndnSIM

# 从这儿开始
git clone https://github.com/named-data-ndnSIM/scenario-template.git my-simulations
cd ns-3
./waf configure -d debug #是debug模式,正常模式的话是./waf configure -d optimized 为了通知waf进行优化编译
./waf #此时编译系统被配置好,该句可以编译ns-3程序的debug版本
sudo ./waf install
cd ..

cd my-simulations
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./waf configure
./waf --run <scenario>
自己的情景文件写在my-simulations/scenario里

Step 2:编译

1
2
每次修改完情景文件,都要在my-simulations目录下 ./waf
修改完cxx或NFD的文件都要在ns-3 下 ./waf

Step 3:运行

1
2
3
在在my-simulations目录下 ./waf --run <scenario_name> --vis  

NS_LOG=ndn.Producer:ndn.Consumer ./waf --run <scenario_name> --vis 可以同时记录producer 、consumer的行为状态

2. 另一种方式(编译速度较慢)

不使用自己的目录的话,可以把场景文件放在exampls下,以后每次在ns-3 下,直接./waf --run <scenario_name> --vis