blob: 094c58b19b2a358ba3d99b6cfbd0dd746ba3ab3d [file] [log] [blame]
Naveen Sampath04696f72022-06-13 15:19:14 +05301/*
2* Copyright 2022-present Open Networking Foundation
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7* http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14 */
15
16package intf
17
18import (
19 "context"
20
21 "voltha-go-controller/internal/pkg/holder"
22
23 ofp "github.com/opencord/voltha-protos/v5/go/openflow_13"
24)
25
26// VPClientCfg structure
27type VPClientCfg struct {
28 DeviceID string
29 SerialNum string
30 SouthBoundID string
31 VolthaClient *holder.VolthaServiceClientHolder
32 PacketOutChannel chan *ofp.PacketOut
33}
34
35// DiscoveryType type
36type DiscoveryType uint8
37
38const (
39 // DeviceDisc constant
40 DeviceDisc DiscoveryType = 0
41 // DeviceReDisc constant
42 DeviceReDisc DiscoveryType = 1
43)
44
45// IVPClient interface
46type IVPClient interface {
47 ChangeEvent(*ofp.ChangeEvent) error
Tinoj Joseph07cc5372022-07-18 22:53:51 +053048 PacketIn(context.Context, *ofp.PacketIn)
Naveen Sampath04696f72022-06-13 15:19:14 +053049 ConnectInd(cxt context.Context, DiscType DiscoveryType)
50 Stop()
51}
52
53// VPAgent interface
54type VPAgent interface {
55 receiveOltRebootNoti(ctx context.Context)
56 handleOltRebootNoti(ctx context.Context)
57}
58
59// IVPClientAgent interface
60type IVPClientAgent interface {
61 AddNewDevice(cfg *VPClientCfg)
Tinoj Joseph07cc5372022-07-18 22:53:51 +053062 DelDevice(cntx context.Context, id string)
Naveen Sampath04696f72022-06-13 15:19:14 +053063 IsRebootInProgressForDevice(device string) bool
64 // RebootInd(string, string, string)
65 IsBlockedDevice(string) bool
66 AddBlockedDevices(string)
67 DelBlockedDevices(string)
68}