SEBA-910 Implementation of Create/Remove TrafficSchedulers
fix formating issue and bump verison to 0.0.16-dev
Updated Makefile fix proto dependency
print in table format
resolve merge conflict with igmp file
bump to 0.0.18-dev
remove overriding onu port no
rebase and update
Change-Id: Ie0dce516a7044cd4ed1de7bafcdcd292e5daf689
diff --git a/internal/bbsim/devices/olt.go b/internal/bbsim/devices/olt.go
index 9acee9f..955d2ad 100644
--- a/internal/bbsim/devices/olt.go
+++ b/internal/bbsim/devices/olt.go
@@ -33,7 +33,7 @@
"github.com/opencord/bbsim/internal/common"
omcisim "github.com/opencord/omci-sim"
"github.com/opencord/voltha-protos/v2/go/openolt"
- "github.com/opencord/voltha-protos/v2/go/tech_profile"
+ tech_profile "github.com/opencord/voltha-protos/v2/go/tech_profile"
log "github.com/sirupsen/logrus"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
@@ -69,6 +69,7 @@
enableContextCancel context.CancelFunc
OpenoltStream *openolt.Openolt_EnableIndicationServer
+ enablePerf bool
}
var olt OltDevice
@@ -78,7 +79,7 @@
return &olt
}
-func CreateOLT(oltId int, nni int, pon int, onuPerPon int, sTag int, cTagInit int, auth bool, dhcp bool, delay int, ca string, isMock bool) *OltDevice {
+func CreateOLT(oltId int, nni int, pon int, onuPerPon int, sTag int, cTagInit int, auth bool, dhcp bool, delay int, ca string, enablePerf bool, isMock bool) *OltDevice {
oltLogger.WithFields(log.Fields{
"ID": oltId,
"NumNni": nni,
@@ -98,6 +99,7 @@
Pons: []*PonPort{},
Nnis: []*NniPort{},
Delay: delay,
+ enablePerf: enablePerf,
}
if val, ok := ControlledActivationModes[ca]; ok {
@@ -1069,13 +1071,49 @@
return new(openolt.Empty), nil
}
-func (s OltDevice) CreateTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*openolt.Empty, error) {
- oltLogger.Info("received CreateTrafficSchedulers")
+func (s OltDevice) CreateTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error) {
+ oltLogger.WithFields(log.Fields{
+ "OnuId": trafficSchedulers.OnuId,
+ "IntfId": trafficSchedulers.IntfId,
+ "OnuPortNo": trafficSchedulers.PortNo,
+ }).Info("received CreateTrafficSchedulers")
+
+ if !s.enablePerf {
+ pon, err := s.GetPonById(trafficSchedulers.IntfId)
+ if err != nil {
+ oltLogger.Errorf("Error retrieving PON by IntfId: %v", err)
+ return new(openolt.Empty), err
+ }
+ onu, err := pon.GetOnuById(trafficSchedulers.OnuId)
+ if err != nil {
+ oltLogger.Errorf("Error retrieving ONU from pon by OnuId: %v", err)
+ return new(openolt.Empty), err
+ }
+ onu.TrafficSchedulers = trafficSchedulers
+ }
return new(openolt.Empty), nil
}
-func (s OltDevice) RemoveTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*openolt.Empty, error) {
- oltLogger.Info("received RemoveTrafficSchedulers")
+func (s OltDevice) RemoveTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error) {
+ oltLogger.WithFields(log.Fields{
+ "OnuId": trafficSchedulers.OnuId,
+ "IntfId": trafficSchedulers.IntfId,
+ "OnuPortNo": trafficSchedulers.PortNo,
+ }).Info("received RemoveTrafficSchedulers")
+ if !s.enablePerf {
+ pon, err := s.GetPonById(trafficSchedulers.IntfId)
+ if err != nil {
+ oltLogger.Errorf("Error retrieving PON by IntfId: %v", err)
+ return new(openolt.Empty), err
+ }
+ onu, err := pon.GetOnuById(trafficSchedulers.OnuId)
+ if err != nil {
+ oltLogger.Errorf("Error retrieving ONU from pon by OnuId: %v", err)
+ return new(openolt.Empty), err
+ }
+
+ onu.TrafficSchedulers = nil
+ }
return new(openolt.Empty), nil
}