diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
index e4d85de..ffc0e4d 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
@@ -529,8 +529,8 @@
                                                 MacAddress mac, VlanId innerVlan,
                                                 VlanId outerVlan, EthType outerTpid,
                                                 IpAddress ip, boolean revoke) {
-        if (!srManager.handleDoubleTaggedHosts) {
-            log.debug("Ignore double tagged host {}/{}/{}", mac, outerVlan, innerVlan);
+        if (!srManager.routeDoubleTaggedHosts) {
+            log.debug("Routing for double tagged host is disabled. Ignore {}/{}/{}", mac, outerVlan, innerVlan);
             return;
         }
 
@@ -551,7 +551,7 @@
     }
 
     void populateAllDoubleTaggedHost() {
-        log.info("Populating all double tagged hosts");
+        log.info("Enabling routing for all double tagged hosts");
         Sets.newHashSet(srManager.hostService.getHosts()).stream().filter(this::isDoubleTaggedHost)
                 .forEach(h -> h.locations().forEach(l ->
                     h.ipAddresses().forEach(i ->
@@ -563,7 +563,7 @@
     }
 
     void revokeAllDoubleTaggedHost() {
-        log.info("Revoking all double tagged hosts");
+        log.info("Disabling routing for all double tagged hosts");
         Sets.newHashSet(srManager.hostService.getHosts()).stream().filter(this::isDoubleTaggedHost)
                 .forEach(h -> h.locations().forEach(l ->
                     h.ipAddresses().forEach(i ->
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index 5dc76bc..5905275 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -247,9 +247,9 @@
             label = "Enable this to respond to ARP/NDP requests from unknown hosts.")
     boolean respondToUnknownHosts = true;
 
-    @Property(name = "handleDoubleTaggedHosts", boolValue = false,
-            label = "Program flows and groups for double tagged hosts")
-    boolean handleDoubleTaggedHosts = false;
+    @Property(name = "routeDoubleTaggedHosts", boolValue = false,
+            label = "Program flows and groups to pop and route double tagged hosts")
+    boolean routeDoubleTaggedHosts = false;
 
     ArpHandler arpHandler = null;
     IcmpHandler icmpHandler = null;
@@ -634,13 +634,13 @@
             log.info("{} responding to ARPs/NDPs from unknown hosts", respondToUnknownHosts ? "Enabling" : "Disabling");
         }
 
-        String strHandleDoubleTaggedHosts = Tools.get(properties, "handleDoubleTaggedHosts");
-        boolean expectHandleDoubleTaggedHosts = Boolean.parseBoolean(strHandleDoubleTaggedHosts);
-        if (expectHandleDoubleTaggedHosts != handleDoubleTaggedHosts) {
-            handleDoubleTaggedHosts = expectHandleDoubleTaggedHosts;
-            log.info("{} programming for double tagged hosts ", handleDoubleTaggedHosts ? "Enabling" : "Disabling");
+        String strRouteDoubleTaggedHosts = Tools.get(properties, "routeDoubleTaggedHosts");
+        boolean expectRouteDoubleTaggedHosts = Boolean.parseBoolean(strRouteDoubleTaggedHosts);
+        if (expectRouteDoubleTaggedHosts != routeDoubleTaggedHosts) {
+            routeDoubleTaggedHosts = expectRouteDoubleTaggedHosts;
+            log.info("{} routing for double tagged hosts", routeDoubleTaggedHosts ? "Enabling" : "Disabling");
 
-            if (handleDoubleTaggedHosts) {
+            if (routeDoubleTaggedHosts) {
                 hostHandler.populateAllDoubleTaggedHost();
             } else {
                 hostHandler.revokeAllDoubleTaggedHost();
