-
Notifications
You must be signed in to change notification settings - Fork 31
/
factory.go
73 lines (69 loc) · 2.79 KB
/
factory.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
66
67
68
69
70
71
72
73
/*
* Cherry - An OpenFlow Controller
*
* Copyright (C) 2015 Samjung Data Service, Inc. All rights reserved.
* Kitae Kim <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package openflow
import (
"errors"
)
var (
ErrInvalidPacketLength = errors.New("invalid packet length")
ErrUnsupportedVersion = errors.New("unsupported protocol version")
ErrUnsupportedMessage = errors.New("unsupported message type")
ErrInvalidMACAddress = errors.New("invalid MAC address")
ErrInvalidIPAddress = errors.New("invalid IP address")
ErrUnsupportedIPProtocol = errors.New("unsupported IP protocol")
ErrUnsupportedEtherType = errors.New("unsupported Ethernet type")
ErrMissingIPProtocol = errors.New("missing IP protocol")
ErrMissingEtherType = errors.New("missing Ethernet type")
ErrUnsupportedMatchType = errors.New("unsupported flow match type")
ErrInvalidPropertyMethod = errors.New("invalid property method")
)
// Abstract factory
type Factory interface {
ProtocolVersion() uint8
NewAction() (Action, error)
NewBarrierRequest() (BarrierRequest, error)
NewBarrierReply() (BarrierReply, error)
NewDescRequest() (DescRequest, error)
NewDescReply() (DescReply, error)
NewEchoRequest() (EchoRequest, error)
NewEchoReply() (EchoReply, error)
NewError() (Error, error)
NewFeaturesRequest() (FeaturesRequest, error)
NewFeaturesReply() (FeaturesReply, error)
NewFlowMod(cmd FlowModCmd) (FlowMod, error)
NewFlowRemoved() (FlowRemoved, error)
NewFlowStatsRequest() (FlowStatsRequest, error)
// TODO: NewFlowStatsReply() (FlowStatsReply, error)
NewGetConfigRequest() (GetConfigRequest, error)
NewGetConfigReply() (GetConfigReply, error)
NewHello() (Hello, error)
NewInstruction() (Instruction, error)
NewMatch() (Match, error)
NewPacketIn() (PacketIn, error)
NewPacketOut() (PacketOut, error)
NewPortDescRequest() (PortDescRequest, error)
NewPortDescReply() (PortDescReply, error)
NewPortStatus() (PortStatus, error)
NewQueueGetConfigRequest() (QueueGetConfigRequest, error)
NewSetConfig() (SetConfig, error)
NewTableFeaturesRequest() (TableFeaturesRequest, error)
// TODO: NewTableFeaturesReply() (TableFeaturesReply, error)
}