-
Notifications
You must be signed in to change notification settings - Fork 58
/
manager.go
56 lines (48 loc) · 1.55 KB
/
manager.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright 2021 FabEdge Team
//
// 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 tunnel
import (
apis "github.com/fabedge/fabedge/pkg/apis/v1alpha1"
)
type Manager interface {
IsRunning() bool
ListConnNames() ([]string, error)
LoadConn(conn ConnConfig) error
InitiateConn(name string) error
UnloadConn(name string) error
IsActive() (bool, error)
}
type ConnConfig struct {
Name string // must be unique
LocalID string
LocalAddress []string
LocalSubnets []string
LocalNodeSubnets []string
LocalCerts []string
LocalType apis.EndpointType
RemoteID string
RemoteAddress []string
RemoteSubnets []string
RemoteNodeSubnets []string
RemoteType apis.EndpointType
RemotePort *uint
// Whether this connection is used for mediation
Mediation bool
// whether is connection need mediation
NeedMediation bool
// check https://docs.strongswan.org/docs/5.9/swanctl/swanctlConf.html
// for detailed explanation for MediatedBy and MediationPeer
MediatedBy string
MediationPeer string
}