当前位置:网站首页>EasyCwmp源码分析

EasyCwmp源码分析

2022-06-11 18:00:00 陈小帅hh

一、源码架构组成

在这里插入图片描述
EasyCwmp设计包括两个部分:
①EasyCwmp Core:它包括TR069 CWMP引擎,并负责与ACS服务器的通信。使用C语言开发。

②EasyCwmp DataModel:它包含TR-06的DATAModel,并且符合某些DataModel标准,例如TR-098,TR-181,TR-104等。使用shell开发,只支持部分协议模型,在开发和维护过程效率比较低。

二、EasyCwmp源码组成

在这里插入图片描述

三、EasyCwmp文件依赖在这里插入图片描述

四、EasyCwmp执行流程

在这里插入图片描述

详细代码参考easycwmp.c中的main函数。

①获取输入参数
在这里插入图片描述
②建立互斥文件锁,设置互斥文件属性,确认为root登录。
在这里插入图片描述
③内存分配,链表初始化,uloop_init,xml备份初始化。
在这里插入图片描述
④创建子进程、两个pipe管道复制父子进程进行通信,子进程交给/usr/sbin/easycwmp脚本程序接管,准备处理JSON格式参数。
在这里插入图片描述
⑤加载easycwpm配置文件,通过配置文件初始化设备信息(设备类型、设备厂商、设备编号、厂商唯一编号),初始化心跳timer。
在这里插入图片描述

⑥测试通过管道发送命令/usr/sbin/easycwmp 脚本程序并使其退出。
在这里插入图片描述

⑦根据输入参数添加EVENT_BOOT或EVENT_PERIODIC事件到evens列表,设定timer回调处理事件(启动连接事件)。
在这里插入图片描述
⑧netlink_init,http_server_init 本地服务初始化。
在这里插入图片描述
⑨进入uloop_run主循环,处理事件消息。
在这里插入图片描述

五、RPC方法

这里主要介绍的是 CPE 设备端的 RPC 远程调用方法,ACS 服务端所具有的 RPC 方法需要查看对应服务器端的配置。
在 EasyCwmp 源码中已经实现了 TR069 协议中常用 RPC 方法,源码定义的 RPC 方法在 xml.c 文件中。
在这里插入图片描述

原网站

版权声明
本文为[陈小帅hh]所创,转载请带上原文链接,感谢
https://blog.csdn.net/PPPPPPPKD/article/details/124962451