diff --git a/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java b/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
index ab1df5e24a2e5b59792d249aa69f1ffc7476b8c6..4a5a43d41ddef4d80fd1e6aa1e9470cbbf7a0791 100644
--- a/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
+++ b/src/main/java/net/floodlightcontroller/core/IFloodlightProviderService.java
@@ -191,5 +191,12 @@ public interface IFloodlightProviderService extends IFloodlightService {
     * @return
     */
    public Map<String, Object> getControllerInfo(String type);
+   
+   
+   /**
+    * Return the controller uptime in  milliseconds
+    * @return
+    */
+   public long getSystemUptime();
 
 }
diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 8b6f2464a894108acba358d009b2a3dc43714c3a..94b9b3cb072e44453d07ac505c8b9c87be31a361 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -174,6 +174,9 @@ public class Controller implements IFloodlightProviderService,
     // If the controller isn't configured to support roles, then this is null.
     protected Role role;
     
+    // Start time of the controller
+    protected long systemStartTime;
+    
     // Storage table names
     protected static final String CONTROLLER_TABLE_NAME = "controller_controller";
     protected static final String CONTROLLER_ID = "id";
@@ -1926,6 +1929,7 @@ public class Controller implements IFloodlightProviderService,
         setConfigParams(configParams);
         this.role = getInitialRole(configParams);
         initVendorMessages();
+        this.systemStartTime = System.currentTimeMillis();
     }
     
     /**
@@ -2096,4 +2100,11 @@ public class Controller implements IFloodlightProviderService,
         }
     }
 
+	@Override
+	public long getSystemUptime() {
+		return (System.currentTimeMillis() - this.systemStartTime);
+	}
+    
+    
+
 }
diff --git a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
index 009681fb4693fcb83a3292d1babe319058cb3778..45ef6e9978fdebf82e3476dd8dfe6b94552499b4 100644
--- a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
+++ b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
@@ -59,6 +59,7 @@ public class CoreWebRoutable implements RestletRoutable {
         router.attach("/controller/summary/json", ControllerSummaryResource.class);
         router.attach("/role/json", ControllerRoleResource.class);
         router.attach("/health/json", HealthCheckResource.class);
+        router.attach("/system/uptime/json", SystemUptimeResource.class);
         return router;
     }
 }
diff --git a/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java b/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java
new file mode 100644
index 0000000000000000000000000000000000000000..64b130f2d1777f9713db75650b1a721581527a81
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/web/SystemUptimeResource.java
@@ -0,0 +1,15 @@
+package net.floodlightcontroller.core.web;
+
+import net.floodlightcontroller.core.IFloodlightProviderService;
+import org.restlet.resource.Get;
+import org.restlet.resource.ServerResource;
+
+public class SystemUptimeResource extends ServerResource {
+	@Get("json")
+	public long retrieve() {
+		IFloodlightProviderService floodlightProvider = 
+			(IFloodlightProviderService)getContext().getAttributes().
+			get(IFloodlightProviderService.class.getCanonicalName());
+		return floodlightProvider.getSystemUptime();
+	}
+}
diff --git a/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java b/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
index aaa9be06c225dd565d7fe469f94c3ea73e274693..63c8899631f4e6de932c6fd9c76b7a2d191de242 100644
--- a/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
+++ b/src/test/java/net/floodlightcontroller/core/test/MockFloodlightProvider.java
@@ -291,4 +291,12 @@ public class MockFloodlightProvider implements IFloodlightModule, IFloodlightPro
 		// TODO Auto-generated method stub
 		return null;
 	}
+
+	@Override
+	public long getSystemUptime() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+	
+	
 }