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
- 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.
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 |
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 |