ODL开发【SDN控制器-下】【C4-04】
文章目录
- 五、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】相关推荐
- 为OpenStack而生的SDN控制器——OVN
为什么OVN会出现? OpenvSwitch (OVS) 以其丰富的功能和相对优秀的性能,成为OpenStack中广泛使用的虚拟交换机.在内核部分合并进入Linux主干之后,Open Vswitch几 ...
- Openstack Neutron 集成 SDN控制器
Neutron 集成SDN控制器 一.Neutron的组成元素 Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的REST API ...
- 基于SDN环境下的DDoS异常攻击的检测与缓解--实验
基于SDN环境下的DDoS异常攻击的检测与缓解--实验 基于SDN环境下的DDoS异常攻击的检测与缓解--实验 1.安装floodlight 2.安装sFlow-RT流量监控设备 3.命令行安装cur ...
- SDN控制器的北向接口
SDN北向接口是连接SDN控制器和用户应用之间的重要纽带,决定了SDN的实际能力与价值,直接影响了整个SDN市场的发展方向. 北向接口概述 作为一种颠覆传统网络的新型网络架构,SDN凭借其快速提供网络 ...
- OpenStack与SDN控制器的集成
1.OpenStack Neutron简介 Neutron添加了一层虚拟的网络服务让租户(用户)构建自己的虚拟网络.Neutron是对网络的虚拟化,该网络可以从一个地方移动到另一个地方,而不会影响现有 ...
- SDN控制器OpenDaylight简介—VeCloud
2013年,Linux Foundation联合思科.Juniper和 Broadcom等多家网络设备商创立了开源项目 Open Daylight,它的发起者和赞助商多为设备厂商而非运营商等网络设备消 ...
- SDN控制器ONOS架构—Vecloud
ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的: 1.代码模块化:支持把新的功能作为新的独立单元引入 2.特性可配置:无论是在启动还是运行时,支持 ...
- Orion:谷歌的新一代SDN控制器
作者 | 魏煌松 来源 | 鲜枣课堂 时至今日,谷歌在2015年公布的成果,"利用SDN将广域网带宽利用率提升至接近100%",仍然是SDN的一个标杆案列,也是难以逾越的巅峰.但事 ...
- JAVA的sdn控制器,软件定义网络基础---SDN控制平面
一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑. 对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量: 通过北向接口向上层应用开放多个层次的可编程能 ...
- 简单的基于交换机迁移的SDN控制器负载均衡实验
简单的基于交换机迁移的SDN控制器负载均衡实验 本人首次接触SDN,了解了下SDN的定义后,针对这个实验,首先通过查询文献,大概了解这个实验的环境搭建方案. 对于SDN控制器使用较多的有:OpenDa ...
最新文章
- python电脑配置要求cpu-Python限制内存和CPU使用量的方法(Unix系统适用)
- boost::spirit模块实现错误处理的测试程序
- linux硬件时间修改与查看
- CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
- 域 嵌入图像显示不出来_如何(以及为什么)将域概念嵌入代码中
- 计算机专业简历推荐信范文,个人简历自我推荐信范文【三篇】
- 女人抛弃男人的唯一理由
- html中加粗的字体如何改细,css怎么把字体变细?
- 20200615每日一句
- NCL做一个简单的EOF分析例子
- 添加蒙版及原页面不滚动
- 霹雳吧啦Wz语义分割学习笔记P10
- Vue实现购物车功能
- w ndows资源管理器无响应,windows资源管理器未响应
- 企业为什么要构建双活数据中心?F5怎么样?
- 华为m6更新鸿蒙吗,华为手机升级鸿蒙的方法,有哪位升级成功的吗?
- validateFrom用法
- 计算机对商务英语的不利之处,商务英语教学中计算机网络利弊分析论文.docx
- 【机器学习】自然语言处理简介
- WebSphere中com/env的资源影射设置