- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenDaylight开发学习笔记基础之Controller篇.doc
一 、 摘要
本文主要在 Helium 版本下进行二次开发测试,涉及到 controller、与openflowpluginJava、integration 等工程的设计与代码的写入。文章中对于一些概念性问题相信大家已经了解很多,故本文不做过多的解释,只介绍技术。本文目标为以下几点:
源代码的下载与编译测试以及启动;
三个工程的集成开发,涉及到工程的讲解;
Controller 里新建 bundle 以及功能解释。
二、源码下载及编译及启动
图1 -版本架构
图1所示是新版本的架构图,只简单介绍几个重要的部分,如北向、功能模块部分与openflowpluginJava。工程主体由三部分组成,北向负责以上各种网络应用,功能模块部分负责消息的收发以及与上层应用通信,openflowpluginJava主要负责消息网络流的编解码。下面进入正题。
2.1 Controller编译
mvn命令新建一个folder :
Shell
1
2
mkdir [name ]
cd??[name]
下载源代码:
Shell
1
git clone /gerrit/p/controller.git
联网编译整个controller工程
Shell
1
mvn clean install
编译后报错误并且controller里的一些目录的编译也会skip:
解决办法如下:现将opendaylight版本切换,我这里是切换到sr2版本相对稳定,
Shell
1
git checkout release/helium-sr2
再下载parent代码
Shell
1
git clone /gerrit/p/odlparent.git
将odlparent里setting.xml文件copy到你的本地数据库中(.m2)
Shell
1
cp setting.xml /root/.m2
在进行controller的编译就不会报错了。
2.2 Karaf简介与调试
Karafmodule会把Plugin制作成KarafFeature,然后打包成可以导入到Apache karaf的kar文件。
1.Apache Karaf
基于OSGI的运行环境,做为OSGI应用的管理容器提供各种管理utility。
2.KarafFeature
由多个Java运行文件组成的Karaf的功能管理单位。ODL Helium中,所有应用包括MD-SAL都由Apache Karaf统一管理。
编译好controller后,去opendaylight目录下找到distribution,如下图所示:
然后在terminal下cd到bin目录下利用karaf启动controller
Shell
1
./karaf
图2 karaf启动controller
启动controller时会发生一些问题,例如:
试着敲入两个命令:
Shell
1
2
export set JAVA_OPTS=”-Xms256m -Xmx512m”
export?MAVEN_OPTS=-Xmx1024m?-XX:MaxPermSize=512m”
这两个命令是更改内存的,但是只是临时的更改,这样再启动controller就不错报错,但是需要将两个命令写进etc的profile文件中。
Shell
1
# gedit /etc/profile
在最后加入PATH的设置如下:
Shell
1
export set JAVA_OPTS=-Xmx512m
三、controller、openflowPluginJava集成开发测试
integration是一个框架性的工程,所有自己开发和修改的部分(包括以上三个工程),编译为包后,都可以放在该工程的目录下一起执行。
注意,如果是自己开发的包,则可以直接放到该目录下。但是如果是修改的原本工程,然后编译的包要替换掉上面目录中原来的包,这里有个问题是?integration?的?plugin目录下的包名和?controller,?openflowplugin,?openflowjava?中编译出来的包命名方式有点小差别,复制过去之前先重命名下,使之和目录下的原来包文件名一致,再复制替换。
Shell
1
mvn clean install
对于helium版本的代码结构变化较大,目录发生了变化,参考一下目录:1.openflowJava:
Shell
1
/root/integration/distributions/karaf/target/assembly/system/org/opendaylight/openflowjava/
2.openflowPlugin:
Shell
1
/root/odl_Helium/integration/distributions/karaf
文档评论(0)