整体框架结构:

SAL 是架构的中心,围绕中心,南向通过兼容不同的协议来对不同的网元进行控制,北向提供统一的接口,提供信息状态和逻辑控制。OSGI框架提供同一进程空间的应用,RESTFUL 应用提供更灵活的数据显现和逻辑控制。
基本的网元信息,都会被TOPOLOGY Manager 管理,其他的 HOST TRACK ,ARP HANDLER,DEVICE Manager 都可以帮助 TOPOLOGY Manager 收集信息。
SAL:

OSGi 框架允许动态的整合变化的南向插件,SAL 向上层提供服务,如 为 Topology Manager 提供 Device Discovery 服务来构建拓扑和设备管理等。服务都是根据插件提供的功能构建的,基于服务的要求SAL会映射适当的插件,适当的协议到具体的设备中。每个插件和SAL都是松耦合的。
Topology Service 是一系列的服务,传递 节点变化,链路变化等拓扑信息。
Flow programing Service 提供对不同点的逻辑编程能力。
一些统计信息的服务。
Data Packet Service 在应用和底层之间传递数据。举例如下:
Data Packet Service:
ARP Handler 应用中使用该服务的处理流程如下:

IListenDataPacket : 被上层的 希望得到数据包的 App实现。
IDatePacketService: 被 SAL 实现,提供向下层收发数据的具体服务,它会注册到OSGI的服务框架中,所以我们你能看到它!!
IPluginOutDataPacketService: 被 SAL 暴露出来,有插件想向上传递数据时,就通过该接口。
IPluginInDataPacketService: 被具体的插件暴露出来,SAL的数据通过该接口传递给他。
当 openflow 的插件收到Arp Packet 需要传递给 Arp Handler 的时候,openflow 插件 调用
IPluginOutDataPacketService 将数据传递给 SAL, Arp Handler 肯定实现了IListenDataPacket,所以SAL会将数据传递给ARP Handler ,这样 Arp Handler 就可以处理数据包了。
ARP Handler 组织好数据后,可以调用 IDatePacketService 发送数据包,SAL 通过 IPluginInDataPacketService 再发送到 openflow 插件。
进一步的抽象, SAL就是一个 网络模型,掌握了所有的基本信息,同时提供给应用使用!!