[ONOS-5925] Removing 1.6 deprecated optical ports

Change-Id: I2c8583323e6c99d08f3568a81941036fa8e949d8
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/AddOpticalIntentCommand.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/AddOpticalIntentCommand.java
index 5d38203..939493b 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/AddOpticalIntentCommand.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/cli/AddOpticalIntentCommand.java
@@ -156,19 +156,6 @@
                     .signalType(signalType)
                     .bidirectional(bidirectional)
                     .build();
-        } else if (srcPort instanceof org.onosproject.net.OchPort &&
-                   dstPort instanceof org.onosproject.net.OchPort) {
-            print("WARN: encountered old OchPort model");
-            // old OchPort model can be removed when ready
-            OduSignalType signalType = ((org.onosproject.net.OchPort) srcPort).signalType();
-            intent = OpticalConnectivityIntent.builder()
-                    .appId(appId())
-                    .key(key())
-                    .src(ingress)
-                    .dst(egress)
-                    .signalType(signalType)
-                    .bidirectional(bidirectional)
-                    .build();
         } else {
             print("Unable to create optical intent between connect points %s and %s", ingress, egress);
             return;
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/config/OpticalPortOperator.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/config/OpticalPortOperator.java
index 8562737..c49de35 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/config/OpticalPortOperator.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/config/OpticalPortOperator.java
@@ -15,10 +15,6 @@
  */
 package org.onosproject.net.optical.config;
 
-import static org.onosproject.net.optical.device.OchPortHelper.ochPortDescription;
-import static org.onosproject.net.optical.device.OduCltPortHelper.oduCltPortDescription;
-import static org.onosproject.net.optical.device.OmsPortHelper.omsPortDescription;
-import static org.onosproject.net.optical.device.OtuPortHelper.otuPortDescription;
 import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Set;
@@ -36,10 +32,6 @@
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.SparseAnnotations;
 import org.onosproject.net.device.DefaultPortDescription;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
-import org.onosproject.net.device.OtuPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.slf4j.Logger;
 
@@ -137,43 +129,6 @@
                                                      SparseAnnotations sa,
                                                      PortDescription descr) {
 
-        // TODO This switch can go away once deprecation is complete.
-        switch (descr.type()) {
-            case OMS:
-                if (descr instanceof OmsPortDescription) {
-                    OmsPortDescription oms = (OmsPortDescription) descr;
-                    return omsPortDescription(port, oms.isEnabled(), oms.minFrequency(),
-                                                  oms.maxFrequency(), oms.grid(), sa);
-                }
-                break;
-            case OCH:
-                // We might need to update lambda below with STATIC_LAMBDA.
-                if (descr instanceof OchPortDescription) {
-                    OchPortDescription och = (OchPortDescription) descr;
-                    return ochPortDescription(port, och.isEnabled(), och.signalType(),
-                            och.isTunable(), och.lambda(), sa);
-                }
-                break;
-            case ODUCLT:
-                if (descr instanceof OduCltPortDescription) {
-                    OduCltPortDescription odu = (OduCltPortDescription) descr;
-                    return oduCltPortDescription(port, odu.isEnabled(), odu.signalType(), sa);
-                }
-                break;
-            case PACKET:
-            case FIBER:
-            case COPPER:
-                break;
-            case OTU:
-                if (descr instanceof OtuPortDescription) {
-                    OtuPortDescription otu = (OtuPortDescription) descr;
-                    return otuPortDescription(port, otu.isEnabled(), otu.signalType(), sa);
-                }
-                break;
-            default:
-                log.warn("Unsupported optical port type {} - can't update", descr.type());
-                return descr;
-        }
         if (port.exactlyEquals(descr.portNumber()) && sa.equals(descr.annotations())) {
             // result is no-op
             return descr;
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OchPortMapper.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OchPortMapper.java
index badca9d..112c4e5 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OchPortMapper.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OchPortMapper.java
@@ -20,7 +20,6 @@
 import org.onosproject.net.Port;
 import org.onosproject.net.optical.OchPort;
 import org.onosproject.net.optical.device.OchPortHelper;
-import org.onosproject.net.optical.impl.DefaultOchPort;
 
 import com.google.common.annotations.Beta;
 
@@ -49,15 +48,6 @@
     protected Optional<OchPort> mapPort(Port port) {
         if (port instanceof OchPort) {
             return Optional.of((OchPort) port);
-        } else if (port instanceof org.onosproject.net.OchPort) {
-            // TODO remove after deprecation of old OchPort is complete
-
-            // translate to new OchPort
-            org.onosproject.net.OchPort old = (org.onosproject.net.OchPort) port;
-            return Optional.of(new DefaultOchPort(old,
-                                                  old.signalType(),
-                                                  old.isTunable(),
-                                                  old.lambda()));
         }
 
         return OchPortHelper.asOchPort(port);
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OduCltPortMapper.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OduCltPortMapper.java
index 6eeb631..dffd432 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OduCltPortMapper.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OduCltPortMapper.java
@@ -20,7 +20,6 @@
 import org.onosproject.net.Port;
 import org.onosproject.net.optical.OduCltPort;
 import org.onosproject.net.optical.device.OduCltPortHelper;
-import org.onosproject.net.optical.impl.DefaultOduCltPort;
 
 import com.google.common.annotations.Beta;
 
@@ -49,13 +48,6 @@
     protected Optional<OduCltPort> mapPort(Port port) {
         if (port instanceof OduCltPort) {
             return Optional.of((OduCltPort) port);
-        } else if (port instanceof org.onosproject.net.OduCltPort) {
-            // TODO remove after deprecation of old OduCltPort is complete
-
-            // translate to new OduCltPort
-            org.onosproject.net.OduCltPort old = (org.onosproject.net.OduCltPort) port;
-            return Optional.of(new DefaultOduCltPort(old,
-                                                     old.signalType()));
         }
 
         return OduCltPortHelper.asOduCltPort(port);
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OmsPortMapper.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OmsPortMapper.java
index 70a8aa9..e43c155 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OmsPortMapper.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OmsPortMapper.java
@@ -20,7 +20,6 @@
 import org.onosproject.net.Port;
 import org.onosproject.net.optical.OmsPort;
 import org.onosproject.net.optical.device.OmsPortHelper;
-import org.onosproject.net.optical.impl.DefaultOmsPort;
 
 import com.google.common.annotations.Beta;
 
@@ -49,17 +48,7 @@
     protected Optional<OmsPort> mapPort(Port port) {
         if (port instanceof OmsPort) {
             return Optional.of((OmsPort) port);
-        } else if (port instanceof org.onosproject.net.OmsPort) {
-            // TODO remove after deprecation of old OmsPort is complete
-
-            // translate to new OmsPort
-            org.onosproject.net.OmsPort old = (org.onosproject.net.OmsPort) port;
-            return Optional.of(new DefaultOmsPort(old,
-                                                  old.minFrequency(),
-                                                  old.maxFrequency(),
-                                                  old.grid()));
         }
-
         return OmsPortHelper.asOmsPort(port);
     }
 
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OtuPortMapper.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OtuPortMapper.java
index c70033a..cfc3beb 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OtuPortMapper.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/device/port/OtuPortMapper.java
@@ -20,7 +20,6 @@
 import org.onosproject.net.Port;
 import org.onosproject.net.optical.OtuPort;
 import org.onosproject.net.optical.device.OtuPortHelper;
-import org.onosproject.net.optical.impl.DefaultOtuPort;
 
 import com.google.common.annotations.Beta;
 
@@ -49,13 +48,6 @@
     protected Optional<OtuPort> mapPort(Port port) {
         if (port instanceof OtuPort) {
             return Optional.of((OtuPort) port);
-        } else if (port instanceof org.onosproject.net.OtuPort) {
-            // TODO remove after deprecation of old OtuPort is complete
-
-            // translate to new OtuPort
-            org.onosproject.net.OtuPort old = (org.onosproject.net.OtuPort) port;
-            return Optional.of(new DefaultOtuPort(old,
-                                                  old.signalType()));
         }
 
         return OtuPortHelper.asOtuPort(port);
diff --git a/core/api/src/main/java/org/onosproject/net/OchPort.java b/core/api/src/main/java/org/onosproject/net/OchPort.java
deleted file mode 100644
index 1b544e6..0000000
--- a/core/api/src/main/java/org/onosproject/net/OchPort.java
+++ /dev/null
@@ -1,120 +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.net;
-
-import java.util.Objects;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Implementation of OCh port (Optical Channel).
- * Also referred to as a line side port (L-port) or narrow band port.
- * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)"
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OchPort extends DefaultPort {
-
-    private final OduSignalType signalType;
-    private final boolean isTunable;
-    private final OchSignal lambda;
-
-    /**
-     * Creates an OCh port in the specified network element.
-     *
-     * @param element     parent network element
-     * @param number      port number
-     * @param isEnabled   port enabled state
-     * @param signalType  ODU signal type
-     * @param isTunable   tunable wavelength capability
-     * @param lambda      OCh signal
-     * @param annotations optional key/value annotations
-     */
-    public OchPort(Element element, PortNumber number, boolean isEnabled, OduSignalType signalType,
-                   boolean isTunable, OchSignal lambda, Annotations... annotations) {
-        super(element, number, isEnabled, Type.OCH, checkNotNull(signalType).bitRate(), annotations);
-        this.signalType = signalType;
-        this.isTunable = isTunable;
-        this.lambda = checkNotNull(lambda);
-    }
-
-    /**
-     * Returns ODU signal type.
-     *
-     * @return ODU signal type
-     */
-    public OduSignalType signalType() {
-        return signalType;
-    }
-
-    /**
-     * Returns true if port is wavelength tunable.
-     *
-     * @return tunable wavelength capability
-     */
-    public boolean isTunable() {
-        return isTunable;
-    }
-
-    /**
-     * Returns OCh signal.
-     *
-     * @return OCh signal
-     */
-    public OchSignal lambda() {
-        return lambda;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(number(), isEnabled(), type(), signalType, isTunable, lambda, annotations());
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-
-        // Subclass is considered as a change of identity, hence equals() will return false if class type don't match
-        if (obj != null && getClass() == obj.getClass()) {
-            final OchPort other = (OchPort) obj;
-            return Objects.equals(this.element().id(), other.element().id()) &&
-                    Objects.equals(this.number(), other.number()) &&
-                    Objects.equals(this.isEnabled(), other.isEnabled()) &&
-                    Objects.equals(this.signalType, other.signalType) &&
-                    Objects.equals(this.isTunable, other.isTunable) &&
-                    Objects.equals(this.lambda, other.lambda) &&
-                    Objects.equals(this.annotations(), other.annotations());
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this)
-                .add("element", element().id())
-                .add("number", number())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .add("isTunable", isTunable)
-                .add("lambda", lambda)
-                .toString();
-    }
-}
diff --git a/core/api/src/main/java/org/onosproject/net/OduCltPort.java b/core/api/src/main/java/org/onosproject/net/OduCltPort.java
deleted file mode 100644
index 4af663c..0000000
--- a/core/api/src/main/java/org/onosproject/net/OduCltPort.java
+++ /dev/null
@@ -1,92 +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.net;
-
-import java.util.Objects;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Implementation of ODU client port (Optical channel Data Unit).
- * Also referred to as a T-port or wide band port.
- * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)"
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OduCltPort extends DefaultPort {
-
-    private final CltSignalType signalType;
-
-    /**
-     * Creates an ODU client port in the specified network element.
-     *
-     * @param element           parent network element
-     * @param number            port number
-     * @param isEnabled         port enabled state
-     * @param signalType        ODU client signal type
-     * @param annotations       optional key/value annotations
-     */
-    public OduCltPort(Element element, PortNumber number, boolean isEnabled,
-                      CltSignalType signalType, Annotations... annotations) {
-        super(element, number, isEnabled, Type.ODUCLT, checkNotNull(signalType).bitRate(), annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Returns ODU client signal type.
-     *
-     * @return ODU client signal type
-     */
-    public CltSignalType signalType() {
-        return signalType;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(number(), isEnabled(), type(), signalType, annotations());
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj != null && getClass() == obj.getClass()) {
-            final OduCltPort other = (OduCltPort) obj;
-            return Objects.equals(this.element().id(), other.element().id()) &&
-                    Objects.equals(this.number(), other.number()) &&
-                    Objects.equals(this.isEnabled(), other.isEnabled()) &&
-                    Objects.equals(this.signalType, other.signalType) &&
-                    Objects.equals(this.annotations(), other.annotations());
-        }
-        return false;
-    }
-
-
-    @Override
-    public String toString() {
-        return toStringHelper(this)
-                .add("element", element().id())
-                .add("number", number())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .toString();
-    }
-
-}
diff --git a/core/api/src/main/java/org/onosproject/net/OmsPort.java b/core/api/src/main/java/org/onosproject/net/OmsPort.java
deleted file mode 100644
index e1e54ca..0000000
--- a/core/api/src/main/java/org/onosproject/net/OmsPort.java
+++ /dev/null
@@ -1,135 +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.net;
-
-import org.onlab.util.Frequency;
-
-import java.util.Objects;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Implementation of OMS port (Optical Multiplexing Section).
- * Also referred to as a WDM port or W-port.
- * See ITU G.709 "Interfaces for the Optical Transport Network (OTN)"
- *
- * Assumes we only support fixed grid for now.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OmsPort extends DefaultPort {
-
-    private final Frequency minFrequency;     // Minimum frequency
-    private final Frequency maxFrequency;     // Maximum frequency
-    private final Frequency grid;             // Grid spacing frequency
-
-
-    /**
-     * Creates an OMS port in the specified network element.
-     *
-     * @param element       parent network element
-     * @param number        port number
-     * @param isEnabled     port enabled state
-     * @param minFrequency  minimum frequency
-     * @param maxFrequency  maximum frequency
-     * @param grid          grid spacing frequency
-     * @param annotations   optional key/value annotations
-     */
-    public OmsPort(Element element, PortNumber number, boolean isEnabled,
-                   Frequency minFrequency, Frequency maxFrequency, Frequency grid, Annotations... annotations) {
-        super(element, number, isEnabled, Type.OMS, 0, annotations);
-        this.minFrequency = checkNotNull(minFrequency);
-        this.maxFrequency = checkNotNull(maxFrequency);
-        this.grid = checkNotNull(grid);
-    }
-
-    /**
-     * Returns the total number of channels on the port.
-     *
-     * @return total number of channels
-     */
-    public short totalChannels() {
-        Frequency diff = maxFrequency.subtract(minFrequency);
-        return (short) (diff.asHz() / grid.asHz());
-    }
-
-    /**
-     * Returns the minimum frequency.
-     *
-     * @return minimum frequency
-     */
-    public Frequency minFrequency() {
-        return minFrequency;
-    }
-
-    /**
-     * Returns the maximum frequency.
-     *
-     * @return maximum frequency
-     */
-    public Frequency maxFrequency() {
-        return maxFrequency;
-    }
-
-    /**
-     * Returns the grid spacing frequency.
-     *
-     * @return grid spacing frequency
-     */
-    public Frequency grid() {
-        return grid;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(number(), isEnabled(), type(),
-                minFrequency, maxFrequency, grid, annotations());
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj != null && getClass() == obj.getClass()) {
-            final OmsPort other = (OmsPort) obj;
-            return Objects.equals(this.element().id(), other.element().id()) &&
-                    Objects.equals(this.number(), other.number()) &&
-                    Objects.equals(this.isEnabled(), other.isEnabled()) &&
-                    Objects.equals(this.minFrequency, other.minFrequency) &&
-                    Objects.equals(this.maxFrequency, other.maxFrequency) &&
-                    Objects.equals(this.grid, other.grid) &&
-                    Objects.equals(this.annotations(), other.annotations());
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this)
-                .add("element", element().id())
-                .add("number", number())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("minFrequency", minFrequency)
-                .add("maxFrequency", maxFrequency)
-                .add("grid", grid)
-                .toString();
-    }
-
-}
diff --git a/core/api/src/main/java/org/onosproject/net/OtuPort.java b/core/api/src/main/java/org/onosproject/net/OtuPort.java
deleted file mode 100644
index 60456cd..0000000
--- a/core/api/src/main/java/org/onosproject/net/OtuPort.java
+++ /dev/null
@@ -1,89 +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.net;
-
-import java.util.Objects;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-
-/**
- * Implementation of OTU port (Optical channel Transport Unit).
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OtuPort extends DefaultPort {
-
-    private final OtuSignalType signalType;
-
-    /**
-     * Creates an OTU port in the specified network element.
-     *
-     * @param element           parent network element
-     * @param number            port number
-     * @param isEnabled         port enabled state
-     * @param signalType        OTU signal type
-     * @param annotations       optional key/value annotations
-     */
-    public OtuPort(Element element, PortNumber number, boolean isEnabled,
-            OtuSignalType signalType, Annotations... annotations) {
-        super(element, number, isEnabled, Type.OTU, 0, annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Returns OTU signal type.
-     *
-     * @return OTU signal type
-     */
-    public OtuSignalType signalType() {
-        return signalType;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(number(), isEnabled(), type(), signalType, annotations());
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof OtuPort) {
-            final OtuPort other = (OtuPort) obj;
-            return Objects.equals(this.element().id(), other.element().id()) &&
-                    Objects.equals(this.number(), other.number()) &&
-                    Objects.equals(this.isEnabled(), other.isEnabled()) &&
-                    Objects.equals(this.signalType, other.signalType) &&
-                    Objects.equals(this.annotations(), other.annotations());
-        }
-        return false;
-    }
-
-
-    @Override
-    public String toString() {
-        return toStringHelper(this)
-                .add("element", element().id())
-                .add("number", number())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .toString();
-    }
-
-}
\ No newline at end of file
diff --git a/core/api/src/main/java/org/onosproject/net/device/OchPortDescription.java b/core/api/src/main/java/org/onosproject/net/device/OchPortDescription.java
deleted file mode 100644
index 6397764..0000000
--- a/core/api/src/main/java/org/onosproject/net/device/OchPortDescription.java
+++ /dev/null
@@ -1,121 +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.net.device;
-
-import com.google.common.base.MoreObjects;
-
-import org.onosproject.net.OchSignal;
-import org.onosproject.net.OduSignalType;
-import org.onosproject.net.Port;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.SparseAnnotations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Default implementation of immutable OCh port description.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OchPortDescription extends DefaultPortDescription {
-
-    private final OduSignalType signalType;
-    private final boolean isTunable;
-    private final OchSignal lambda;
-
-    /**
-     * Creates OCH port description based on the supplied information.
-     *
-     * @param number      port number
-     * @param isEnabled   port enabled state
-     * @param signalType  ODU signal type
-     * @param isTunable   tunable wavelength capability
-     * @param lambda      OCh signal
-     * @param annotations optional key/value annotations map
-     *
-     * @deprecated in Goldeneye (1.6.0)
-     */
-    @Deprecated
-    public OchPortDescription(PortNumber number, boolean isEnabled, OduSignalType signalType,
-                              boolean isTunable, OchSignal lambda, SparseAnnotations... annotations) {
-        super(number, isEnabled, Port.Type.OCH, 0, annotations);
-        this.signalType = signalType;
-        this.isTunable = isTunable;
-        this.lambda = checkNotNull(lambda);
-    }
-
-    /**
-     * Creates OCH port description based on the supplied information.
-     *
-     * @param base        PortDescription to get basic information from
-     * @param signalType  ODU signal type
-     * @param isTunable   tunable wavelength capability
-     * @param lambda      OCh signal
-     * @param annotations optional key/value annotations map
-     *
-     * @deprecated in Goldeneye (1.6.0)
-     */
-    @Deprecated
-    public OchPortDescription(PortDescription base, OduSignalType signalType, boolean isTunable,
-                              OchSignal lambda, SparseAnnotations annotations) {
-        super(base, annotations);
-        this.signalType = signalType;
-        this.isTunable = isTunable;
-        this.lambda = checkNotNull(lambda);
-    }
-
-    /**
-     * Returns ODU signal type.
-     *
-     * @return ODU signal type
-     */
-    public OduSignalType signalType() {
-        return signalType;
-    }
-
-    /**
-     * Returns true if port is wavelength tunable.
-     *
-     * @return tunable wavelength capability
-     */
-    public boolean isTunable() {
-        return isTunable;
-    }
-
-    /**
-     * Returns OCh signal.
-     *
-     * @return OCh signal
-     */
-    public OchSignal lambda() {
-        return lambda;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(getClass())
-                .add("number", portNumber())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .add("isTunable", isTunable)
-                .add("lambda", lambda)
-                .add("annotations", annotations())
-                .toString();
-    }
-
-}
diff --git a/core/api/src/main/java/org/onosproject/net/device/OduCltPortDescription.java b/core/api/src/main/java/org/onosproject/net/device/OduCltPortDescription.java
deleted file mode 100644
index e601a9f..0000000
--- a/core/api/src/main/java/org/onosproject/net/device/OduCltPortDescription.java
+++ /dev/null
@@ -1,80 +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.net.device;
-
-import com.google.common.base.MoreObjects;
-import org.onosproject.net.CltSignalType;
-import org.onosproject.net.Port;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.SparseAnnotations;
-
-/**
- * Default implementation of immutable ODU client port description.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OduCltPortDescription extends DefaultPortDescription {
-
-    private final CltSignalType signalType;
-
-    /**
-     * Creates ODU client port description based on the supplied information.
-     *
-     * @param number        port number
-     * @param isEnabled     port enabled state
-     * @param signalType    ODU client signal type
-     * @param annotations   optional key/value annotations map
-     */
-    public OduCltPortDescription(PortNumber number, boolean isEnabled, CltSignalType signalType,
-                                 SparseAnnotations... annotations) {
-        super(number, isEnabled, Port.Type.ODUCLT, 0, annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Creates ODU client port description based on the supplied information.
-     *
-     * @param base          PortDescription to get basic information from
-     * @param signalType    ODU client signal type
-     * @param annotations   optional key/value annotations map
-     */
-    public OduCltPortDescription(PortDescription base, CltSignalType signalType,
-                                 SparseAnnotations annotations) {
-        super(base, annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Returns ODU client signal type.
-     *
-     * @return ODU client signal type
-     */
-    public CltSignalType signalType() {
-        return signalType;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(getClass())
-                .add("number", portNumber())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .toString();
-    }
-
-}
diff --git a/core/api/src/main/java/org/onosproject/net/device/OmsPortDescription.java b/core/api/src/main/java/org/onosproject/net/device/OmsPortDescription.java
deleted file mode 100644
index 4d88476..0000000
--- a/core/api/src/main/java/org/onosproject/net/device/OmsPortDescription.java
+++ /dev/null
@@ -1,118 +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.net.device;
-
-import com.google.common.base.MoreObjects;
-import org.onlab.util.Frequency;
-import org.onosproject.net.Port;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.SparseAnnotations;
-
-/**
- * Default implementation of immutable OMS port description.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OmsPortDescription extends DefaultPortDescription {
-
-    private final Frequency minFrequency;
-    private final Frequency maxFrequency;
-    private final Frequency grid;
-
-    /**
-     * Creates OMS port description based on the supplied information.
-     *
-     * @param number        port number
-     * @param isEnabled     port enabled state
-     * @param minFrequency  minimum frequency
-     * @param maxFrequency  maximum frequency
-     * @param grid          grid spacing frequency
-     * @param annotations   optional key/value annotations map
-     *
-     * @deprecated in Goldeneye (1.6.0)
-     */
-    @Deprecated
-    public OmsPortDescription(PortNumber number, boolean isEnabled, Frequency minFrequency, Frequency maxFrequency,
-                              Frequency grid, SparseAnnotations... annotations) {
-        super(number, isEnabled, Port.Type.OMS, 0, annotations);
-        this.minFrequency = minFrequency;
-        this.maxFrequency = maxFrequency;
-        this.grid = grid;
-    }
-
-    /**
-     * Creates OMS port description based on the supplied information.
-     *
-     * @param base          PortDescription to get basic information from
-     * @param minFrequency  minimum frequency
-     * @param maxFrequency  maximum frequency
-     * @param grid          grid spacing frequency
-     * @param annotations   optional key/value annotations map
-     *
-     * @deprecated in Goldeneye (1.6.0)
-     */
-    @Deprecated
-    public OmsPortDescription(PortDescription base, Frequency minFrequency, Frequency maxFrequency,
-                              Frequency grid, SparseAnnotations annotations) {
-        super(base, annotations);
-        this.minFrequency = minFrequency;
-        this.maxFrequency = maxFrequency;
-        this.grid = grid;
-    }
-
-    /**
-     * Returns minimum frequency.
-     *
-     * @return minimum frequency
-     */
-    public Frequency minFrequency() {
-        return minFrequency;
-    }
-
-    /**
-     * Returns maximum frequency.
-     *
-     * @return maximum frequency
-     */
-    public Frequency maxFrequency() {
-        return maxFrequency;
-    }
-
-    /**
-     * Returns grid spacing frequency.
-     *
-     * @return grid spacing frequency
-     */
-    public Frequency grid() {
-        return grid;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(getClass())
-                .add("number", portNumber())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("minFrequency", minFrequency)
-                .add("maxFrequency", maxFrequency)
-                .add("grid", grid)
-                .add("annotations", annotations())
-                .toString();
-    }
-
-}
-
diff --git a/core/api/src/main/java/org/onosproject/net/device/OtuPortDescription.java b/core/api/src/main/java/org/onosproject/net/device/OtuPortDescription.java
deleted file mode 100644
index 5495524..0000000
--- a/core/api/src/main/java/org/onosproject/net/device/OtuPortDescription.java
+++ /dev/null
@@ -1,81 +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.net.device;
-
-import com.google.common.base.MoreObjects;
-
-import org.onosproject.net.OtuSignalType;
-import org.onosproject.net.Port;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.SparseAnnotations;
-
-/**
- * Default implementation of immutable OTU port description.
- *
- * @deprecated in Goldeneye (1.6.0)
- */
-@Deprecated
-public class OtuPortDescription extends DefaultPortDescription {
-
-    private final OtuSignalType signalType;
-
-    /**
-     * Creates OTU port description based on the supplied information.
-     *
-     * @param number        port number
-     * @param isEnabled     port enabled state
-     * @param signalType    OTU signal type
-     * @param annotations   optional key/value annotations map
-     */
-    public OtuPortDescription(PortNumber number, boolean isEnabled, OtuSignalType signalType,
-            SparseAnnotations... annotations) {
-        super(number, isEnabled, Port.Type.OTU, 0, annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Creates OTU port description based on the supplied information.
-     *
-     * @param base          PortDescription to get basic information from
-     * @param signalType    OTU signal type
-     * @param annotations   optional key/value annotations map
-     */
-    public OtuPortDescription(PortDescription base, OtuSignalType signalType,
-            SparseAnnotations annotations) {
-        super(base, annotations);
-        this.signalType = signalType;
-    }
-
-    /**
-     * Returns OTU signal type.
-     *
-     * @return OTU signal type
-     */
-    public OtuSignalType signalType() {
-        return signalType;
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects.toStringHelper(getClass())
-                .add("number", portNumber())
-                .add("isEnabled", isEnabled())
-                .add("type", type())
-                .add("signalType", signalType)
-                .toString();
-    }
-
-}
\ No newline at end of file
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
index 6aa9733..30fae0b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/ECDeviceStore.java
@@ -42,9 +42,6 @@
 import org.onosproject.net.Device.Type;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.MastershipRole;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OduCltPort;
-import org.onosproject.net.OmsPort;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DefaultPortStatistics;
@@ -53,9 +50,6 @@
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceStore;
 import org.onosproject.net.device.DeviceStoreDelegate;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.device.PortStatistics;
 import org.onosproject.net.provider.ProviderId;
@@ -529,40 +523,8 @@
 
     private Port buildTypedPort(Device device, PortNumber number, boolean isEnabled,
             PortDescription description, Annotations annotations) {
-        // FIXME this switch need to go away once all ports are done.
-        switch (description.type()) {
-        case OMS:
-            if (description instanceof OmsPortDescription) {
-                // remove if-block once deprecation is complete
-                OmsPortDescription omsDesc = (OmsPortDescription) description;
-                return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(),
-                        omsDesc.maxFrequency(), omsDesc.grid(), annotations);
-            }
-            // same as default
-            return new DefaultPort(device, number, isEnabled, description.type(),
-                                   description.portSpeed(), annotations);
-        case OCH:
-            if (description instanceof OchPortDescription) {
-                // remove if-block once Och deprecation is complete
-                OchPortDescription ochDesc = (OchPortDescription) description;
-                return new OchPort(device, number, isEnabled, ochDesc.signalType(),
-                                   ochDesc.isTunable(), ochDesc.lambda(), annotations);
-            }
-            return new DefaultPort(device, number, isEnabled, description.type(),
-                                   description.portSpeed(), annotations);
-        case ODUCLT:
-            if (description instanceof OduCltPortDescription) {
-                // remove if-block once deprecation is complete
-                OduCltPortDescription oduDesc = (OduCltPortDescription) description;
-                return new OduCltPort(device, number, isEnabled, oduDesc.signalType(), annotations);
-            }
-            // same as default
-            return new DefaultPort(device, number, isEnabled, description.type(),
-                                   description.portSpeed(), annotations);
-        default:
             return new DefaultPort(device, number, isEnabled, description.type(),
                     description.portSpeed(), annotations);
-        }
     }
 
     @Override
diff --git a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
index 267ee48..eade6e0 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/device/impl/GossipDeviceStore.java
@@ -43,10 +43,6 @@
 import org.onosproject.net.Device.Type;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.MastershipRole;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OduCltPort;
-import org.onosproject.net.OmsPort;
-import org.onosproject.net.OtuPort;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DefaultPortStatistics;
@@ -55,10 +51,6 @@
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceStore;
 import org.onosproject.net.device.DeviceStoreDelegate;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
-import org.onosproject.net.device.OtuPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.device.PortStatistics;
 import org.onosproject.net.provider.ProviderId;
@@ -1205,49 +1197,8 @@
 
     private Port buildTypedPort(Device device, PortNumber number, boolean isEnabled,
                                  PortDescription description, Annotations annotations) {
-        // FIXME this switch need to go away once all ports are done.
-        switch (description.type()) {
-            case OMS:
-                if (description instanceof OmsPortDescription) {
-                    // remove if-block once deprecation is complete
-                    OmsPortDescription omsDesc = (OmsPortDescription) description;
-                    return new OmsPort(device, number, isEnabled, omsDesc.minFrequency(),
-                            omsDesc.maxFrequency(), omsDesc.grid(), annotations);
-                }
-                // same as default
-                return new DefaultPort(device, number, isEnabled, description.type(),
-                                       description.portSpeed(), annotations);
-            case OCH:
-                if (description instanceof OchPortDescription) {
-                    // remove if-block once Och deprecation is complete
-                    OchPortDescription ochDesc = (OchPortDescription) description;
-                    return new OchPort(device, number, isEnabled, ochDesc.signalType(),
-                                       ochDesc.isTunable(), ochDesc.lambda(), annotations);
-                }
-                return new DefaultPort(device, number, isEnabled, description.type(),
-                                       description.portSpeed(), annotations);
-            case ODUCLT:
-                if (description instanceof OduCltPortDescription) {
-                    // remove if-block once deprecation is complete
-                    OduCltPortDescription oduDesc = (OduCltPortDescription) description;
-                    return new OduCltPort(device, number, isEnabled, oduDesc.signalType(), annotations);
-                }
-                // same as default
-                return new DefaultPort(device, number, isEnabled, description.type(),
-                                       description.portSpeed(), annotations);
-            case OTU:
-                if (description instanceof OtuPortDescription) {
-                    // remove if-block once deprecation is complete
-                    OtuPortDescription otuDesc = (OtuPortDescription) description;
-                    return new OtuPort(device, number, isEnabled, otuDesc.signalType(), annotations);
-                }
-                // same as default
-                return new DefaultPort(device, number, isEnabled, description.type(),
-                                       description.portSpeed(), annotations);
-            default:
                 return new DefaultPort(device, number, isEnabled, description.type(),
                         description.portSpeed(), annotations);
-        }
     }
 
     /**
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index 8e599c5..d59b859 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -76,14 +76,10 @@
 import org.onosproject.net.Link;
 import org.onosproject.net.LinkKey;
 import org.onosproject.net.MarkerResource;
-import org.onosproject.net.OchPort;
 import org.onosproject.net.OchSignal;
 import org.onosproject.net.OchSignalType;
-import org.onosproject.net.OduCltPort;
 import org.onosproject.net.OduSignalId;
 import org.onosproject.net.OduSignalType;
-import org.onosproject.net.OmsPort;
-import org.onosproject.net.OtuPort;
 import org.onosproject.net.OtuSignalType;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
@@ -93,10 +89,6 @@
 import org.onosproject.net.device.DefaultDeviceDescription;
 import org.onosproject.net.device.DefaultPortDescription;
 import org.onosproject.net.device.DefaultPortStatistics;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
-import org.onosproject.net.device.OtuPortDescription;
 import org.onosproject.net.device.PortStatistics;
 import org.onosproject.net.domain.DomainIntent;
 import org.onosproject.net.flow.CompletedBatchOperation;
@@ -539,23 +531,15 @@
             .register(SetEvent.Type.class)
             .register(GroupId.class)
             .register(Annotations.class)
-            .register(OmsPort.class)
-            .register(OchPort.class)
             .register(OduSignalType.class)
             .register(OchSignalType.class)
             .register(GridType.class)
             .register(ChannelSpacing.class)
-            .register(OduCltPort.class)
             .register(CltSignalType.class)
             .register(OchSignal.class)
             .register(OduSignalId.class)
-            .register(OduCltPortDescription.class)
-            .register(OchPortDescription.class)
-            .register(OmsPortDescription.class)
             .register(TributarySlot.class)
-            .register(OtuPort.class)
             .register(OtuSignalType.class)
-            .register(OtuPortDescription.class)
             .register(
                     MplsIntent.class,
                     MplsPathIntent.class,
diff --git a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
index f68d0e0..bfe7815 100644
--- a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
+++ b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
@@ -34,7 +34,6 @@
 import org.onosproject.mastership.MastershipTerm;
 import org.onosproject.net.Annotations;
 import org.onosproject.net.ChannelSpacing;
-import org.onosproject.net.CltSignalType;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DefaultAnnotations;
 import org.onosproject.net.DefaultDevice;
@@ -47,14 +46,7 @@
 import org.onosproject.net.Link;
 import org.onosproject.net.LinkKey;
 import org.onosproject.net.MarkerResource;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OchSignal;
-import org.onosproject.net.OduCltPort;
-import org.onosproject.net.OmsPort;
-import org.onosproject.net.OtuPort;
-import org.onosproject.net.OtuSignalType;
 import org.onosproject.net.PortNumber;
-import org.onosproject.net.OduSignalType;
 import org.onosproject.net.SparseAnnotations;
 import org.onosproject.net.flow.DefaultFlowRule;
 import org.onosproject.net.flow.DefaultTrafficSelector;
@@ -106,7 +98,6 @@
     private static final String MFR = "whitebox";
     private static final String HW = "1.1.x";
     private static final String SW1 = "3.8.1";
-    private static final String SW2 = "3.9.5";
     private static final String SN = "43311-12345";
     private static final ChassisId CID = new ChassisId();
     private static final Device DEV1 = new DefaultDevice(PID, DID1, Device.Type.SWITCH, MFR, HW,
@@ -119,8 +110,6 @@
             .remove("A1")
             .set("B3", "b3")
             .build();
-    private static final OchSignal OCH_SIGNAL1 = (OchSignal) org.onosproject.net.Lambda.ochSignal(
-            GridType.DWDM, ChannelSpacing.CHL_100GHZ, -8, 4);
     private static final VlanId VLAN1 = VlanId.vlanId((short) 100);
 
     private StoreSerializer serializer;
@@ -187,31 +176,6 @@
     }
 
     @Test
-    public void testOmsPort() {
-        testSerializedEquals(new OmsPort(DEV1, P1, true, Frequency.ofGHz(190_100), Frequency.ofGHz(197_300),
-                Frequency.ofGHz(100)));
-        testSerializedEquals(new OmsPort(DEV1, P1, true, Frequency.ofGHz(190_100), Frequency.ofGHz(197_300),
-                Frequency.ofGHz(100), A1_2));
-    }
-
-    @Test
-    public void testOchPort() {
-        testSerializedEquals(new OchPort(DEV1, P1, true, OduSignalType.ODU0, false, OCH_SIGNAL1));
-        testSerializedEquals(new OchPort(DEV1, P1, true, OduSignalType.ODU0, false, OCH_SIGNAL1, A1_2));
-    }
-
-    @Test
-    public void testOduCltPort() {
-        testSerializedEquals(new OduCltPort(DEV1, P1, true, CltSignalType.CLT_10GBE));
-        testSerializedEquals(new OduCltPort(DEV1, P1, true, CltSignalType.CLT_10GBE, A1_2));
-    }
-
-    @Test
-    public void testOtuPort() {
-        testSerializedEquals(new OtuPort(DEV1, P1, true, OtuSignalType.OTU2));
-        testSerializedEquals(new OtuPort(DEV1, P1, true, OtuSignalType.OTU2, A1_2));
-    }
-    @Test
     public void testDeviceId() {
         testSerializedEquals(DID1);
     }
diff --git a/drivers/optical/src/main/java/org/onosproject/driver/optical/query/DefaultTributarySlotQuery.java b/drivers/optical/src/main/java/org/onosproject/driver/optical/query/DefaultTributarySlotQuery.java
index c424272..ef0fb7c 100644
--- a/drivers/optical/src/main/java/org/onosproject/driver/optical/query/DefaultTributarySlotQuery.java
+++ b/drivers/optical/src/main/java/org/onosproject/driver/optical/query/DefaultTributarySlotQuery.java
@@ -82,15 +82,9 @@
 
     private Set<TributarySlot> queryOchTributarySlots(Port ochPort) {
         OduSignalType signalType = null;
-        if (ochPort instanceof org.onosproject.net.OchPort) {
-            // remove once deprecation of old OchPort model is done
-            signalType = ((org.onosproject.net.OchPort) ochPort).signalType();
-        }
         if (ochPort instanceof OchPort) {
             signalType = ((OchPort) ochPort).signalType();
-        }
-
-        if (signalType == null) {
+        } else {
             log.warn("{} was not an OchPort", ochPort);
             return Collections.emptySet();
         }
@@ -108,15 +102,9 @@
 
     private Set<TributarySlot> queryOtuTributarySlots(Port otuPort) {
         OtuSignalType signalType = null;
-        if (otuPort instanceof org.onosproject.net.OtuPort) {
-            // remove once deprecation of old OtuPort model is done
-            signalType = ((org.onosproject.net.OtuPort) otuPort).signalType();
-        }
         if (otuPort instanceof OtuPort) {
             signalType = ((OtuPort) otuPort).signalType();
-        }
-
-        if (signalType == null) {
+        } else {
             log.warn("{} was not an OtuPort", otuPort);
             return Collections.emptySet();
         }
diff --git a/providers/pcep/BUCK b/providers/pcep/BUCK
index ce77c96..3d57719 100644
--- a/providers/pcep/BUCK
+++ b/providers/pcep/BUCK
@@ -14,6 +14,6 @@
     url = 'http://onosproject.org',
     included_bundles = BUNDLES,
     description = 'PCEP protocol providers root.',
-    required_apps = [ 'org.onosproject.pcep-api' ],
+    required_apps = [ 'org.onosproject.pcep-api', 'org.onosproject.optical-model' ],
 )
 
diff --git a/providers/pcep/topology/BUCK b/providers/pcep/topology/BUCK
index 5b5078d..6d4b0bd 100644
--- a/providers/pcep/topology/BUCK
+++ b/providers/pcep/topology/BUCK
@@ -7,6 +7,7 @@
     '//protocols/pcep/api:onos-protocols-pcep-api',
     '//protocols/pcep/pcepio:onos-protocols-pcep-pcepio',
     '//core/api:onos-api-tests',
+    '//apps/optical-model:onos-apps-optical-model',
 ]
 
 osgi_jar_with_tests (
diff --git a/providers/pcep/topology/pom.xml b/providers/pcep/topology/pom.xml
index cb108f2..0e3f12b 100644
--- a/providers/pcep/topology/pom.xml
+++ b/providers/pcep/topology/pom.xml
@@ -38,5 +38,10 @@
              <classifier>tests</classifier>
              <scope>test</scope>
         </dependency>
-    </dependencies>
+         <dependency>
+             <groupId>org.onosproject</groupId>
+             <artifactId>onos-optical-model</artifactId>
+             <version>${project.version}</version>
+         </dependency>
+     </dependencies>
 </project>
diff --git a/providers/pcep/topology/src/main/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProvider.java b/providers/pcep/topology/src/main/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProvider.java
index 9a445fb..6c305ca 100644
--- a/providers/pcep/topology/src/main/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProvider.java
+++ b/providers/pcep/topology/src/main/java/org/onosproject/provider/pcep/topology/impl/PcepTopologyProvider.java
@@ -26,14 +26,12 @@
 import org.onosproject.net.Device;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Link.Type;
+import org.onosproject.net.SparseAnnotations;
 import org.onosproject.net.config.ConfigFactory;
 import org.onosproject.net.config.NetworkConfigRegistry;
 import org.onosproject.net.config.NetworkConfigService;
 import org.onosproject.net.config.basics.SubjectFactories;
 import org.onosproject.net.MastershipRole;
-import org.onosproject.net.OchPort;
-import org.onosproject.net.OduCltPort;
-import org.onosproject.net.OmsPort;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.device.DefaultDeviceDescription;
@@ -43,9 +41,6 @@
 import org.onosproject.net.device.DeviceProviderRegistry;
 import org.onosproject.net.device.DeviceProviderService;
 import org.onosproject.net.device.DeviceService;
-import org.onosproject.net.device.OchPortDescription;
-import org.onosproject.net.device.OduCltPortDescription;
-import org.onosproject.net.device.OmsPortDescription;
 import org.onosproject.net.device.PortDescription;
 import org.onosproject.net.link.DefaultLinkDescription;
 import org.onosproject.net.link.LinkDescription;
@@ -58,7 +53,6 @@
 import org.onosproject.pcep.api.PcepController;
 import org.onosproject.pcep.api.PcepDpid;
 import org.onosproject.pcep.api.PcepLink;
-import org.onosproject.pcep.api.PcepLink.PortType;
 import org.onosproject.pcep.api.PcepLinkListener;
 import org.onosproject.pcep.api.PcepOperator.OperationType;
 import org.onosproject.pcep.api.PcepSwitch;
@@ -157,8 +151,7 @@
     }
 
     private List<PortDescription> buildPortDescriptions(PcepDpid dpid,
-                                                        Port port,
-                                                        PortType portType) {
+                                                        Port port) {
 
         List<PortDescription> portList;
 
@@ -167,41 +160,18 @@
         } else {
             portList = new ArrayList<>();
         }
-        if (port != null && portType != null) {
-            portList.add(buildPortDescription(port, portType));
+        if (port != null) {
+            SparseAnnotations annotations = DefaultAnnotations.builder()
+                    .putAll(port.annotations()).build();
+            portList.add(new DefaultPortDescription(port.number(), port.isEnabled(),
+                                                    port.type(), port.portSpeed(),
+                                                    annotations));
         }
 
         portMap.put(dpid.value(), portList);
         return portList;
     }
 
-    private PortDescription buildPortDescription(Port port, PortType portType) {
-        PortDescription portDescription;
-
-        switch (portType) {
-            case OCH_PORT:
-                OchPort ochp = (OchPort) port;
-                portDescription = new OchPortDescription(ochp.number(), ochp.isEnabled(),
-                        ochp.signalType(), ochp.isTunable(),
-                        ochp.lambda());
-                break;
-            case ODU_PORT:
-                OduCltPort odup = (OduCltPort) port;
-                portDescription = new OduCltPortDescription(odup.number(), odup.isEnabled(),
-                        odup.signalType());
-                break;
-            case OMS_PORT:
-                OmsPort op = (OmsPort) port;
-                portDescription = new OmsPortDescription(op.number(), op.isEnabled(), op.minFrequency(),
-                        op.maxFrequency(), op.grid());
-                break;
-            default:
-                portDescription = new DefaultPortDescription(port.number(), port.isEnabled());
-                break;
-        }
-        return portDescription;
-    }
-
     /**
      * Build a link description from a pcep link.
      *
@@ -217,12 +187,12 @@
         deviceProviderService
                 .updatePorts(srcDeviceID,
                         buildPortDescriptions(pceLink.linkSrcDeviceID(),
-                                pceLink.linkSrcPort(), pceLink.portType()));
+                                pceLink.linkSrcPort()));
 
         deviceProviderService
                 .updatePorts(dstDeviceID,
                         buildPortDescriptions(pceLink.linkDstDeviceId(),
-                                pceLink.linkDstPort(), pceLink.portType()));
+                                pceLink.linkDstPort()));
 
         ConnectPoint src = new ConnectPoint(srcDeviceID, pceLink.linkSrcPort().number());