Opendaylight openflow插件:交换机上有多个通知

时间:2017-09-07 17:43:14

标签: openflow opendaylight

我从openflow示例(学习开关)复制了一些代码,以便在交换机连接时收到通知,但现在,我收到了很多通知。这是我注册监听器的代码:

    WakeupOnNode wakeupListener = new WakeupOnNode(s);


    final InstanceIdentifier<Table> instanceIdentifier = InstanceIdentifier.builder(Nodes.class).child(Node.class).
        augmentation(FlowCapableNode.class).child(Table.class).build();


    final DataTreeIdentifier<Table> dataTreeIdentifier = 
            new DataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, instanceIdentifier);

    this.dataTreeChangeListenerRegistration = this.dataBroker.registerDataTreeChangeListener(dataTreeIdentifier, wakeupListener);

我在侦听器中看到多个通知。不知道为什么会这样。也许我需要听一些其他标识符(?)

提前感谢您的帮助。

朗高

1 个答案:

答案 0 :(得分:0)

您正在侦听OpenFlow表更新,每次openflow事件影响交换机上的表时,都会通知您。所以你没有听到正确的课程。

如果您在InstanceIdentifier.builder(Nodes.class).child(Node.class)停留,则每次更新,添加或删除交换机时都会收到通知。这听起来像是您正在寻找的通知。就个人而言,这是我用来监听拓扑上的新节点的类。

但请注意,您仍会收到很多通知。

由于此通知(Node.class)更通用,您可能不得不忽略大量“更新”通知;这是正常的,因为这将包括您当前正在收听的类中的所有“更新”通知(表包含在节点中)。