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的时候,它会将这些子模块包含到要
构建的项目中。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值