diff --git a/cli/src/main/java/org/onosproject/cli/net/RoutesListCommand.java b/cli/src/main/java/org/onosproject/cli/net/RoutesListCommand.java
index b4bbf94..cb96f4c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/RoutesListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/RoutesListCommand.java
@@ -20,6 +20,7 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.incubator.net.routing.Route;
 import org.onosproject.incubator.net.routing.RouteService;
@@ -35,6 +36,12 @@
         description = "Lists all routes in the route store")
 public class RoutesListCommand extends AbstractShellCommand {
 
+    @Option(name = "-s", aliases = "--summary",
+            description = "Show summary of routes")
+    private boolean summary = false;
+
+    private static final String FORMAT_SUMMARY =
+            "Number of routes in table %s: %s";
     private static final String FORMAT_HEADER =
         "   Network            Next Hop";
     private static final String FORMAT_ROUTE =
@@ -49,6 +56,20 @@
 
         Map<RouteTableId, Collection<Route>> allRoutes = service.getAllRoutes();
 
+        if (summary) {
+            if (outputJson()) {
+                ObjectMapper mapper = new ObjectMapper();
+                ObjectNode result = mapper.createObjectNode();
+                result.put("totalRoutes4", allRoutes.get(new RouteTableId("ipv4")).size());
+                result.put("totalRoutes6", allRoutes.get(new RouteTableId("ipv6")).size());
+                print("%s", result);
+            } else {
+                allRoutes.forEach((id, routes) -> print(FORMAT_SUMMARY, id, routes.size()));
+            }
+
+            return;
+        }
+
         if (outputJson()) {
             ObjectMapper mapper = new ObjectMapper();
             ObjectNode result = mapper.createObjectNode();
