[VOL-4519] Add bbsimctl command to invalidate MDS count of an ONU
Change-Id: I8cdb6c0d5381b952a87e1d24d87cab81de0ddaf9
diff --git a/internal/bbsim/api/onus_handler.go b/internal/bbsim/api/onus_handler.go
index 8aef5e9..92ab912 100644
--- a/internal/bbsim/api/onus_handler.go
+++ b/internal/bbsim/api/onus_handler.go
@@ -19,9 +19,10 @@
import (
"context"
"fmt"
+ "strconv"
+
"github.com/opencord/bbsim/internal/bbsim/types"
"github.com/opencord/voltha-protos/v5/go/openolt"
- "strconv"
"github.com/opencord/bbsim/api/bbsim"
"github.com/opencord/bbsim/internal/bbsim/devices"
@@ -664,3 +665,28 @@
}
return &unis_ret, nil
}
+
+// Invalidate the MDS counter of the ONU
+func (s BBSimServer) InvalidateMds(ctx context.Context, req *bbsim.ONURequest) (*bbsim.Response, error) {
+ logger.WithFields(log.Fields{
+ "OnuSn": req.SerialNumber,
+ }).Infof("Received request to invalidate the MDS counter of the ONU")
+
+ res := &bbsim.Response{}
+ olt := devices.GetOLT()
+
+ onu, err := olt.FindOnuBySn(req.SerialNumber)
+ if err != nil {
+ res.StatusCode = int32(codes.NotFound)
+ res.Message = err.Error()
+ return res, err
+ }
+
+ previous := onu.MibDataSync
+ onu.InvalidateMibDataSync()
+
+ res.StatusCode = int32(codes.OK)
+ res.Message = fmt.Sprintf("MDS counter of ONU %s was %d, set to %d).", onu.Sn(), previous, onu.MibDataSync)
+
+ return res, nil
+}