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;
}
/**