A switch has some number of flow tables. Each flow table is a
prioritized list of entries containing a Match
, a list of
Action
s, and other options affecting the behavior of the switch.
This module represents the OpenFlow messages that can be used
to modify flow tables.
- type FlowTableID = Word8
- data FlowMod
- = AddFlow { }
- | AddEmergencyFlow {
- match :: Match
- priority :: Priority
- actions :: ActionSequence
- cookie :: Cookie
- overlapAllowed :: Bool
- | ModifyFlows { }
- | ModifyExactFlow { }
- | DeleteFlows {
- match :: Match
- outPort :: Maybe PseudoPort
- | DeleteExactFlow { }
- type Cookie = Word64
- type Priority = Word16
- data TimeOut
- data FlowRemoved = FlowRemovedRecord {}
- data FlowRemovalReason
Documentation
type FlowTableID = Word8Source
AddFlow | |
| |
AddEmergencyFlow | |
| |
ModifyFlows | |
ModifyExactFlow | |
DeleteFlows | |
| |
DeleteExactFlow | |
The priority of a flow entry is a 16-bit integer. Flow entries with higher numeric priorities match before lower ones.
Each flow entry has idle and hard timeout values associated with it.
data FlowRemoved Source
When a switch removes a flow, it may send a message containing the information
in FlowRemovedRecord
to the controller.