Flow ref added to all Flow notification RPC messages.
Flow ref needed to for NSF to co-relate XID with the operation.
FlowTransaction.xtend modified to put flow reference.
Signed-off-by: Prasanna Huddar <prasanna.huddar@ericsson.com>
Change-Id: I76406f995b2bdd0e0c3c6ffea98bd28c8fe90cec
import org.opendaylight.yangtools.yang.binding.DataObject
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService
import org.opendaylight.yangtools.yang.binding.DataObject
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowRef
class FlowTransaction extends AbstractTransaction {
class FlowTransaction extends AbstractTransaction {
val tableInstanceId = instanceId.firstIdentifierOf(Table);
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new RemoveFlowInputBuilder(flow);
val tableInstanceId = instanceId.firstIdentifierOf(Table);
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new RemoveFlowInputBuilder(flow);
+ builder.setFlowRef(new FlowRef(instanceId));
builder.setNode(new NodeRef(nodeInstanceId));
builder.setFlowTable(new FlowTableRef(tableInstanceId));
_salFlowService.removeFlow(builder.build());
builder.setNode(new NodeRef(nodeInstanceId));
builder.setFlowTable(new FlowTableRef(tableInstanceId));
_salFlowService.removeFlow(builder.build());
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new UpdateFlowInputBuilder();
builder.setNode(new NodeRef(nodeInstanceId));
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new UpdateFlowInputBuilder();
builder.setNode(new NodeRef(nodeInstanceId));
+ builder.setFlowRef(new FlowRef(instanceId));
val ufb = new UpdatedFlowBuilder(updatedFlow);
builder.setUpdatedFlow((ufb.build()));
val ofb = new OriginalFlowBuilder(originalFlow);
val ufb = new UpdatedFlowBuilder(updatedFlow);
builder.setUpdatedFlow((ufb.build()));
val ofb = new OriginalFlowBuilder(originalFlow);
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new AddFlowInputBuilder(flow);
builder.setNode(new NodeRef(nodeInstanceId));
val nodeInstanceId = instanceId.firstIdentifierOf(Node);
val builder = new AddFlowInputBuilder(flow);
builder.setNode(new NodeRef(nodeInstanceId));
+ builder.setFlowRef(new FlowRef(instanceId));
builder.setFlowTable(new FlowTableRef(tableInstanceId));
_salFlowService.addFlow(builder.build());
}
builder.setFlowTable(new FlowTableRef(tableInstanceId));
_salFlowService.addFlow(builder.build());
}
}
notification flow-added {
}
notification flow-added {
+ leaf flow-ref {
+ type types:flow-ref;
+ }
uses node-flow;
uses tr:transaction-aware;
}
notification flow-updated {
uses node-flow;
uses tr:transaction-aware;
}
notification flow-updated {
+ leaf flow-ref {
+ type types:flow-ref;
+ }
uses node-flow;
uses tr:transaction-aware;
}
notification flow-removed {
uses node-flow;
uses tr:transaction-aware;
}
notification flow-removed {
+ leaf flow-ref {
+ type types:flow-ref;
+ }
uses node-flow;
uses tr:transaction-aware;
}
uses node-flow;
uses tr:transaction-aware;
}
}
notification group-added {
}
notification group-added {
+ leaf group-ref {
+ type group-type:group-ref;
+ }
uses node-group;
uses tr:transaction-aware;
}
notification group-updated {
uses node-group;
uses tr:transaction-aware;
}
notification group-updated {
+ leaf group-ref {
+ type group-type:group-ref;
+ }
uses node-group;
uses tr:transaction-aware;
}
notification group-removed {
uses node-group;
uses tr:transaction-aware;
}
notification group-removed {
+ leaf group-ref {
+ type group-type:group-ref;
+ }
uses node-group;
uses tr:transaction-aware;
}
uses node-group;
uses tr:transaction-aware;
}
}
notification meter-added {
}
notification meter-added {
+ leaf meter-ref {
+ type meter-type:meter-ref;
+ }
uses node-meter;
uses tr:transaction-aware;
}
notification meter-updated {
uses node-meter;
uses tr:transaction-aware;
}
notification meter-updated {
+ leaf meter-ref {
+ type meter-type:meter-ref;
+ }
uses node-meter;
uses tr:transaction-aware;
}
notification meter-removed {
uses node-meter;
uses tr:transaction-aware;
}
notification meter-removed {
+ leaf meter-ref {
+ type meter-type:meter-ref;
+ }
uses node-meter;
uses tr:transaction-aware;
}
uses node-meter;
uses tr:transaction-aware;
}