As mentioned in README, "After that, if you have a machine with multipath-tcp enabled and the native socket API" I have mptcp enabled machine, how can I know whether socket api is enabled or not. Also, on quite irrelevant note, trying to manually install iperf3 from the box on MPTCP enabled kernel 4.14 (MPTCP v0.94) I get following errors:
bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT cjson.lo -MD -MP -MF .deps/cjson.Tpo -c -o cjson.lo cjson.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT cjson.lo -MD -MP -MF .deps/cjson.Tpo -c cjson.c -fPIC -DPIC -o .libs/cjson.o
cjson.c: In function ‘cJSON_strcasecmp’:
cjson.c:51:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (!s1) return (s1==s2)?0:1;if (!s2) return 1;
^~
cjson.c:51:31: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if (!s1) return (s1==s2)?0:1;if (!s2) return 1;
^~
cjson.c: In function ‘print_object’:
cjson.c:612:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (fmt) *ptr++='\n';*ptr=0;
^~
cjson.c:612:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if (fmt) *ptr++='\n';*ptr=0;
^
cjson.c:662:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (fmt) *ptr++='\n';*ptr=0;
^~
cjson.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if (fmt) *ptr++='\n';*ptr=0;
^
cjson.c: In function ‘cJSON_DetachItemFromArray’:
cjson.c:692:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (c->prev) c->prev->next=c->next;if (c->next) c->next->prev=c->prev;if (c==array->child) array->child=c->next;c->prev=c->next=0;return c;}
^~
cjson.c:692:37: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if (c->prev) c->prev->next=c->next;if (c->next) c->next->prev=c->prev;if (c==array->child) array->child=c->next;c->prev=c->next=0;return c;}
^~
libtool: compile: gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT cjson.lo -MD -MP -MF .deps/cjson.Tpo -c cjson.c -o cjson.o >/dev/null 2>&1
mv -f .deps/cjson.Tpo .deps/cjson.Plo
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT iperf_api.lo -MD -MP -MF .deps/iperf_api.Tpo -c -o iperf_api.lo iperf_api.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -g -O2 -Wall -MT iperf_api.lo -MD -MP -MF .deps/iperf_api.Tpo -c iperf_api.c -fPIC -DPIC -o .libs/iperf_api.o
iperf_api.c: In function ‘save_sf_tcpinfo’:
iperf_api.c:2467:33: error: storage size of ‘sub_gso’ isn’t known
struct mptcp_sub_getsockopt sub_gso;
^~~~~~~
iperf_api.c:2469:31: error: invalid application of ‘sizeof’ to incomplete type ‘struct mptcp_sub_getsockopt’
socklen_t optlen = sizeof(struct mptcp_sub_getsockopt);
^~~~~~
iperf_api.c:2476:54: error: ‘MPTCP_SUB_GETSOCKOPT’ undeclared (first use in this function)
int error = getsockopt(sf->socket, IPPROTO_TCP, MPTCP_SUB_GETSOCKOPT,
^~~~~~~~~~~~~~~~~~~~
iperf_api.c:2476:54: note: each undeclared identifier is reported only once for each function it appears in
iperf_api.c:2467:33: warning: unused variable ‘sub_gso’ [-Wunused-variable]
struct mptcp_sub_getsockopt sub_gso;
^~~~~~~
iperf_api.c: In function ‘save_test_results_to_file’:
iperf_api.c:3791:9: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result [-Wunused-result]
chdir(path);
^~~~~~~~~~~
iperf_api.c:3814:9: warning: ignoring return value of ‘chdir’, declared with attribute warn_unused_result [-Wunused-result]
chdir("../../");
^~~~~~~~~~~~~~~
iperf_api.c: In function ‘diskfile_recv’:
iperf_api.c:3624:2: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
(void) write(sp->diskfile_fd, sp->buffer, r);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:856: recipe for target 'iperf_api.lo' failed
make[2]: *** [iperf_api.lo] Error 1
make[2]: Leaving directory '/home/akuma/SoopaProject/MPTCP/boxes/mptcp-vagrant/sent_to_guest/iperf/src'
Makefile:632: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/akuma/SoopaProject/MPTCP/boxes/mptcp-vagrant/sent_to_guest/iperf/src'
Makefile:381: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1