Skip to content

Commit c7e2201

Browse files
author
Othman, Ossama
committed
mptcpd 0.1a: Initial alpha release.
This is the initial (alpha) release of the Multipath TCP Daemon "mptcpd". It implements MPTCP path management in the user space by providing a framework that bridges user defined path management strategies - i.e. mptcpd plugins - with the Linux kernel side MPTCP implementation over a generic netlink interface. The generic netlink interface employed by the Multipath TCP Daemon is based on an early proposal, and will be superseded by the interface available in the MPTCP development kernel, i.e.: multipath-tcp/mptcp@4ea5dee In addition to the kernel/user space path management bridging, the Multipath TCP Daemon also monitors changes to local network interfaces and addresses that path management strategies may choose to leverage. Currently, network interfaces and addresses may be queried (pulled). A network event notification mechanism for plugins is currently a work-in-progress. A single-subflow-per-interface - "sspi" - plugin is included in the source distribution as a reference. It enforces a single subflow per network interface per MPTCP connection policy. Available local addresses are also sent to the kernel so that they may be advertised to the peer through a MPTCP ADD_ADDR option. The current implementation depends on the remote peer to initiate subflows, which may then be allowed or closed per this plugin's policy. Explicitly adding new subflows through this plugin is currently unsupported, but is expected to be implemented in the future.
0 parents  commit c7e2201

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+11021
-0
lines changed

.clang-format

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
Language: Cpp
2+
# BasedOnStyle: LLVM
3+
AccessModifierOffset: -2
4+
AlignAfterOpenBracket: Align
5+
AlignConsecutiveAssignments: true
6+
AlignConsecutiveDeclarations: false
7+
AlignEscapedNewlines: Right
8+
AlignOperands: true
9+
AlignTrailingComments: true
10+
AllowAllParametersOfDeclarationOnNextLine: false
11+
AllowShortBlocksOnASingleLine: false
12+
AllowShortCaseLabelsOnASingleLine: false
13+
AllowShortFunctionsOnASingleLine: Inline
14+
AllowShortIfStatementsOnASingleLine: false
15+
AllowShortLoopsOnASingleLine: false
16+
AlwaysBreakAfterReturnType: None
17+
AlwaysBreakBeforeMultilineStrings: false
18+
AlwaysBreakTemplateDeclarations: false
19+
BinPackArguments: false
20+
BinPackParameters: false
21+
BraceWrapping:
22+
AfterClass: true
23+
AfterControlStatement: false
24+
AfterEnum: false
25+
AfterFunction: true
26+
AfterNamespace: true
27+
AfterObjCDeclaration: false
28+
AfterStruct: true
29+
AfterUnion: true
30+
AfterExternBlock: false
31+
BeforeCatch: false
32+
BeforeElse: false
33+
IndentBraces: false
34+
SplitEmptyFunction: true
35+
SplitEmptyRecord: true
36+
SplitEmptyNamespace: true
37+
BreakBeforeBinaryOperators: NonAssignment
38+
BreakBeforeBraces: Custom
39+
BreakBeforeInheritanceComma: false
40+
BreakBeforeTernaryOperators: true
41+
BreakConstructorInitializersBeforeComma: false
42+
BreakConstructorInitializers: BeforeComma
43+
BreakAfterJavaFieldAnnotations: false
44+
BreakStringLiterals: true
45+
ColumnLimit: 74
46+
CommentPragmas: '^ IWYU pragma:'
47+
CompactNamespaces: false
48+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
49+
ConstructorInitializerIndentWidth: 8
50+
ContinuationIndentWidth: 8
51+
Cpp11BracedListStyle: false
52+
DerivePointerAlignment: false
53+
DisableFormat: false
54+
ExperimentalAutoDetectBinPacking: false
55+
FixNamespaceComments: true
56+
ForEachMacros:
57+
- foreach
58+
- Q_FOREACH
59+
- BOOST_FOREACH
60+
IncludeBlocks: Preserve
61+
IncludeCategories:
62+
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
63+
Priority: 2
64+
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
65+
Priority: 3
66+
- Regex: '.*'
67+
Priority: 1
68+
IncludeIsMainRegex: '(Test)?$'
69+
IndentCaseLabels: false
70+
#IndentPPDirectives: AfterHash
71+
IndentWidth: 8
72+
IndentWrappedFunctionNames: false
73+
JavaScriptQuotes: Leave
74+
JavaScriptWrapImports: true
75+
KeepEmptyLinesAtTheStartOfBlocks: false
76+
MacroBlockBegin: ''
77+
MacroBlockEnd: ''
78+
MaxEmptyLinesToKeep: 1
79+
NamespaceIndentation: All
80+
ObjCBlockIndentWidth: 2
81+
ObjCSpaceAfterProperty: false
82+
ObjCSpaceBeforeProtocolList: true
83+
PenaltyBreakAssignment: 2
84+
PenaltyBreakBeforeFirstCallParameter: 19
85+
PenaltyBreakComment: 300
86+
PenaltyBreakFirstLessLess: 120
87+
PenaltyBreakString: 1000
88+
PenaltyExcessCharacter: 1000000
89+
PenaltyReturnTypeOnItsOwnLine: 60
90+
PointerAlignment: Right
91+
RawStringFormats:
92+
- Delimiter: pb
93+
Language: TextProto
94+
BasedOnStyle: google
95+
ReflowComments: true
96+
SortIncludes: false
97+
SortUsingDeclarations: true
98+
SpaceAfterCStyleCast: true
99+
SpaceAfterTemplateKeyword: false
100+
SpaceBeforeAssignmentOperators: true
101+
SpaceBeforeParens: ControlStatements
102+
SpaceInEmptyParentheses: false
103+
SpacesBeforeTrailingComments: 2
104+
SpacesInAngles: false
105+
SpacesInContainerLiterals: true
106+
SpacesInCStyleCastParentheses: false
107+
SpacesInParentheses: false
108+
SpacesInSquareBrackets: false
109+
Standard: Auto
110+
TabWidth: 8
111+
UseTab: Never

.gitignore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
*.o
2+
*.lo
3+
*.la
4+
*.so*
5+
*.a
6+
*~
7+
*#*#
8+
.#*
9+
*.gcda
10+
*.gcno
11+
*-coverage*
12+
aminclude_static.am
13+
config.log
14+
config.status
15+
Makefile
16+
Makefile.in
17+
.deps
18+
INSTALL
19+
missing
20+
aclocal.m4
21+
ar-lib
22+
autom4te.cache/
23+
compile
24+
configure
25+
depcomp
26+
install-sh
27+
libtool
28+
ltmain.sh
29+
.libs
30+
stamp*
31+
config.*
32+
config-private.h*
33+
mptcpd-*/
34+
*.tar.*
35+
core*
36+
etc/*.conf
37+
src/mptcpd
38+
src/mptcp.service
39+
man/mptcpd.8
40+
test-driver
41+
tests/test-network-monitor
42+
tests/test-plugin
43+
tests/test-path-manager
44+
tests/test-commands
45+
tests/test-configuration
46+
tests/test-cxx-build
47+
tests/*.log
48+
tests/*.trs
49+
tests/test-suite.log
50+
README

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Ossama Othman <[email protected]>

COPYING

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
The Multipath TCP Daemon program and library sources are licensed
2+
under the 3-Clause BSD License. The full terms of the license are
3+
available under:
4+
5+
LICENSES/COPYING.BSD
6+
7+
The `include/linux/mptcp_genl.h' header file is licensed under the GPL
8+
2.0 license with the Linux system call exception. Full terms are
9+
available under:
10+
11+
LICENSES/COPYING.GPL
12+
LICENSES/Linux-syscall-note

ChangeLog

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
See the NEWS files for change descriptions at a high level, and the git
2+
log for low level descriptions.

0 commit comments

Comments
 (0)