Adding ConnectPoint info to all the EAPOL logs and use standard form
devId/portNo for easier debugging

Change-Id: I95da74038738c6fd4f611bd2b1d233f7f213beb9
diff --git a/app/src/main/java/org/opencord/olt/impl/OltFlowService.java b/app/src/main/java/org/opencord/olt/impl/OltFlowService.java
index 6ae705a..58344e6 100644
--- a/app/src/main/java/org/opencord/olt/impl/OltFlowService.java
+++ b/app/src/main/java/org/opencord/olt/impl/OltFlowService.java
@@ -167,7 +167,6 @@
     protected ApplicationId appId;
     protected BaseInformationService<BandwidthProfileInformation> bpService;
     protected BaseInformationService<SubscriberAndDeviceInformation> subsService;
-    private Set<ConnectPoint> pendingAddEapol = Sets.newConcurrentHashSet();
     private Set<SubscriberFlowInfo> pendingEapolForMeters = Sets.newConcurrentHashSet();;
 
     @Activate
@@ -324,14 +323,14 @@
         FilteringObjective dhcpUpstream = dhcpUpstreamBuilder.add(new ObjectiveContext() {
             @Override
             public void onSuccess(Objective objective) {
-                log.info("DHCP {} filter for device {} on port {} {}.",
+                log.info("DHCP {} filter for dev/port {}/{} {}.",
                         (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6,
                         devId, port, (install) ? INSTALLED : REMOVED);
             }
 
             @Override
             public void onError(Objective objective, ObjectiveError error) {
-                log.info("DHCP {} filter for device {} on port {} failed {} because {}",
+                log.error("DHCP {} filter for dev/port {}/{} failed {} because {}",
                         (ethType.equals(EthType.EtherType.IPV4.ethType())) ? V4 : V6,
                         devId, port, (install) ? INSTALLATION : REMOVAL,
                         error);
@@ -406,13 +405,13 @@
                 .add(new ObjectiveContext() {
                     @Override
                     public void onSuccess(Objective objective) {
-                        log.info("Igmp filter for {} on {} {}.",
+                        log.info("Igmp filter for dev/port {}/{} {}.",
                                 devId, port, (install) ? INSTALLED : REMOVED);
                     }
 
                     @Override
                     public void onError(Objective objective, ObjectiveError error) {
-                        log.info("Igmp filter for {} on {} failed {} because {}.",
+                        log.error("Igmp filter for dev/port {}/{} failed {} because {}.",
                                 devId, port, (install) ? INSTALLATION : REMOVAL,
                                 error);
                     }
@@ -433,11 +432,12 @@
             }
             return;
         }
-
+        log.info("Processing EAPOL with Bandwidth profile {} on {}/{}", bpId,
+                 devId, portNumber);
         BandwidthProfileInformation bpInfo = getBandwidthProfileInformation(bpId);
         if (bpInfo == null) {
             log.warn("Bandwidth profile {} is not found. Authentication flow"
-                    + " will not be installed", bpId);
+                    + " will not be installed on {}/{}", bpId, devId, portNumber);
             if (filterFuture != null) {
                 filterFuture.complete(ObjectiveError.BADPARAMS);
             }
@@ -445,27 +445,15 @@
         }
 
         ConnectPoint cp = new ConnectPoint(devId, portNumber);
-        if (install) {
-            boolean added = pendingAddEapol.add(cp);
-            if (!added) {
-                if (filterFuture != null) {
-                    log.warn("The eapol flow is processing for the port {}. Ignoring this request", portNumber);
-                    filterFuture.complete(null);
-                }
-                return;
-            }
-            log.info("connectPoint added to pendingAddEapol map {}", cp.toString());
-        }
-
         DefaultFilteringObjective.Builder filterBuilder = DefaultFilteringObjective.builder();
         TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
         CompletableFuture<Object> meterFuture = new CompletableFuture<>();
-
         // check if meter exists and create it only for an install
         final MeterId meterId = oltMeterService.getMeterIdFromBpMapping(devId, bpInfo.id());
+        log.info("Meter id {} for Bandwidth profile {} associated to EAPOL on {}", meterId, bpInfo.id(), devId);
         if (meterId == null) {
             if (install) {
-                log.debug("Need to install meter for EAPOL with bwp {}", bpInfo.id());
+                log.debug("Need to install meter for EAPOL with bwp {} on dev/port {}", bpInfo.id(), cp.toString());
                 SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
                                                                new UniTagInformation.Builder()
                                                                        .setPonCTag(vlanId).build(),
@@ -486,7 +474,7 @@
                 // Nevertheless we can still delete the flow as we only need the
                 // correct 'match' to do so.
                 log.warn("Unknown meter id for bp {}, still proceeding with "
-                        + "delete of eapol flow for {}/{}", bpInfo.id(), devId, portNumber);
+                        + "delete of eapol flow for {}", bpInfo.id(), cp.toString());
                 SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
                                                                new UniTagInformation.Builder()
                                                                        .setPonCTag(vlanId).build(),
@@ -495,7 +483,7 @@
                 handleEapol(filterFuture, install, cp, filterBuilder, treatmentBuilder, fi, meterId);
             }
         } else {
-            log.debug("Meter {} was previously created for bp {}", meterId, bpInfo.id());
+            log.debug("Meter {} was previously created for bp {} on {}", meterId, bpInfo.id(), cp.toString());
             SubscriberFlowInfo fi = new SubscriberFlowInfo(devId, null, cp.port(),
                                                            new UniTagInformation.Builder()
                                                                    .setPonCTag(vlanId).build(),
@@ -507,19 +495,24 @@
         }
         meterFuture.thenAcceptAsync(result -> {
             //for each pending eapol flow we check if the meter is there.
+            //TODO possibly the iterator gets taken at time t0, while the sub is added at time t1
+            // and thus never considered
             Iterator<SubscriberFlowInfo> eapIterator = pendingEapolForMeters.iterator();
             while (eapIterator.hasNext()) {
                 SubscriberFlowInfo fi = eapIterator.next();
+                log.debug("handing pending eapol on {}/{} for {}", fi.getDevId(), fi.getUniPort(), fi);
                 if (result == null) {
                     MeterId mId = oltMeterService
                             .getMeterIdFromBpMapping(devId, fi.getUpBpInfo());
                     if (mId != null) {
+                        log.debug("Meter installation completed for subscriber on {}, handling EAPOL trap flow",
+                                cp.toString());
                         handleEapol(filterFuture, install, cp, filterBuilder, treatmentBuilder, fi, mId);
                         eapIterator.remove();
                     }
                 } else {
-                    log.warn("Meter installation error while sending eapol trap flow. " +
-                                     "Result {} and MeterId {}", result, meterId);
+                    log.warn("Meter installation error while sending EAPOL trap flow to {}. " +
+                                     "Result {} and MeterId {}", cp.toString(), result, meterId);
                     eapIterator.remove();
                 }
                 oltMeterService.removeFromPendingMeters(devId, bpInfo);
@@ -557,18 +550,17 @@
                 .add(new ObjectiveContext() {
                     @Override
                     public void onSuccess(Objective objective) {
-                        log.info("Eapol filter {} for {} on {} {} with meter {}.",
+                        log.info("Eapol filter {} for {} on {}/{} with meter {}.",
                                  objective.id(), fi.getDevId(), fi.getUniPort(),
                                  (install) ? INSTALLED : REMOVED, mId);
                         if (filterFuture != null) {
                             filterFuture.complete(null);
                         }
-                        pendingAddEapol.remove(cp);
                     }
 
                     @Override
                     public void onError(Objective objective, ObjectiveError error) {
-                        log.error("Eapol filter {} for {} on {} with meter {} " +
+                        log.error("Eapol filter {} for {}/{} with meter {} " +
                                          "failed {} because {}", objective.id(),
                                  fi.getDevId(), fi.getUniPort(), mId,
                                  (install) ? INSTALLATION : REMOVAL,
@@ -576,7 +568,6 @@
                         if (filterFuture != null) {
                             filterFuture.complete(error);
                         }
-                        pendingAddEapol.remove(cp);
                     }
                 });
         flowObjectiveService.filter(fi.getDevId(), eapol);
@@ -614,13 +605,13 @@
                 .add(new ObjectiveContext() {
                     @Override
                     public void onSuccess(Objective objective) {
-                        log.info("LLDP filter for device {} on port {} {}.",
+                        log.info("LLDP filter for dev/port {}/{} {}.",
                                 devId, port, (install) ? INSTALLED : REMOVED);
                     }
 
                     @Override
                     public void onError(Objective objective, ObjectiveError error) {
-                        log.info("LLDP filter for device {} on port {} failed {} because {}",
+                        log.error("LLDP filter for dev/port {}/{} failed {} because {}",
                                 devId, port, (install) ? INSTALLATION : REMOVAL,
                                 error);
                     }
@@ -751,8 +742,6 @@
     @Override
     public void clearDeviceState(DeviceId deviceId) {
         pendingEapolForMeters.removeIf(fi -> fi.getDevId().equals(deviceId));
-        pendingAddEapol.removeIf(connectPoint -> connectPoint.deviceId().equals(deviceId));
-
     }
 
     private DefaultForwardingObjective.Builder createForwardingObjectiveBuilder(TrafficSelector selector,