首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opendaylight设置问题

Opendaylight设置问题
EN

Stack Overflow用户
提问于 2018-01-05 00:23:53
回答 3查看 1K关注 0票数 2

我正在尝试设置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.xmlhttps://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Startup_Project_Archetype

我尝试创建我的项目。用户指南似乎已经过时了。我使用Snapshot-Type=opendaylight.snapshot和Archetype-Version=1.5.0-SNAPSHOT。原型版本在用户指南中没有更新,我不确定我是否使用了正确的版本。

因此,我以以下方式使用maven命令:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<groupId>org.opendaylight.controller</groupId>
<artifactId>opendaylight-startup-archetype</artifactId>
<version>1.5.0-SNAPSHOT</version>)

然后我创建我的项目并执行:

代码语言:javascript
复制
mvn clean install -DskipTests -Dcheckstyle.skip=true

项目创建成功(没有错误),但是当我从这个项目启动控制器时,似乎没有列出与l2-switch相关的功能,因此无法安装。

这是这样实现的吗?我希望在主发行版中列出的每个功能都可以在基于此特定发行版创建的项目中使用。ODL控制器与基于Openflow协议的mininet之间的通信需要此功能。我用的是java 1.8和maven 3.5.2

有人能帮我澄清一下吗?Opendaylight看起来很有前途,但遗憾的是,文档并不是直接的,有这么多依赖项。提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

发布于 2018-02-10 09:43:13

执行摘要:

如果您希望能够安装l2-switch功能,只需在构建项目之前将l2-switch依赖项添加到Karaf的pom.xml

详细工作流程:

variables

  • Pre-requisites source
  • Configure M2_HOMEMAVEN_OPTSJAVA_HOME环境安装Java SDK和MVN

  • Generate ODL Maven project
    • 将旧的maven repository
    • Copy settings.xmlodlparent删除到您的Maven原型生成command

使用feature L2-switch功能构建和运行ODL

  • 编辑包含feature

并安装ODL

  • 安装l2-switch ODL

生成ODL Maven项目

删除现有存储库

代码语言:javascript
复制
[workdir]$ rm -rf ~/.m2/repository/

settings.xml~/.m2/settings.xml复制到odlparent

代码语言:javascript
复制
[workdir]$ curl https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml --create-dirs -o ~/.m2/settings.xml

执行Maven原型生成命令

代码语言:javascript
复制
[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-交换机

代码语言:javascript
复制
[workdir]$ cd example/
[example]$ vim karaf/pom.xml

将此代码添加到dependencies标记下:

代码语言:javascript
复制
<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

代码语言:javascript
复制
[example]$ mvn clean install -DskipTests
[example]$ cd karaf/target/assembly/bin/
[bin]$ ./karaf
opendaylight-user@root>feature:install odl-l2switch-switch
opendaylight-user@root>
票数 2
EN

Stack Overflow用户

发布于 2018-01-05 02:23:39

项目的karaf目录下的发行版是基于项目特性生成的。原型并不知道ODL中的每个项目。这只是一个起点--您可以根据需要添加依赖包或特性。因此,如果您需要l2-switch功能,那么您可以将该功能包含在项目的功能中。

票数 1
EN

Stack Overflow用户

发布于 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查看控制器是否已连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48099429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档