开放日光设置问题



我正在尝试设置Opendaylight控制器。实际上,我的目的是将其与mininet vm连接并与Internet进行通信。(使用Mininet嵌入式控制器可以与互联网通信)。 要执行此操作,根据我的理解,我必须为 Opendaylight 控制器编写一个应用程序,以便处理传入和传出流。 仅将mininet与ODL控制器连接,似乎不足以将测试平台与互联网进行通信。 如果我错过了什么,请纠正我,但下载发行版以便为 Opendaylight 控制器编写应用程序也是不够的。需要创建一个新项目,对吗?

我从官方网站下载了碳0.6.2(碳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

(我使用了基于原型目录的原型版本.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控制器与mininet通过Openflow协议进行通信需要此功能。 我使用 java 1.8 和 maven 3.5.2

谁能帮我澄清一下? Opendaylight看起来很有前途,但遗憾的是文档不是直截了当的,有这么多的依赖关系。 提前感谢您的帮助!

执行摘要:如果您希望能够安装 l2-switch

功能,只需在构建项目之前将l2-switch依赖项添加到 Karaf 的pom 中.xml即可。

详细的工作流程:

  • 先决条件
    • 安装 Java SDK 和 MVN 源代码
    • 配置M2_HOMEMAVEN_OPTSJAVA_HOME环境变量
  • 生成 ODL Maven 项目
    • 删除旧的 maven 存储库
    • 设置.xmlodlparent复制到~/.m2/settings.xml
    • 执行 Maven 原型生成命令
  • 使用l2 交换机功能构建和运行 ODL
    • 编辑karaf/pom.xml以包含l2 开关
    • 构建并安装 ODL
    • 安装l2 交换机功能

生成 ODL Maven 项目

删除现有存储库

[workdir]$ rm -rf ~/.m2/repository/

设置.xmlodlparent复制到~/.m2/settings.xml

[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

编辑卡拉夫/pom.xml以包含l2 开关

[workdir]$ cd example/
[example]$ vim karaf/pom.xml

依赖项标记下添加以下内容:

<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 交换机功能构建和运行 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>

项目卡拉夫目录下的发行版是根据项目功能生成的。原型并不知道 ODL 中的每个项目。这只是一个起点 - 您可以根据需要添加依赖包或功能。因此,如果您需要 l2 开关功能,则可以将该功能包含在项目功能中。

要使用OpenDaylight,你不需要从源代码构建它,所以你不需要Maven。只需安装 java 8 并设置好您的 java 主页。 然后下载 tar 文件 (https://www.opendaylight.org/technical-community/getting-started-for-developers/downloads-and-documentation) 并提取它。

对于应用程序,请按照所述激活 restconf、netconf、openflow 和 l2switch,您的实例就可以使用了。

运行迷你网,您可以使用以下命令设置控制器 ovs-vsctl set-controller bridge TCP::

并使用 ovs-vsctl show 查看控制器是否已连接。

最新更新