module Frenetic.Compat
( Packet (..)
, Transmission (..)
, FreneticImpl (..)
) where
import Frenetic.Common
import Frenetic.NetCore.Types
import qualified Data.List as List
import Data.Bits
import Data.Word
import qualified Data.Set as Set
import Frenetic.Pattern
data Transmission ptrn pkt = Transmission {
trPattern :: ptrn,
trSwitch :: Switch,
trPkt :: pkt
} deriving (Eq)
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 ()