/
ofnet.go
65 lines (49 loc) · 1.75 KB
/
ofnet.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
57
58
59
60
61
62
63
64
65
/***
Copyright 2014 Cisco Systems Inc. All rights reserved.
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 ofnet
// This package implements openflow network manager
import (
"net"
"github.com/contiv/ofnet/ofctrl"
)
// Interface implemented by each datapath
type OfnetDatapath interface {
// New master was added.
MasterAdded(master *OfnetNode) error
// Switch connected notification
SwitchConnected(sw *ofctrl.OFSwitch)
// Switch disconnected notification
SwitchDisconnected(sw *ofctrl.OFSwitch)
// Process Incoming packet
PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
// Add a local endpoint to forwarding DB
AddLocalEndpoint(endpoint EndpointInfo) error
// Remove a local endpoint from forwarding DB
RemoveLocalEndpoint(portNo uint32) error
// Add an remote VTEP
AddVtepPort(portNo uint32, remoteIp net.IP) error
// Remove remote VTEP
RemoveVtepPort(portNo uint32, remoteIp net.IP) error
// Add a vlan
AddVlan(vlanId uint16, vni uint32) error
// Remove a vlan
RemoveVlan(vlanId uint16, vni uint32) error
}
// Default port numbers
const OFNET_MASTER_PORT = 9001
const OFNET_AGENT_PORT = 9002
// Information about each node
type OfnetNode struct {
HostAddr string
HostPort uint16
}