blob: f255d13a4633fb0a12c53974cd823b08bd505cdd [file] [log] [blame]
/*
* Copyright 2022-present Open Networking Foundation
* 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 intf
import (
"context"
"voltha-go-controller/internal/pkg/holder"
ofp "github.com/opencord/voltha-protos/v5/go/openflow_13"
)
// VPClientCfg structure
type VPClientCfg struct {
DeviceID string
SerialNum string
SouthBoundID string
VolthaClient *holder.VolthaServiceClientHolder
PacketOutChannel chan *ofp.PacketOut
}
// DiscoveryType type
type DiscoveryType uint8
const (
// DeviceDisc constant
DeviceDisc DiscoveryType = 0
// DeviceReDisc constant
DeviceReDisc DiscoveryType = 1
)
// IVPClient interface
type IVPClient interface {
ChangeEvent(*ofp.ChangeEvent) error
PacketIn(*ofp.PacketIn)
ConnectInd(cxt context.Context, DiscType DiscoveryType)
Stop()
}
// VPAgent interface
type VPAgent interface {
receiveOltRebootNoti(ctx context.Context)
handleOltRebootNoti(ctx context.Context)
}
// IVPClientAgent interface
type IVPClientAgent interface {
AddNewDevice(cfg *VPClientCfg)
DelDevice(id string)
IsRebootInProgressForDevice(device string) bool
// RebootInd(string, string, string)
IsBlockedDevice(string) bool
AddBlockedDevices(string)
DelBlockedDevices(string)
}