diff --git a/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java b/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
index 9074792..106c6c9 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
@@ -130,6 +130,7 @@
                 .add("uri", uri).add("type", type).add("mfr", manufacturer)
                 .add("hw", hwVersion).add("sw", swVersion)
                 .add("serial", serialNumber)
+                .add("annotations", annotations())
                 .toString();
     }
 
diff --git a/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java b/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
index cba1764..4252695 100644
--- a/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
@@ -68,7 +68,9 @@
         return MoreObjects.toStringHelper(this)
                 .add("src", src())
                 .add("dst", dst())
-                .add("type", type()).toString();
+                .add("type", type())
+                .add("annotations", annotations())
+                .toString();
     }
 
     @Override
diff --git a/core/api/src/test/java/org/onosproject/net/device/DefaultDeviceDescriptionTest.java b/core/api/src/test/java/org/onosproject/net/device/DefaultDeviceDescriptionTest.java
index c00a6de..7417f6b 100644
--- a/core/api/src/test/java/org/onosproject/net/device/DefaultDeviceDescriptionTest.java
+++ b/core/api/src/test/java/org/onosproject/net/device/DefaultDeviceDescriptionTest.java
@@ -17,6 +17,7 @@
 
 import org.junit.Test;
 import org.onlab.packet.ChassisId;
+import org.onosproject.net.DefaultAnnotations;
 
 import java.net.URI;
 
@@ -35,12 +36,13 @@
     private static final String SW = "3.9.1";
     private static final String SN = "43311-12345";
     private static final ChassisId CID = new ChassisId();
-
+    private static final DefaultAnnotations DA =
+            DefaultAnnotations.builder().set("Key", "Value").build();
 
     @Test
     public void basics() {
         DeviceDescription device =
-                new DefaultDeviceDescription(DURI, SWITCH, MFR, HW, SW, SN, CID);
+                new DefaultDeviceDescription(DURI, SWITCH, MFR, HW, SW, SN, CID, DA);
         assertEquals("incorrect uri", DURI, device.deviceUri());
         assertEquals("incorrect type", SWITCH, device.type());
         assertEquals("incorrect manufacturer", MFR, device.manufacturer());
@@ -49,6 +51,7 @@
         assertEquals("incorrect serial", SN, device.serialNumber());
         assertTrue("incorrect toString", device.toString().contains("uri=of:foo"));
         assertTrue("Incorrect chassis", device.chassisId().value() == 0);
+        assertTrue("incorrect annotatios", device.toString().contains("Key=Value"));
     }
 
 }
diff --git a/core/api/src/test/java/org/onosproject/net/link/DefaultLinkDescriptionTest.java b/core/api/src/test/java/org/onosproject/net/link/DefaultLinkDescriptionTest.java
index 3b98c5b..90b0459 100644
--- a/core/api/src/test/java/org/onosproject/net/link/DefaultLinkDescriptionTest.java
+++ b/core/api/src/test/java/org/onosproject/net/link/DefaultLinkDescriptionTest.java
@@ -16,10 +16,12 @@
 package org.onosproject.net.link;
 
 import org.junit.Test;
+import org.onosproject.net.DefaultAnnotations;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.onosproject.net.DefaultLinkTest.cp;
 import static org.onosproject.net.DeviceId.deviceId;
 import static org.onosproject.net.Link.Type.DIRECT;
@@ -33,13 +35,16 @@
     private static final DeviceId DID1 = deviceId("of:foo");
     private static final DeviceId DID2 = deviceId("of:bar");
     private static final PortNumber P1 = portNumber(1);
+    private static final DefaultAnnotations DA =
+            DefaultAnnotations.builder().set("Key", "Value").build();
 
     @Test
     public void basics() {
-        LinkDescription desc = new DefaultLinkDescription(cp(DID1, P1), cp(DID2, P1), DIRECT);
+        LinkDescription desc = new DefaultLinkDescription(cp(DID1, P1), cp(DID2, P1), DIRECT, DA);
         assertEquals("incorrect src", cp(DID1, P1), desc.src());
         assertEquals("incorrect dst", cp(DID2, P1), desc.dst());
         assertEquals("incorrect type", DIRECT, desc.type());
+        assertTrue("incorrect annotatios", desc.toString().contains("Key=Value"));
     }
 
 }
