This module provides a logical representation of OpenFlow switches and protocol messages. An OpenFlow message is either a switch-to-controller message or controller-to-switch message. In either case, each message is tagged with a unique message identifier.
- type TransactionID = Word32
- data SCMessage
- data CSMessage
- = CSHello
- | CSEchoRequest [Word8]
- | CSEchoReply [Word8]
- | FeaturesRequest
- | PacketOut PacketOut
- | FlowMod FlowMod
- | PortMod PortMod
- | StatsRequest StatsRequest
- | BarrierRequest
Documentation
type TransactionID = Word32Source
Every OpenFlow message is tagged with a MessageID value.
The Switch can send the following messages to the controller.
SCHello | Sent after a switch establishes a TCP connection to the controller |
SCEchoRequest [Word8] | Switch requests an echo reply |
SCEchoReply [Word8] | Switch responds to an echo request |
Features SwitchFeatures | Switch reports its features |
PacketIn PacketInfo | Switch sends a packet to the controller |
PortStatus PortStatus | Switch sends port status |
FlowRemoved FlowRemoved | Switch reports that a flow has been removed |
StatsReply StatsReply | Switch reports statistics |
Error SwitchError | Switch reports an error |
BarrierReply | Switch responds that a barrier has been processed |
The controller can send these messages to the switch.
CSHello | Controller must send hello before sending any other messages |
CSEchoRequest [Word8] | Controller requests a switch echo |
CSEchoReply [Word8] | Controller responds to a switch echo request |
FeaturesRequest | Controller requests features information |
PacketOut PacketOut | Controller commands switch to send a packet |
FlowMod FlowMod | Controller modifies a switch flow table |
PortMod PortMod | Controller configures a switch port |
StatsRequest StatsRequest | Controller requests statistics |
BarrierRequest | Controller requests a barrier |