本文主要是介绍opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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的时候,它会将这些子模块包含到要
构建的项目中。
这篇关于opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!