[VOL-3745] Chaos Monkey: BBSIM-ONU does not respond to OMCI requests
Change-Id: I9d52a05657be448839f0a180126736ec9a33eaaf
diff --git a/internal/bbsim/devices/onu.go b/internal/bbsim/devices/onu.go
index 466f383..e2ed180 100644
--- a/internal/bbsim/devices/onu.go
+++ b/internal/bbsim/devices/onu.go
@@ -20,18 +20,20 @@
"context"
"encoding/hex"
"fmt"
+ "sync"
+
pb "github.com/opencord/bbsim/api/bbsim"
"github.com/opencord/bbsim/internal/bbsim/alarmsim"
- "sync"
+
+ "net"
+ "strconv"
+ "time"
"github.com/opencord/bbsim/internal/bbsim/packetHandlers"
"github.com/opencord/bbsim/internal/bbsim/responders/dhcp"
"github.com/opencord/bbsim/internal/bbsim/responders/eapol"
bbsim "github.com/opencord/bbsim/internal/bbsim/types"
me "github.com/opencord/omci-lib-go/generated"
- "net"
- "strconv"
- "time"
"github.com/google/gopacket/layers"
"github.com/jpillora/backoff"
@@ -49,6 +51,10 @@
})
const (
+ maxOmciMsgCounter = 10
+)
+
+const (
// ONU transitions
OnuTxInitialize = "initialize"
OnuTxDiscover = "discover"
@@ -118,6 +124,8 @@
ImageSoftwareReceivedSections int
ActiveImageEntityId uint16
CommittedImageEntityId uint16
+ OmciResponseRate uint8
+ OmciMsgCounter uint8
// OMCI params (Used in BBR)
tid uint16
@@ -153,6 +161,8 @@
ImageSoftwareReceivedSections: 0,
ActiveImageEntityId: 0, // when we start the SoftwareImage with ID 0 is active and committed
CommittedImageEntityId: 0,
+ OmciResponseRate: olt.OmciResponseRate,
+ OmciMsgCounter: 0,
}
o.SerialNumber = NewSN(olt.ID, pon.ID, id)
// NOTE this state machine is used to track the operational
@@ -732,6 +742,19 @@
"SerialNumber": o.Sn(),
}).Trace("omci-message-decoded")
+ if o.OmciMsgCounter < maxOmciMsgCounter {
+ o.OmciMsgCounter++
+ } else {
+ o.OmciMsgCounter = 1
+ }
+ if o.OmciMsgCounter > o.OmciResponseRate {
+ onuLogger.WithFields(log.Fields{
+ "OmciMsgCounter": o.OmciMsgCounter,
+ "OmciResponseRate": o.OmciResponseRate,
+ "omciMsgType": msg.OmciMsg.MessageType,
+ }).Debug("skip-omci-msg-response")
+ return
+ }
var responsePkt []byte
var errResp error
switch msg.OmciMsg.MessageType {