OpenFlow message processing for new loxi

Depends-On: Id69c8597eb4564653c56cdc90f2dcec50afbdd25

Change-Id: Ib14fbadd3debf98ce1d56343179f8e7929f8ade8
diff --git a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
index 406337b..a26e05a 100644
--- a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
+++ b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
@@ -28,8 +28,10 @@
 import org.slf4j.Logger;
 
 import java.util.Collection;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 import static com.google.common.base.Preconditions.checkArgument;
@@ -82,37 +84,36 @@
     public OFMeterMod add() {
         validate();
         OFMeterMod.Builder builder = builderMeterMod();
-        builder.setCommand(OFMeterModCommand.ADD.ordinal());
+        builder.setCommand(OFMeterModCommand.ADD);
         return builder.build();
     }
 
     public OFMeterMod remove() {
         validate();
         OFMeterMod.Builder builder = builderMeterMod();
-        builder.setCommand(OFMeterModCommand.DELETE.ordinal());
+        builder.setCommand(OFMeterModCommand.DELETE);
         return builder.build();
     }
 
     public OFMeterMod modify() {
         validate();
         OFMeterMod.Builder builder = builderMeterMod();
-        builder.setCommand(OFMeterModCommand.MODIFY.ordinal());
+        builder.setCommand(OFMeterModCommand.MODIFY);
         return builder.build();
     }
 
     private OFMeterMod.Builder builderMeterMod() {
         OFMeterMod.Builder builder = factory.buildMeterMod();
-        int flags = 0;
+        Set<OFMeterFlags> flags = EnumSet.noneOf(OFMeterFlags.class);
         if (burst) {
-            // covering loxi short comings.
-            flags |= 1 << OFMeterFlags.BURST.ordinal();
+            flags.add(OFMeterFlags.BURST);
         }
         switch (unit) {
             case PKTS_PER_SEC:
-                flags |= 1 << OFMeterFlags.PKTPS.ordinal();
+                flags.add(OFMeterFlags.PKTPS);
                 break;
             case KB_PER_SEC:
-                flags |= 1 << OFMeterFlags.KBPS.ordinal();
+                flags.add(OFMeterFlags.KBPS);
                 break;
             default:
                 log.warn("Unknown unit type {}", unit);