~/ns-allinone-3.21/ns-3.21/src的目录下找到OpenFlow的相关文件夹,但是这些都是用来进行测试用的,还没有具体的实现,ns-3本身自带的只是openflow的封装接口,这些接口要去调用openflow的库,就是后面要下载的那一部分,在安装的过程中会编译生成相应的链接库链接到ns3中。你可以发现在你没有安装openflow的时候在build/debug/src下面是没有openflow模块的,完成openflow模块的安装之后可以发现生成了这个模块。然后才可以再去对它提供的openflow模块的例子进行实验。
- 下载OpenFlow
> cd ~/ ns-allinone-3.21/ns-3.21 #为了避免不必要的错误,在ns-3.21的目录下安装
> hg clone http://code.nsnam.org/openflow
> cd openflow
- 在OpenFlow目录下配置和构建OpenFlow
> sudo ./waf configure
> sudo ./waf build
执行完这个之后会生成libopenflow.a的库文件。
- 链接OpenFlow模块到ns3(在ns3的源码文件夹下运行,如ns-3.21)
> cd ..
> sudo ./waf configure --enable-examples --enable-tests –with-openflow=下载的openflow源码路径 - 构建ns3并且激活ns3的openflow模块
> sudo ./waf build
接下来可以测试OpenFlow的模块了。
- 测试openflow
> sudo ./waf –-run openflow-switch
> sudo ./waf –-run “openflow-switch -v” #查看日志细节
- 验证openflow模块
> sudo ./test.py –-suite=openflow
到这里openflow模块也就安装成功了,接下来是就是相关案例的实际测试学习了。