Skip to content

Commit bd3845f

Browse files
author
Ossama Othman
authored
mptcpd 0.6
- Mptcpd now supports versions of the Embedded Linux Library (ELL) greater than 0.33. - Plugins should use the new MPTCPD_PLUGIN_DEFINE() preprocessor macro instead of L_PLUGIN_DEFINE(). - A pointer to the mptcpd path manager object, i.e. struct mptcpd *pm, is now passed to the plugin init and exit functions. This allows plugins to potentially perform mptcpd path manager related operations during initialization and finalization. - Support for the MPTCP netlink path manager in the upstream Linux kernel is now available. A new set of path management command functions corresponding to those available in the kernel netlink path management API has been added to the `<mptcpd/path_manager.h>' header. The new functions allow plugins to retrieve IP address information, flush addresses, and modify MPTCP resource limits. - The mptcpd_pm_add_addr() (formerly mptcpd_pm_send_addr()) and mptcpd_pm_remove_addr() function parameters have been modified in order to support both the upstream and multipath-tcp.org kernels. - Mptcpd path management command functions declared in `<mptcpd/path_manager.h>' now return zero on success and -1 or an errno on failure instead of a bool. - A MPTCP address ID manager "mptcpd_idm" interface was introduced that mptcpd plugins may leverage to map an IP address to a MPTCP address ID, as well as to track used and unused IDs. The interface is defined in the new `<mptcpd/id_manager.h>' header. - A new address advertising plugin, "addr_adv", has been added. It simply triggers a MPTCP ADD_ADDR when a new IP address is detected by the mptcpd network monitor. Similarly, a MPTCP REMOVE_ADDR is triggered when an IP address is no longer available. - MPTCP netlink command error message logging was improved to be more descriptive when possible.
1 parent a042b34 commit bd3845f

10 files changed

+57
-39
lines changed

NEWS

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
25 January 2021 - mptcpd 0.6
2+
13
- Mptcpd now supports versions of the Embedded Linux Library (ELL)
24
greater than 0.33.
35

configure.ac

+8-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# -*- Autoconf -*-
33
# Process this file with autoconf to produce a configure script.
44
#
5-
# Copyright (c) 2017-2020, Intel Corporation
5+
# Copyright (c) 2017-2021, Intel Corporation
66

77
AC_PREREQ([2.69])
88
AC_INIT([mptcpd],
9-
[0.5],
9+
[0.6],
1010
1111
[],
1212
[https://01.org/multipath-tcp-linux])
@@ -147,7 +147,12 @@ AS_IF([test "x$ax_enable_debug" != "xyes"],
147147
dnl AX_ENABLE_DEBUG macro disables the autoconf default of
148148
dnl implicitly adding it.
149149
AS_IF([test "x$enable_code_coverage" != "xyes"],
150-
[AX_APPEND_COMPILE_FLAGS([-O2])])
150+
[AX_APPEND_COMPILE_FLAGS([-O2])
151+
152+
AC_LANG_PUSH([C++])
153+
AX_APPEND_COMPILE_FLAGS([-O2])
154+
AC_LANG_POP([C++])
155+
])
151156
152157
dnl AX_CODE_COVERAGE will define NDEBUG on the command line,
153158
dnl equivalent to #define NDEBUG 1, if code coverage is

src/path_manager.c

-10
Original file line numberDiff line numberDiff line change
@@ -920,16 +920,6 @@ static void complete_mptcp_org_kernel_pm_init(struct mptcpd_pm *pm)
920920
static void dump_addrs_callback(struct mptcpd_addr_info const *info,
921921
void *callback_data)
922922
{
923-
/**
924-
* @todo The kernel's pm_netlink path manager doesn't generate
925-
* dump reply containing an array. Rather a separate
926-
* dump is sent for each set of address/ID information.
927-
* In particular, this callback will be called once per
928-
* address/ID. There is no need for the @a len
929-
* parameter and should be entirely removed from the
930-
* API.
931-
*/
932-
933923
char addrstr[INET6_ADDRSTRLEN]; // Long enough for both IPv4
934924
// and IPv6 addresses.
935925

tests/Makefile.am

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## SPDX-License-Identifier: BSD-3-Clause
22
##
3-
## Copyright (c) 2017-2020, Intel Corporation
3+
## Copyright (c) 2017-2021, Intel Corporation
44

55
include $(top_srcdir)/aminclude_static.am
66

@@ -28,17 +28,14 @@ check_PROGRAMS = \
2828
test-configuration \
2929
test-id-manager
3030

31-
## Test scripts expected to fail due to intentionally bad mptcpd
32-
## command line options. Successful exit will be treated as failure.
33-
xfail_test_scripts = \
31+
dist_check_SCRIPTS = \
3432
test-bad-log-empty \
3533
test-bad-log-long \
3634
test-bad-log-short \
3735
test-bad-option \
3836
test-bad-path-manager \
39-
test-bad-plugin-dir
40-
41-
dist_check_SCRIPTS = test-start-stop $(xfail_test_scripts)
37+
test-bad-plugin-dir \
38+
test-start-stop
4239

4340
test_plugin_SOURCES = test-plugin.c
4441
test_plugin_CPPFLAGS = \
@@ -113,7 +110,7 @@ endif
113110

114111
AM_TESTS_ENVIRONMENT = TEST_PLUGIN_DIR=$(TEST_PLUGIN_DIR_NOOP)
115112
TESTS = $(check_PROGRAMS) $(dist_check_SCRIPTS)
116-
XFAIL_TESTS = $(xfail_test_scripts)
113+
XFAIL_TESTS = test-commands
117114

118115
# Clean up code coverage related generated files.
119116
clean-local: code-coverage-clean

tests/test-bad-log-empty

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test empty mptcpd "--log" command line option.
55
#
6-
# Copyright (c) 2019, Intel Corporation
6+
# Copyright (c) 2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd --log=
10+
11+
# Command line usage error exit code. See <sysexits.h>
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

tests/test-bad-log-long

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test bad mptcpd "--log" long command line option.
55
#
6-
# Copyright (c) 2019, Intel Corporation
6+
# Copyright (c) 2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd --log=foo
10+
11+
# Command line usage error exit code. See <sysexits.h>
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

tests/test-bad-log-short

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test bad mptcpd "-l" short command line option.
55
#
6-
# Copyright (c) 2019, Intel Corporation
6+
# Copyright (c) 2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd -l foo
10+
11+
# Command line usage error exit code. See <sysexits.h>
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

tests/test-bad-option

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test unknown command line option.
55
#
6-
# Copyright (c) 2018, 2019, Intel Corporation
6+
# Copyright (c) 2018-2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd --foo
10+
11+
# Command line usage error exit code. See <sysexits.h>
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

tests/test-bad-path-manager

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test bad mptcpd "--path-manager" command line option.
55
#
6-
# Copyright (c) 2019, Intel Corporation
6+
# Copyright (c) 2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd --path-manager=
10+
11+
# Command line usage error exit code. See <sysexits.h>
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

tests/test-bad-plugin-dir

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
# Test bad mptcpd "--plugin-dir" command line option.
55
#
6-
# Copyright (c) 2019, Intel Corporation
6+
# Copyright (c) 2019, 2021, Intel Corporation
77

88

9-
set -e
10-
119
../src/mptcpd --plugin-dir=
10+
11+
# Command line usage error exit code. See <sysexits.h>.
12+
EX_USAGE=64
13+
14+
# mptcpd should have exited with an EX_USAGE exit code.
15+
test $? != $EX_USAGE

0 commit comments

Comments
 (0)