From a2ace4a3834bccde3e5892c84f0e11ae470d1b1f Mon Sep 17 00:00:00 2001 From: Prasanna Huddar Date: Sun, 22 Dec 2013 21:24:21 +0530 Subject: [PATCH] Added notification for Flow add/delete/update. 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 Change-Id: I76406f995b2bdd0e0c3c6ffea98bd28c8fe90cec --- .../controller/frm/flow/FlowTransaction.xtend | 4 ++++ .../model-flow-service/src/main/yang/flow-service.yang | 9 +++++++++ .../model-flow-service/src/main/yang/group-service.yang | 9 +++++++++ .../model-flow-service/src/main/yang/meter-service.yang | 9 +++++++++ 4 files changed, 31 insertions(+) diff --git a/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/flow/FlowTransaction.xtend b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/flow/FlowTransaction.xtend index 5203d3c1a8..6fcadea8bf 100644 --- a/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/flow/FlowTransaction.xtend +++ b/opendaylight/md-sal/forwardingrules-manager/src/main/java/org/opendaylight/controller/frm/flow/FlowTransaction.xtend @@ -15,6 +15,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N 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 { @@ -32,6 +33,7 @@ class FlowTransaction extends AbstractTransaction { 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()); @@ -45,6 +47,7 @@ class FlowTransaction extends AbstractTransaction { 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); @@ -61,6 +64,7 @@ class FlowTransaction extends AbstractTransaction { 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()); } diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-service.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-service.yang index 895e54e7d5..d6a31c30de 100644 --- a/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-service.yang +++ b/opendaylight/md-sal/model/model-flow-service/src/main/yang/flow-service.yang @@ -89,17 +89,26 @@ module sal-flow { } notification flow-added { + leaf flow-ref { + type types:flow-ref; + } 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 { + leaf flow-ref { + type types:flow-ref; + } uses node-flow; uses tr:transaction-aware; } diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/group-service.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/group-service.yang index 1626610059..6cc1537ebc 100644 --- a/opendaylight/md-sal/model/model-flow-service/src/main/yang/group-service.yang +++ b/opendaylight/md-sal/model/model-flow-service/src/main/yang/group-service.yang @@ -69,16 +69,25 @@ module sal-group { } notification group-added { + leaf group-ref { + type group-type:group-ref; + } 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 { + leaf group-ref { + type group-type:group-ref; + } uses node-group; uses tr:transaction-aware; } diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/meter-service.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/meter-service.yang index af4975eda4..6205fed529 100644 --- a/opendaylight/md-sal/model/model-flow-service/src/main/yang/meter-service.yang +++ b/opendaylight/md-sal/model/model-flow-service/src/main/yang/meter-service.yang @@ -71,16 +71,25 @@ module sal-meter { } notification meter-added { + leaf meter-ref { + type meter-type:meter-ref; + } 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 { + leaf meter-ref { + type meter-type:meter-ref; + } uses node-meter; uses tr:transaction-aware; } -- 2.36.6