Safe Haskell | Safe-Infered |
---|
- data Packet = Packet {}
- data Transmission ptrn pkt = Transmission {}
- class (Show (PatternImpl a), Show (ActionImpl a), Matchable (PatternImpl a), Eq (PacketImpl a), Eq (ActionImpl a), Eq (PatternImpl a)) => FreneticImpl a where
- data PacketImpl a
- data PatternImpl a
- data ActionImpl a
- ptrnMatchPkt :: PacketImpl a -> PatternImpl a -> Bool
- toPacket :: PacketImpl a -> Maybe Packet
- updatePacket :: PacketImpl a -> Packet -> PacketImpl a
- fromPattern :: Pattern -> PatternImpl a
- toPattern :: PatternImpl a -> Pattern
- actnDefault :: ActionImpl a
- actnController :: ActionImpl a
- actnTranslate :: Action -> ActionImpl a
- actnControllerPart :: ActionImpl a -> Switch -> PacketImpl a -> IO ()
Documentation
Packets' headers.
Packet | |
|
data Transmission ptrn pkt Source
Data that was sent.
(Eq ptrn, Eq pkt) => Eq (Transmission ptrn pkt) |
Implementation
class (Show (PatternImpl a), Show (ActionImpl a), Matchable (PatternImpl a), Eq (PacketImpl a), Eq (ActionImpl a), Eq (PatternImpl a)) => FreneticImpl a whereSource
'FreneticImpl a' is a family of related abstract types that define a back-end for Frenetic.
data PacketImpl a Source
data PatternImpl a Source
'PatternImpl a' represents switch-level patterns, which may not be as expressive as Frenetic's pattern language.
patOverapprox
and patUnderapprox
must follow the laws in the
Approx class. If the pattern is not a real underapproximation,
patUnderapprox
must return Nothing.
data ActionImpl a Source
'ActionImpl a' represents switch-level actions. All Frenetic actions
(Action
) may not be realizable on switches.
ptrnMatchPkt :: PacketImpl a -> PatternImpl a -> BoolSource
'ptrnMatchPkt pkt pat' is True
if pat
matches pkt
.
toPacket :: PacketImpl a -> Maybe PacketSource
updatePacket :: PacketImpl a -> Packet -> PacketImpl aSource
fromPattern :: Pattern -> PatternImpl aSource
toPattern :: PatternImpl a -> PatternSource
actnDefault :: ActionImpl aSource
actnController :: ActionImpl aSource
actnTranslate :: Action -> ActionImpl aSource
actnControllerPart :: ActionImpl a -> Switch -> PacketImpl a -> IO ()Source
FreneticImpl () | |
FreneticImpl OpenFlow |