SPON-3043 [WIP] Added Reboot of device admin based on external (northbound) config requests
Change-Id: I0af1e3aa7fd73ddc537327e94894d4050683aa3a
diff --git a/internal/pkg/onuadaptercore/omci_cc.go b/internal/pkg/onuadaptercore/omci_cc.go
index 5b2b33e..04d8a39 100644
--- a/internal/pkg/onuadaptercore/omci_cc.go
+++ b/internal/pkg/onuadaptercore/omci_cc.go
@@ -25,7 +25,6 @@
"errors"
"strconv"
"sync"
-
//"time"
"github.com/google/gopacket"
@@ -581,6 +580,40 @@
return oo.Send(ctx, pkt, timeout, 0, highPrio, omciRxCallbackPair)
}
+func (oo *OmciCC) sendReboot(ctx context.Context, timeout int, highPrio bool, responseChannel chan Message) error {
+ logger.Debugw("send Reboot-msg to:", log.Fields{"deviceId": oo.deviceID})
+ request := &omci.RebootRequest{
+ MeBasePacket: omci.MeBasePacket{
+ EntityClass: me.OnuGClassID,
+ },
+ }
+ tid := oo.GetNextTid(highPrio)
+ pkt, err := serialize(omci.RebootRequestType, request, tid)
+ if err != nil {
+ logger.Errorw("Cannot serialize RebootRequest", log.Fields{
+ "Err": err, "deviceId": oo.deviceID})
+ return err
+ }
+ omciRxCallbackPair := CallbackPair{
+ cbKey: tid,
+ cbEntry: CallbackPairEntry{oo.pOnuDeviceEntry.omciRebootMessageReceivedChannel, oo.receiveOmciResponse},
+ }
+
+ err = oo.Send(ctx, pkt, timeout, 0, highPrio, omciRxCallbackPair)
+ if err != nil {
+ logger.Errorw("Cannot send RebootRequest", log.Fields{
+ "Err": err, "deviceId": oo.deviceID})
+ return err
+ }
+ err = oo.pOnuDeviceEntry.waitForRebootResponse(responseChannel)
+ if err != nil {
+ logger.Error("aborting ONU Reboot!")
+ oo.pOnuDeviceEntry.pMibDownloadFsm.pFsm.Event("reset")
+ return err
+ }
+ return nil
+}
+
func (oo *OmciCC) sendMibUpload(ctx context.Context, timeout int, highPrio bool) error {
logger.Debugw("send MibUpload-msg to:", log.Fields{"deviceId": oo.deviceID})
request := &omci.MibUploadRequest{