前言
继之前分享的几篇文章之后,这篇文章分享我开发odl应用程序过程当中如何将自己写的模块集成到odl控制器当中,这里假设我们已经搭建好开发环境,并且具备YANG模型知识,因为基于md-sal的开发总是免不了要写YANG文件。
关于如何搭建环境以及编写app等等请阅读下前几篇文章。
1、SDN开发环境的搭建(win7环境)
2、SDN控制器的使用(ubuntu环境搭建、controller使用、mininet的使用)
3、ODL源码编译生成发行版控制器
4、md-sal应用程序开发指南
5、应用程序集成到ODL控制器
6、yang模型详解
7、md-sal的l2switch源码分析
前期工作
1、根据上一篇文章生成的example工程,验证该APP没有错误。
2、下载odl源码,注意需要下载对应的odl版本,比如我这用li-sr3,如下下载源码并编译也请查看前几篇文章吧。
模块集成至odl控制器
1、将模块集成至odl可以使得每次我们更新时能够直接输入一条命令feature:install来安装模块,省去了每次控制器与自己app分隔两地的麻烦,同时控制器版本发布时,也可以给测试一个完整文件,将Example模块集成至odl控制器是件很值得一做的事情。
2、新建的Example模块集成至odl控制器需要修改odl-controller两个文件,一是odl-1.0.0/distribution/features/index/pom.xml,在该文件中添加example的features依赖。
3、二是修改odl-1.0.0/distribution/features/index/src/main/resources/features.xml文件,添加内容为:
4、回到distribution目录重新编译
5、编译成功在odl-1.0.0/distribution/distributions/karaf/target得到
6、在assembly文件夹中是编译出来的控制器文件,可以找到bin中的karaf运行
7、另外编译过程还打包了distribution-karaf-0.3.3-Lithium-SR3.tar.gz和distribution-karaf-0.3.3-Lithium-SR3.zip文件,两个文件即官方上提供下载的发行版控制器。可以将distribution-karaf-0.3.3-Lithium-SR3.tar.gz复制到其他jvm环境解压运行。
在odl控制器中测试验证模块功能
1、本例中将distribution-karaf-0.3.3-Lithium-SR3.tar.gz文件复制到另外一台vm,解压并运行。由于通过web浏览器访问odl需要odl-dlux-all组件,因此在控制器控制台输入
feature:install odl-dlux-all
feature:install odl-example-rest
通过feature:list –i可以看到已经将我的Example模块安装到了odl控制器
2、通过web浏览器访问odl,可以看到yangui中已经存在Example模块