diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/Route.java b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/Route.java
index 0ae4952..31fe8b7 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/routing/Route.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/routing/Route.java
@@ -18,6 +18,7 @@
 
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
+import org.onosproject.cluster.NodeId;
 
 import java.util.Objects;
 
@@ -33,6 +34,8 @@
     private static final String VERSION_MISMATCH =
             "Prefix and next hop must be in the same address family";
 
+    private static final NodeId UNDEFINED = new NodeId("-");
+
     /**
      * Source of the route.
      */
@@ -61,15 +64,28 @@
     private final Source source;
     private final IpPrefix prefix;
     private final IpAddress nextHop;
+    private final NodeId sourceNode;
 
     /**
      * Creates a route.
      *
      * @param source route source
      * @param prefix IP prefix
-     * @param nextHop net hop IP address
+     * @param nextHop next hop IP address
      */
     public Route(Source source, IpPrefix prefix, IpAddress nextHop) {
+        this(source, prefix, nextHop, UNDEFINED);
+    }
+
+    /**
+     * Creates a route.
+     *
+     * @param source route source
+     * @param prefix IP prefix
+     * @param nextHop next hop IP address
+     * @param sourceNode ONOS node the route was sourced from
+     */
+    public Route(Source source, IpPrefix prefix, IpAddress nextHop, NodeId sourceNode) {
         checkNotNull(prefix);
         checkNotNull(nextHop);
         checkArgument(prefix.version().equals(nextHop.version()), VERSION_MISMATCH);
@@ -77,6 +93,7 @@
         this.source = checkNotNull(source);
         this.prefix = prefix;
         this.nextHop = nextHop;
+        this.sourceNode = checkNotNull(sourceNode);
     }
 
     /**
@@ -106,6 +123,15 @@
         return nextHop;
     }
 
+    /**
+     * Returns the ONOS node the route was sourced from.
+     *
+     * @return ONOS node ID
+     */
+    public NodeId sourceNode() {
+        return sourceNode;
+    }
+
     @Override
     public int hashCode() {
         return Objects.hash(prefix, nextHop);
