VOL-4013: Delivery of correct ONU pm-data for UNI_Status
Change-Id: I286c10ef08f8dfd1273aef094cbce60ecc4ab879
diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index a8d67d6..466f383 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -749,7 +749,8 @@
case omci.MibUploadNextRequestType:
responsePkt, _ = omcilib.CreateMibUploadNextResponse(msg.OmciPkt, msg.OmciMsg, o.MibDataSync)
case omci.GetRequestType:
- responsePkt, _ = omcilib.CreateGetResponse(msg.OmciPkt, msg.OmciMsg, o.SerialNumber, o.MibDataSync, o.ActiveImageEntityId, o.CommittedImageEntityId)
+ onuDown := o.OperState.Current() == "down"
+ responsePkt, _ = omcilib.CreateGetResponse(msg.OmciPkt, msg.OmciMsg, o.SerialNumber, o.MibDataSync, o.ActiveImageEntityId, o.CommittedImageEntityId, onuDown)
case omci.SetRequestType:
success := true
msgObj, _ := omcilib.ParseSetRequest(msg.OmciPkt)
@@ -767,6 +768,23 @@
raiseOMCIAlarm := false
if adminState == 1 {
raiseOMCIAlarm = true
+ // set the OperState to disabled
+ if err := o.OperState.Event(OnuTxDisable); err != nil {
+ onuLogger.WithFields(log.Fields{
+ "OnuId": o.ID,
+ "IntfId": o.PonPortID,
+ "OnuSn": o.Sn(),
+ }).Errorf("Cannot change ONU OperState to down: %s", err.Error())
+ }
+ } else {
+ // set the OperState to enabled
+ if err := o.OperState.Event(OnuTxEnable); err != nil {
+ onuLogger.WithFields(log.Fields{
+ "OnuId": o.ID,
+ "IntfId": o.PonPortID,
+ "OnuSn": o.Sn(),
+ }).Errorf("Cannot change ONU OperState to up: %s", err.Error())
+ }
}
msg := bbsim.Message{
Type: bbsim.UniStatusAlarm,