kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2018-present Open Networking Foundation |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | |
| 17 | package org.opencord.aaa; |
| 18 | |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 19 | import com.google.common.base.MoreObjects; |
| 20 | import com.google.common.collect.ImmutableMap; |
| 21 | |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 22 | import java.util.Arrays; |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 23 | import java.util.LinkedList; |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 24 | import java.util.concurrent.atomic.AtomicLong; |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 25 | import java.util.stream.Stream; |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 26 | |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 27 | /** |
| 28 | * Records metrics for the AAA application. |
| 29 | */ |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 30 | public class AaaStatistics { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 31 | public static final String RADIUS_ACCEPT_RESPONSES_RX = "radiusAccessAcceptRx"; |
| 32 | public static final String RADIUS_REJECT_RESPONSES_RX = "radiusRejectResponsesRx"; |
| 33 | public static final String RADIUS_CHALLENGE_RESPONSES_RX = "radiusAccessChallengeRx"; |
| 34 | public static final String RADIUS_ACCESS_REQUESTS_TX = "radiusAccessRequestTx"; |
| 35 | public static final String RADIUS_ACCESS_REQUESTS_IDENTITY_TX = "radiusAccessRequestIdentityTx"; |
| 36 | public static final String RADIUS_ACCESS_REQUESTS_CHALLENGE_TX = "radiusAccessRequestChallengeTx"; |
| 37 | public static final String RADIUS_PENDING_REQUESTS = "radiusPendingRequests"; |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 38 | public static final String TIMED_OUT_PACKETS = "timedOutPackets"; |
| 39 | public static final String UNKNOWN_TYPE_RX = "unknownTypeRx"; |
| 40 | public static final String INVALID_VALIDATORS_RX = "invalidValidatorsRx"; |
| 41 | public static final String DROPPED_RESPONSES_RX = "droppedResponsesRx"; |
| 42 | public static final String MALFORMED_RESPONSES_RX = "malformedResponsesRx"; |
| 43 | public static final String UNKNOWN_SERVER_RX = "unknownServerRx"; |
| 44 | public static final String REQUEST_RTT_MILLIS = "requestRttMillis"; |
| 45 | public static final String REQUEST_RE_TX = "requestReTx"; |
| 46 | public static final String NUM_SESSIONS_EXPIRED = "numSessionsExpired"; |
| 47 | public static final String EAPOL_LOGOFF_RX = "eapolLogoffRx"; |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 48 | public static final String EAPOL_AUTH_SUCCESS_TX = "eapolAuthSuccessTx"; |
| 49 | public static final String EAPOL_AUTH_FAILURE_TX = "eapolAuthFailureTrans"; |
| 50 | public static final String EAPOL_START_REQ_RX = "eapolStartRequestRx"; |
| 51 | public static final String EAPOL_MD5_CHALLENGE_RESP_RX = "eapolMd5ChallengeResponseRx"; |
| 52 | public static final String EAPOL_TLS_CHALLENGE_RESP = "eapolTlsRespChallenge"; |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 53 | public static final String EAPOL_TRANS_RESP_NOT_NAK = "eapolTransRespNotNak"; |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 54 | public static final String EAPOL_CHALLENGE_REQ_TX = "eapolChallengeRequestTx"; |
| 55 | public static final String EAPOL_ID_RESP_FRAMES_RX = "eapolIdentityResponseRx"; |
| 56 | public static final String EAPOL_ID_MSG_RESP_TX = "eapolIdentityMsgResponseTx"; |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 57 | public static final String EAPOL_FRAMES_TX = "eapolFramesTx"; |
| 58 | public static final String AUTH_STATE_IDLE = "authStateIdle"; |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 59 | public static final String EAPOL_ID_REQUEST_FRAMES_TX = "eapolIdentityRequestTx"; |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 60 | public static final String EAPOL_REQUEST_FRAMES_TX = "eapolRequestAuthTx"; |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 61 | public static final String INVALID_PKT_TYPE = "invalidPktType"; |
| 62 | public static final String INVALID_BODY_LENGTH = "invalidBodyLength"; |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 63 | public static final String EAPOL_VALID_FRAMES_RX = "eapolValidFramesRx"; |
| 64 | public static final String EAPOL_PENDING_REQUESTS = "eapolPendingRequests"; |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 65 | |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 66 | // this are the stats that represent a successful EAPOL exchange |
| 67 | public static final String[] EAPOL_SM_NAMES = new String[]{ |
| 68 | EAPOL_START_REQ_RX, |
| 69 | |
| 70 | EAPOL_ID_REQUEST_FRAMES_TX, |
| 71 | EAPOL_ID_RESP_FRAMES_RX, |
| 72 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 73 | RADIUS_ACCESS_REQUESTS_IDENTITY_TX, |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 74 | RADIUS_CHALLENGE_RESPONSES_RX, |
| 75 | |
| 76 | EAPOL_CHALLENGE_REQ_TX, |
| 77 | EAPOL_MD5_CHALLENGE_RESP_RX, |
| 78 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 79 | RADIUS_ACCESS_REQUESTS_CHALLENGE_TX, |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 80 | RADIUS_ACCEPT_RESPONSES_RX, |
| 81 | |
| 82 | EAPOL_AUTH_SUCCESS_TX, |
| 83 | }; |
| 84 | |
| 85 | // all other EAPOL Stats |
| 86 | public static final String[] EAPOL_STATS_NAMES = new String[]{ |
| 87 | EAPOL_REQUEST_FRAMES_TX, |
| 88 | RADIUS_ACCESS_REQUESTS_TX, |
| 89 | RADIUS_REJECT_RESPONSES_RX, |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 90 | RADIUS_PENDING_REQUESTS, |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 91 | TIMED_OUT_PACKETS, |
| 92 | UNKNOWN_TYPE_RX, |
| 93 | INVALID_VALIDATORS_RX, |
| 94 | DROPPED_RESPONSES_RX, |
| 95 | MALFORMED_RESPONSES_RX, |
| 96 | UNKNOWN_SERVER_RX, |
| 97 | REQUEST_RTT_MILLIS, |
| 98 | REQUEST_RE_TX, |
| 99 | NUM_SESSIONS_EXPIRED, |
| 100 | EAPOL_LOGOFF_RX, |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 101 | EAPOL_AUTH_FAILURE_TX, |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 102 | EAPOL_TLS_CHALLENGE_RESP, |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 103 | EAPOL_TRANS_RESP_NOT_NAK, |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 104 | EAPOL_ID_MSG_RESP_TX, |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 105 | EAPOL_FRAMES_TX, |
| 106 | AUTH_STATE_IDLE, |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 107 | INVALID_PKT_TYPE, |
| 108 | INVALID_BODY_LENGTH, |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 109 | EAPOL_VALID_FRAMES_RX, |
| 110 | EAPOL_PENDING_REQUESTS, |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 111 | }; |
| 112 | |
Matteo Scandolo | e033c26 | 2020-10-14 11:37:39 -0700 | [diff] [blame] | 113 | public static final String[] COUNTER_NAMES = |
| 114 | Stream.concat(Arrays.stream(EAPOL_SM_NAMES), Arrays.stream(EAPOL_STATS_NAMES)) |
| 115 | .toArray(String[]::new); |
| 116 | |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 117 | // Number of access accept packets sent to the server |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 118 | private AtomicLong radiusAcceptResponsesRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 119 | // Number of access reject packets sent to the server |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 120 | private AtomicLong radiusRejectResponsesRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 121 | // Number of access challenge packets sent to the server |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 122 | private AtomicLong radiusChallengeResponsesRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 123 | // Number of access request packets sent to the server |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 124 | private AtomicLong radiusAccessRequestsTx = new AtomicLong(); |
| 125 | // Number of identity request packets sent to the server |
| 126 | private AtomicLong radiusAccessRequestsIdentityTx = new AtomicLong(); |
| 127 | // Number of challenge request packets sent to the server |
| 128 | private AtomicLong radiusAccessRequestsChallengeTx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 129 | // Number of access request packets pending a response from the server |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 130 | private AtomicLong radiusPendingRequests = new AtomicLong(); |
Shubham Sharma | 1e43c56 | 2019-06-19 14:18:12 +0000 | [diff] [blame] | 131 | // Number of packets send to the server which timed out. |
| 132 | private AtomicLong timedOutPackets = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 133 | // Number of packets of an unknown RADIUS type received from the accounting |
| 134 | // server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 135 | private AtomicLong unknownTypeRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 136 | // Number of access response packets received from the server with an invalid |
| 137 | // validator |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 138 | private AtomicLong invalidValidatorsRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 139 | // Number of dropped packets received from the accounting server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 140 | private AtomicLong droppedResponsesRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 141 | // Number of malformed access response packets received from the server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 142 | private AtomicLong malformedResponsesRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 143 | // Number of packets received from an unknown server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 144 | private AtomicLong unknownServerRx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 145 | // Roundtrip packet time to the accounting server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 146 | private AtomicLong requestRttMilis = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 147 | // Number of access request packets retransmitted to the server |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 148 | private AtomicLong requestReTx = new AtomicLong(); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 149 | // Number of sessions expired |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 150 | private AtomicLong numberOfSessionsExpired = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 151 | //Number of EAPOL logoff messages received resulting in disconnected state |
| 152 | private AtomicLong eapolLogoffRx = new AtomicLong(); |
| 153 | //Number of authenticated transitions due to successful authentication |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 154 | private AtomicLong eapolAuthSuccessTx = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 155 | //Number of transitions to held due to authentication failure |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 156 | private AtomicLong eapolAuthFailureTx = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 157 | //Number of transitions to connecting due to start request |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 158 | private AtomicLong eapolStartReqRx = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 159 | //MD5 Response Challenge |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 160 | private AtomicLong eapolMd5ChallRespRx = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 161 | //Tls Response Challenge |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 162 | private AtomicLong eapolTlsChallResp = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 163 | //Number of transitions to response (received response other that NAK) |
| 164 | private AtomicLong eapolTransRespNotNak = new AtomicLong(); |
| 165 | //Number of EAP request packets sent due to the authenticator choosing the EAP method |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 166 | private AtomicLong eapolChallengeReqTx = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 167 | //Attr Identity |
| 168 | private AtomicLong eapolAttrIdentity = new AtomicLong(); |
| 169 | //Number of authenticating transitions due to EAP response or identity message |
| 170 | private AtomicLong eapolResIdentityMsgTrans = new AtomicLong(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 171 | //Current number of EAPOL frames transmitted |
| 172 | private AtomicLong eapolFramesTx = new AtomicLong(); |
| 173 | //Authenticator state when idle |
| 174 | private AtomicLong authStateIdle = new AtomicLong(); |
| 175 | //Number of request ID EAP frames transmitted |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 176 | private AtomicLong eapolIdRequestFramesTx = new AtomicLong(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 177 | //Current number of request EAP frames transmitted |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 178 | private AtomicLong eapolReqFramesTx = new AtomicLong(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 179 | //Number of EAPOL frames received with invalid packet type |
| 180 | private AtomicLong invalidPktType = new AtomicLong(); |
| 181 | //Number of EAPOL frames received with invalid body length |
| 182 | private AtomicLong invalidBodyLength = new AtomicLong(); |
| 183 | //number of valid EAPOL frames received |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 184 | private AtomicLong eapolValidFramesRx = new AtomicLong(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 185 | //Number of request pending response from supplicant |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 186 | private AtomicLong eapolPendingReq = new AtomicLong(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 187 | |
| 188 | public Long getEapolResIdentityMsgTrans() { |
| 189 | return eapolResIdentityMsgTrans.get(); |
| 190 | } |
| 191 | |
| 192 | public Long getEapolattrIdentity() { |
| 193 | return eapolAttrIdentity.get(); |
| 194 | } |
| 195 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 196 | public Long getEapolChallengeReqTx() { |
| 197 | return eapolChallengeReqTx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 198 | } |
| 199 | |
| 200 | public Long getEapolTransRespNotNak() { |
| 201 | return eapolTransRespNotNak.get(); |
| 202 | } |
| 203 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 204 | public Long getEapolMd5ChallRespRx() { |
| 205 | return eapolMd5ChallRespRx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 206 | } |
| 207 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 208 | public Long getEapolTlsChallResp() { |
| 209 | return eapolTlsChallResp.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 210 | } |
| 211 | |
| 212 | public Long getEapolLogoffRx() { |
| 213 | return eapolLogoffRx.get(); |
| 214 | } |
| 215 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 216 | public Long getEapolAuthSuccessTx() { |
| 217 | return eapolAuthSuccessTx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 218 | } |
| 219 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 220 | public Long getEapolAuthFailureTx() { |
| 221 | return eapolAuthFailureTx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 222 | } |
| 223 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 224 | public Long getEapolStartReqRx() { |
| 225 | return eapolStartReqRx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 226 | } |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 227 | |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 228 | private LinkedList<Long> packetRoundTripTimeList = new LinkedList<Long>(); |
| 229 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 230 | public Long getEapolPendingReq() { |
| 231 | return eapolPendingReq.get(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 232 | } |
| 233 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 234 | public Long getEapolValidFramesRx() { |
| 235 | return eapolValidFramesRx.get(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 236 | } |
| 237 | |
| 238 | public Long getInvalidBodyLength() { |
| 239 | return invalidBodyLength.get(); |
| 240 | } |
| 241 | |
| 242 | public Long getInvalidPktType() { |
| 243 | return invalidPktType.get(); |
| 244 | } |
| 245 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 246 | public Long getEapolIdRequestFramesTx() { |
| 247 | return eapolIdRequestFramesTx.get(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 248 | } |
| 249 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 250 | public Long getEapolReqFramesTx() { |
| 251 | return eapolReqFramesTx.get(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 252 | } |
| 253 | |
| 254 | public Long getAuthStateIdle() { |
| 255 | return authStateIdle.get(); |
| 256 | } |
| 257 | |
| 258 | public Long getEapolFramesTx() { |
| 259 | return eapolFramesTx.get(); |
| 260 | } |
| 261 | |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 262 | public LinkedList<Long> getPacketRoundTripTimeList() { |
| 263 | return packetRoundTripTimeList; |
| 264 | } |
| 265 | |
| 266 | public int getPacketRoundTripTimeListSize() { |
| 267 | return packetRoundTripTimeList.size(); |
| 268 | } |
| 269 | |
| 270 | public void clearPacketRoundTripTimeList() { |
| 271 | packetRoundTripTimeList.clear(); |
| 272 | } |
| 273 | |
| 274 | public void getPacketRoundTripTimeListRemoveFirst() { |
| 275 | packetRoundTripTimeList.removeFirst(); |
| 276 | } |
| 277 | |
| 278 | public void getPacketRoundTripTimeListAdd(long time) { |
| 279 | packetRoundTripTimeList.add(time); |
| 280 | } |
| 281 | |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 282 | public Long getRequestReTx() { |
| 283 | return requestReTx.get(); |
| 284 | } |
| 285 | |
| 286 | public void setRequestRttMilis(AtomicLong requestRttMilis) { |
| 287 | this.requestRttMilis = requestRttMilis; |
| 288 | } |
| 289 | |
| 290 | public Long getUnknownServerRx() { |
| 291 | return unknownServerRx.get(); |
| 292 | } |
| 293 | |
| 294 | public Long getRequestRttMilis() { |
| 295 | return requestRttMilis.get(); |
| 296 | } |
| 297 | |
| 298 | public Long getMalformedResponsesRx() { |
| 299 | return malformedResponsesRx.get(); |
| 300 | } |
| 301 | |
| 302 | public Long getDroppedResponsesRx() { |
| 303 | return droppedResponsesRx.get(); |
| 304 | } |
| 305 | |
| 306 | public Long getInvalidValidatorsRx() { |
| 307 | return invalidValidatorsRx.get(); |
| 308 | } |
| 309 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 310 | public Long getRadiusAcceptResponsesRx() { |
| 311 | return radiusAcceptResponsesRx.get(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 312 | } |
| 313 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 314 | public Long getRadiusRejectResponsesRx() { |
| 315 | return radiusRejectResponsesRx.get(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 316 | } |
| 317 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 318 | public Long getRadiusChallengeResponsesRx() { |
| 319 | return radiusChallengeResponsesRx.get(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 320 | } |
| 321 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 322 | public Long getRadiusAccessRequestsTx() { |
| 323 | return radiusAccessRequestsTx.get(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 324 | } |
| 325 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 326 | public Long getRadiusPendingRequests() { |
| 327 | return radiusPendingRequests.get(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 328 | } |
| 329 | |
| 330 | public Long getUnknownTypeRx() { |
| 331 | return unknownTypeRx.get(); |
| 332 | } |
| 333 | |
| 334 | public void increaseAcceptResponsesRx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 335 | radiusAcceptResponsesRx.incrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 336 | } |
| 337 | |
| 338 | public void increaseRejectResponsesRx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 339 | radiusRejectResponsesRx.incrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 340 | } |
| 341 | |
| 342 | public void increaseChallengeResponsesRx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 343 | radiusChallengeResponsesRx.incrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 344 | } |
| 345 | |
| 346 | public void increaseAccessRequestsTx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 347 | radiusAccessRequestsTx.incrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 348 | } |
| 349 | |
| 350 | public void increaseRequestReTx() { |
| 351 | requestReTx.incrementAndGet(); |
| 352 | } |
| 353 | |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 354 | public void incrementInvalidPktType() { |
| 355 | invalidPktType.incrementAndGet(); |
| 356 | } |
| 357 | |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 358 | public void increaseOrDecreasePendingRequests(boolean isIncrement) { |
| 359 | if (isIncrement) { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 360 | radiusPendingRequests.incrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 361 | } else { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 362 | radiusPendingRequests.decrementAndGet(); |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 363 | } |
| 364 | } |
| 365 | |
| 366 | public void increaseUnknownTypeRx() { |
| 367 | unknownTypeRx.incrementAndGet(); |
| 368 | } |
| 369 | |
| 370 | public void increaseMalformedResponsesRx() { |
| 371 | malformedResponsesRx.incrementAndGet(); |
| 372 | } |
| 373 | |
| 374 | public void increaseInvalidValidatorsRx() { |
| 375 | invalidValidatorsRx.incrementAndGet(); |
| 376 | } |
| 377 | |
| 378 | public void incrementUnknownServerRx() { |
| 379 | unknownServerRx.incrementAndGet(); |
| 380 | } |
| 381 | |
| 382 | public void incrementNumberOfSessionsExpired() { |
| 383 | numberOfSessionsExpired.incrementAndGet(); |
| 384 | } |
| 385 | |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 386 | public void incrementEapolLogoffRx() { |
| 387 | eapolLogoffRx.incrementAndGet(); |
| 388 | } |
| 389 | |
| 390 | public void incrementEapolAuthSuccessTrans() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 391 | eapolAuthSuccessTx.incrementAndGet(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 392 | } |
| 393 | |
| 394 | public void incrementEapolauthFailureTrans() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 395 | eapolAuthFailureTx.incrementAndGet(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 396 | } |
| 397 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 398 | public void incrementEapolStartReqRx() { |
| 399 | eapolStartReqRx.incrementAndGet(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 400 | } |
| 401 | |
| 402 | public void incrementEapolMd5RspChall() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 403 | eapolMd5ChallRespRx.incrementAndGet(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 404 | } |
| 405 | |
| 406 | public void incrementEapolAtrrIdentity() { |
| 407 | eapolAttrIdentity.incrementAndGet(); |
| 408 | } |
| 409 | |
| 410 | public void incrementEapolTlsRespChall() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 411 | eapolTlsChallResp.incrementAndGet(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 412 | } |
| 413 | |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 414 | public void incrementEapolFramesTx() { |
| 415 | eapolFramesTx.incrementAndGet(); |
| 416 | } |
| 417 | |
| 418 | public void incrementAuthStateIdle() { |
| 419 | authStateIdle.incrementAndGet(); |
| 420 | } |
| 421 | |
| 422 | public void incrementRequestIdFramesTx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 423 | eapolIdRequestFramesTx.incrementAndGet(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 424 | } |
| 425 | |
| 426 | public void incrementInvalidBodyLength() { |
| 427 | invalidBodyLength.incrementAndGet(); |
| 428 | } |
| 429 | |
| 430 | public void incrementValidEapolFramesRx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 431 | eapolValidFramesRx.incrementAndGet(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 432 | } |
| 433 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 434 | public void incrementPendingReqSupp() { |
| 435 | eapolPendingReq.incrementAndGet(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 436 | } |
| 437 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 438 | public void decrementPendingReqSupp() { |
| 439 | eapolPendingReq.decrementAndGet(); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 440 | } |
| 441 | |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 442 | public void countDroppedResponsesRx() { |
| 443 | long numberOfDroppedPackets = invalidValidatorsRx.get(); |
| 444 | numberOfDroppedPackets += unknownTypeRx.get(); |
| 445 | numberOfDroppedPackets += malformedResponsesRx.get(); |
| 446 | numberOfDroppedPackets += numberOfSessionsExpired.get(); |
| 447 | this.droppedResponsesRx = new AtomicLong(numberOfDroppedPackets); |
| 448 | } |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 449 | |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 450 | public void countReqEapFramesTx() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 451 | long noReqEapFramesTx = eapolIdRequestFramesTx.get(); |
| 452 | noReqEapFramesTx += radiusChallengeResponsesRx.get(); |
| 453 | this.eapolReqFramesTx = new AtomicLong(noReqEapFramesTx); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 454 | } |
| 455 | |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 456 | public void resetAllCounters() { |
| 457 | clearPacketRoundTripTimeList(); |
| 458 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 459 | radiusAccessRequestsTx.set(0); |
| 460 | radiusAccessRequestsIdentityTx.set(0); |
| 461 | radiusAccessRequestsChallengeTx.set(0); |
| 462 | radiusAcceptResponsesRx.set(0); |
| 463 | radiusChallengeResponsesRx.set(0); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 464 | droppedResponsesRx.set(0); |
| 465 | invalidValidatorsRx.set(0); |
| 466 | malformedResponsesRx.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 467 | radiusPendingRequests.set(0); |
| 468 | radiusRejectResponsesRx.set(0); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 469 | requestReTx.set(0); |
| 470 | requestRttMilis.set(0); |
| 471 | unknownServerRx.set(0); |
| 472 | unknownTypeRx.set(0); |
Shubham Sharma | c7fbd9f | 2019-11-25 10:04:30 +0000 | [diff] [blame] | 473 | eapolLogoffRx.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 474 | eapolAuthSuccessTx.set(0); |
| 475 | eapolAuthFailureTx.set(0); |
| 476 | eapolStartReqRx.set(0); |
Shubham Sharma | c7fbd9f | 2019-11-25 10:04:30 +0000 | [diff] [blame] | 477 | eapolTransRespNotNak.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 478 | eapolChallengeReqTx.set(0); |
Shubham Sharma | c7fbd9f | 2019-11-25 10:04:30 +0000 | [diff] [blame] | 479 | eapolResIdentityMsgTrans.set(0); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 480 | eapolFramesTx.set(0); |
| 481 | authStateIdle.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 482 | eapolIdRequestFramesTx.set(0); |
| 483 | eapolReqFramesTx.set(0); |
Shubham Sharma | 3c8c702 | 2019-09-13 10:39:47 +0000 | [diff] [blame] | 484 | invalidPktType.set(0); |
| 485 | invalidBodyLength.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 486 | eapolValidFramesRx.set(0); |
| 487 | eapolPendingReq.set(0); |
Shubham Sharma | 3d54e63 | 2019-11-29 07:20:48 +0000 | [diff] [blame] | 488 | timedOutPackets.set(0); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 489 | eapolMd5ChallRespRx.set(0); |
| 490 | eapolTlsChallResp.set(0); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 491 | eapolAttrIdentity.set(0); |
Vijaykumar Kushwaha | a54ce55 | 2019-06-18 09:37:42 +0000 | [diff] [blame] | 492 | } |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 493 | |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 494 | public void countTransRespNotNak() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 495 | long eapolTransactionNotNak = eapolMd5ChallRespRx.get(); |
| 496 | eapolTransactionNotNak += eapolTlsChallResp.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 497 | this.eapolTransRespNotNak = new AtomicLong(eapolTransactionNotNak); |
| 498 | } |
| 499 | |
| 500 | public void countEapolResIdentityMsgTrans() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 501 | long authTransaction = eapolMd5ChallRespRx.get(); |
| 502 | authTransaction += eapolTlsChallResp.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 503 | authTransaction += eapolAttrIdentity.get(); |
| 504 | this.eapolResIdentityMsgTrans = new AtomicLong(authTransaction); |
| 505 | } |
| 506 | |
| 507 | public void incrementEapPktTxauthEap() { |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 508 | eapolChallengeReqTx.incrementAndGet(); |
| 509 | } |
| 510 | |
| 511 | public void incrementRadiusReqIdTx() { |
| 512 | radiusAccessRequestsIdentityTx.incrementAndGet(); |
| 513 | } |
| 514 | |
| 515 | public void incrementRadiusReqChallengeTx() { |
| 516 | radiusAccessRequestsChallengeTx.incrementAndGet(); |
| 517 | } |
| 518 | |
| 519 | public Long getRadiusReqIdTx() { |
| 520 | return radiusAccessRequestsIdentityTx.get(); |
| 521 | } |
| 522 | |
| 523 | public Long getRadiusReqChallengeTx() { |
| 524 | return radiusAccessRequestsChallengeTx.get(); |
Shubham Sharma | 1f19358 | 2019-07-11 12:12:41 +0000 | [diff] [blame] | 525 | } |
Shubham Sharma | 1e43c56 | 2019-06-19 14:18:12 +0000 | [diff] [blame] | 526 | |
| 527 | public long getTimedOutPackets() { |
| 528 | return timedOutPackets.get(); |
| 529 | } |
| 530 | |
| 531 | public void increaseTimedOutPackets() { |
| 532 | timedOutPackets.incrementAndGet(); |
| 533 | } |
| 534 | |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 535 | /** |
| 536 | * Creates a snapshot of the current values of the counters. |
| 537 | * |
| 538 | * @return statistics snapshot |
| 539 | */ |
| 540 | public AaaStatisticsSnapshot snapshot() { |
| 541 | ImmutableMap.Builder<String, Long> builder = ImmutableMap.builder(); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 542 | builder.put(RADIUS_ACCEPT_RESPONSES_RX, radiusAcceptResponsesRx.get()) |
| 543 | .put(RADIUS_REJECT_RESPONSES_RX, radiusRejectResponsesRx.get()) |
| 544 | .put(RADIUS_CHALLENGE_RESPONSES_RX, radiusChallengeResponsesRx.get()) |
| 545 | .put(RADIUS_ACCESS_REQUESTS_TX, radiusAccessRequestsTx.get()) |
| 546 | .put(RADIUS_ACCESS_REQUESTS_IDENTITY_TX, radiusAccessRequestsIdentityTx.get()) |
| 547 | .put(RADIUS_ACCESS_REQUESTS_CHALLENGE_TX, radiusAccessRequestsChallengeTx.get()) |
| 548 | .put(RADIUS_PENDING_REQUESTS, radiusPendingRequests.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 549 | .put(TIMED_OUT_PACKETS, timedOutPackets.get()) |
| 550 | .put(UNKNOWN_TYPE_RX, unknownTypeRx.get()) |
| 551 | .put(INVALID_VALIDATORS_RX, invalidValidatorsRx.get()) |
| 552 | .put(DROPPED_RESPONSES_RX, droppedResponsesRx.get()) |
| 553 | .put(MALFORMED_RESPONSES_RX, malformedResponsesRx.get()) |
| 554 | .put(UNKNOWN_SERVER_RX, unknownServerRx.get()) |
| 555 | .put(REQUEST_RTT_MILLIS, requestRttMilis.get()) |
| 556 | .put(REQUEST_RE_TX, requestReTx.get()) |
| 557 | .put(NUM_SESSIONS_EXPIRED, numberOfSessionsExpired.get()) |
| 558 | .put(EAPOL_LOGOFF_RX, eapolLogoffRx.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 559 | .put(EAPOL_AUTH_SUCCESS_TX, eapolAuthSuccessTx.get()) |
| 560 | .put(EAPOL_AUTH_FAILURE_TX, eapolAuthFailureTx.get()) |
| 561 | .put(EAPOL_START_REQ_RX, eapolStartReqRx.get()) |
| 562 | .put(EAPOL_MD5_CHALLENGE_RESP_RX, eapolMd5ChallRespRx.get()) |
| 563 | .put(EAPOL_TLS_CHALLENGE_RESP, eapolTlsChallResp.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 564 | .put(EAPOL_TRANS_RESP_NOT_NAK, eapolTransRespNotNak.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 565 | .put(EAPOL_CHALLENGE_REQ_TX, eapolChallengeReqTx.get()) |
| 566 | .put(EAPOL_ID_RESP_FRAMES_RX, eapolAttrIdentity.get()) |
| 567 | .put(EAPOL_ID_MSG_RESP_TX, eapolResIdentityMsgTrans.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 568 | .put(EAPOL_FRAMES_TX, eapolFramesTx.get()) |
| 569 | .put(AUTH_STATE_IDLE, authStateIdle.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 570 | .put(EAPOL_ID_REQUEST_FRAMES_TX, eapolIdRequestFramesTx.get()) |
| 571 | .put(EAPOL_REQUEST_FRAMES_TX, eapolReqFramesTx.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 572 | .put(INVALID_PKT_TYPE, invalidPktType.get()) |
| 573 | .put(INVALID_BODY_LENGTH, invalidBodyLength.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 574 | .put(EAPOL_VALID_FRAMES_RX, eapolValidFramesRx.get()) |
| 575 | .put(EAPOL_PENDING_REQUESTS, eapolPendingReq.get()); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 576 | |
| 577 | return new AaaStatisticsSnapshot(builder.build()); |
| 578 | } |
| 579 | |
| 580 | public static AaaStatistics fromSnapshot(AaaStatisticsSnapshot snapshot) { |
| 581 | AaaStatistics stats = new AaaStatistics(); |
| 582 | |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 583 | stats.radiusAcceptResponsesRx.set(snapshot.get(RADIUS_ACCEPT_RESPONSES_RX)); |
| 584 | stats.radiusRejectResponsesRx.set(snapshot.get(RADIUS_REJECT_RESPONSES_RX)); |
| 585 | stats.radiusChallengeResponsesRx.set(snapshot.get(RADIUS_CHALLENGE_RESPONSES_RX)); |
| 586 | stats.radiusAccessRequestsTx.set(snapshot.get(RADIUS_ACCESS_REQUESTS_TX)); |
| 587 | stats.radiusAccessRequestsIdentityTx.set(snapshot.get(RADIUS_ACCESS_REQUESTS_IDENTITY_TX)); |
| 588 | stats.radiusAccessRequestsChallengeTx.set(snapshot.get(RADIUS_ACCESS_REQUESTS_CHALLENGE_TX)); |
| 589 | stats.radiusPendingRequests.set(snapshot.get(RADIUS_PENDING_REQUESTS)); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 590 | stats.timedOutPackets.set(snapshot.get(TIMED_OUT_PACKETS)); |
| 591 | stats.unknownTypeRx.set(snapshot.get(UNKNOWN_TYPE_RX)); |
| 592 | stats.invalidValidatorsRx.set(snapshot.get(INVALID_VALIDATORS_RX)); |
| 593 | stats.droppedResponsesRx.set(snapshot.get(DROPPED_RESPONSES_RX)); |
| 594 | stats.malformedResponsesRx.set(snapshot.get(MALFORMED_RESPONSES_RX)); |
| 595 | stats.unknownServerRx.set(snapshot.get(UNKNOWN_SERVER_RX)); |
| 596 | stats.requestRttMilis.set(snapshot.get(REQUEST_RTT_MILLIS)); |
| 597 | stats.requestReTx.set(snapshot.get(REQUEST_RE_TX)); |
| 598 | stats.numberOfSessionsExpired.set(snapshot.get(NUM_SESSIONS_EXPIRED)); |
| 599 | stats.eapolLogoffRx.set(snapshot.get(EAPOL_LOGOFF_RX)); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 600 | stats.eapolAuthSuccessTx.set(snapshot.get(EAPOL_AUTH_SUCCESS_TX)); |
| 601 | stats.eapolAuthFailureTx.set(snapshot.get(EAPOL_AUTH_FAILURE_TX)); |
| 602 | stats.eapolStartReqRx.set(snapshot.get(EAPOL_START_REQ_RX)); |
| 603 | stats.eapolMd5ChallRespRx.set(snapshot.get(EAPOL_MD5_CHALLENGE_RESP_RX)); |
| 604 | stats.eapolTlsChallResp.set(snapshot.get(EAPOL_TLS_CHALLENGE_RESP)); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 605 | stats.eapolTransRespNotNak.set(snapshot.get(EAPOL_TRANS_RESP_NOT_NAK)); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 606 | stats.eapolChallengeReqTx.set(snapshot.get(EAPOL_CHALLENGE_REQ_TX)); |
| 607 | stats.eapolAttrIdentity.set(snapshot.get(EAPOL_ID_RESP_FRAMES_RX)); |
| 608 | stats.eapolResIdentityMsgTrans.set(snapshot.get(EAPOL_ID_MSG_RESP_TX)); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 609 | stats.eapolFramesTx.set(snapshot.get(EAPOL_FRAMES_TX)); |
| 610 | stats.authStateIdle.set(snapshot.get(AUTH_STATE_IDLE)); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 611 | stats.eapolIdRequestFramesTx.set(snapshot.get(EAPOL_ID_REQUEST_FRAMES_TX)); |
| 612 | stats.eapolReqFramesTx.set(snapshot.get(EAPOL_REQUEST_FRAMES_TX)); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 613 | stats.invalidPktType.set(snapshot.get(INVALID_PKT_TYPE)); |
| 614 | stats.invalidBodyLength.set(snapshot.get(INVALID_BODY_LENGTH)); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 615 | stats.eapolValidFramesRx.set(snapshot.get(EAPOL_VALID_FRAMES_RX)); |
| 616 | stats.eapolPendingReq.set(snapshot.get(EAPOL_PENDING_REQUESTS)); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 617 | |
| 618 | return stats; |
| 619 | } |
| 620 | |
| 621 | public String toString() { |
| 622 | MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this.getClass()); |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 623 | helper.add(RADIUS_ACCEPT_RESPONSES_RX, radiusAcceptResponsesRx.get()) |
| 624 | .add(RADIUS_REJECT_RESPONSES_RX, radiusRejectResponsesRx.get()) |
| 625 | .add(RADIUS_CHALLENGE_RESPONSES_RX, radiusChallengeResponsesRx.get()) |
| 626 | .add(RADIUS_ACCESS_REQUESTS_TX, radiusAccessRequestsTx.get()) |
| 627 | .add(RADIUS_ACCESS_REQUESTS_IDENTITY_TX, radiusAccessRequestsIdentityTx.get()) |
| 628 | .add(RADIUS_ACCESS_REQUESTS_CHALLENGE_TX, radiusAccessRequestsChallengeTx.get()) |
| 629 | .add(RADIUS_PENDING_REQUESTS, radiusPendingRequests.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 630 | .add(TIMED_OUT_PACKETS, timedOutPackets.get()) |
| 631 | .add(UNKNOWN_TYPE_RX, unknownTypeRx.get()) |
| 632 | .add(INVALID_VALIDATORS_RX, invalidValidatorsRx.get()) |
| 633 | .add(DROPPED_RESPONSES_RX, droppedResponsesRx.get()) |
| 634 | .add(MALFORMED_RESPONSES_RX, malformedResponsesRx.get()) |
| 635 | .add(UNKNOWN_SERVER_RX, unknownServerRx.get()) |
| 636 | .add(REQUEST_RTT_MILLIS, requestRttMilis.get()) |
| 637 | .add(REQUEST_RE_TX, requestReTx.get()) |
| 638 | .add(NUM_SESSIONS_EXPIRED, numberOfSessionsExpired.get()) |
| 639 | .add(EAPOL_LOGOFF_RX, eapolLogoffRx.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 640 | .add(EAPOL_AUTH_SUCCESS_TX, eapolAuthSuccessTx.get()) |
| 641 | .add(EAPOL_AUTH_FAILURE_TX, eapolAuthFailureTx.get()) |
| 642 | .add(EAPOL_START_REQ_RX, eapolStartReqRx.get()) |
| 643 | .add(EAPOL_MD5_CHALLENGE_RESP_RX, eapolMd5ChallRespRx.get()) |
| 644 | .add(EAPOL_TLS_CHALLENGE_RESP, eapolTlsChallResp.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 645 | .add(EAPOL_TRANS_RESP_NOT_NAK, eapolTransRespNotNak.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 646 | .add(EAPOL_CHALLENGE_REQ_TX, eapolChallengeReqTx.get()) |
| 647 | .add(EAPOL_ID_RESP_FRAMES_RX, eapolAttrIdentity.get()) |
| 648 | .add(EAPOL_ID_MSG_RESP_TX, eapolResIdentityMsgTrans.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 649 | .add(EAPOL_FRAMES_TX, eapolFramesTx.get()) |
| 650 | .add(AUTH_STATE_IDLE, authStateIdle.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 651 | .add(EAPOL_ID_REQUEST_FRAMES_TX, eapolIdRequestFramesTx.get()) |
| 652 | .add(EAPOL_REQUEST_FRAMES_TX, eapolReqFramesTx.get()) |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 653 | .add(INVALID_PKT_TYPE, invalidPktType.get()) |
| 654 | .add(INVALID_BODY_LENGTH, invalidBodyLength.get()) |
Andrea Campanella | 76ae68d | 2020-10-14 11:16:37 +0200 | [diff] [blame] | 655 | .add(EAPOL_VALID_FRAMES_RX, eapolValidFramesRx.get()) |
| 656 | .add(EAPOL_PENDING_REQUESTS, eapolPendingReq.get()); |
Jonathan Hart | c41227c | 2020-01-28 16:56:49 -0800 | [diff] [blame] | 657 | return helper.toString(); |
| 658 | } |
kartikey dubey | e154542 | 2019-05-22 12:53:45 +0000 | [diff] [blame] | 659 | } |