1) The "enabled-on-global-iface" flag was odd. Instead, have only
and "enabled" flag and skip (by default) endpoints on interface
that have no default route. With the new flag "also-without-default-route",
this can be overruled. So previous "enabled-on-global-default" now is
the same as "enabled", and "enabled" from before behaves now like
"enabled,also-without-default-route".
2) What was also odd, as that the fallback default value for the flags
depends on "/proc/sys/net/mptcp/enabled". There was not one fixed
fallback default, instead the used fallback value was either
"enabled-on-global-iface,subflow" or "disabled".
Usually that is not a problem (e.g. the default value for
"ipv6.ip6-privacy" also depends on use_tempaddr sysctl). In this case
it is a problem, because the mptcp-flags (for better or worse) encode
different things at the same time.
Consider that the mptcp-flags can also have their default configured in
"NetworkManager.conf", a user who wants to switch the address flags
could previously do:
[connection.mptcp]
connection.mptcp-flags=0x32 # enabled-on-global-iface,signal,subflow
but then the global toggle "/proc/sys/net/mptcp/enabled" was no longer
honored. That means, MPTCP handling was always on, even if the sysctl was
disabled. Now, "enabled" means that it's only enabled if the sysctl
is enabled too. Now the user could write to "NetworkManager.conf"
[connection.mptcp]
connection.mptcp-flags=0x32 # enabled,signal,subflow
and MPTCP handling would still be disabled unless the sysctl
is enabled.
There is now also a new flag "also-without-sysctl", so if you want
to really enable MPTCP handling regardless of the sysctl, you can.
The point of that might be, that we still can configure endpoints,
even if kernel won't do anything with them. Then you could just flip
the sysctl, and it would start working (as NetworkManager configured
the endpoints already).
Fixes:
|
||
|---|---|---|
| .. | ||
| meson.build | ||
| nm-connection.h | ||
| nm-core-types.h | ||
| nm-dbus-interface.h | ||
| nm-errors.h | ||
| nm-keyfile.h | ||
| nm-setting-6lowpan.h | ||
| nm-setting-8021x.h | ||
| nm-setting-adsl.h | ||
| nm-setting-bluetooth.h | ||
| nm-setting-bond-port.h | ||
| nm-setting-bond.h | ||
| nm-setting-bridge-port.h | ||
| nm-setting-bridge.h | ||
| nm-setting-cdma.h | ||
| nm-setting-connection.h | ||
| nm-setting-dcb.h | ||
| nm-setting-dummy.h | ||
| nm-setting-ethtool.h | ||
| nm-setting-generic.h | ||
| nm-setting-gsm.h | ||
| nm-setting-hostname.h | ||
| nm-setting-infiniband.h | ||
| nm-setting-ip-config.h | ||
| nm-setting-ip-tunnel.h | ||
| nm-setting-ip4-config.h | ||
| nm-setting-ip6-config.h | ||
| nm-setting-macsec.h | ||
| nm-setting-macvlan.h | ||
| nm-setting-match.h | ||
| nm-setting-olpc-mesh.h | ||
| nm-setting-ovs-bridge.h | ||
| nm-setting-ovs-dpdk.h | ||
| nm-setting-ovs-external-ids.h | ||
| nm-setting-ovs-interface.h | ||
| nm-setting-ovs-patch.h | ||
| nm-setting-ovs-port.h | ||
| nm-setting-ppp.h | ||
| nm-setting-pppoe.h | ||
| nm-setting-proxy.h | ||
| nm-setting-serial.h | ||
| nm-setting-sriov.h | ||
| nm-setting-tc-config.h | ||
| nm-setting-team-port.h | ||
| nm-setting-team.h | ||
| nm-setting-tun.h | ||
| nm-setting-user.h | ||
| nm-setting-veth.h | ||
| nm-setting-vlan.h | ||
| nm-setting-vpn.h | ||
| nm-setting-vrf.h | ||
| nm-setting-vxlan.h | ||
| nm-setting-wifi-p2p.h | ||
| nm-setting-wimax.h | ||
| nm-setting-wired.h | ||
| nm-setting-wireguard.h | ||
| nm-setting-wireless-security.h | ||
| nm-setting-wireless.h | ||
| nm-setting-wpan.h | ||
| nm-setting.h | ||
| nm-simple-connection.h | ||
| nm-utils.h | ||
| nm-version-macros.h.in | ||
| nm-version.h | ||
| nm-vpn-dbus-interface.h | ||
| nm-vpn-editor-plugin.h | ||
| nm-vpn-plugin-info.h | ||
| README.md | ||
libnm-core-public
This contains (mostly) header files only, which are also part of
the public API of libnm.
Also, this API is implemented by the static library libnm-core-impl,
which in turn is statically linked into NetworkManager core and libnm.
These headers can be used by anybody who either:
- links (statically) against
libnm-core-impl. - links dynamically against
libnm.
Note that there is also one source file: nm-core-enum-types.c.
This source file really belongs to libnm-core-impl but it is here
because it's a generated file and so far I couldn't figure out how
to generate nm-core-enum-types.h here while moving nm-core-enum-types.c
to libnm-core-impl.
Aside nm-core-enum-types.c, this directory only provides header files.
Users should add this directory (both srcdir and builddir) to the include
search path, because libnm users are used to include these headers unqualified
(like #include "nm-setting.h).