Multiple meter support added and meter action added for OF1.5
MeterFeaturesFlag added for OF1.5
Change-Id: I84d2785f37ea51b08244de9c54effe5224af9531
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer15.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer15.java
index 7ba893a..7f5a099 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer15.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer15.java
@@ -172,9 +172,11 @@
List<OFAction> actions = new LinkedList<>();
//Meter action handling
- if (null != treatment.metered() && immediateActions) {
- OFAction meterAction = buildMultipleMeterAction(treatment.metered());
- actions.add(meterAction);
+ if (null != treatment.meters() && immediateActions) {
+ treatment.meters().forEach(meterInstruction -> {
+ OFAction meterAction = buildMeterAction(meterInstruction);
+ actions.add(meterAction);
+ });
}
for (Instruction i : treatments) {
@@ -287,7 +289,7 @@
* @param meterInstruction meter instruction
* @return meter action
*/
- protected OFAction buildMultipleMeterAction(Instructions.MeterInstruction meterInstruction) {
+ protected OFAction buildMeterAction(Instructions.MeterInstruction meterInstruction) {
OFActionMeter.Builder meterBuilder = factory().actions().buildMeter()
.setMeterId(meterInstruction.meterId().id());
return meterBuilder.build();