[VOL-2702] : Fix Onu Down Indication

- A recent agent change assumed that BCMOLT_ONU_AUTO_SUBGROUP_ONU_DEACTIVATION_COMPLETED
  indication is received only on explicit ONU deactivation request from the application.
  But, this indication is also received in case of ONU reboot.

Change-Id: I53e63eadf762a1ef142987401be59ed9b8bc1895
diff --git a/VERSION b/VERSION
index cd57a8b..399088b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.1.5
+2.1.6
diff --git a/agent/src/indications.cc b/agent/src/indications.cc
index 0d643e0..7c1c90d 100644
--- a/agent/src/indications.cc
+++ b/agent/src/indications.cc
@@ -899,13 +899,13 @@
                     std::map<onu_deact_compltd_key,  Queue<onu_deactivate_complete_result> *>::iterator it = onu_deact_compltd_map.find(onu_key);
                     if (it == onu_deact_compltd_map.end()) {
                         // could be case of spurious aysnc response, OR, the application timed-out waiting for response and cleared the key.
-                        bcmolt_msg_free(msg);
+                        // OR most importantly, could be a case of ONU going down (reboot, PON cable plug-out) where
+                        // BCMOLT_ONU_AUTO_SUBGROUP_ONU_DEACTIVATION_COMPLETED is received without any explicit request from the application.
+                        // The application has to take care handling spurious indications.
                         OPENOLT_LOG(WARNING, openolt_log_id, "onu deactivate completed key not found for pon intf %u, onu_id %u\n",
                             key->pon_ni, key->onu_id);
-                        bcmos_fastlock_unlock(&onu_deactivate_wait_lock, 0);
-                        return;
                     }
-                    if (it->second) {
+                    else if (it->second) {
                         // Push the result
                         it->second->push(res);
                     }