Update netconfig xml for Oplink device

Change-Id: Idaab45c053bd65e37e2bc4065a617af4ae7510fe
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();