diff --git a/main.go b/main.go
index 9c86008..a27fc01 100644
--- a/main.go
+++ b/main.go
@@ -123,6 +123,14 @@
 	prometheus.MustRegister(deviceTemperature)
 	prometheus.MustRegister(deviceTxPower)
 	prometheus.MustRegister(deviceVoltage)
+
+	prometheus.MustRegister(onosaaaRxEapolLogoff)
+	prometheus.MustRegister(onosaaaTxEapolResIdentityMsg)
+	prometheus.MustRegister(onosaaaTxAuthSuccess)
+	prometheus.MustRegister(onosaaaTxAuthFailure)
+	prometheus.MustRegister(onosaaaTxStartReq)
+	prometheus.MustRegister(onosaaaEapPktTxAuthChooseEap)
+	prometheus.MustRegister(onosaaaTxRespnotNak)
 }
 
 func loadConfigFile() Config {
diff --git a/topic-exporter.go b/topic-exporter.go
index f8d9d70..983f83a 100644
--- a/topic-exporter.go
+++ b/topic-exporter.go
@@ -304,6 +304,41 @@
 			Name: "device_voltage",
 			Help: "Device Voltage",
 	})
+	onosaaaRxEapolLogoff = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_rx_eapol_Logoff",
+			Help: "Number of EAPOL logoff messages received resulting in disconnected state",
+		})
+	onosaaaTxEapolResIdentityMsg = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_tx_eapol_Res_IdentityMsg",
+			Help: "Number of authenticating transitions due to EAP response or identity message",
+		})
+	onosaaaTxAuthSuccess = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_tx_auth_Success",
+			Help: "Number of authenticated transitions due to successful authentication",
+		})
+	onosaaaTxAuthFailure = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_tx_auth_Failure",
+			Help: "Number of transitions to held due to authentication failure",
+		})
+	onosaaaTxStartReq = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_tx_start_Req",
+			Help: "Number of transitions to connecting due to start request",
+		})
+	onosaaaEapPktTxAuthChooseEap = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_eap_Pkt_tx_auth_choosing_Eap",
+			Help: "Number of EAP request packets sent due to the authenticator choosing the EAP method",
+		})
+	onosaaaTxRespnotNak = prometheus.NewGauge(
+		prometheus.GaugeOpts{
+			Name: "onosaaa_tx_Resp_not_Nak",
+			Help: "Number of transitions to response (received response other that NAK)",
+		})
 )
 
 func exportVolthaKPI(kpi VolthaKPI) {
@@ -621,6 +656,20 @@
 	onosaaaRequestRttMillis.Set(kpi.RequestRttMillis)
 
 	onosaaaRequestReTx.Set(kpi.RequestReTx)
+
+	onosaaaRxEapolLogoff.Set(kpi.RxEapolLogoff)
+
+	onosaaaTxEapolResIdentityMsg.Set(kpi.TxEapolResIdentityMsg)
+
+	onosaaaTxAuthSuccess.Set(kpi.TxAuthSuccess)
+
+	onosaaaTxAuthFailure.Set(kpi.TxAuthFailure)
+
+	onosaaaTxStartReq.Set(kpi.TxStartReq)
+
+	onosaaaEapPktTxAuthChooseEap.Set(kpi.EapPktTxAuthChooseEap)
+
+	onosaaaTxRespnotNak.Set(kpi.TxResponseNotNak)
 }
 
 func exportOnosPppoeKPI(kpi OnosPppoeKPI) {
diff --git a/types.go b/types.go
index ece3953..368b710 100644
--- a/types.go
+++ b/types.go
@@ -120,18 +120,25 @@
 }
 
 type OnosAaaKPI struct {
-	RxAcceptResponses    float64 `json:"acceptResponsesRx"`
-	RxRejectResponses    float64 `json:"rejectResponsesRx"`
-	RxChallengeResponses float64 `json:"challengeResponsesRx"`
-	TxAccessRequests     float64 `json:"accessRequestsTx"`
-	RxInvalidValidators  float64 `json:"invalidValidatorsRx"`
-	RxUnknownType        float64 `json:"unknownTypeRx"`
-	PendingRequests      float64 `json:"pendingRequests"`
-	RxDroppedResponses   float64 `json:"droppedResponsesRx"`
-	RxMalformedResponses float64 `json:"malformedResponsesRx"`
-	RxUnknownserver      float64 `json:"unknownServerRx"`
-	RequestRttMillis     float64 `json:"requestRttMillis"`
-	RequestReTx          float64 `json:"requestReTx"`
+	RxAcceptResponses     float64 `json:"acceptResponsesRx"`
+	RxRejectResponses     float64 `json:"rejectResponsesRx"`
+	RxChallengeResponses  float64 `json:"challengeResponsesRx"`
+	TxAccessRequests      float64 `json:"accessRequestsTx"`
+	RxInvalidValidators   float64 `json:"invalidValidatorsRx"`
+	RxUnknownType         float64 `json:"unknownTypeRx"`
+	PendingRequests       float64 `json:"pendingRequests"`
+	RxDroppedResponses    float64 `json:"droppedResponsesRx"`
+	RxMalformedResponses  float64 `json:"malformedResponsesRx"`
+	RxUnknownserver       float64 `json:"unknownServerRx"`
+	RequestRttMillis      float64 `json:"requestRttMillis"`
+	RequestReTx           float64 `json:"requestReTx"`
+	RxEapolLogoff         float64 `json:"eapolLogoffRx"`
+	TxEapolResIdentityMsg float64 `json:"eapolResIdentityMsgTrans"`
+	TxAuthSuccess         float64 `json:"eapolAuthSuccessTrans"`
+	TxAuthFailure         float64 `json:"eapolAuthFailureTrans"`
+	TxStartReq            float64 `json:"eapolStartReqTrans"`
+	EapPktTxAuthChooseEap float64 `json:"eapPktTxauthChooseEap"`
+	TxResponseNotNak      float64 `json:"eapolTransRespNotNak"`
 }
 
 type OnosPppoeSubscriberKPI struct {
