首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ODL应用开发之MD-SAL中级教程

ODL-skeleton-api,由于需要在里面利用 ODL-skeleton-api,我们加入了依赖关系,这也是加依赖关系的方法。...对于Karaf容器来说,每一个应用都是一系列的feature,他们可以被安装进容器内。这个文件夹内定义了我们写的应用的feature和依赖关系。...先看pom.xml,这里我是参考了一下SDNhub上放的那个例子的feature的依赖关系,将那些org.apache.jasper之类的都放进去了。重点是前几个自己加的。...对于Karaf容器来说,每一个应用都是一系列的feature,他们可以被安装进容器内。这个文件夹内定义了我们写的应用的feature和依赖关系。...先看pom.xml,这里我是参考了一下SDNhub上放的那个例子的feature的依赖关系,将那些org.apache.jasper之类的都放进去了。重点是前几个自己加的。

2.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenDaylight发布第七个版本Nitrogen(氮)

    氮版本的主要特点是聚焦在Karaf 4的实现,OpenDaylight组件使得用户能够选择其SDN控制器支持的协议和服务。...具备了这个功能之后,OpenDaylight显著提高了组件包之间的相互依赖关系的管理,从用户角度看,这个功能具备以下三点优势: 平台整体性能:由于Karaf 4生成并维护一个依赖映射,因此用户可以快速配置...ODL依赖于与Karaf部分相互作用的第三方特性,但是在氮版本发布之前,它不具备Karaf的安全性功能 加速部署的依赖映射也使得跟踪、隔离和发现故障和错误变得更加容易。...在氮版本之前,ODL模块在启动时并不是每次都需要这些信息,相反,依赖关系将在数据传输过程中解决。从经验来看,Karaf项目和OpenDaylight意识到这种方式并不是100%可靠的。...因此,氮版本着重于改进将模块迁移到Karaf 4的依赖关系。最终的结果是该平台给开发人员和用户提供了一个平台,在这个平台上,模块之间的所有交互都必须明确定义并执行。

    93050

    基于Opendaylight的packet-in flooding攻击的检测与防护

    一、前言 我们都知道在SDN架构下,交换机是根据流表来对数据流进行转发的,如果交换机收到一个在流表中无法匹配的数据流时,就会向控制器询问如何对该数据流进行处理。...在OpenFlow协议下,交换机会针对每一个无法匹配的数据流产生packet-in消息并将该消息发送给控制器以询问如何对该数据流进行处理。...具体做法是,打开框架中features文件夹下的pom.xml文件,在其中添加相应的依赖,首先需要在properties标签下添加openflowplugin.version以及l2switch.version...yang model产生的,因此需要在api下的pom.xml添加相关的依赖以导入相关的接口,具体添加如下依赖。...其他几种RPC的实现类似,只不过改变一下筛选条件。 四、测试 对整个项目编译完成后启动 karaf\target\assembly\bin下的karaf ?

    92620

    DLUX组件扩展下篇-实践

    1.3 所需背景知识 参考:DLUX组件扩展上篇-原理 需要了解: DLUX 组件注册的view的动态添加、UI-Route状态设置、nav菜单添加、Sec-logo设置、编译工程依赖等信息。.../karaf(ODL的服务器端运行命令),系统默认加载的feature信息配置文件为当前目录的../etc/org.apache.karaf.features.cfg文件中: ?...其中,红色标记为加载的opendaylight的集成feature信息,上述文件对应: /home/sdn/opendaylight/distribution-karaf-0.6.4-Carbon/system...在当前目录下,增加Odl-dluxapps-cowin目录,如下,并参考topology目录下pom.xml配置工程文件: ? Pom.xml文件如下: ? ?...但是还有比较多的如工程pom.xml文件配置等,未涉及,只要参考类似模块,应该可以顺利完成。 文中涉及的扩展工程,方便大家参考,尽力使用了完整文档,且可以直接拷贝使用。

    61740

    OpenDaylight开发学习十问十答

    1 OpenDaylight项目庞大,子项目众多,如何入手比较合适? OpenDaylight项目很庞大,但是它有一个核心的架构理念——模型驱动的架构。...还有就是需要了解一下OSGi规范,网上可以找到中文的规范,推荐4.0以后的版本。同时了解一下Karaf,看看OSGi规范和karaf之间的关系,这个过程可能也会花费一两个星期。...Maven能帮助我们很好的管理项目依赖,但如果在开发自己的项目时,不仔细梳理依赖关系,随意拷贝其他项目的pom文件,也可能导致相互依赖等严重问题,一定要注意。...在那个阶段出错的?在karaf控制台,通过查看bundle相关的命令输出相关信息。通过log分析详细的出错信息。 一般都是依赖找不到或者依赖冲突的问题,如何解决?...我很想告诉大家秘诀,可惜没有,只能自己仔细分析模块间的依赖关系,Import-Package,Export-Package匹配吗?包路径冲突了吗?具体问题具体分析。

    1.1K80

    OpenDaylight系列文章(二):OpenDaylight初窥(上篇)之OpenDaylight的工程技术架构

    KARAF---OpenDaylight的“建筑主体” KARAF:是Apache旗下的开源项目,同时也是一个基于OSGI的运行环境,可以用于部署各种组件和应用程序。...OpenDaylight控制器从HELIUM版本开始使用karaf作为底层架构。 KARAF提供了一个基础容器的功能,在OSGI“装配式技术规范”下它就像是建筑主体。...它包含项目对象模型、标准集合、项目生命周期、依赖管理系统和用来定义生命周期阶段中插件和目标的逻辑。 在OpenDaylight里,Maven扮演着构件工厂的角色。...下面示例一下如何使用maven自动创建OpenDaylight项目基本结构并编译的: 环境配置 1、系统环境:ubuntu 14.04 64 bit 2、软件环境:Java JDK 1.8+、Maven...Bundles分别是api, artifacts, cli,features, impl,it,karaf,src; bundle aggregator即为pom.xml。

    1.1K50

    SDNLAB技术分享(三):OpenDaylight中编程抽象的实现

    譬如 1.openflow协议相当于一种申明式的语言,只是去规定了交换机去做什么而非如何去做。...第二部分 那再简要概括该系统的一些作用之后,我们来看一下在ODL种如何实现这一功能。 由于项目开始是在今年2月,所以这里使用的helium版本。...从一个入门的角度来说: 首先需要定义的是该项目各目录下的POM文件,这一点上ODL中l2switch里的pom文件是一个很好的范例: 在MD-SAL的运用部分, https://wiki.opendaylight.org...A3:在pom文件,以及features文件夹下的features.xml文件里修改就可以做到,karaf还有个优势是可以热加载,也可以直接将编译后的模块文件复制到karaf文件夹下加载模块。...子目录下面的pom也要修改吗A4:需要修改,一般子目录下的比较简单,只是告知maven如何编译该目录 Q5:上海-HL 能将单独编译后的模块加载到正在运行的锂版本ODL中的karaf?

    705100

    SDN开发笔记(三):ODL源码编译生成发行版控制器

    前言 鉴于网上对于SDN开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在SDN开发过程中的经验,我的SDN项目开发是基于OpenDaylight的release-lithium-sr3版本...2、Gerrit方式 gerrit是odl控制器源代码官方存储位置,在浏览器中输入https://git.opendaylight.org,点击Projects按钮 ?...这就是为什么我们从官网下载下来的odl控制器二进制文件的名字为distribution-karaf-xx-xx,比如distribution-karaf-0.3.3-Lithium-SR3.tar.gz...与具体工程(sal)目录下pom.xml中的artifactId指定的名称一致。...测试验证 1、将distribution-karaf-0.3.3-Lithium-SR3.zip复制到安装好jdk环境的虚拟机,解压运行./karaf ?

    1.6K80

    OpenDaylight新建HelloWorld工程并集成版本

    本人在写HelloWorld之前编译过1.0.3-Lithium-SR3的controller等工程源码,采用此命令后会大大减少依赖下载,缩短新建时间。该参数值的查询可到(链接)。...对工程进行测试 执行~/work/odl/hello2/karaf/target/assembly/bin/karaf 5、将hello2集成到ODL发行版:复制文件 本人采用的发行版为OpenDaylight...此时该目录包含的内容包括: sdn@sdn100:~/work/odl/distribution-karaf-0.3.3-Lithium-SR3/system/org/opendaylight/hello2...: ~/work/odl/distribution-karaf-0.3.3-Lithium-SR3/bin/karaf 记得首先执行的是安装odl-mdsal-clustering,再安装其他特性: feature...第一节(org.opendaylight.hello2)为groupId; 第二节(hello2-features)为生成的feature文件夹名,可在~/work/odl/distribution-karaf

    1.1K50

    OpenDaylight Lithium-SR2 Cluster集群搭建

    目的 希望大家能够通过本教程对OpenDaylight集群的基本概念如shard/基本配置有所了解,感受OpenDaylight的High Availability(HA)(如果你同时运行着多台控制器,...本文主要由三个部分组成,前提条件与配置步骤主要介绍了如何配置OpenDaylight的集群,第二个部分验证High Availbility,主要是通过实验让大家对High Availability有更直观的认识...第三个部分写在最后,简要的指出使用集群的优势,我的偶像导师说了,如何保持数据的一致性在软件定义网络中是非常非常非常重要的!...请确保在启动控制器之前,上述所列端口没有被其他程序占用 配置步骤 本节以IP地址为192.168.1.25的控制器为例,介绍如何对控制器进行配置 1.解压下载的zip文件,并进入控制器目录 本文的控制器目录为解压...distribution-karaf-0.3.2-Lithium-SR2.zip后所得distribution-karaf-0.3.2-Lithium-SR2的目录。

    1.3K61

    SDN开发笔记(四):md-sal应用程序开发

    4篇文章,本章主要讲如何开发一个基于MD-SAL的应用程序。...mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype...模块功能测试 1、编译ubuntu中的example,找到example/karaf/target/assembly/bin下的karaf文件,运行karaf。 ? 2、启动karaf。 ?...验证模块功能 1、将example模块放入distribution-karaf-0.3.3-Lithium-SR3.tar.gz解压的文件夹对应的位置,运行并安装example的feature。...5、可以看出Example已经集成至odl控制器并可以正常工作 总结 本例只是做一个简单的demo,完成的功能也很简单,通过web发送请求,由odl反馈一个hello的欢迎提示,下一章将描述如何将这个demo

    1.3K50

    OpenDaylight铍版本初体验——坑还多吗

    OpenDaylight Beryllium铍版本依赖关系图 上图中所标识的Project Offsets,在wiki中了解到: 项目是被分为3个offsets: Offset 0:最后期限是规定的日期...下载后解压: # unzip distribution-karaf-0.4.0-Beryllium.zip #cd distribution-karaf-0.4.0-Beryllium/ 运行: #.../bin/karaf 注意:在运行之前进入/distribution-karaf-0.4.0-Beryllium/etc目录,修改org.apache.karaf.management.cfg文件的rmiRegistryHost...还有一种可能出现异常的情况:OpenDaylight控制台关掉,并没有清楚data目录数据,且未使用./karaf clean命令,直接使用..../karaf命令重启,重启后,通过feature:list -i查看,之前安装的组件仍存在,但是等待很长一段时间后,6633和8181端口仍未被监听到,需要清除或卸载组件后重新安装组件。

    1.7K80

    狂野的 #imports: 如何驯服文件依赖关系

    如果不小心,很容易造成文件依赖性爆炸。后果是什么?如何控制 #import 依赖关系? 本文是Objective-C 中的代码气味系列文章中的一篇。...把它想象成一个依赖关系图: 依赖关系 问题:增量构建时间 文件依赖性也会影响增量构建。修改 D.h 会导致 Xcode 重新构建 D.m、B.m 和 A.m。...问题:隐藏的依赖关系 虽然头文件中不规范的 #imports 会影响编译时间,但不要以为实现文件就不会受到影响!依赖关系图仍然在起作用,只是作用方式不那么明显。 让我们参考同一张图,但稍作改动。...代码气味: .h 中的 #imports 数量过多 因此,让我们来看看如何驯服文件依赖关系,首先是头文件,然后是实现文件。从头文件开始,要注意的代码问题很简单:#imports 太多。...内聚性会下降(因为类要做的事情太多),耦合度会增加。结果就是一个可怕的依赖关系图。

    18210

    ODL碳版本模块开发及流程梳理

    在代码的impl/src/main/resources文件夹下生成了impl-blueprint.xml文件,用于为项目提供依赖注入。...首先写发包模块,既然要发包,那么我们肯定要用到ODL提供给我们的发包服务,那么如何在我们的项目中引入这个服务呢?...上篇文章中我们提到了关键的blueprint.xml文件用于依赖注入,引入服务的话也要在这个文件中进行声明。...首先发送数据包需要一直运行,因此肯定是一个多线程任务,继承Runnable接口,之后再run函数中写我们的具体执行逻辑。 发包先要生成一个包,那么如何生成一个可被发包服务发送的数据包呢?...更改插件配置 之前在插件添加了相应的配置文件,那么如何更改插件的配置呢: 1.建立xml文件。 2.调用rpc 这里只介绍第二种。使用rpc更改插件配置。

    1.9K80

    如何实现 Go Module 依赖关系的可视化

    最近,我开发了一个非常简单的小工具,总的代码量 200 行不到。今天,简单介绍下它。这是个什么工具呢?它是一个用于可视化展示 Go Module 依赖关系的工具。 为何开发 为什么会想到开发这个工具?...期间,遇到了一个需求,如何清晰地识别模块中依赖项之间的关系。一番了解后,发现了 go mod graph。...文档中给出的包关系图: image.png 看到这张图的时候,眼睛瞬间就亮了,图形化就是优秀,不同依赖之间的关系一目了然。这不就是我想要的效果吗?666,点个赞。 但 ......ID ,和通过 ID 和 -> 表示依赖间的关系。...: image.png 完美地展示了各个模块之间的依赖关系。

    2.9K10

    ONOS 实战分享(一):项目建立、调试到热部署

    本文尽量不介绍Maven及其pom、OSGI、Karaf的内容,这些不是ONOS特有的,但需要朋友们对它们是什么、有什么作用,有个大致的了解,所以请大家Google之。...pom里面来: 最后,打开apps目录下的pom,加入我们模块的信息,这样前后的从属关系就建立好了: 项目建立到此完成,感兴趣的朋友可以去瞧一瞧实现功能的AppComponent.java哦!...m2/repository),而且他们的装载也不依赖于onos源代码文件夹了。...于是我想找到Karaf是如何找到我们的模块的,我从onos-karaf入口开始,到onos-setup-karaf,再到karaf/bin/karaf,有点眼晕,没有找到什么线索。...ONOS对于开发入门的朋友还有三四篇经典的tutorial wiki文章,源代码也是分块清晰,代码结构更是简洁明了,各层之间的关系,层之间、模块之间如何交换信息都能清楚地在代码层面轻松寻到。

    2.1K80

    OpenDaylight碳版本如何增强稳定性、安全性和网络可编程性?

    OpenDaylight的终端用户现在可以放心的是,OpenDaylight早起版本中的数以千计的功能支持不足的现象一去不复返了。...为每个项目添加Apache Karaf 4.X功能是希望在OpenDaylight下一个版本Nitrogen版本中使用新的容器,此外Carbon版本还增强了测试功能,以确保功能导入所有适当的运行时包,从而提高...这一基础有助于社区的开发者在Nitrogen版本开发周期中执行Karaf升级。...到目前为止,OpenDaylight用户可能最熟悉与RESTCONF Draft 02 API进行交互,Draft 02 API仍然在OpenDaylight中很好的兼容,因为很多软件仍然依赖该API实现...这些基础工作将能够促进在下一个版本Nitrogen中实现Karaf升级,服务激活大大稳定且能够更好地进行测试,以确保更加一致和友好的运营经验。

    97460
    领券