[SEBA-34] Operational Status 802.1x Authenticator

Cherry-picked from aaa-1.10

Change-Id: I7a7da5a03d0b5c6cac8eb6c4edf027b1d02e26e8
diff --git a/api/src/main/java/org/opencord/aaa/AaaStatistics.java b/api/src/main/java/org/opencord/aaa/AaaStatistics.java
index e345a68..db21c02 100644
--- a/api/src/main/java/org/opencord/aaa/AaaStatistics.java
+++ b/api/src/main/java/org/opencord/aaa/AaaStatistics.java
@@ -70,6 +70,22 @@
     private AtomicLong eapolAttrIdentity = new AtomicLong();
     //Number of authenticating transitions due to EAP response or identity message
     private AtomicLong eapolResIdentityMsgTrans = new AtomicLong();
+    //Current number of EAPOL frames transmitted
+    private AtomicLong eapolFramesTx = new AtomicLong();
+    //Authenticator state when idle
+    private AtomicLong authStateIdle = new AtomicLong();
+    //Number of request ID EAP frames transmitted
+    private AtomicLong requestIdFramesTx = new AtomicLong();
+    //Current number of request EAP frames transmitted
+    private AtomicLong reqEapFramesTx = new AtomicLong();
+    //Number of EAPOL frames received with invalid packet type
+    private AtomicLong invalidPktType = new AtomicLong();
+    //Number of EAPOL frames received with invalid body length
+    private AtomicLong invalidBodyLength = new AtomicLong();
+    //number of valid EAPOL frames received
+    private AtomicLong validEapolFramesRx = new AtomicLong();
+    //Number of request pending response from supplicant
+    private AtomicLong pendingResSupp = new AtomicLong();
 
     public Long getEapolResIdentityMsgTrans() {
         return eapolResIdentityMsgTrans.get();
@@ -113,6 +129,38 @@
 
     private LinkedList<Long> packetRoundTripTimeList = new LinkedList<Long>();
 
+    public Long getPendingResSupp() {
+        return pendingResSupp.get();
+    }
+
+    public Long getValidEapolFramesRx() {
+        return validEapolFramesRx.get();
+    }
+
+    public Long getInvalidBodyLength() {
+        return invalidBodyLength.get();
+    }
+
+    public Long getInvalidPktType() {
+        return invalidPktType.get();
+    }
+
+    public Long getRequestIdFramesTx() {
+        return requestIdFramesTx.get();
+    }
+
+    public Long getReqEapFramesTx() {
+        return reqEapFramesTx.get();
+    }
+
+    public Long getAuthStateIdle() {
+        return authStateIdle.get();
+    }
+
+    public Long getEapolFramesTx() {
+        return eapolFramesTx.get();
+    }
+
     public LinkedList<Long> getPacketRoundTripTimeList() {
         return packetRoundTripTimeList;
     }
@@ -205,6 +253,10 @@
         requestReTx.incrementAndGet();
     }
 
+    public void incrementInvalidPktType() {
+        invalidPktType.incrementAndGet();
+    }
+
     public void increaseOrDecreasePendingRequests(boolean isIncrement) {
         if (isIncrement) {
             pendingRequests.incrementAndGet();
@@ -261,6 +313,34 @@
         eapolTlsRespChall.incrementAndGet();
     }
 
+    public void incrementEapolFramesTx() {
+        eapolFramesTx.incrementAndGet();
+    }
+
+    public void incrementAuthStateIdle() {
+        authStateIdle.incrementAndGet();
+    }
+
+    public void incrementRequestIdFramesTx() {
+        requestIdFramesTx.incrementAndGet();
+    }
+
+    public void incrementInvalidBodyLength() {
+        invalidBodyLength.incrementAndGet();
+    }
+
+    public void incrementValidEapolFramesRx() {
+        validEapolFramesRx.incrementAndGet();
+    }
+
+    public void incrementPendingResSupp() {
+        pendingResSupp.incrementAndGet();
+    }
+
+    public void decrementPendingResSupp() {
+        pendingResSupp.decrementAndGet();
+    }
+
     public void countDroppedResponsesRx() {
         long numberOfDroppedPackets = invalidValidatorsRx.get();
         numberOfDroppedPackets += unknownTypeRx.get();
@@ -269,6 +349,12 @@
         this.droppedResponsesRx = new AtomicLong(numberOfDroppedPackets);
     }
 
+    public void countReqEapFramesTx() {
+        long noReqEapFramesTx = requestIdFramesTx.get();
+        noReqEapFramesTx += challengeResponsesRx.get();
+        this.reqEapFramesTx = new AtomicLong(noReqEapFramesTx);
+    }
+
     public void resetAllCounters() {
         clearPacketRoundTripTimeList();
 
@@ -291,7 +377,14 @@
         eapolTransRespNotNak.set(0);
         eapPktTxauthChooseEap.set(0);
         eapolResIdentityMsgTrans.set(0);
-
+        eapolFramesTx.set(0);
+        authStateIdle.set(0);
+        requestIdFramesTx.set(0);
+        reqEapFramesTx.set(0);
+        invalidPktType.set(0);
+        invalidBodyLength.set(0);
+        validEapolFramesRx.set(0);
+        pendingResSupp.set(0);
     }
     public void countTransRespNotNak() {
         long eapolTransactionNotNak = eapolMd5RspChall.get();