OpenFlow message processing for new loxi

Depends-On: Id69c8597eb4564653c56cdc90f2dcec50afbdd25

Change-Id: Ib14fbadd3debf98ce1d56343179f8e7929f8ade8
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index f9858a4..5e0fae4 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -110,6 +110,7 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Dictionary;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -364,12 +365,14 @@
         OFPortMod.Builder pmb = sw.factory().buildPortMod();
         OFPort port = OFPort.of((int) portNumber.toLong());
         pmb.setPortNo(port);
-        if (enable) {
-            pmb.setConfig(0x0); // port_down bit 0
-        } else {
-            pmb.setConfig(0x1); // port_down bit 1
+        Set<OFPortConfig> portConfig = EnumSet.noneOf(OFPortConfig.class);
+        if (!enable) {
+            portConfig.add(OFPortConfig.PORT_DOWN);
         }
-        pmb.setMask(0x1);
+        pmb.setConfig(portConfig);
+        Set<OFPortConfig> portMask = EnumSet.noneOf(OFPortConfig.class);
+        portMask.add(OFPortConfig.PORT_DOWN);
+        pmb.setMask(portMask);
         pmb.setAdvertise(0x0);
         for (OFPortDesc pd : sw.getPorts()) {
             if (pd.getPortNo().equals(port)) {