NETCONF event — 订阅模块上报事件
1. 背景
配置该功能后,所订阅模块发生用户所订阅事件时,将主动上报NETCONF。
2. 组成部分
-
Xsd文件:订阅时校检下发stream和event是否正确,xsd中普通列的作用暂时未知。
-
Tree文件:包含了需要上报的信息的xml结构。还包含了订阅时的回调函数。
-
前台
- xml插件初始化/去初始化时初始化/去初始化事件通知用到的资源
- 与被监控进程建立连接(进程不存在拉起进程)/断开连接、连接维护(异常情况处理)
- 会话维护(多个会话订阅事件的维护)
- 下发/清除订阅(准备/清理后台事件通知用到的资源)
- 响应EPOLLIN事件,接收守护进程发送的变化数据,上报报文给会话
- 后台
维护连接
- 订阅去订阅处理
- 数据变化处理发送
- 发送数据上下文维护(发送失败的重传)
3. 前后台通信图
4. 异常情况
- 守护进程崩溃
关闭原先socket后,sleep 3秒后尝试重连一次,如果还是不能连接就只能等下一次下发订阅的时候再尝试。
由于插件保存了订阅信息,守护进程崩溃后,插件可以通过保存的信息恢复订阅条件 - Xmlcfgd崩溃
当NETCONF进程异常重启时,之前的连接无效,模块插件无需额外处理。
5. 注意事项
soapui不支持订阅事件下发。