cabal-version: 3.0 name: mptcp-pm version: 0.0.3 license: GPL-3.0-only license-file: LICENSE build-type: Simple Maintainer: teto Category: Network Synopsis: A Multipath TCP path manager Homepage: https://github.com/teto/netlink_pm Description: Multipath TCP (www.multipath-tcp.org) starting from version 0.95 provides a netlink path manager module. This package implements the userspace component in charge of controlling MPTCP subflow establishement and various behaviors. data-files: extra-source-files: headers/*.h headers/linux/*.h README.md CHANGELOG Source-repository head type: git location: https://github.com/teto/mptcp-pm -- Flag Dev { -- Description: Develop with a local netlink library -- Default: True -- } common shared-properties default-language: Haskell2010 -- -fno-warn-unused-imports -- -fforce-recomp makes it build twice ghc-options: -Wall -fno-warn-unused-binds -fno-warn-unused-matches build-depends: netlink >= 1.1.2.0 library import: shared-properties default-language: Haskell2010 -- for the .chs => c2hs -- apparently this just helps getting a better error messages Includes: tcp_states.h, linux/sock_diag.h, linux/inet_diag.h, linux/mptcp.h -- TODO try to pass it from CLI instead , Net.TcpInfo include-dirs: headers default-extensions: DeriveGeneric autogen-modules: Net.Mptcp.Constants, Net.SockDiag.Constants, Net.Tcp.Constants build-depends: base >= 4.12 && < 4.17, containers , bytestring -- , fast-logger , katip , process , cereal , enumset , ip , bytestring-conversion , text -- todo get rid of it , mtl -- for merge , aeson , aeson-pretty , aeson-extra -- to help with merging json content , unordered-containers -- to create temp folder/files , transformers hs-source-dirs: . build-tool-depends: c2hs:c2hs Exposed-Modules: Net.SockDiag , Net.Tcp , Net.Bitset , Net.Mptcp , Net.IPAddress , Net.Tcp.Definitions , Net.Tcp.Constants , Net.Mptcp.Constants, Net.SockDiag.Constants -- TODO let it high level , Net.Mptcp.PathManager , Net.Mptcp.PathManager.Default -- monitor new mptcp connections -- and delegate the behavior to a monitor executable mptcp-manager import: shared-properties default-language: Haskell2010 -- ghc-options: -prof build-depends: aeson , aeson-pretty , aeson-extra , base >= 4.12 && < 4.17 , bytestring , containers , mptcp-pm , optparse-applicative , transformers -- , fast-logger , hslogger , ip , text , mtl , cereal , process , temporary , filepath -- to use Simple module. Try to do without , netlink >= 1.1.2.0 default-extensions: DeriveGeneric main-is: daemon.hs hs-source-dirs: hs/ ghc-options: -threaded -rtsopts Test-Suite test-tcp -- 2 types supported, exitcode is based on ... exit codes .... type: exitcode-stdio-1.0 default-language: Haskell2010 main-is: Main.hs hs-source-dirs: test ghc-options: -threaded -rtsopts build-depends: base >=4.12 , HUnit , mptcp-pm , ip, text