diff --git a/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java b/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
index 6e0ab42..e46def2 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
@@ -15,13 +15,15 @@
  */
 package org.onosproject.net.device;
 
+import org.onosproject.net.AbstractAnnotated;
+import org.onosproject.net.Annotations;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 
 /**
  * Default implementation of immutable port statistics.
  */
-public final class DefaultPortStatistics implements PortStatistics {
+public final class DefaultPortStatistics extends AbstractAnnotated implements PortStatistics {
 
     private final DeviceId deviceId;
     private final PortNumber portNumber;
@@ -47,7 +49,9 @@
                                   long packetsRxErrors,
                                   long packetsTxErrors,
                                   long durationSec,
-                                  long durationNano) {
+                                  long durationNano,
+                                  Annotations annotations) {
+        super(annotations);
         this.deviceId = deviceId;
         this.portNumber = portNumber;
         this.packetsReceived = packetsReceived;
@@ -168,7 +172,8 @@
                 "pktRxErr: " + this.packetsRxErrors + ", " +
                 "pktTxErr: " + this.packetsTxErrors + ", " +
                 "pktRxDrp: " + this.packetsRxDropped + ", " +
-                "pktTxDrp: " + this.packetsTxDropped;
+                "pktTxDrp: " + this.packetsTxDropped + ", " +
+                "annotations: " + annotations();
     }
 
     public static final class Builder {
@@ -185,6 +190,7 @@
         long packetsTxErrors;
         long durationSec;
         long durationNano;
+        Annotations annotations;
 
         private Builder() {
 
@@ -349,6 +355,18 @@
         }
 
         /**
+         * Sets the annotations.
+         *
+         * @param anns annotations
+         * @return builder object
+         */
+        public Builder setAnnotations(Annotations anns) {
+            annotations = anns;
+
+            return this;
+        }
+
+        /**
          * Creates a PortStatistics object.
          *
          * @return DefaultPortStatistics object
@@ -366,7 +384,8 @@
                     packetsRxErrors,
                     packetsTxErrors,
                     durationSec,
-                    durationNano);
+                    durationNano,
+                    annotations);
         }
 
     }
