blob: d0b9708556c2df24a5088f697dd3ebca79c4b680 [file] [log] [blame]
/*
* Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Package mocks provides the mocks for openolt-adapter.
package mocks
import (
"context"
"github.com/opencord/voltha-lib-go/v7/pkg/db"
tp_pb "github.com/opencord/voltha-protos/v5/go/tech_profile"
)
// MockTechProfile mock struct for OpenoltClient.
type MockTechProfile struct {
TpID uint32
}
// SetKVClient to mock techprofile SetKVClient method
func (m MockTechProfile) SetKVClient(ctx context.Context, pathPrefix string) *db.Backend {
return &db.Backend{Client: &MockKVClient{}}
}
// CloseKVClient to mock techprofile CloseKVClient method
func (m MockTechProfile) CloseKVClient(ctx context.Context) {
}
// GetTPInstance to mock techprofile GetTPInstance method
func (m MockTechProfile) GetTPInstance(ctx context.Context, path string) (interface{}, error) {
logger.Debug(ctx, "GetTPInstanceFromKVStore")
var usGemPortAttributeList []*tp_pb.GemPortAttributes
var dsGemPortAttributeList []*tp_pb.GemPortAttributes
usGemPortAttributeList = append(usGemPortAttributeList, &tp_pb.GemPortAttributes{
GemportId: 1,
PbitMap: "0b11111111",
})
dsGemPortAttributeList = append(dsGemPortAttributeList, &tp_pb.GemPortAttributes{
GemportId: 1,
PbitMap: "0b11111111",
})
return &tp_pb.TechProfileInstance{
Name: "mock-tech-profile",
SubscriberIdentifier: "257",
ProfileType: "mock",
Version: 0,
NumGemPorts: 1,
InstanceControl: &tp_pb.InstanceControl{
Onu: "multi-instance",
Uni: "single-instance",
MaxGemPayloadSize: "",
},
UsScheduler: &tp_pb.SchedulerAttributes{
AllocId: 1,
Direction: tp_pb.Direction_UPSTREAM,
AdditionalBw: tp_pb.AdditionalBW_AdditionalBW_None,
Priority: 0,
Weight: 0,
QSchedPolicy: tp_pb.SchedulingPolicy_WRR,
},
DsScheduler: &tp_pb.SchedulerAttributes{
AllocId: 1,
Direction: tp_pb.Direction_DOWNSTREAM,
AdditionalBw: tp_pb.AdditionalBW_AdditionalBW_None,
Priority: 0,
Weight: 0,
QSchedPolicy: tp_pb.SchedulingPolicy_WRR,
},
UpstreamGemPortAttributeList: usGemPortAttributeList,
DownstreamGemPortAttributeList: dsGemPortAttributeList,
}, nil
}
// CreateTechProfileInstance to mock techprofile CreateTechProfileInstance method
func (m MockTechProfile) CreateTechProfileInstance(ctx context.Context, techProfiletblID uint32, uniPortName string, intfID uint32) (interface{}, error) {
var usGemPortAttributeList []*tp_pb.GemPortAttributes
var dsGemPortAttributeList []*tp_pb.GemPortAttributes
if techProfiletblID == 64 {
usGemPortAttributeList = append(usGemPortAttributeList, &tp_pb.GemPortAttributes{
GemportId: 1,
PbitMap: "0b11111111",
})
dsGemPortAttributeList = append(dsGemPortAttributeList, &tp_pb.GemPortAttributes{
GemportId: 1,
PbitMap: "0b11111111",
})
return &tp_pb.TechProfileInstance{
Name: "mock-tech-profile",
SubscriberIdentifier: "257",
ProfileType: "mock",
Version: 0,
NumGemPorts: 1,
InstanceControl: &tp_pb.InstanceControl{
Onu: "multi-instance",
Uni: "single-instance",
MaxGemPayloadSize: "",
},
UsScheduler: &tp_pb.SchedulerAttributes{
AllocId: 1,
Direction: tp_pb.Direction_UPSTREAM,
AdditionalBw: tp_pb.AdditionalBW_AdditionalBW_None,
Priority: 0,
Weight: 0,
QSchedPolicy: tp_pb.SchedulingPolicy_WRR,
},
DsScheduler: &tp_pb.SchedulerAttributes{
AllocId: 1,
Direction: tp_pb.Direction_DOWNSTREAM,
AdditionalBw: tp_pb.AdditionalBW_AdditionalBW_None,
Priority: 0,
Weight: 0,
QSchedPolicy: tp_pb.SchedulingPolicy_WRR,
},
UpstreamGemPortAttributeList: usGemPortAttributeList,
DownstreamGemPortAttributeList: dsGemPortAttributeList,
}, nil
} else if techProfiletblID == 65 {
return &tp_pb.EponTechProfileInstance{
Name: "mock-epon-profile",
SubscriberIdentifier: "257",
ProfileType: "mock",
Version: 0,
NumGemPorts: 2,
UpstreamQueueAttributeList: nil,
DownstreamQueueAttributeList: nil,
}, nil
} else {
return nil, nil
}
}
// DeleteTechProfileInstance to mock techprofile DeleteTechProfileInstance method
func (m MockTechProfile) DeleteTechProfileInstance(ctx context.Context, techProfiletblID uint32, uniPortName string) error {
return nil
}
// GetprotoBufParamValue to mock techprofile GetprotoBufParamValue method
func (m MockTechProfile) GetprotoBufParamValue(ctx context.Context, paramType string, paramKey string) int32 {
return 0
}
// GetUsScheduler to mock techprofile GetUsScheduler method
func (m MockTechProfile) GetUsScheduler(tpInstance *tp_pb.TechProfileInstance) *tp_pb.SchedulerConfig {
return &tp_pb.SchedulerConfig{}
}
// GetDsScheduler to mock techprofile GetDsScheduler method
func (m MockTechProfile) GetDsScheduler(tpInstance *tp_pb.TechProfileInstance) *tp_pb.SchedulerConfig {
return &tp_pb.SchedulerConfig{}
}
// GetTrafficScheduler to mock techprofile GetTrafficScheduler method
func (m MockTechProfile) GetTrafficScheduler(tpInstance *tp_pb.TechProfileInstance, SchedCfg *tp_pb.SchedulerConfig,
ShapingCfg *tp_pb.TrafficShapingInfo) *tp_pb.TrafficScheduler {
return &tp_pb.TrafficScheduler{}
}
// GetTrafficQueues to mock techprofile GetTrafficQueues method
func (m MockTechProfile) GetTrafficQueues(ctx context.Context, tp *tp_pb.TechProfileInstance, Dir tp_pb.Direction) ([]*tp_pb.TrafficQueue, error) {
return []*tp_pb.TrafficQueue{{}}, nil
}
// GetMulticastTrafficQueues to mock techprofile GetMulticastTrafficQueues method
func (m MockTechProfile) GetMulticastTrafficQueues(ctx context.Context, tp *tp_pb.TechProfileInstance) []*tp_pb.TrafficQueue {
return []*tp_pb.TrafficQueue{{}}
}
// GetGemportForPbit to mock techprofile GetGemportForPbit method
func (m MockTechProfile) GetGemportForPbit(ctx context.Context, tpInst interface{}, Dir tp_pb.Direction, pbit uint32) interface{} {
return &tp_pb.GemPortAttributes{
GemportId: 1,
PbitMap: "0b11111111",
AesEncryption: "false",
}
}
// FindAllTpInstances to mock techprofile FindAllTpInstances method
func (m MockTechProfile) FindAllTpInstances(ctx context.Context, oltDeviceID string, tpID uint32, ponIntf uint32, onuID uint32) interface{} {
return []tp_pb.TechProfileInstance{}
}
// GetResourceID to mock techprofile GetResourceID method
func (m MockTechProfile) GetResourceID(ctx context.Context, IntfID uint32, ResourceType string, NumIDs uint32) ([]uint32, error) {
return []uint32{}, nil
}
// FreeResourceID to mock techprofile FreeResourceID method
func (m MockTechProfile) FreeResourceID(ctx context.Context, IntfID uint32, ResourceType string, ReleaseContent []uint32) error {
return nil
}
// GetTechProfileInstanceKey to mock techprofile GetTechProfileInstanceKey method
func (m MockTechProfile) GetTechProfileInstanceKey(ctx context.Context, tpID uint32, uniPortName string) string {
return ""
}