diff --git a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkNetconfUtility.java b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkNetconfUtility.java
index c7053da..966821e 100644
--- a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkNetconfUtility.java
+++ b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkNetconfUtility.java
@@ -36,7 +36,8 @@
 
     // public used nodes
     public static final String CFG_MODE_MERGE = "merge";
-    public static final String CFG_MODE_REMOVE = "remove";
+    public static final String CFG_MODE_NONE = "none";
+    public static final String CFG_OPT_DELETE = "nc:operation=\"delete\"";
     public static final String KEY_XMLNS = "xmlns=\"http://com/att/device\"";
     public static final String KEY_DATA = "data";
     public static final String KEY_OPENOPTICALDEV = "open-optical-device";
diff --git a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalFlowRuleProgrammable.java b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalFlowRuleProgrammable.java
index a70b612..cc5195b 100644
--- a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalFlowRuleProgrammable.java
+++ b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalFlowRuleProgrammable.java
@@ -131,7 +131,7 @@
         // Build xml
         String connID = Integer.toString(crossConnect.getChannel());
         String cfg = new StringBuilder(xmlOpen(KEY_OPENOPTICALDEV_XMLNS))
-                .append(xmlOpen(KEY_CONNS))
+                .append(xmlOpen(String.format("%s %s", KEY_CONNS, CFG_OPT_DELETE)))
                 .append(xml(KEY_CONNID, connID))
                 .append(xmlOpen(KEY_SRC))
                 .append(xml(KEY_PORTID, crossConnect.getInPort().name()))
@@ -140,6 +140,6 @@
                 .append(xmlClose(KEY_CONNS))
                 .append(xmlClose(KEY_OPENOPTICALDEV))
                 .toString();
-        return netconfEditConfig(handler(), CFG_MODE_REMOVE, cfg);
+        return netconfEditConfig(handler(), CFG_MODE_NONE, cfg);
     }
 }
diff --git a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalPowerConfig.java b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalPowerConfig.java
index ced0b08..110096c 100644
--- a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalPowerConfig.java
+++ b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalPowerConfig.java
@@ -64,6 +64,7 @@
     public static final String KEY_PORTPWRCAPMAXTX = "port-power-capability-max-tx";
     public static final String KEY_PORTS_PORT = String.format("%s.%s", KEY_DATA_PORTS, KEY_PORT);
     public static final String KEY_PORTS_PORT_PROPERTY = String.format("%s.%s", KEY_PORTS_PORT, KEY_PORTPROPERTY);
+    public static final String KEY_OCMS = "ocms";
     // log
     private static final Logger log = getLogger(OplinkOpticalPowerConfig.class);
 
@@ -110,15 +111,13 @@
 
     private String getChannelPowerFilter(PortNumber port, OchSignal channel) {
         return new StringBuilder(xmlOpen(KEY_OPENOPTICALDEV_XMLNS))
-                .append(xmlOpen(KEY_PORTS))
+                .append(xmlOpen(KEY_OCMS))
                 .append(xml(KEY_PORTID, Long.toString(port.toLong())))
-                .append(xmlOpen(KEY_PORT))
                 .append(xmlOpen(KEY_OCMSTATS))
                 .append(xml(KEY_CHNUM, Integer.toString(channel.spacingMultiplier())))
                 .append(xmlEmpty(KEY_CHSTATS))
                 .append(xmlClose(KEY_OCMSTATS))
-                .append(xmlClose(KEY_PORT))
-                .append(xmlClose(KEY_PORTS))
+                .append(xmlClose(KEY_OCMS))
                 .append(xmlClose(KEY_OPENOPTICALDEV))
                 .toString();
     }
diff --git a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalUtility.java b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalUtility.java
index 37f1d77..5a993d9 100644
--- a/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalUtility.java
+++ b/drivers/oplink/src/main/java/org/onosproject/drivers/oplink/OplinkOpticalUtility.java
@@ -177,6 +177,7 @@
                 .withSelector(selector)
                 .withTreatment(treatment)
                 .withPriority(DEFAULT_PRIORITY)
+                .makePermanent()
                 .fromApp(behaviour.handler().get(CoreService.class).getAppId(DEFAULT_APP))
                 .build();
 
