Bugfix: Acknowledge to ETR only if want-map-notify is set to true

Change-Id: I684bc1f1a7958b9777f90fe512980523490598ac
diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispMapServer.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispMapServer.java
index ffabf79..8c2a7b7 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispMapServer.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispMapServer.java
@@ -83,26 +83,32 @@
             return null;
         }
 
-        NotifyBuilder notifyBuilder = new DefaultNotifyBuilder();
-        notifyBuilder.withKeyId(authConfig.lispAuthKeyId());
-        notifyBuilder.withAuthDataLength(valueOf(authConfig.lispAuthKeyId()).getHashLength());
-        notifyBuilder.withAuthKey(authConfig.lispAuthKey());
-        notifyBuilder.withNonce(register.getNonce());
-        notifyBuilder.withMapRecords(register.getMapRecords());
+        // we only acknowledge back to ETR when want-map-notify bit is set to true
+        // otherwise, we do not acknowledge back to ETR
+        if (register.isWantMapNotify()) {
+            NotifyBuilder notifyBuilder = new DefaultNotifyBuilder();
+            notifyBuilder.withKeyId(authConfig.lispAuthKeyId());
+            notifyBuilder.withAuthDataLength(valueOf(authConfig.lispAuthKeyId()).getHashLength());
+            notifyBuilder.withAuthKey(authConfig.lispAuthKey());
+            notifyBuilder.withNonce(register.getNonce());
+            notifyBuilder.withMapRecords(register.getMapRecords());
 
-        LispMapNotify notify = notifyBuilder.build();
+            LispMapNotify notify = notifyBuilder.build();
 
-        InetSocketAddress address =
-                new InetSocketAddress(register.getSender().getAddress(), MAP_NOTIFY_PORT);
-        notify.configSender(address);
+            InetSocketAddress address =
+                    new InetSocketAddress(register.getSender().getAddress(), MAP_NOTIFY_PORT);
+            notify.configSender(address);
 
-        register.getMapRecords().forEach(record -> {
-            LispEidRecord eidRecord =
-                    new LispEidRecord(record.getMaskLength(), record.getEidPrefixAfi());
-            eidRlocMap.insertMapRecord(eidRecord, record);
-        });
+            register.getMapRecords().forEach(record -> {
+                LispEidRecord eidRecord =
+                        new LispEidRecord(record.getMaskLength(), record.getEidPrefixAfi());
+                eidRlocMap.insertMapRecord(eidRecord, record);
+            });
 
-        return notify;
+            return notify;
+        }
+
+        return null;
     }
 
     /**