首页 文章

Opendaylight设置问题

提问于
浏览
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命令:

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

(我使用了基于archetype-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相关的功能,因此无法安装 .

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

有人可以帮我澄清一下吗? Opendaylight看起来很有前途,但遗憾的是,如此多的依赖关系并不是直截了当的 . 在此先感谢您的帮助!

3 回答

  • 1

    项目的karaf目录下的发行版是基于项目功能生成的 . 原型并不了解ODL中的每个项目 . 这只是一个起点 - 您可以根据需要添加相关的捆绑包或功能 . 因此,如果您需要l2-switch功能,那么您可以将该功能包含在项目的功能中 .

  • 1

    Executive summary:

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

    Detailed workflow:

    • 先决条件

    • 安装Java SDK和MVN源

    • 配置 M2_HOMEMAVEN_OPTSJAVA_HOME env变量

    • 生成ODL Maven项目

    • 删除旧的maven存储库

    • settings.xmlodlparent 复制到 ~/.m2/settings.xml

    • 执行Maven原型生成命令

    • 使用 l2-switch 功能构建并运行ODL

    • 编辑 karaf/pom.xml 以包含 l2-switch

    • 构建并安装ODL

    • 安装 l2-switch 功能

    Generate ODL Maven project

    删除现有存储库

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

    settings.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
    

    编辑 karaf/pom.xml 以包含 l2-switch

    [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>
    
  • 0

    要使用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 ::设置控制器

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

相关问题