打开日光 plugin/service/module/bundle
openDayLight plugin/service/module/bundle
我对 openDayLight 控制器很感兴趣,我正在阅读很多关于它的文章,但我有一个问题。在 SAL 中,我们有像 OpenFlow 这样的插件,但我可以定义我自己的插件,如 f.e。 ping:https://wiki.opendaylight.org/view/Ping - 为此,我需要像文章中所述那样创建:4 个带有 OSGi 框架的捆绑包,这 4 个捆绑包称为模块,对吗?但是插件 == 服务?和 f.e。 ping 插件在 f.e 旁边的 SAL 中工作。开放流?我不确定我是否理解正确什么是插件、服务、模块、捆绑包。
创建插件时,需要判断是北向插件还是南向插件。
Southbound 插件直接处理网络设备。这通常是通过一些配置协议来完成的,比如 OpenFlow、SMTP 和 NETCONF。
Northbound 插件从应用程序接收数据,处理它们,并且可能会(您可能不会)使用 Southbound 插件来配置网络设备。例如,Ping 插件是一个 Northbound 插件,就像您可能会实现的大多数插件一样。
但是,您的插件可能会实现设备通信部分,而无需另一个特定的南向插件。服务是yout插件的实现部分,它从北向API接收数据,对其进行处理,并在必要时通过另一个南向API或通过一些自己的方式发送到网络设备。
Nouthbound API 是基于 YANG 模型自动创建的,这就是 ODL SAL 是模型驱动 (MDSAL) 的原因。在捆绑包中创建模型后,您可以在另一个捆绑包中实现该服务。所有这些捆绑在一起就是您的插件或模块。
我对 openDayLight 控制器很感兴趣,我正在阅读很多关于它的文章,但我有一个问题。在 SAL 中,我们有像 OpenFlow 这样的插件,但我可以定义我自己的插件,如 f.e。 ping:https://wiki.opendaylight.org/view/Ping - 为此,我需要像文章中所述那样创建:4 个带有 OSGi 框架的捆绑包,这 4 个捆绑包称为模块,对吗?但是插件 == 服务?和 f.e。 ping 插件在 f.e 旁边的 SAL 中工作。开放流?我不确定我是否理解正确什么是插件、服务、模块、捆绑包。
创建插件时,需要判断是北向插件还是南向插件。
Southbound 插件直接处理网络设备。这通常是通过一些配置协议来完成的,比如 OpenFlow、SMTP 和 NETCONF。
Northbound 插件从应用程序接收数据,处理它们,并且可能会(您可能不会)使用 Southbound 插件来配置网络设备。例如,Ping 插件是一个 Northbound 插件,就像您可能会实现的大多数插件一样。
但是,您的插件可能会实现设备通信部分,而无需另一个特定的南向插件。服务是yout插件的实现部分,它从北向API接收数据,对其进行处理,并在必要时通过另一个南向API或通过一些自己的方式发送到网络设备。
Nouthbound API 是基于 YANG 模型自动创建的,这就是 ODL SAL 是模型驱动 (MDSAL) 的原因。在捆绑包中创建模型后,您可以在另一个捆绑包中实现该服务。所有这些捆绑在一起就是您的插件或模块。