文章目录

  • 五、Maven基础
    • ODL's Hello World
    • Maven是什么?
    • Maven核心 总结
    • 生命周期
    • Clean生命周期
    • Site生命周期
    • Default生命周期(核心)
    • Maven插件
    • 内置绑定的插件
    • 自定义插件与绑定
    • 依赖管理
    • 依赖的传递性
    • 依赖的范围
    • 依赖范围影响传递性依赖
    • Maven仓库
    • 项目配置文件pom.xml
    • 约定优于配置的原则
    • Maven常用的约定
  • 六、ODL APP 开发思路
    • ODL APP开发流程
  • 七、ODL Hello
  • 八、子项目L2Switch
    • L2 Switch项目背景
    • 模块划分
    • 代码实现
      • yang数据模型
      • 原理:
      • 基于解码器实现
      • arphandler
      • addresstracker
      • hosttracker
      • I2switch-main
    • 以上是所有模块的介绍

五、Maven基础

ODL’s Hello World

如何基于ODL开发第一个程序

Maven是什么?

Maven核心 总结

  • 三套生命周期
  • 插件化设计及与生命周期的绑定
  • 约定优于配置的原则
  • 命令,pom配置

生命周期

Maven有三套相互独立的生命周期,这三套生命周期分别是:

  • Clean Lifecycle:在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle:构建的核心部分,编译,测试,打包,部署等等。
  • Site Lifecycle:生成项目报告,站点,发布站点。

每套生命周期都由一组阶段(Phase)组成,我们平时会在命令行输入的命令总会对应于一个特定的阶段。
mvn clean install

Clean生命周期

Site生命周期

Default生命周期(核心)


Maven插件

通过插件来具体实现

内置绑定的插件


自定义插件与绑定

依赖管理

依赖的传递性

依赖的范围

依赖范围影响传递性依赖

Maven仓库

项目配置文件pom.xml

  • 实际例子
  • pom的继承关系
  • pom的聚合关系

约定优于配置的原则

Maven常用的约定

其实Maven的配置并不复杂

【本节都是概念。】

六、ODL APP 开发思路

ODL APP开发流程

七、ODL Hello

1.编辑工具:在开发平台上安装并解压idea.sh

2.打开工程:写yang文件,定义yang模型

(如图中rpc)
3.执行编译:打开yang,会自动生成相应的Java接口

cd apl
mvn clean install



4.接下来实现HelloService接口

5.Future

6.添加一个feature(注意目录和位置)

7.编译功能

cd ..
mvn clean install -DskipTests(跳过测试,会快一点)

或者直接运行程序

cd ..
cd karaf/target/
ls
cd assembly/bin
./karaf
list | grep hello


8.通过浏览器调用

admin
admin

点击FORM

输入ODL,显示Hello ODL,证明成功

八、子项目L2Switch

L2 Switch项目背景

模块划分

代码实现

yang数据模型

主要是一些报文的定义


对于报文,都封装成了notification

原理:

首先,接收openflow plugin转发过来的packetin的notification,
对解析出来的报文再封装成notification发布出去(给其他模块订阅)。

基于解码器实现

监听报文,进行解码,再publish出去

arphandler

对解码包文进行监听处理

如果能查到目的MAC,就作为单播出去
查不到,就洪泛出去。(与传统交换机处理的逻辑是类似的)

addresstracker

主要是把学习到的MAC IP地址存到对应端口下面,是一个IP地址学习的过程

定义了一个模型

主要处理代码:writer–写库


监听报文
将原MAC目的MAC解出来

hosttracker

类似
定义主机,相应属性

对监听数据,存在本地map中
将学习到主机的信息放到拓扑中去
(似乎这是在讲解模型代码,才看明白。。。)
监听拓扑库,监听到link变化后根据gragh图,看是否是环路,根据节点信息恢复状态,下载初始的流表,上送到控制器,形成网络的拓扑,在openflow glugin manager 中下发初始流表,监听变化,形成拓扑库,顺便维护信息,将环路信息写到model定义的节点下面。

I2switch-main

一开始监听节点的上限信息
下一条流表
处理流表

依赖到已经学习到的MAC地址,相关状态信息

以上是所有模块的介绍

ODL开发【SDN控制器-下】【C4-04】相关推荐

  1. 为OpenStack而生的SDN控制器——OVN

    为什么OVN会出现? OpenvSwitch (OVS) 以其丰富的功能和相对优秀的性能,成为OpenStack中广泛使用的虚拟交换机.在内核部分合并进入Linux主干之后,Open Vswitch几 ...

  2. Openstack Neutron 集成 SDN控制器

    Neutron 集成SDN控制器   一.Neutron的组成元素 Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的REST API ...

  3. 基于SDN环境下的DDoS异常攻击的检测与缓解--实验

    基于SDN环境下的DDoS异常攻击的检测与缓解--实验 基于SDN环境下的DDoS异常攻击的检测与缓解--实验 1.安装floodlight 2.安装sFlow-RT流量监控设备 3.命令行安装cur ...

  4. SDN控制器的北向接口

    SDN北向接口是连接SDN控制器和用户应用之间的重要纽带,决定了SDN的实际能力与价值,直接影响了整个SDN市场的发展方向. 北向接口概述 作为一种颠覆传统网络的新型网络架构,SDN凭借其快速提供网络 ...

  5. OpenStack与SDN控制器的集成

    1.OpenStack Neutron简介 Neutron添加了一层虚拟的网络服务让租户(用户)构建自己的虚拟网络.Neutron是对网络的虚拟化,该网络可以从一个地方移动到另一个地方,而不会影响现有 ...

  6. SDN控制器OpenDaylight简介—VeCloud

    2013年,Linux Foundation联合思科.Juniper和 Broadcom等多家网络设备商创立了开源项目 Open Daylight,它的发起者和赞助商多为设备厂商而非运营商等网络设备消 ...

  7. SDN控制器ONOS架构—Vecloud

    ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的: 1.代码模块化:支持把新的功能作为新的独立单元引入 2.特性可配置:无论是在启动还是运行时,支持 ...

  8. Orion:谷歌的新一代SDN控制器

    作者 | 魏煌松 来源 | 鲜枣课堂 时至今日,谷歌在2015年公布的成果,"利用SDN将广域网带宽利用率提升至接近100%",仍然是SDN的一个标杆案列,也是难以逾越的巅峰.但事 ...

  9. JAVA的sdn控制器,软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  10. 简单的基于交换机迁移的SDN控制器负载均衡实验

    简单的基于交换机迁移的SDN控制器负载均衡实验 本人首次接触SDN,了解了下SDN的定义后,针对这个实验,首先通过查询文献,大概了解这个实验的环境搭建方案. 对于SDN控制器使用较多的有:OpenDa ...

最新文章

  1. python电脑配置要求cpu-Python限制内存和CPU使用量的方法(Unix系统适用)
  2. boost::spirit模块实现错误处理的测试程序
  3. linux硬件时间修改与查看
  4. CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
  5. 域 嵌入图像显示不出来_如何(以及为什么)将域概念嵌入代码中
  6. 计算机专业简历推荐信范文,个人简历自我推荐信范文【三篇】
  7. 女人抛弃男人的唯一理由
  8. html中加粗的字体如何改细,css怎么把字体变细?
  9. 20200615每日一句
  10. NCL做一个简单的EOF分析例子
  11. 添加蒙版及原页面不滚动
  12. 霹雳吧啦Wz语义分割学习笔记P10
  13. Vue实现购物车功能
  14. w ndows资源管理器无响应,windows资源管理器未响应
  15. 企业为什么要构建双活数据中心?F5怎么样?
  16. 华为m6更新鸿蒙吗,华为手机升级鸿蒙的方法,有哪位升级成功的吗?
  17. validateFrom用法
  18. 计算机对商务英语的不利之处,商务英语教学中计算机网络利弊分析论文.docx
  19. 【机器学习】自然语言处理简介
  20. WebSphere中com/env的资源影射设置

热门文章

  1. bzoj 1853: [Scoi2010]幸运数字 容斥
  2. JDO与Hibernate之比较(转载)
  3. EDA实验(3)计数器设计
  4. 直线段检测法(LSD)
  5. xxl-job的学习使用
  6. 【渝粤题库】国家开放大学2021春3895管理英语1题目
  7. (Cys-RGD)包被CdTe量子|3-巯基丙酸(MPA)包被近红外发光CdTe量子
  8. 关于汉字的部件部首和独体字
  9. python查找单词的位置_Python实现单词查询文件查找
  10. css5导弹,世界六大洲际导弹排行榜