odl topology discovery中节点、链路删除问题
我在sdnlab上看到两篇文章,一个是讲的odl LLDP源码解析(https://www.sdnlab.com/17677.html),另一个是odl 拓扑展现的源码解析(https://www.sdnlab.com/18534.html)。
按我的理解odl是通过lldp来进行链路发现,然后提取出信息存入datastore,进而再在web页面上显示拓扑。这两篇文章中均有提到端口的add、update和remove。但是第一篇文章中是调用openflowplugin/applications/lldp-speaker目录下的processAddedConnector()、processupdatedConnector()、processRemoveConnector()函数来新增、更新或者删除端口。
而第二篇文章中是调用openflowplugin/applications/topology-manager目录下的processAddedTerminationPoints
processUpdatedTerminationPoints
processRemovedTerminationPoints
processAddedNode
processRemovedNode
函数来实现datastore中节点的操作。
那么这两类端口操作方法有什么区别呢?如果一个拓扑中,有一个设备down了,或者设备中某个端口不能正常转发数据,除了故障,那么odl的拓扑发现应该是可以将这个节点从datastore中删除的,那这个删除操作是执行的第一个的processRemoveConnector()还是第二个的processRemovedNode、processRemovedTerminationPoints呢?
2 个回复
柿子 - Zebra Decoder 姿势社区欢乐多
赞同来自: 趣多多~
没时间去看源码, 我的想法是两类方法操作的datastore是不同的, 前者应该是对opendaylight-inventory的数据操作,后者是对network-topology内flow:1的数据操作.
同理, 对于第二个问题, 这两个删除操作都是会做的, 目标数据树不同.
想更多了解建议直接去看源码.
Eric_Hu - SDNer
赞同来自: 趣多多~
1.第一种处理方法processAddedConnector(),在监听inventory node connector有更新时,一旦有live 端口增加,则通知LLDP Speaker向这个live端口发送LLDP消息,这里并不是用来处理拓扑用,只是监听新的live端口到来,然后做一些处理;
2. 自己看吧,也是监听inventory的变化,对topology做处理;