设备开放可编程(通过编程来管理设备)
设备开放可编程定位于指导工程师根据设备开放能力进行编程从而实现网络自动化。
华为网络设备的开放能力
如下图所示:
最后的「上传.py文件」,是指在网络设备中执行 Python 代码的能力;
NCE 北向开放(通过编程来管理控制器)
控制器开放可编程定位于指导工程师根据SDN控制器开放能力进行编程从而实现网络自动化。
华为 iMaster NCE 提供北向开放 RESTful API
华为 iMaster NCE 业务开放可编程
iMaster NCE 业务开放可编程是 iMaster NCE 产品的一个子系统,提供端到端的开放可编程能力,包括网元层功能和网络业务功能的开放。
网元驱动包
网元驱动包(Specific NE Driver,SND),以设备 YANG 模型抽象设备能力。用户根据设备 YANG 文件和少量编写的 Python 代码生成网元驱动包。将此驱动包上传 iMaster NCE 后即可实现设备管理和设备业务发放。
SND 的类型包括:
1)NETCONF SND:提供 YANG 到 NETCONF 转换能力;
2)CLI SND:提供 YANG 到 CLI 的转换能力;
3)Customized SND:提供 YANG 到其它协议的转换能力,例如 RESTCONF 等等;
业务包
业务包(Specific Service Plugin,SSP),支持用户自定义网络业务(APP),例如快速开通L3 VPN业务。此类型业务或应用涉及多设备、多协议配合,以业务包形式呈现。业务包的编写需要编写业务YANG文件、业务映射的Python脚本(业务回调逻辑)、jinja2模板。
基本原理
整体的工作其基本原理是(从北到南):
1)业务模型自动生成北向接口或者UI,被外部调用发起业务请求。
2)业务请求被用户编写的业务逻辑处理。处理包括两个部分,Python代码处理和jinja模板处理。
3)Python代码处理实现与厂家无关的业务逻辑。
4)模板处理实现与厂家相关的逻辑。模板就是给设备模型下发的数据,不同厂家有不同的模板。至此实现了自定义的业务模型向设备模型的转换。
5)最后由 SND 处理把设备模型转换为协议报文下发到设备,例如通过 NETCONF 下发到设备。
应用场景
工程师通过编写 SND 和 SSP 实现:
1)用户自定义网络业务
2)异厂家的设备管理
3)基于Web的业务管理
4)自动生成北向 RESTful API 开放