[VOL-3870] Support all the 5 tcont type
Change-Id: I55f88753d60f2b8f868331ea0b4c29bb11d57cd2
diff --git a/internal/pkg/core/openolt_flowmgr.go b/internal/pkg/core/openolt_flowmgr.go
index 15c7e9c..eb35925 100644
--- a/internal/pkg/core/openolt_flowmgr.go
+++ b/internal/pkg/core/openolt_flowmgr.go
@@ -22,6 +22,7 @@
"encoding/hex"
"errors"
"fmt"
+ "github.com/opencord/voltha-lib-go/v4/pkg/meters"
"strconv"
"strings"
"sync"
@@ -511,25 +512,15 @@
"flow-metadata": sq.flowMetadata,
"meter-id": sq.meterID,
"device-id": f.deviceHandler.device.Id}, nil)
- } else if len(meterInfo.MeterConfig.Bands) < MaxMeterBand {
- logger.Errorw(ctx, "invalid-number-of-bands-in-meter",
- log.Fields{"Bands": meterInfo.MeterConfig.Bands,
- "meter-id": sq.meterID,
- "device-id": f.deviceHandler.device.Id})
- return olterrors.NewErrInvalidValue(log.Fields{
- "reason": "Invalid-number-of-bands-in-meter",
- "meterband-count": len(meterInfo.MeterConfig.Bands),
- "metabands": meterInfo.MeterConfig.Bands,
- "meter-id": sq.meterID,
- "device-id": f.deviceHandler.device.Id}, nil)
}
- cir := meterInfo.MeterConfig.Bands[0].Rate
- cbs := meterInfo.MeterConfig.Bands[0].BurstSize
- eir := meterInfo.MeterConfig.Bands[1].Rate
- ebs := meterInfo.MeterConfig.Bands[1].BurstSize
- pir := cir + eir
- pbs := cbs + ebs
- TrafficShaping := &tp_pb.TrafficShapingInfo{Cir: cir, Cbs: cbs, Pir: pir, Pbs: pbs}
+
+ var TrafficShaping *tp_pb.TrafficShapingInfo
+ if TrafficShaping, err = meters.GetTrafficShapingInfo(ctx, &meterInfo.MeterConfig); err != nil {
+ return olterrors.NewErrInvalidValue(log.Fields{
+ "reason": "invalid-meter-config",
+ "meter-id": sq.meterID,
+ "device-id": f.deviceHandler.device.Id}, nil)
+ }
TrafficSched := []*tp_pb.TrafficScheduler{f.techprofile[sq.intfID].GetTrafficScheduler(sq.tpInst.(*tp.TechProfile), SchedCfg, TrafficShaping)}
TrafficSched[0].TechProfileId = sq.tpID