This repository has been archived by the owner on Nov 10, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mptcp-pm.cabal
156 lines (144 loc) · 3.95 KB
/
mptcp-pm.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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 WithPolysemy {
Description: Add polysemy plugin
Default: True
}
Flag Dev {
Description: Relax constraints
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:
-- TODO remove that boundary
netlink >= 1.1.1.0
, co-log
, co-log-core
, co-log-polysemy
, formatting
, readable
, polysemy
, polysemy-log
, polysemy-log-co
default-extensions:
FlexibleContexts
, StrictData
, DataKinds
, FlexibleContexts
, GADTs
, LambdaCase
-- , OverloadedStrings
, PolyKinds
, RankNTypes
, ScopedTypeVariables
, TemplateHaskell
, TypeApplications
, TypeOperators
, TypeFamilies
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
, readable
, bytestring
, process
, cereal
, enumset
, ip
, bytestring-conversion
, text
-- todo get rid of it
-- for liftIO
, 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: src/
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
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.1.0
default-extensions: DeriveGeneric
main-is: Main.hs
hs-source-dirs: src/app
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