2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.frm;
11 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
13 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
16 * forwardingrules-manager
17 * org.opendaylight.controller.frm
19 * FlowNodeReconciliation
20 * It represent Reconciliation functionality for every new device.
21 * So we have to read all possible pre-configured Flows, Meters and Groups from
22 * Config/DS and add all to new device.
23 * New device is represented by new {@link org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode}
24 * in Operational/DS. So we have to add listener for Wildcarded path in base data change scope.
26 * WildCarded InstanceIdentifier:
29 * InstanceIdentifier.create(Nodes.class).child(Node.class).augmentation(FlowCapableNode.class)
33 * @author <a href="mailto:vdemcak@cisco.com">Vaclav Demcak</a>
35 * Created: Aug 26, 2014
37 public interface FlowNodeReconciliation extends DataChangeListener, AutoCloseable {
40 * Method contains Node registration to {@link ForwardingRulesManager} functionality
41 * as a prevention to use a validation check to the Operational/DS for identify
42 * pre-configure transaction and serious device commit in every transaction.
44 * Second part of functionality is own reconciliation pre-configure
45 * Flows, Meters and Groups.
47 * @param connectedNode - {@link org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier} to new Node
49 void flowNodeConnected(InstanceIdentifier<FlowCapableNode> connectedNode);
52 * Method contains functionality for registered Node {@FlowCapableNode} removing
53 * from {@Link ForwardingRulesManager}
55 * @param disconnectedNode - {@link org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier} to removed Node
57 void flowNodeDisconnected(InstanceIdentifier<FlowCapableNode> disconnectedNode);