Renamed SDN-IP packages and classes.

The code use to use the name 'BgpRoute' in a number of places, which is not
descriptive and doesn't map to how we talk about SDN-IP (we always call it
SDN-IP in all other documents/presentations).

Details of changes are as follows:

net.onrc.onos.apps.bgproute -> net.onrc.onos.apps.sdnip
    BgpRoute.java -> SdnIp.java
    IBgpRouteService.java -> ISdnIpService.java

created new package for web classes: net.onrc.onos.apps.sdnip.web
    BgpRouteResource.java -> IncomingRequestResource.java
    BgpRouteResourceSynch.java -> OutgoingRequestResource.java
    BgpRouteWebRoutable.java -> SdnIpWebRoutable.java

Change-Id: Ie6b1cbe4e95736d4cbd53b9f4def7cc3e0b46132
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteWebRoutable.java b/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteWebRoutable.java
deleted file mode 100644
index 664bad4..0000000
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteWebRoutable.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.onrc.onos.apps.bgproute;
-
-import net.floodlightcontroller.restserver.RestletRoutable;
-
-import org.restlet.Context;
-import org.restlet.Restlet;
-import org.restlet.routing.Router;
-
-/**
- * REST URL router for SDN-IP REST calls.
- */
-public class BgpRouteWebRoutable implements RestletRoutable {
-    @Override
-    public Restlet getRestlet(Context context) {
-        Router router = new Router(context);
-        router.attach("/json", BgpRouteResource.class);
-        router.attach("/rib/{dest}", BgpRouteResource.class);
-        router.attach("/{sysuptime}/{sequence}/{routerid}/{prefix}/{mask}/{nexthop}", BgpRouteResource.class);
-        router.attach("/{routerid}/{prefix}/{mask}/{nexthop}/synch", BgpRouteResourceSynch.class);
-        router.attach("/{routerid}/{capability}", BgpRouteResource.class);
-        return router;
-    }
-
-    @Override
-    public String basePath() {
-        return "/wm/bgp";
-    }
-}
diff --git a/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java b/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
index 76243e9..6b84e45 100644
--- a/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
@@ -22,7 +22,7 @@
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.restserver.IRestApiService;
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.apps.bgproute.Interface;
+import net.onrc.onos.apps.sdnip.Interface;
 import net.onrc.onos.core.datagrid.IDatagridService;
 import net.onrc.onos.core.datagrid.IEventChannel;
 import net.onrc.onos.core.datagrid.IEventChannelListener;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpPeer.java b/src/main/java/net/onrc/onos/apps/sdnip/BgpPeer.java
similarity index 96%
rename from src/main/java/net/onrc/onos/apps/bgproute/BgpPeer.java
rename to src/main/java/net/onrc/onos/apps/sdnip/BgpPeer.java
index a535316..9c93d9e 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpPeer.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/BgpPeer.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.net.InetAddress;
 
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Configuration.java b/src/main/java/net/onrc/onos/apps/sdnip/Configuration.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/Configuration.java
rename to src/main/java/net/onrc/onos/apps/sdnip/Configuration.java
index ce97f50..28f195c 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Configuration.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/Configuration.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/FlowCache.java b/src/main/java/net/onrc/onos/apps/sdnip/FlowCache.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/FlowCache.java
rename to src/main/java/net/onrc/onos/apps/sdnip/FlowCache.java
index d5aff78..8c518d7 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/FlowCache.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/FlowCache.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.io.IOException;
 import java.util.ArrayList;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/IPatriciaTree.java b/src/main/java/net/onrc/onos/apps/sdnip/IPatriciaTree.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/IPatriciaTree.java
rename to src/main/java/net/onrc/onos/apps/sdnip/IPatriciaTree.java
index 1ef9eae..fa548b2 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/IPatriciaTree.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/IPatriciaTree.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.util.Iterator;
 
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/IBgpRouteService.java b/src/main/java/net/onrc/onos/apps/sdnip/ISdnIpService.java
similarity index 87%
rename from src/main/java/net/onrc/onos/apps/bgproute/IBgpRouteService.java
rename to src/main/java/net/onrc/onos/apps/sdnip/ISdnIpService.java
index effc81b..040afe6 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/IBgpRouteService.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/ISdnIpService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 
@@ -6,7 +6,7 @@
  * The API exported by the main SDN-IP class. This is the interface between the
  * REST handlers and the SDN-IP module.
  */
-public interface IBgpRouteService extends IFloodlightService {
+public interface ISdnIpService extends IFloodlightService {
 
     /**
      * Gets a reference to SDN-IP's PATRICIA tree which stores the route table.
@@ -39,7 +39,7 @@
     public void clearPtree();
 
     /**
-     * Pass a RIB update to the {@link IBgpRouteService}.
+     * Pass a RIB update to the {@link ISdnIpService}.
      *
      * @param update a {@link RibUpdate} object containing details of the
      * update
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Interface.java b/src/main/java/net/onrc/onos/apps/sdnip/Interface.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/Interface.java
rename to src/main/java/net/onrc/onos/apps/sdnip/Interface.java
index 4316bc0..15abb1f 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Interface.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/Interface.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.net.InetAddress;
 
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Path.java b/src/main/java/net/onrc/onos/apps/sdnip/Path.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/Path.java
rename to src/main/java/net/onrc/onos/apps/sdnip/Path.java
index c6f3539..7772775 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Path.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/Path.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.net.InetAddress;
 import java.util.Collections;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/PatriciaTree.java b/src/main/java/net/onrc/onos/apps/sdnip/PatriciaTree.java
similarity index 99%
rename from src/main/java/net/onrc/onos/apps/bgproute/PatriciaTree.java
rename to src/main/java/net/onrc/onos/apps/sdnip/PatriciaTree.java
index 3a6a46c..844ba35 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/PatriciaTree.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/PatriciaTree.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Prefix.java b/src/main/java/net/onrc/onos/apps/sdnip/Prefix.java
similarity index 99%
rename from src/main/java/net/onrc/onos/apps/bgproute/Prefix.java
rename to src/main/java/net/onrc/onos/apps/sdnip/Prefix.java
index 834ea29..91510b1 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Prefix.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/Prefix.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Ptree.java b/src/main/java/net/onrc/onos/apps/sdnip/Ptree.java
similarity index 99%
rename from src/main/java/net/onrc/onos/apps/bgproute/Ptree.java
rename to src/main/java/net/onrc/onos/apps/sdnip/Ptree.java
index 0f7d4a0..c99ea09 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Ptree.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/Ptree.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 /*
  * TODO This Ptree needs to be refactored if we're going to use it permenantly.
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/PtreeNode.java b/src/main/java/net/onrc/onos/apps/sdnip/PtreeNode.java
similarity index 96%
rename from src/main/java/net/onrc/onos/apps/bgproute/PtreeNode.java
rename to src/main/java/net/onrc/onos/apps/sdnip/PtreeNode.java
index 76c37d9..b54546c 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/PtreeNode.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/PtreeNode.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/PushedFlowMod.java b/src/main/java/net/onrc/onos/apps/sdnip/PushedFlowMod.java
similarity index 96%
rename from src/main/java/net/onrc/onos/apps/bgproute/PushedFlowMod.java
rename to src/main/java/net/onrc/onos/apps/sdnip/PushedFlowMod.java
index 137c22f..38ac37f 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/PushedFlowMod.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/PushedFlowMod.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import org.openflow.protocol.OFFlowMod;
 
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/RestClient.java b/src/main/java/net/onrc/onos/apps/sdnip/RestClient.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/RestClient.java
rename to src/main/java/net/onrc/onos/apps/sdnip/RestClient.java
index c7ff195..fe349d5 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/RestClient.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/RestClient.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.io.BufferedReader;
 import java.io.IOException;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/RibEntry.java b/src/main/java/net/onrc/onos/apps/sdnip/RibEntry.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/RibEntry.java
rename to src/main/java/net/onrc/onos/apps/sdnip/RibEntry.java
index 2392e01..47eca6b 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/RibEntry.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/RibEntry.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.net.InetAddress;
 
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/RibUpdate.java b/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
similarity index 97%
rename from src/main/java/net/onrc/onos/apps/bgproute/RibUpdate.java
rename to src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
index 3f74a08..0476979 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/RibUpdate.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/RibUpdate.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 /**
  * Represents a route update received from BGPd. An update has an operation
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java b/src/main/java/net/onrc/onos/apps/sdnip/SdnIp.java
similarity index 98%
rename from src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java
rename to src/main/java/net/onrc/onos/apps/sdnip/SdnIp.java
index ed70ae4..4e4e6fa 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/SdnIp.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import java.io.File;
 import java.io.IOException;
@@ -26,9 +26,10 @@
 import net.floodlightcontroller.core.util.SingletonTask;
 import net.floodlightcontroller.restserver.IRestApiService;
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.apps.bgproute.RibUpdate.Operation;
 import net.onrc.onos.apps.proxyarp.IArpRequester;
 import net.onrc.onos.apps.proxyarp.IProxyArpService;
+import net.onrc.onos.apps.sdnip.RibUpdate.Operation;
+import net.onrc.onos.apps.sdnip.web.SdnIpWebRoutable;
 import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LDUpdate;
 import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
 import net.onrc.onos.core.main.config.IConfigInfoService;
@@ -73,11 +74,11 @@
 import com.google.common.net.InetAddresses;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 
-public class BgpRoute implements IFloodlightModule, IBgpRouteService,
+public class SdnIp implements IFloodlightModule, ISdnIpService,
         IArpRequester,
         IOFSwitchListener, IConfigInfoService {
 
-    private static final Logger log = LoggerFactory.getLogger(BgpRoute.class);
+    private static final Logger log = LoggerFactory.getLogger(SdnIp.class);
 
     private IFloodlightProviderService floodlightProvider;
     private ILinkDiscoveryService linkDiscoveryService;
@@ -233,7 +234,7 @@
     public Collection<Class<? extends IFloodlightService>> getModuleServices() {
         Collection<Class<? extends IFloodlightService>> l
                 = new ArrayList<Class<? extends IFloodlightService>>();
-        l.add(IBgpRouteService.class);
+        l.add(ISdnIpService.class);
         l.add(IConfigInfoService.class);
         return l;
     }
@@ -242,7 +243,7 @@
     public Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls() {
         Map<Class<? extends IFloodlightService>, IFloodlightService> m
                 = new HashMap<Class<? extends IFloodlightService>, IFloodlightService>();
-        m.put(IBgpRouteService.class, this);
+        m.put(ISdnIpService.class, this);
         m.put(IConfigInfoService.class, this);
         return m;
     }
@@ -319,7 +320,7 @@
 
     @Override
     public void startUp(FloodlightModuleContext context) {
-        restApi.addRestletRoutable(new BgpRouteWebRoutable());
+        restApi.addRestletRoutable(new SdnIpWebRoutable());
         floodlightProvider.addOFSwitchListener(this);
 
         // Retrieve the RIB from BGPd during startup
@@ -1354,7 +1355,7 @@
 
     @Override
     public String getName() {
-        return "BgpRoute";
+        return "SdnIp";
     }
 
     /*
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResource.java b/src/main/java/net/onrc/onos/apps/sdnip/web/IncomingRequestResource.java
similarity index 85%
rename from src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResource.java
rename to src/main/java/net/onrc/onos/apps/sdnip/web/IncomingRequestResource.java
index 1b20449..705c5f1 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResource.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/web/IncomingRequestResource.java
@@ -1,8 +1,14 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip.web;
 
 import java.util.Iterator;
 
-import net.onrc.onos.apps.bgproute.RibUpdate.Operation;
+import net.onrc.onos.apps.sdnip.ISdnIpService;
+import net.onrc.onos.apps.sdnip.IPatriciaTree;
+import net.onrc.onos.apps.sdnip.Prefix;
+import net.onrc.onos.apps.sdnip.RestClient;
+import net.onrc.onos.apps.sdnip.RibEntry;
+import net.onrc.onos.apps.sdnip.RibUpdate;
+import net.onrc.onos.apps.sdnip.RibUpdate.Operation;
 
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
@@ -15,8 +21,8 @@
  * REST resource that handles REST calls from BGPd. This is the interface BGPd
  * uses to push RIB entries (routes) to SDN-IP.
  */
-public class BgpRouteResource extends ServerResource {
-    private static final Logger log = LoggerFactory.getLogger(BgpRouteResource.class);
+public class IncomingRequestResource extends ServerResource {
+    private static final Logger log = LoggerFactory.getLogger(IncomingRequestResource.class);
 
     /**
      * Gets the contents of SDN-IP's route table.
@@ -27,12 +33,12 @@
     public String handleGetMethod() {
         String dest = (String) getRequestAttributes().get("dest");
         StringBuilder output = new StringBuilder(80);
-        IBgpRouteService bgpRoute = (IBgpRouteService) getContext()
+        ISdnIpService sdnIp = (ISdnIpService) getContext()
                 .getAttributes().
-                get(IBgpRouteService.class.getCanonicalName());
+                get(ISdnIpService.class.getCanonicalName());
 
         if (dest == null) {
-            IPatriciaTree<RibEntry> ptree = bgpRoute.getPtree();
+            IPatriciaTree<RibEntry> ptree = sdnIp.getPtree();
             output.append("{\n  \"rib\": [\n");
             boolean printed = false;
 
@@ -61,7 +67,7 @@
 
             // the dest here refers to router-id
             // bgpdRestIp includes port number, such as 1.1.1.1:8080
-            String bgpdRestIp = bgpRoute.getBgpdRestIp();
+            String bgpdRestIp = sdnIp.getBgpdRestIp();
             String url = "http://" + bgpdRestIp + "/wm/bgp/" + dest;
 
             // Doesn't actually do anything with the response
@@ -81,9 +87,9 @@
      */
     @Post
     public String handlePostMethod() {
-        IBgpRouteService bgpRoute = (IBgpRouteService) getContext()
+        ISdnIpService sdnIp = (ISdnIpService) getContext()
                 .getAttributes().
-                get(IBgpRouteService.class.getCanonicalName());
+                get(ISdnIpService.class.getCanonicalName());
 
         String strSysuptime = (String) getRequestAttributes().get("sysuptime");
         String strSequence = (String) getRequestAttributes().get("sequence");
@@ -119,7 +125,7 @@
             RibEntry rib = new RibEntry(routerId, nexthop, sysUpTime,
                     sequenceNum);
 
-            bgpRoute.newRibUpdate(new RibUpdate(Operation.UPDATE, p, rib));
+            sdnIp.newRibUpdate(new RibUpdate(Operation.UPDATE, p, rib));
 
             reply = "[POST: " + prefix + "/" + mask + ":" + nexthop + "]";
             log.info(reply);
@@ -145,9 +151,9 @@
      */
     @Delete
     public String handleDeleteMethod() {
-        IBgpRouteService bgpRoute = (IBgpRouteService) getContext()
+        ISdnIpService sdnIp = (ISdnIpService) getContext()
                 .getAttributes().
-                get(IBgpRouteService.class.getCanonicalName());
+                get(ISdnIpService.class.getCanonicalName());
 
         String strSysuptime = (String) getRequestAttributes().get("sysuptime");
         String strSequence = (String) getRequestAttributes().get("sequence");
@@ -183,7 +189,7 @@
 
             RibEntry r = new RibEntry(routerId, nextHop, sysUpTime, sequenceNum);
 
-            bgpRoute.newRibUpdate(new RibUpdate(Operation.DELETE, p, r));
+            sdnIp.newRibUpdate(new RibUpdate(Operation.DELETE, p, r));
 
             replyStringBuilder.append("[DELE: ")
                 .append(prefix)
@@ -194,7 +200,7 @@
                 .append(']');
         } else {
             // clear the local rib: Ptree
-            bgpRoute.clearPtree();
+            sdnIp.clearPtree();
             replyStringBuilder.append("[DELE-capability: ")
                     .append(capability)
                     .append("; The local RibEntry is cleared!]\n");
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResourceSynch.java b/src/main/java/net/onrc/onos/apps/sdnip/web/OutgoingRequestResource.java
similarity index 78%
rename from src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResourceSynch.java
rename to src/main/java/net/onrc/onos/apps/sdnip/web/OutgoingRequestResource.java
index 6c46b71..772bf7d 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpRouteResourceSynch.java
+++ b/src/main/java/net/onrc/onos/apps/sdnip/web/OutgoingRequestResource.java
@@ -1,4 +1,7 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip.web;
+
+import net.onrc.onos.apps.sdnip.ISdnIpService;
+import net.onrc.onos.apps.sdnip.RestClient;
 
 import org.restlet.resource.Delete;
 import org.restlet.resource.Post;
@@ -13,8 +16,8 @@
  * not intended to be used during general operation. It is to have a way to
  * influence BGPd's behavior for debugging.
  */
-public class BgpRouteResourceSynch extends ServerResource {
-    private static final Logger log = LoggerFactory.getLogger(BgpRouteResourceSynch.class);
+public class OutgoingRequestResource extends ServerResource {
+    private static final Logger log = LoggerFactory.getLogger(OutgoingRequestResource.class);
 
     /**
      * Handles a REST call to SDN-IP which gives a command to send a new route
@@ -25,15 +28,15 @@
     @Post
     public String handlePostMethod() {
 
-        IBgpRouteService bgpRoute = (IBgpRouteService) getContext().getAttributes().
-                get(IBgpRouteService.class.getCanonicalName());
+        ISdnIpService sdnIp = (ISdnIpService) getContext().getAttributes().
+                get(ISdnIpService.class.getCanonicalName());
 
         String routerId = (String) getRequestAttributes().get("routerid");
         String prefix = (String) getRequestAttributes().get("prefix");
         String mask = (String) getRequestAttributes().get("mask");
         String nexthop = (String) getRequestAttributes().get("nexthop");
 
-        String bgpdRestIp = bgpRoute.getBgpdRestIp();
+        String bgpdRestIp = sdnIp.getBgpdRestIp();
 
         // bgpdRestIp includes port number, e.g. 1.1.1.1:8080
         RestClient.post("http://" + bgpdRestIp + "/wm/bgp/" + routerId + "/" + prefix + "/"
@@ -55,8 +58,8 @@
      */
     @Delete
     public String handleDeleteMethod() {
-        IBgpRouteService bgpRoute = (IBgpRouteService) getContext().getAttributes().
-                get(IBgpRouteService.class.getCanonicalName());
+        ISdnIpService sdnIp = (ISdnIpService) getContext().getAttributes().
+                get(ISdnIpService.class.getCanonicalName());
 
         String routerId = (String) getRequestAttributes().get("routerid");
         String prefix = (String) getRequestAttributes().get("prefix");
@@ -65,7 +68,7 @@
 
         StringBuilder reply = new StringBuilder();
 
-        String bgpdRestIp = bgpRoute.getBgpdRestIp();
+        String bgpdRestIp = sdnIp.getBgpdRestIp();
 
         RestClient.delete("http://" + bgpdRestIp + "/wm/bgp/" + routerId + "/" + prefix + "/"
                 + mask + "/" + nextHop);
diff --git a/src/main/java/net/onrc/onos/apps/sdnip/web/SdnIpWebRoutable.java b/src/main/java/net/onrc/onos/apps/sdnip/web/SdnIpWebRoutable.java
new file mode 100644
index 0000000..8994f18
--- /dev/null
+++ b/src/main/java/net/onrc/onos/apps/sdnip/web/SdnIpWebRoutable.java
@@ -0,0 +1,28 @@
+package net.onrc.onos.apps.sdnip.web;
+
+import net.floodlightcontroller.restserver.RestletRoutable;
+
+import org.restlet.Context;
+import org.restlet.Restlet;
+import org.restlet.routing.Router;
+
+/**
+ * REST URL router for SDN-IP REST calls.
+ */
+public class SdnIpWebRoutable implements RestletRoutable {
+    @Override
+    public Restlet getRestlet(Context context) {
+        Router router = new Router(context);
+        router.attach("/json", IncomingRequestResource.class);
+        router.attach("/rib/{dest}", IncomingRequestResource.class);
+        router.attach("/{sysuptime}/{sequence}/{routerid}/{prefix}/{mask}/{nexthop}", IncomingRequestResource.class);
+        router.attach("/{routerid}/{prefix}/{mask}/{nexthop}/synch", OutgoingRequestResource.class);
+        router.attach("/{routerid}/{capability}", IncomingRequestResource.class);
+        return router;
+    }
+
+    @Override
+    public String basePath() {
+        return "/wm/bgp";
+    }
+}
diff --git a/src/main/java/net/onrc/onos/core/main/config/DefaultConfiguration.java b/src/main/java/net/onrc/onos/core/main/config/DefaultConfiguration.java
index 7f09e31..13b9b53 100644
--- a/src/main/java/net/onrc/onos/core/main/config/DefaultConfiguration.java
+++ b/src/main/java/net/onrc/onos/core/main/config/DefaultConfiguration.java
@@ -11,7 +11,7 @@
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.apps.bgproute.Interface;
+import net.onrc.onos.apps.sdnip.Interface;
 
 import org.openflow.util.HexString;
 
diff --git a/src/main/java/net/onrc/onos/core/main/config/IConfigInfoService.java b/src/main/java/net/onrc/onos/core/main/config/IConfigInfoService.java
index 5c94626..000a6a1 100644
--- a/src/main/java/net/onrc/onos/core/main/config/IConfigInfoService.java
+++ b/src/main/java/net/onrc/onos/core/main/config/IConfigInfoService.java
@@ -4,7 +4,7 @@
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.apps.bgproute.Interface;
+import net.onrc.onos.apps.sdnip.Interface;
 
 /**
  * Provides information about the layer 3 properties of the network.
diff --git a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
index 83e6b68..3365c59 100644
--- a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
+++ b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
@@ -11,7 +11,7 @@
 net.floodlightcontroller.core.test.MockThreadPoolService
 net.onrc.onos.core.datagrid.HazelcastDatagrid
 net.onrc.onos.core.flowprogrammer.FlowProgrammer
-net.onrc.onos.apps.bgproute.BgpRoute
+net.onrc.onos.apps.sdnip.SdnIp
 net.onrc.onos.core.registry.ZookeeperRegistry
 net.onrc.onos.core.registry.StandaloneRegistry
 net.onrc.onos.apps.forwarding.Forwarding
diff --git a/src/test/java/net/onrc/onos/apps/bgproute/PatriciaTreeTest.java b/src/test/java/net/onrc/onos/apps/sdnip/PatriciaTreeTest.java
similarity index 99%
rename from src/test/java/net/onrc/onos/apps/bgproute/PatriciaTreeTest.java
rename to src/test/java/net/onrc/onos/apps/sdnip/PatriciaTreeTest.java
index ea4e600..686971e 100644
--- a/src/test/java/net/onrc/onos/apps/bgproute/PatriciaTreeTest.java
+++ b/src/test/java/net/onrc/onos/apps/sdnip/PatriciaTreeTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
diff --git a/src/test/java/net/onrc/onos/apps/bgproute/PrefixTest.java b/src/test/java/net/onrc/onos/apps/sdnip/PrefixTest.java
similarity index 98%
rename from src/test/java/net/onrc/onos/apps/bgproute/PrefixTest.java
rename to src/test/java/net/onrc/onos/apps/sdnip/PrefixTest.java
index 8c4b8d5..d1e5f9a 100644
--- a/src/test/java/net/onrc/onos/apps/bgproute/PrefixTest.java
+++ b/src/test/java/net/onrc/onos/apps/sdnip/PrefixTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
diff --git a/src/test/java/net/onrc/onos/apps/bgproute/PtreeTest.java b/src/test/java/net/onrc/onos/apps/sdnip/PtreeTest.java
similarity index 99%
rename from src/test/java/net/onrc/onos/apps/bgproute/PtreeTest.java
rename to src/test/java/net/onrc/onos/apps/sdnip/PtreeTest.java
index ab461f6..4fac2f2 100644
--- a/src/test/java/net/onrc/onos/apps/bgproute/PtreeTest.java
+++ b/src/test/java/net/onrc/onos/apps/sdnip/PtreeTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.apps.bgproute;
+package net.onrc.onos.apps.sdnip;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;