[ONOS-4687] GoldenEye - Label map download issues.

Change-Id: I5b56ccc6b8bad3c585f4d33ddd6d9094751c8797
diff --git a/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java b/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
index b005132..6f0f10a 100644
--- a/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
+++ b/providers/bgpcep/flow/src/main/java/org/onosproject/provider/bgpcep/flow/impl/BgpcepFlowRuleProvider.java
@@ -15,6 +15,9 @@
  */
 package org.onosproject.provider.bgpcep.flow.impl;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -28,7 +31,6 @@
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MplsLabel;
 import org.onosproject.bgp.controller.BgpController;
-import org.onosproject.cfg.ComponentConfigService;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.resource.label.LabelResourceId;
 import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
@@ -42,21 +44,24 @@
 import org.onosproject.net.Path;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.flow.CompletedBatchOperation;
+import org.onosproject.net.flow.DefaultFlowEntry;
+import org.onosproject.net.flow.FlowEntry;
 import org.onosproject.net.flow.FlowRule;
+import org.onosproject.net.flow.FlowRuleBatchEntry;
 import org.onosproject.net.flow.FlowRuleBatchOperation;
 import org.onosproject.net.flow.FlowRuleProvider;
 import org.onosproject.net.flow.FlowRuleProviderRegistry;
 import org.onosproject.net.flow.FlowRuleProviderService;
 import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.FlowEntry.FlowEntryState;
 import org.onosproject.net.flow.criteria.Criterion;
 import org.onosproject.net.flow.criteria.IPCriterion;
 import org.onosproject.net.flow.criteria.MetadataCriterion;
 import org.onosproject.net.flow.criteria.MplsBosCriterion;
 import org.onosproject.net.flow.criteria.MplsCriterion;
 import org.onosproject.net.flow.criteria.PortCriterion;
-import org.onosproject.net.flow.criteria.TcpPortCriterion;
 import org.onosproject.net.flow.criteria.TunnelIdCriterion;
-import org.onosproject.net.flowobjective.Objective;
 import org.onosproject.net.provider.AbstractProvider;
 import org.onosproject.net.provider.ProviderId;
 import org.onosproject.net.resource.ResourceService;
@@ -81,13 +86,14 @@
 import org.onosproject.pcepio.types.PcepLabelMap;
 import org.onosproject.pcepio.types.PcepValueType;
 import org.onosproject.pcepio.types.StatefulIPv4LspIdentifiersTlv;
-import org.onosproject.provider.pcep.tunnel.impl.SrpIdGenerators;
-import org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys;
+import org.onosproject.pcep.controller.SrpIdGenerators;
+import org.onosproject.pcep.controller.PcepAnnotationKeys;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 
 import static org.onosproject.pcep.controller.PcepSyncStatus.IN_SYNC;
 import static org.onosproject.pcep.controller.PcepSyncStatus.SYNCED;
+import static org.onosproject.net.flow.criteria.Criterion.Type.EXTENSION;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -104,9 +110,6 @@
     protected FlowRuleProviderRegistry providerRegistry;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected ComponentConfigService cfgService;
-
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected BgpController bgpController;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
@@ -129,6 +132,12 @@
     public static final long SET = 0xFFFFFFFFL;
     private static final String LSRID = "lsrId";
 
+    private enum PcepFlowType {
+        ADD,
+        MODIFY,
+        REMOVE
+    }
+
     /**
      * Creates a BgpFlow host provider.
      */
@@ -138,14 +147,12 @@
 
     @Activate
     public void activate(ComponentContext context) {
-        cfgService.registerProperties(getClass());
         providerService = providerRegistry.register(this);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate(ComponentContext context) {
-        cfgService.unregisterProperties(getClass(), false);
         providerRegistry.unregister(this);
         providerService = null;
         log.info("Stopped");
@@ -154,26 +161,25 @@
     @Override
     public void applyFlowRule(FlowRule... flowRules) {
         for (FlowRule flowRule : flowRules) {
-            processRule(flowRule, Objective.Operation.ADD);
+            processRule(flowRule, PcepFlowType.ADD);
         }
     }
 
     @Override
     public void removeFlowRule(FlowRule... flowRules) {
         for (FlowRule flowRule : flowRules) {
-            processRule(flowRule, Objective.Operation.REMOVE);
+            processRule(flowRule, PcepFlowType.REMOVE);
         }
     }
 
-    private void processRule(FlowRule flowRule, Objective.Operation type) {
+    private void processRule(FlowRule flowRule, PcepFlowType type) {
         MplsLabel mplsLabel = null;
-        IpPrefix ip4Prefix = null;
+        IpPrefix ip4PrefixSrc = null;
+        IpPrefix ip4PrefixDst = null;
         PortNumber port = null;
         TunnelId tunnelId = null;
         long labelType = 0;
         boolean bottomOfStack = false;
-        int srcPort = 0;
-        int dstPort = 0;
 
         TrafficSelector selector = flowRule.selector();
         for (Criterion c : selector.criteria()) {
@@ -184,20 +190,16 @@
                 break;
             case IPV4_SRC:
                 IPCriterion ipCriterion = (IPCriterion) c;
-                ip4Prefix = ipCriterion.ip().getIp4Prefix();
+                ip4PrefixSrc = ipCriterion.ip().getIp4Prefix();
+                break;
+            case IPV4_DST:
+                ipCriterion = (IPCriterion) c;
+                ip4PrefixDst = ipCriterion.ip().getIp4Prefix();
                 break;
             case IN_PORT:
                 PortCriterion inPort = (PortCriterion) c;
                 port = inPort.port();
                 break;
-            case TCP_SRC:
-                TcpPortCriterion srcTcpPort = (TcpPortCriterion) c;
-                srcPort = srcTcpPort.tcpPort().toInt();
-                break;
-            case TCP_DST:
-                TcpPortCriterion dstTcpPort = (TcpPortCriterion) c;
-                dstPort = dstTcpPort.tcpPort().toInt();
-                break;
             case TUNNEL_ID:
                 TunnelIdCriterion tc = (TunnelIdCriterion) c;
                 tunnelId = TunnelId.valueOf(String.valueOf(tc.tunnelId()));
@@ -224,13 +226,12 @@
                 return;
             }
 
-            if (srcPort != 0 && dstPort != 0) {
-                pushAdjacencyLabel(flowRule.deviceId(), label, PortNumber.portNumber(srcPort),
-                                   PortNumber.portNumber(dstPort), type);
+            if (ip4PrefixDst != null) {
+                pushAdjacencyLabel(flowRule.deviceId(), label, ip4PrefixSrc, ip4PrefixDst, type);
                 return;
             }
 
-            pushGlobalNodeLabel(flowRule.deviceId(), label, ip4Prefix, type, bottomOfStack);
+            pushGlobalNodeLabel(flowRule.deviceId(), label, ip4PrefixSrc, type, bottomOfStack);
 
         } catch (PcepParseException e) {
             log.error("Exception occured while sending label message to PCC {}", e.getMessage());
@@ -255,7 +256,7 @@
 
     //Pushes node labels to the specified device.
     private void pushGlobalNodeLabel(DeviceId deviceId, LabelResourceId labelId,
-            IpPrefix ipPrefix, Objective.Operation type, boolean isBos) throws PcepParseException {
+            IpPrefix ipPrefix, PcepFlowType type, boolean isBos) throws PcepParseException {
 
         checkNotNull(deviceId);
         checkNotNull(labelId);
@@ -271,7 +272,7 @@
 
         if (ipPrefix == null) {
             // Pushing self node label to device.
-            IpPrefix.valueOf(pc.getPccId().ipAddress(), 32);
+            ipPrefix = IpPrefix.valueOf(pc.getPccId().ipAddress(), 32);
         }
 
         PcepFecObjectIPv4 fecObject = pc.factory().buildFecObjectIpv4()
@@ -279,16 +280,9 @@
                                       .build();
 
         boolean bSFlag = false;
-        if (pc.labelDbSyncStatus() == IN_SYNC) {
-            if (isBos) {
-                /*
-                 * Now the sync is completed.
-                 * Need to send label DB end-of-sync msg, i.e. S flag in SRP id is reset.
-                 */
-                pc.setLabelDbSyncStatus(SYNCED);
-            } else {
-                bSFlag = true;
-            }
+        if (pc.labelDbSyncStatus() == IN_SYNC && !isBos) {
+            // Need to set sync flag in all messages till sync completes.
+            bSFlag = true;
         }
 
         PcepSrpObject srpObj = getSrpObject(pc, type, bSFlag);
@@ -312,14 +306,19 @@
                                       .build();
 
         pc.sendMessage(labelMsg);
+
+        if (isBos) {
+            // Sync is completed.
+            pc.setLabelDbSyncStatus(SYNCED);
+        }
     }
 
-    private PcepSrpObject getSrpObject(PcepClient pc, Objective.Operation type, boolean bSFlag)
+    private PcepSrpObject getSrpObject(PcepClient pc, PcepFlowType type, boolean bSFlag)
             throws PcepParseException {
         PcepSrpObject srpObj;
         boolean bRFlag = false;
 
-        if (!type.equals(Objective.Operation.ADD)) {
+        if (!type.equals(PcepFlowType.ADD)) {
             // To cleanup labels, R bit is set
             bRFlag = true;
         }
@@ -334,13 +333,14 @@
     }
 
     //Pushes adjacency labels to the specified device.
-    private void pushAdjacencyLabel(DeviceId deviceId, LabelResourceId labelId,
-            PortNumber srcPortNum, PortNumber dstPortNum, Objective.Operation type) throws PcepParseException {
+    private void pushAdjacencyLabel(DeviceId deviceId, LabelResourceId labelId, IpPrefix ip4PrefixSrc,
+                                    IpPrefix ip4PrefixDst, PcepFlowType type)
+            throws PcepParseException {
 
         checkNotNull(deviceId);
         checkNotNull(labelId);
-        checkNotNull(srcPortNum);
-        checkNotNull(dstPortNum);
+        checkNotNull(ip4PrefixSrc);
+        checkNotNull(ip4PrefixDst);
         checkNotNull(type);
 
         PcepClient pc = getPcepClient(deviceId);
@@ -351,17 +351,21 @@
 
         LinkedList<PcepLabelUpdate> labelUpdateList = new LinkedList<>();
 
-        long srcPortNo = srcPortNum.toLong();
-        long dstPortNo = dstPortNum.toLong();
-        srcPortNo = ((srcPortNo & IDENTIFIER_SET) == IDENTIFIER_SET) ? srcPortNo & SET : srcPortNo;
-        dstPortNo = ((dstPortNo & IDENTIFIER_SET) == IDENTIFIER_SET) ? dstPortNo & SET : dstPortNo;
+        int srcPortNo = ip4PrefixSrc.address().getIp4Address().toInt();
+        int dstPortNo = ip4PrefixDst.address().getIp4Address().toInt();
 
         PcepFecObjectIPv4Adjacency fecAdjObject = pc.factory().buildFecIpv4Adjacency()
-                                                  .seRemoteIPv4Address((int) dstPortNo)
-                                                  .seLocalIPv4Address((int) srcPortNo)
+                                                  .seRemoteIPv4Address(dstPortNo)
+                                                  .seLocalIPv4Address(srcPortNo)
                                                   .build();
 
-        PcepSrpObject srpObj = getSrpObject(pc, type, false);
+        boolean bSFlag = false;
+        if (pc.labelDbSyncStatus() == IN_SYNC) {
+            // Need to set sync flag in all messages till sync completes.
+            bSFlag = true;
+        }
+
+        PcepSrpObject srpObj = getSrpObject(pc, type, bSFlag);
 
         //Adjacency label object
         PcepLabelObject labelObject = pc.factory().buildLabelObject()
@@ -387,7 +391,7 @@
     //Pushes local labels to the device which is specific to path [CR-case].
     private void pushLocalLabels(DeviceId deviceId, LabelResourceId labelId,
             PortNumber portNum, TunnelId tunnelId,
-            Boolean isBos, Long labelType, Objective.Operation type) throws PcepParseException {
+            Boolean isBos, Long labelType, PcepFlowType type) throws PcepParseException {
 
         checkNotNull(deviceId);
         checkNotNull(labelId);
@@ -559,6 +563,31 @@
 
     @Override
     public void executeBatch(FlowRuleBatchOperation batch) {
-    //TODO
+        Collection<FlowEntry> flowEntries = new ArrayList<>();
+
+        for (FlowRuleBatchEntry fbe : batch.getOperations()) {
+            Criterion criteria = fbe.target().selector().getCriterion(EXTENSION);
+
+            switch (fbe.operator()) {
+            case ADD:
+                if (criteria == null) {
+                    processRule(fbe.target(), PcepFlowType.ADD);
+                    flowEntries.add(new DefaultFlowEntry(fbe.target(), FlowEntryState.ADDED, 0, 0, 0));
+                }
+                break;
+            case REMOVE:
+                if (criteria == null) {
+                    processRule(fbe.target(), PcepFlowType.REMOVE);
+                    flowEntries.add(new DefaultFlowEntry(fbe.target(), FlowEntryState.REMOVED, 0, 0, 0));
+                }
+                break;
+            default:
+                log.error("Unknown flow operation: {}", fbe);
+            }
+        }
+
+        CompletedBatchOperation status = new CompletedBatchOperation(true, Collections.emptySet(), batch.deviceId());
+        providerService.batchOperationCompleted(batch.id(), status);
+        providerService.pushFlowMetrics(batch.deviceId(), flowEntries);
     }
 }
diff --git a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepAnnotationKeys.java b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepAnnotationKeys.java
deleted file mode 100644
index 18292b7..0000000
--- a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepAnnotationKeys.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2016-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.provider.pcep.tunnel.impl;
-
-/**
- * Collection of keys for annotation for PCEP tunnels.
- */
-public final class PcepAnnotationKeys {
-
-    /**
-     *  Prohibits instantiation.
-     */
-    private PcepAnnotationKeys() {
-    }
-
-    /**
-     * Annotation key for bandwidth.
-     * The value for this key is interpreted as Mbps.
-     */
-    public static final String BANDWIDTH = "bandwidth";
-
-    /**
-     * Annotation key for the LSP signaling type.
-     */
-    public static final String LSP_SIG_TYPE = "lspSigType";
-
-    /**
-     * Annotation key for the PCC tunnel id.
-     */
-    public static final String PCC_TUNNEL_ID = "PccTunnelId";
-
-    /**
-     * Annotation key for the LSP id assigned per tunnel per session.
-     */
-    public static final String PLSP_ID = "PLspId";
-
-    /**
-     * Annotation key for the LSP id assigned per tunnel.
-     */
-    public static final String LOCAL_LSP_ID = "localLspId";
-
-    /**
-     * Annotation key for the identification of initiated LSP.
-     */
-    public static final String PCE_INIT = "pceInit";
-
-    /**
-     * Annotation key for the cost type.
-     */
-    public static final String COST_TYPE = "costType";
-
-    /**
-     * Annotation key for the Delegation.
-     * Whether LSPs are delegated or not
-     */
-    public static final String DELEGATE = "delegate";
-}
diff --git a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProvider.java b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProvider.java
index 66e7f31..8448528 100644
--- a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProvider.java
+++ b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProvider.java
@@ -82,6 +82,7 @@
 import org.onosproject.pcep.controller.PcepEventListener;
 import org.onosproject.pcep.controller.PcepLspStatus;
 import org.onosproject.pcep.controller.PcepLspSyncAction;
+import org.onosproject.pcep.controller.SrpIdGenerators;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 import org.onosproject.pcepio.protocol.PcInitiatedLspRequest;
 import org.onosproject.pcepio.protocol.PcepAttribute;
@@ -131,13 +132,13 @@
 import static org.onosproject.pcep.api.PcepDpid.uri;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITH_SIGNALLING;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.SR_WITHOUT_SIGNALLING;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.BANDWIDTH;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LOCAL_LSP_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.PCC_TUNNEL_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.PLSP_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.DELEGATE;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.COST_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.BANDWIDTH;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LOCAL_LSP_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCC_TUNNEL_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.PLSP_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.DELEGATE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.COST_TYPE;
 import static org.onosproject.provider.pcep.tunnel.impl.RequestType.CREATE;
 import static org.onosproject.provider.pcep.tunnel.impl.RequestType.DELETE;
 import static org.onosproject.provider.pcep.tunnel.impl.RequestType.LSP_STATE_RPT;
diff --git a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/SrpIdGenerators.java b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/SrpIdGenerators.java
deleted file mode 100644
index 3e18025..0000000
--- a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/SrpIdGenerators.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2015-present Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.provider.pcep.tunnel.impl;
-
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.slf4j.Logger;
-
-/**
- * Unique Srp Id generator for pcep messages.
- */
-public final class SrpIdGenerators {
-
-    private static final Logger log = getLogger(SrpIdGenerators.class);
-    private static final AtomicInteger SRP_ID_GEN = new AtomicInteger();
-    private static final int MAX_SRP_ID = 0x7FFFFFFF;
-    private static int srpId;
-
-    /**
-     * Default constructor.
-     */
-    private SrpIdGenerators() {
-    }
-
-    /**
-     * Get the next srp id.
-     *
-     * @return srp id
-     */
-    public static int create() {
-        do {
-            if (srpId >= MAX_SRP_ID) {
-                if (SRP_ID_GEN.get() >= MAX_SRP_ID) {
-                    SRP_ID_GEN.set(0);
-                }
-            }
-            srpId = SRP_ID_GEN.incrementAndGet();
-        } while (srpId > MAX_SRP_ID);
-        return srpId;
-    }
-}
diff --git a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepReleaseTunnelProviderTest.java b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepReleaseTunnelProviderTest.java
index 22a683b..e8ed50a 100644
--- a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepReleaseTunnelProviderTest.java
+++ b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepReleaseTunnelProviderTest.java
@@ -23,7 +23,7 @@
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITH_SIGNALLING;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.SR_WITHOUT_SIGNALLING;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITHOUT_SIGNALLING_AND_WITHOUT_SR;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepSetupTunnelProviderTest.java b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepSetupTunnelProviderTest.java
index 078deb1..018f50c 100644
--- a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepSetupTunnelProviderTest.java
+++ b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepSetupTunnelProviderTest.java
@@ -23,7 +23,7 @@
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITH_SIGNALLING;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.SR_WITHOUT_SIGNALLING;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITHOUT_SIGNALLING_AND_WITHOUT_SR;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelAddedTest.java b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelAddedTest.java
index ce00b5e..537d888 100644
--- a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelAddedTest.java
+++ b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelAddedTest.java
@@ -19,12 +19,12 @@
 import static org.hamcrest.core.Is.is;
 import static org.onosproject.incubator.net.tunnel.Tunnel.Type.MPLS;
 import static org.onosproject.incubator.net.tunnel.Tunnel.State.INIT;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.BANDWIDTH;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LOCAL_LSP_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.PCC_TUNNEL_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.PLSP_ID;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.DELEGATE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.BANDWIDTH;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LOCAL_LSP_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.PCC_TUNNEL_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.PLSP_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.DELEGATE;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITHOUT_SIGNALLING_AND_WITHOUT_SR;
 import static org.onosproject.pcep.controller.PcepSyncStatus.SYNCED;
 import static org.onosproject.net.Device.Type.ROUTER;
diff --git a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProviderTest.java b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProviderTest.java
index e641c64..0e7fc99 100644
--- a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProviderTest.java
+++ b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepTunnelProviderTest.java
@@ -20,7 +20,7 @@
 import static org.hamcrest.core.IsNot.not;
 import static org.onosproject.net.DefaultAnnotations.EMPTY;
 import static org.onosproject.provider.pcep.tunnel.impl.LspType.WITH_SIGNALLING;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepUpdateTunnelProviderTest.java b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepUpdateTunnelProviderTest.java
index 4106dfb..2b85fdf 100644
--- a/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepUpdateTunnelProviderTest.java
+++ b/providers/pcep/tunnel/src/test/java/org/onosproject/provider/pcep/tunnel/impl/PcepUpdateTunnelProviderTest.java
@@ -20,7 +20,9 @@
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsNot.not;
 import static org.onosproject.net.DefaultAnnotations.EMPTY;
-import static org.onosproject.provider.pcep.tunnel.impl.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LSP_SIG_TYPE;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.LOCAL_LSP_ID;
+import static org.onosproject.pcep.controller.PcepAnnotationKeys.PLSP_ID;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -112,8 +114,8 @@
         path = new DefaultPath(pid, links, 20, EMPTY);
 
         Annotations annotations = DefaultAnnotations.builder()
-                .set(PcepAnnotationKeys.PLSP_ID, "1")
-                .set(PcepAnnotationKeys.LOCAL_LSP_ID, "1")
+                .set(PLSP_ID, "1")
+                .set(LOCAL_LSP_ID, "1")
                 .set(LSP_SIG_TYPE, WITH_SIGNALLING.name())
                 .build();
 
@@ -173,8 +175,8 @@
 
         Annotations annotations = DefaultAnnotations.builder()
                 .set(LSP_SIG_TYPE, WITH_SIGNALLING.name())
-                .set(PcepAnnotationKeys.PLSP_ID, "1")
-                .set(PcepAnnotationKeys.LOCAL_LSP_ID, "1")
+                .set(PLSP_ID, "1")
+                .set(LOCAL_LSP_ID, "1")
                 .build();
 
         tunnel = new DefaultTunnel(pid, ipTunnelEndPointSrc, ipTunnelEndPointDst, Tunnel.Type.MPLS,
@@ -233,8 +235,8 @@
 
         Annotations annotations = DefaultAnnotations.builder()
                 .set(LSP_SIG_TYPE, SR_WITHOUT_SIGNALLING.name())
-                .set(PcepAnnotationKeys.PLSP_ID, "1")
-                .set(PcepAnnotationKeys.LOCAL_LSP_ID, "1")
+                .set(PLSP_ID, "1")
+                .set(LOCAL_LSP_ID, "1")
                 .build();
 
         tunnel = new DefaultTunnel(pid, ipTunnelEndPointSrc, ipTunnelEndPointDst, Tunnel.Type.MPLS,
@@ -293,8 +295,8 @@
 
         Annotations annotations = DefaultAnnotations.builder()
                 .set(LSP_SIG_TYPE, WITHOUT_SIGNALLING_AND_WITHOUT_SR.name())
-                .set(PcepAnnotationKeys.PLSP_ID, "1")
-                .set(PcepAnnotationKeys.LOCAL_LSP_ID, "1")
+                .set(PLSP_ID, "1")
+                .set(LOCAL_LSP_ID, "1")
                 .build();
 
         tunnel = new DefaultTunnel(pid, ipTunnelEndPointSrc, ipTunnelEndPointDst, Tunnel.Type.MPLS,