cwmpClient实现框架简要总结

    内部实现:
        init_Parameter通过eCWMP_tINITOBJ构建TR98对象树
        cwmp_init_userdata初始化全局参数user_data(含notify链表初始化)
        cwmp_webserver_init初始化serverSoap(含服务器端口的初始化,用于反向连接)
        子线程cwmp_webclient正向连接发起
            主体cwmp_process 监听msgqueue消息队列并处理对应消息,其中最主要的2点: 
                对于event事件:使用SIGALARM信号(间隔1s)触发MSG_TIMER消息检查全局是否存在event事件,有则发起上报
                对于正向回报:在发起正向连接后,使用IO异步(SIGIO + FIOASYNC ioctl)触发MSG_RECV消息实现报文的接收
        主线程cwmp_webserver_loop反向连接监听
            反向连接通过fget回调函数(cwmp_web_get)设置event事件(6 conn req),上面已经描述cwmp_process逻辑会检查event


    其他重要点:
        关于debug:需要设置CWMP_FLAG bit 0x1,未设置时将标准输入输出直接重定向到/dev/null,需要重启进程生效
        关于反向链接:需要设置CWMP_FLAG2 bit 0x1
        支持stun服务器(stun服务器的好处:udp协议轻量级,实现nat穿透)
        支持TR181/tr098(181支撑程度有待有待进一步了解)
        notify通知实现:
            对于设置notify的属性单独保存
            被动通知在于每个inform报文都会检查属性关联的value值是否改变做对应处理
            主动通知需要外部触发MSG_ACTIVE_NOTIFY消息,内部再检查active属性的value是否改变做对应处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值