我正在尝试设置Opendaylight控制器。实际上,我的意图是将它与mininet vm连接起来,并与Internet进行通信。(使用mininet嵌入式控制器可以与互联网通信)。要实现这一点,根据我的理解,我必须为Opendaylight控制器编写一个应用程序,以便处理传入和传出的流。仅仅将mininet与ODL控制器连接起来,似乎不足以实现试验台与Internet的通信。如果我错过了什么,请纠正我,但是为了为Opendaylight控制器编写应用程序而下载发行版也是不够的。需要创建一个新项目,对吗?
我从官方网站下载了Carbon 0.6.2 (Carbon SR2),并基于此并遵循以下教程:https://wiki.opendaylight.org/view/GettingStarted:Development_Environment_Setup#Edit_your_.7E.2F.m2.2Fsettings.xml和https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Startup_Project_Archetype
我尝试创建我的项目。用户指南似乎已经过时了。我使用Snapshot-Type=opendaylight.snapshot和Archetype-Version=1.5.0-SNAPSHOT。原型版本在用户指南中没有更新,我不确定我是否使用了正确的版本。
因此,我以以下方式使用maven命令:
mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ -DarchetypeCatalog=remote -DarchetypeVersion=1.5.0-SNAPSHOT(我使用了基于原型的原型版本-catalog.xml:
<groupId>org.opendaylight.controller</groupId>
<artifactId>opendaylight-startup-archetype</artifactId>
<version>1.5.0-SNAPSHOT</version>)然后我创建我的项目并执行:
mvn clean install -DskipTests -Dcheckstyle.skip=true项目创建成功(没有错误),但是当我从这个项目启动控制器时,似乎没有列出与l2-switch相关的功能,因此无法安装。
这是这样实现的吗?我希望在主发行版中列出的每个功能都可以在基于此特定发行版创建的项目中使用。ODL控制器与基于Openflow协议的mininet之间的通信需要此功能。我用的是java 1.8和maven 3.5.2
有人能帮我澄清一下吗?Opendaylight看起来很有前途,但遗憾的是,文档并不是直接的,有这么多依赖项。提前感谢您的帮助!
发布于 2018-02-10 09:43:13
执行摘要:
如果您希望能够安装l2-switch功能,只需在构建项目之前将l2-switch依赖项添加到Karaf的pom.xml。
详细工作流程:
variables
中
使用feature L2-switch功能构建和运行ODL
并安装ODL
生成ODL Maven项目
删除现有存储库
[workdir]$ rm -rf ~/.m2/repository/将settings.xml从~/.m2/settings.xml复制到odlparent
[workdir]$ curl https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml --create-dirs -o ~/.m2/settings.xml执行Maven原型生成命令
[workdir]$ mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ -DarchetypeCatalog=remote -DarchetypeVersion=1.5.0-SNAPSHOT
Define value for property 'groupId': org.opendaylight.example
Define value for property 'artifactId': example
Define value for property 'version' 0.1.0-SNAPSHOT: :
Define value for property 'package' org.opendaylight.example: :
Define value for property 'classPrefix' Example: : ${artifactId.substring(0,1).toUpperCase()}${artifactId.substring(1)}
Define value for property 'copyright': FreshLEX, LLC
Define value for property 'copyrightYear' 2017: : 2018编辑karaf/pom.xml以包括L2-交换机
[workdir]$ cd example/
[example]$ vim karaf/pom.xml将此代码添加到dependencies标记下:
<dependency>
<groupId>org.opendaylight.l2switch</groupId>
<artifactId>features-l2switch</artifactId>
<version>0.7.0-SNAPSHOT</version>
<classifier>features</classifier>
<type>xml</type>
<scope>runtime</scope>
</dependency>使用l2-switch功能构建和运行ODL
[example]$ mvn clean install -DskipTests
[example]$ cd karaf/target/assembly/bin/
[bin]$ ./karaf
opendaylight-user@root>feature:install odl-l2switch-switch
opendaylight-user@root>发布于 2018-01-05 02:23:39
项目的karaf目录下的发行版是基于项目特性生成的。原型并不知道ODL中的每个项目。这只是一个起点--您可以根据需要添加依赖包或特性。因此,如果您需要l2-switch功能,那么您可以将该功能包含在项目的功能中。
发布于 2018-02-20 07:24:32
要使用OpenDaylight,你不需要从源代码构建它,所以你不需要Maven.只需安装java 8,您的java home就设置好了。然后下载tar文件(https://www.opendaylight.org/technical-community/getting-started-for-developers/downloads-and-documentation)并将其解压缩。
对于应用程序,按照说明激活restconf、netconf、openflow和l2switch,您的实例就可以使用了。
运行mininet,您可以使用ovs-vsctl set-controller bridge tcp::设置contoller
并使用ovs-vsctl show查看控制器是否已连接。
https://stackoverflow.com/questions/48099429
复制相似问题