- ODL技术内幕:架构设计与实现原理
- 耿兴元
- 630字
- 2025-04-18 04:09:23
1.1.3 ODL的子项目及分类
MD-SAL架构采用YANG语言作为数据及接口的建模语言,通过YangTools工具提供了编译期数据模型与接口的解析和代码的自动生成,采用Binding Broker、Binding-Inde-pendent Broker两套接口实现了运行期的数据模型与接口的适配转换,简化并规范了南向插件与业务应用间调用接口的定义,为南向插件和业务应用的开发者提供了统一的开发模式。MD-SAL框架的主体代码原本在controller和yangtools两个项目中,特别的是,controller项目最初不仅包含SAL框架,还包括配置子系统、netconf/restconf、版本公共配置及版本打包、项目模板等功能。随着ODL项目的发展演进,这些功能有的单独成立子项目(mdsal、odlparent、netconf/restconf、archetypes),有的被废弃(配置子系统、AD-SAL),当前仍保留在controller项目中的功能代码主要是ODL的分布式集群功能(分布式datastore和remoterpc)和blueprint扩展。以上controller、mdsal、odlparent、netconf/restconf等子项目加上yangtools项目基本上就构成了ODL的核心框架,再加上ODL的鉴权框架AAA项目,这些子项目就是ODL的核心项目。除了决定ODL基础架构的这些核心项目,ODL的项目中还包括协议类项目、业务应用类项目及支持类项目。协议类项目包括多种南向协议插件项目如OpenFlow、OVSDB、NETCONF、BGP、BMP、PCEP、LISP、SNMP、P4、SXP、OCP、P4、Telemetry等,还包括北向的RESTCONF、NEMO Intent等。业务应用类项目包括NetVirt、COE、FaaS、BIER APP、DetNet、SFC、Transport PCE、IOT等,支持类项目包括Documentation、Inte-gration、RelEng等。图1-1显示了ODL社区现在的活跃的项目及项目间的依赖关系。

图1-1 ODL子项目及其依赖关系图
注意
因为ODL社区中不断接受申请成立新的子项目,原来的子项目也会根据情况进行调整,甚至被废弃而归档,因此图1-1中的项目不一定与最新的ODL子项目一一对应,但从几个核心项目来说,图1-1还算准确。