基于OpenDaylight的SDN应用开发有哪几种方式


如果从应用开发的角度来讲,我们开发无非是调用接口。在OpenDaylight中南北向有两个不同level的api,即南向api和北向api,如果是基于南向api而言,对于SDN来说就等同于直接重新开发一个controller了。一般会考虑两个大方向,基于ODL北向接口进行开发和对OpenDaylight内部模块进行开发。
请输入图片名称
从难易程度来讲,简单的肯定是基于北向接口进行开发,常见的接口是REST api。OpenDaylight提供了很多REST api,从基本的网络状态到各种高级模块的功能都有。你可以选择性去安装你所需要的模块来提供更多的北向api。对于版本的选择,如果只是单纯调用api的话,氢、氦、锂三个版本都可以,重要的是稳定。而且往往高版本会过于庞大,当然功能也会更强大些。如果感觉功能不够用或者接口调用性能不好可以选择对OpenDaylight内部模块进行开发,现在ODL内部模块是OSGi (也就是OSGi让OpenDayight可以像插件一样添加模块)+ MD-SAL的开发形式。在前两个版本中OpenDaylight的内部有AD-SAL和MD-SAL两种模块编写方式,不过在锂版本中已经基本向MD-SAL的方式靠拢,并且对之前AD-SAL的模块进行的重写。MD-SAL的开发是基于YANG的,对于这样的编程,很多时候并不一定是编程实现本身的价值,更主要的是对于网络问题的语义理解和模型定义。对于通用性很强的问题都会有yang model 的rfc定义,一般的开发人员是不太可能去做这样的工作的。当然,去做ODL内部的编程也是很有意义的,可以加强的ODL本身的理解。对于一些特殊的网络设备和环境以及业务逻辑,自己去定义一个yang model,然后进行开发也是可以的。
回答者@胖欧巴
已邀请:

tomhanks007

赞同来自:


说的有道理,不错!

要回复问题请先登录注册