opendaylight(Li) l2switch 源代码分析(1)--代码的整体结构和整体pom.xml

2024-04-14 21:38

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904093

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d