Nettle.OpenFlow.Messages
Description
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
- = SCHello
- | SCEchoRequest ![Word8]
- | SCEchoReply ![Word8]
- | Features !SwitchFeatures
- | PacketIn !PacketInfo
- | PortStatus !PortStatus
- | FlowRemoved !FlowRemoved
- | StatsReply !StatsReply
- | Error !SwitchError
- | BarrierReply
- | QueueConfigReply !QueueConfigReply
- data CSMessage
- = CSHello
- | CSEchoRequest ![Word8]
- | CSEchoReply ![Word8]
- | FeaturesRequest
- | PacketOut !PacketOut
- | FlowMod !FlowMod
- | PortMod !PortMod
- | StatsRequest !StatsRequest
- | BarrierRequest
- | SetConfig
- | Vendor
- | GetQueueConfig !QueueConfigRequest
Documentation
type TransactionID = Word32Source
Every OpenFlow message is tagged with a MessageID value.
The Switch can send the following messages to the controller.
Constructors
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 |
QueueConfigReply !QueueConfigReply |
The controller can send these messages to the switch.
Constructors
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 |
SetConfig | |
Vendor | |
GetQueueConfig !QueueConfigRequest |