mptcp-pm-0.0.3: mptcp-pm.cabal
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