本章介绍easycwmp的开发和使用方法;
CWMP 是由数字用户线路 DSL——Digital Subscriber’s Line 论坛(之后更名为 broadband-forum)发起开发的技术规范之一,编号为 TR-069,所以又被称为 TR-069 协议。
CWMP 的全称为: CPE 广域网管理协议( CPE WAN Management Protocol),这个协议主要用于网管中心远程管理配置数量较大的网络设备。目前主要应用在企业级路由器、一体化皮基站等网络设备的管理,所以 CWMP 是一个功能强大的用于数据中心、网管中心管理它所属的所有网络设备的网管协议。
1. 主要功能包括:
- 1.1 提供数据参数配置
- 1.2 文件管理
- 1.3 状态和性能监控
- 1.4 告警上报
被管理设备( CPE)可以主动向 ACS 服务器上传设备中的告警信息;
1.源码架构
下面是easycwmp的代码架构,详细内容可以参考官网,easycwmp有两个版本–全开源版本/高级解决方案版本,我使用的是开源版本;

EasyCwmp 设计包括 2 个部分:
- EasyCwmp Core:它包括 TR069 CWMP 引擎,并负责与 ACS 服务器的通信。使用 C 语言开发。
- EasyCwmp DataModel:它包含 TR-06 的 DATAModel,并且符合某些 DataModel 标准,例如TR-098, TR-181, TR-104 等。使用shell 脚本开发。
2.文件结构

可以参考官网教程
EasyCwmp 主要在 OpenWRT 上测试开发,同时也支持其他 linux 平台开发;
下载 easycwmp-openwrt- {x}.{y}.{z}.tar.gz,然后将其复制到您的/path/to/openwrt/package/

编译

编译打包

详细代码参考 easycwmp.c 中 main 函数
- 获取输入参数。
- 建立互斥文件锁,设置互斥文件属性,确认为root登录。
- 内存分配,链表初始化, uloop_init, xml备份初始化。
- 创建子进程、两个pipe管道负责父子进程进行通信,子进程交给/usr/sbin/easycwmp
脚本程序接管,准备处理JSON格式参数。 - 加载easycwpm配置文件,通过配置文件初始化设备信息(设备类型、设备厂商、设备编号、厂商唯一编号),初始化心跳timer。
- 测试通过管道发送命令/usr/sbin/easycwmp 脚本程序并使其退出。
- 根据输入参数添加EVENT_BOOT或EVENT_PERIODIC事件到evens列表,设定timer回调处理事件(启动连接 事件)。
1.List item netlink_init, http_server_init 本地服务初始化
2.进入uloop_run主循环,处理事件消息。
进入参数进入命令行模式,源码中可以看到主程序和shell交互,数据模型部分都是在shell部分完成的,通讯核心组件使用C完成的,进入命令行模式后
通过上面的设置后,我们可以使用
查看设置后的结果
easycwmp主要是理解shell交互流程,在原有基础之上对业务逻辑进行修改使用;
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2652.html