opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml
来源:互联网 发布:什么是zigbee网络 编辑:程序博客网 时间:2024/06/11 21:01
opendaylight l2switch提供了L2 switch的功能,下面通过对源代码进行解说来介绍该项目的功能。
一、源代码整体结构
1.l2switch的源代码github地址为:
https://github.com/opendaylight/l2switch.git
2.L2switch构架
parent
定义了运行L2switch所使用的依赖模块以及版本等,下面的很多工程都会继承于parent。
Packet Handler
用于对进入到controller的packet进行解析并分发到不同的模块进行处理。
Loop Remover
用于删除网络中的环路,类似于STP,但是实际代码看下来只是在mdsal的datastore中存储了
网络拓扑,并没有完成loop的去除,不知道是不是没有开发完。
Arp Handler
用于处理ARP packet。
Address Tracker
用于学习网络中实体的地址(MAC和Ip)
Host Tracker
用于追踪网络中主机的位置。
L2Switch Main
用于根据网络流量在swtich上安装flow。
distribution/karaf
用于构造L2switch所需要的karaf环境。
features
用于部署l2switch到karaf实例中,包含了一个feature的描述符。
artifacts
用于生成上面的各个bundle。
二、整体pom.xml
该pom.xml在l2switch文件夹下,对于该pom.xml文件,比较重要的部分是:
......
<packaging>pom</packaging>
......
<modules>
<module>parent</module>
<module>packethandler</module>
<module>loopremover</module>
<module>arphandler</module>
<module>addresstracker</module>
<module>hosttracker</module>
<module>l2switch-main</module>
<module>distribution/karaf</module>
<module>features</module>
<module>artifacts</module>
</modules>
......
<packaging>pom</packaging>这个父项目不像之前的项目那样创建一个JAR 或者一个WAR,
它仅仅是一个引用其它Maven项目的POM。pom.xml 中下一部分列出了项目的子模块。这些
模块在modules元素中定义,每个modules元素对应了一个目录下的子目录。Maven知道去这
些子目录寻找pom.xml文件,并且,在构建的l2switch的时候,它会将这些子模块包含到要
构建的项目中。
一、源代码整体结构
1.l2switch的源代码github地址为:
https://github.com/opendaylight/l2switch.git
2.L2switch构架
parent
定义了运行L2switch所使用的依赖模块以及版本等,下面的很多工程都会继承于parent。
Packet Handler
用于对进入到controller的packet进行解析并分发到不同的模块进行处理。
Loop Remover
用于删除网络中的环路,类似于STP,但是实际代码看下来只是在mdsal的datastore中存储了
网络拓扑,并没有完成loop的去除,不知道是不是没有开发完。
Arp Handler
用于处理ARP packet。
Address Tracker
用于学习网络中实体的地址(MAC和Ip)
Host Tracker
用于追踪网络中主机的位置。
L2Switch Main
用于根据网络流量在swtich上安装flow。
distribution/karaf
用于构造L2switch所需要的karaf环境。
features
用于部署l2switch到karaf实例中,包含了一个feature的描述符。
artifacts
用于生成上面的各个bundle。
二、整体pom.xml
该pom.xml在l2switch文件夹下,对于该pom.xml文件,比较重要的部分是:
......
<packaging>pom</packaging>
......
<modules>
<module>parent</module>
<module>packethandler</module>
<module>loopremover</module>
<module>arphandler</module>
<module>addresstracker</module>
<module>hosttracker</module>
<module>l2switch-main</module>
<module>distribution/karaf</module>
<module>features</module>
<module>artifacts</module>
</modules>
......
<packaging>pom</packaging>这个父项目不像之前的项目那样创建一个JAR 或者一个WAR,
它仅仅是一个引用其它Maven项目的POM。pom.xml 中下一部分列出了项目的子模块。这些
模块在modules元素中定义,每个modules元素对应了一个目录下的子目录。Maven知道去这
些子目录寻找pom.xml文件,并且,在构建的l2switch的时候,它会将这些子模块包含到要
构建的项目中。
0 0
- opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml
- opendaylight(Li) l2switch 源代码分析(2)--parent
- opendaylight(Li) l2switch 源代码分析(3)--packethandler
- ffdshow 源代码分析1 : 整体结构
- MediaInfo源代码分析 1:整体结构
- LIRe 源代码分析 1:整体结构
- MediaInfo源代码分析 1:整体结构
- Media Player Classic - HC 源代码分析 1:整体结构
- XBMC源代码分析 1:整体结构以及编译方法
- LIRE源代码分析 3:整体结构
- Launcher2分析(一)---整体结构和配置文件AndroidManifest.xml
- Launcher2分析(一)---整体结构和配置文件AndroidManifest.xml
- Launcher2分析(一)---整体结构和配置文件AndroidManifest.xml
- Uboot 源码分析----代码整体结构分析
- Uboot 源码分析----代码整体结构分析
- MINA2 核心源代码分析笔记 - 1. 整体结构与代码分析指引
- AndroidManifest.xml整体结构
- muduo库的源代码分析1--整体架构
- 那年,我在亚马逊被骂成狗
- BZOJ-2038 小Z的袜子(hose) 莫队算法
- package.json详解
- 大端和小端字节区别
- uvaoj11218KTV
- opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml
- Runtime之消息机制
- Android NFC开发(一)——初探NFC,了解当前前沿技术
- Android Volley的网络请求工具
- iOS 进程 多线程
- python爬取百度搜索动态网页
- C++入门篇之值传递,指针传递和引用传递的那些事
- eclipse导出jar时出现Class files on classpath not found or not accessible for ...
- 只要是搜索引擎能回答的就别问别人……