ODL开发【SDN控制器-下】【C4-04】

五、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地址,相关状态信息

以上是所有模块的介绍

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HAL9000pp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值