[SEBA-35] Adding Stats for 802.1x Authentication

Cherry-picked from aaa-1.10.

Change-Id: I1befdc6d33afa0ca61f95068f48280df4be0bfff
diff --git a/api/src/main/java/org/opencord/aaa/AaaStatistics.java b/api/src/main/java/org/opencord/aaa/AaaStatistics.java
index 921de5f..e1d1485 100644
--- a/api/src/main/java/org/opencord/aaa/AaaStatistics.java
+++ b/api/src/main/java/org/opencord/aaa/AaaStatistics.java
@@ -48,6 +48,66 @@
     private AtomicLong requestReTx = new AtomicLong();
     // Number of sessions expired
     private AtomicLong numberOfSessionsExpired = new AtomicLong();
+    //Number of EAPOL logoff messages received resulting in disconnected state
+    private AtomicLong eapolLogoffRx = new AtomicLong();
+    //Number of authenticated transitions due to successful authentication
+    private AtomicLong eapolAuthSuccessTrans = new AtomicLong();
+    //Number of transitions to held due to authentication failure
+    private AtomicLong eapolAuthFailureTrans = new AtomicLong();
+    //Number of transitions to connecting due to start request
+    private AtomicLong eapolStartReqTrans = new AtomicLong();
+    //MD5 Response Challenge
+    private AtomicLong eapolMd5RspChall = new AtomicLong();
+    //Tls Response Challenge
+    private AtomicLong eapolTlsRespChall = new AtomicLong();
+    //Number of transitions to response (received response other that NAK)
+    private AtomicLong eapolTransRespNotNak = new AtomicLong();
+    //Number of EAP request packets sent due to the authenticator choosing the EAP method
+    private AtomicLong eapPktTxauthChooseEap = new AtomicLong();
+    //Attr Identity
+    private AtomicLong eapolAttrIdentity = new AtomicLong();
+    //Number of authenticating transitions due to EAP response or identity message
+    private AtomicLong eapolResIdentityMsgTrans = new AtomicLong();
+
+    public Long getEapolResIdentityMsgTrans() {
+        return eapolResIdentityMsgTrans.get();
+    }
+
+    public Long getEapolattrIdentity() {
+        return eapolAttrIdentity.get();
+    }
+
+    public Long getEapPktTxauthChooseEap() {
+        return eapPktTxauthChooseEap.get();
+    }
+
+    public Long getEapolTransRespNotNak() {
+        return eapolTransRespNotNak.get();
+    }
+
+    public Long getEapolMd5RspChall() {
+        return eapolMd5RspChall.get();
+    }
+
+    public Long getEapolTlsRespChall() {
+        return eapolTlsRespChall.get();
+    }
+
+    public Long getEapolLogoffRx() {
+        return eapolLogoffRx.get();
+    }
+
+    public Long getEapolAuthSuccessTrans() {
+        return eapolAuthSuccessTrans.get();
+    }
+
+    public Long getEapolAuthFailureTrans() {
+        return eapolAuthFailureTrans.get();
+    }
+
+    public Long getEapolStartReqTrans() {
+        return eapolStartReqTrans.get();
+    }
 
     private LinkedList<Long> packetRoundTripTimeList = new LinkedList<Long>();
 
@@ -171,6 +231,34 @@
         numberOfSessionsExpired.incrementAndGet();
     }
 
+    public void incrementEapolLogoffRx() {
+        eapolLogoffRx.incrementAndGet();
+    }
+
+    public void incrementEapolAuthSuccessTrans() {
+        eapolAuthSuccessTrans.incrementAndGet();
+    }
+
+    public void incrementEapolauthFailureTrans() {
+        eapolAuthFailureTrans.incrementAndGet();
+    }
+
+    public void incrementEapolStartReqTrans() {
+        eapolStartReqTrans.incrementAndGet();
+    }
+
+    public void incrementEapolMd5RspChall() {
+        eapolMd5RspChall.incrementAndGet();
+    }
+
+    public void incrementEapolAtrrIdentity() {
+        eapolAttrIdentity.incrementAndGet();
+    }
+
+    public void incrementEapolTlsRespChall() {
+        eapolTlsRespChall.incrementAndGet();
+    }
+
     public void countDroppedResponsesRx() {
         long numberOfDroppedPackets = invalidValidatorsRx.get();
         numberOfDroppedPackets += unknownTypeRx.get();
@@ -195,4 +283,20 @@
         unknownServerRx.set(0);
         unknownTypeRx.set(0);
     }
+    public void countTransRespNotNak() {
+        long eapolTransactionNotNak = eapolMd5RspChall.get();
+        eapolTransactionNotNak += eapolTlsRespChall.get();
+        this.eapolTransRespNotNak = new AtomicLong(eapolTransactionNotNak);
+    }
+
+    public void countEapolResIdentityMsgTrans() {
+        long authTransaction = eapolMd5RspChall.get();
+        authTransaction += eapolTlsRespChall.get();
+        authTransaction += eapolAttrIdentity.get();
+        this.eapolResIdentityMsgTrans = new AtomicLong(authTransaction);
+    }
+
+    public void incrementEapPktTxauthEap() {
+        eapPktTxauthChooseEap.incrementAndGet();
+    }
 }