diff --git a/providers/null/src/main/java/org/onosproject/provider/nil/cli/CreateNullHost.java b/providers/null/src/main/java/org/onosproject/provider/nil/cli/CreateNullHost.java
index 26bca8c..ee4c835 100644
--- a/providers/null/src/main/java/org/onosproject/provider/nil/cli/CreateNullHost.java
+++ b/providers/null/src/main/java/org/onosproject/provider/nil/cli/CreateNullHost.java
@@ -40,6 +40,8 @@
 @Command(scope = "onos", name = "null-create-host",
         description = "Adds a simulated end-station host to the custom topology simulation")
 public class CreateNullHost extends AbstractShellCommand {
+    private static final String GEO = "geo";
+    private static final String GRID = "grid";
 
     @Argument(index = 0, name = "deviceName", description = "Name of device where host is attached",
             required = true, multiValued = false)
@@ -49,13 +51,19 @@
             required = true, multiValued = false)
     String hostIp = null;
 
-    @Argument(index = 2, name = "latitude", description = "Geo latitude",
+    @Argument(index = 2, name = "latOrY",
+            description = "Geo latitude / Grid y-coord",
             required = true, multiValued = false)
-    Double latitude = null;
+    Double latOrY = null;
 
-    @Argument(index = 3, name = "longitude", description = "Geo longitude",
+    @Argument(index = 3, name = "longOrX",
+            description = "Geo longitude / Grid x-coord",
             required = true, multiValued = false)
-    Double longitude = null;
+    Double longOrX = null;
+
+    @Argument(index = 4, name = "locType", description = "Location type {geo|grid}",
+            required = false, multiValued = false)
+    String locType = GEO;
 
     @Override
     protected void execute() {
@@ -68,14 +76,25 @@
             return;
         }
 
+        if (!(GEO.equals(locType) || GRID.equals(locType))) {
+            error("locType must be 'geo' or 'grid'.");
+            return;
+        }
+
         CustomTopologySimulator sim = (CustomTopologySimulator) simulator;
         DeviceId deviceId = sim.deviceId(deviceName);
         HostId id = sim.nextHostId();
         HostLocation location = findAvailablePort(deviceId);
         BasicHostConfig cfg = cfgService.addConfig(id, BasicHostConfig.class);
-        cfg.latitude(latitude)
-                .longitude(longitude)
-                .apply();
+
+        cfg.locType(locType);
+
+        if (GEO.equals(locType)) {
+            cfg.latitude(latOrY).longitude(longOrX);
+        } else {
+            cfg.gridX(longOrX).gridY(latOrY);
+        }
+        cfg.apply();
 
         sim.createHost(id, location, IpAddress.valueOf(hostIp));
     }
