diff --git a/apps/routeradvertisement/BUCK b/apps/routeradvertisement/BUCK
index 9673f0c..d8bf7ec 100644
--- a/apps/routeradvertisement/BUCK
+++ b/apps/routeradvertisement/BUCK
@@ -1,6 +1,8 @@
 COMPILE_DEPS = [
     '//lib:CORE_DEPS',
-    '//incubator/api:onos-incubator-api'
+    '//incubator/api:onos-incubator-api',
+    '//lib:org.apache.karaf.shell.console',
+    '//cli:onos-cli'
 ]
 
 osgi_jar (
diff --git a/apps/routeradvertisement/pom.xml b/apps/routeradvertisement/pom.xml
index 432be7e..c1297c5 100644
--- a/apps/routeradvertisement/pom.xml
+++ b/apps/routeradvertisement/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  ~ Copyright 2015-present Open Networking Foundation
+  ~ Copyright 2017-present Open Networking Foundation
   ~ Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China
   ~ Advisers: Keqiu Li and Heng Qi
   ~ This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002)
@@ -66,6 +66,15 @@
             <artifactId>onlab-misc</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.console</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-cli</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/apps/routeradvertisement/src/main/java/org/onosproject/ra/RouterAdvertisementManager.java b/apps/routeradvertisement/src/main/java/org/onosproject/ra/RouterAdvertisementManager.java
index 1c08c07..5f31bdf 100644
--- a/apps/routeradvertisement/src/main/java/org/onosproject/ra/RouterAdvertisementManager.java
+++ b/apps/routeradvertisement/src/main/java/org/onosproject/ra/RouterAdvertisementManager.java
@@ -18,6 +18,7 @@
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Modified;
 import org.apache.felix.scr.annotations.Property;
@@ -87,12 +88,14 @@
 import static com.google.common.base.Strings.isNullOrEmpty;
 import static org.onlab.util.Tools.get;
 import static org.onlab.util.Tools.groupedThreads;
+import com.google.common.collect.ImmutableMap;
 
 /**
  * Manages IPv6 Router Advertisements.
  */
+@Service
 @Component(immediate = true)
-public class RouterAdvertisementManager {
+public class RouterAdvertisementManager implements RoutingAdvertisementService {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
     private static final String PROP_RA_THREADS_POOL = "raPoolSize";
@@ -160,6 +163,11 @@
     @GuardedBy(value = "this")
     private final Map<DeviceId, List<InterfaceIpAddress>> globalPrefixes = new LinkedHashMap<>();
 
+    @Override
+    public ImmutableMap<DeviceId, List<InterfaceIpAddress>> getGlobalPrefixes() {
+        return ImmutableMap.copyOf(globalPrefixes);
+    }
+
     private Function<Interface, Map.Entry<ConnectPoint, List<InterfaceIpAddress>>> prefixGenerator =
             i -> {
                 Map.Entry<ConnectPoint, List<InterfaceIpAddress>> prefixEntry;
diff --git a/apps/routeradvertisement/src/main/java/org/onosproject/ra/RoutingAdvertisementService.java b/apps/routeradvertisement/src/main/java/org/onosproject/ra/RoutingAdvertisementService.java
new file mode 100644
index 0000000..ad40fc1
--- /dev/null
+++ b/apps/routeradvertisement/src/main/java/org/onosproject/ra/RoutingAdvertisementService.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.ra;
+
+import java.util.List;
+
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.host.InterfaceIpAddress;
+
+import com.google.common.collect.ImmutableMap;
+
+public interface RoutingAdvertisementService {
+
+    /**
+     * Returns global prefixes.
+     *
+     * @return global prefixes
+     */
+    ImmutableMap<DeviceId, List<InterfaceIpAddress>> getGlobalPrefixes();
+}
+
diff --git a/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/GlobalPrefixesListCommand.java b/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/GlobalPrefixesListCommand.java
new file mode 100644
index 0000000..554db34
--- /dev/null
+++ b/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/GlobalPrefixesListCommand.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.ra.cli;
+
+import java.util.List;
+
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.host.InterfaceIpAddress;
+import org.onosproject.ra.RoutingAdvertisementService;
+import org.onosproject.cli.AbstractShellCommand;
+
+import org.apache.karaf.shell.commands.Command;
+
+import com.google.common.collect.ImmutableMap;
+
+/**
+ * Command to list global-prefixes in Routing Advertisement.
+ */
+@Command(scope = "onos", name = "ra-global-prefixes",
+        description = "List Routing Advertisement global prefixes")
+public class GlobalPrefixesListCommand extends AbstractShellCommand {
+
+    @Override
+    protected void execute() {
+        RoutingAdvertisementService raService =
+                AbstractShellCommand.get(RoutingAdvertisementService.class);
+        printGlobalPrefixes(raService.getGlobalPrefixes());
+    }
+
+    private void printGlobalPrefixes(ImmutableMap<DeviceId, List<InterfaceIpAddress>> globalPrefixes) {
+        globalPrefixes.forEach(((deviceId, interfaceIpAddresses) -> {
+            print("%s", deviceId);
+            interfaceIpAddresses.forEach(interfaceIpAddress -> print("    %s", interfaceIpAddress));
+        }));
+    }
+}
+
diff --git a/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/package-info.java b/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/package-info.java
new file mode 100644
index 0000000..26c7c48
--- /dev/null
+++ b/apps/routeradvertisement/src/main/java/org/onosproject/ra/cli/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Router Advertisement application CLI handlers.
+ */
+package org.onosproject.ra.cli;
diff --git a/apps/routeradvertisement/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/routeradvertisement/src/main/resources/OSGI-INF/blueprint/shell-config.xml
new file mode 100644
index 0000000..4e8b59e
--- /dev/null
+++ b/apps/routeradvertisement/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -0,0 +1,24 @@
+<!--
+  ~ Copyright 2017-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
+        <command>
+            <action class="org.onosproject.ra.cli.GlobalPrefixesListCommand"/>
+        </command>
+    </command-bundle>
+</blueprint>
+
