Popularity
5.0
Growing
Activity
0.0
Stable
4
3
3

Monthly Downloads: 2
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Network    

haskell-openflow alternatives and similar packages

Based on the "Networking" category.
Alternatively, view haskell-openflow alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of haskell-openflow or a related project?

Add another 'Networking' Package

README

haskell-openflow

Build Status

OpenFlow v1.0.0 protocol implementation in Haskell. https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.0.0.pdf

Example OpenFlow server:

handleSwitch :: Socket -> SockAddr -> IO ()
handleSwitch sock caddr = 
  forever $ do
    frame <- readOfpFrame sock
    case frame of
      (OfpFrame (OfpHeader _ _ _ xid) (OfptEchoRequest dat)) -> do
        let resp = (OfpFrame (OfpHeader 1 0 0 xid) (OfptEchoReply dat))
        sendAll sock $ encode resp
      (OfpFrame (OfpHeader _ _ _ xid) (OfptPacketIn (OfpPacketIn bid len inp reason dat))) -> do
        let resp = (OfpFrame (OfpHeader 1 0 0 xid) (OfptPacketOut (OfpPacketOut bid inp [(OfpOutput ofppAll 0)] dat)))
        sendAll sock $ encode resp
      _ -> putStrLn "unhandled packet"

Quickstart:

$ cabal sandbox init
$ cabal install --only-dependencies --enable-tests
$ cabal build