Bug 2029636

Summary: [RFE] Add mptcp functionality to NetworkManager
Product: Red Hat Enterprise Linux 9 Reporter: Jonathan Maxwell <jmaxwell>
Component: NetworkManagerAssignee: Thomas Haller <thaller>
Status: CLOSED ERRATA QA Contact: David Jaša <djasa>
Severity: high Docs Contact: Jaroslav Klech <jklech>
Priority: unspecified    
Version: 9.0CC: acabral, bgalvani, dcaratti, djasa, ferferna, fge, jklech, lrintel, mberezny, mmhatre, pabeni, pasik, rkhan, sfaye, sukulkar, thaller, till, vbenes
Target Milestone: rcKeywords: FutureFeature, TechPreview, Triaged
Target Release: 9.1Flags: pm-rhel: mirror+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: NetworkManager-1.39.90-1.el9 Doc Type: Enhancement
Doc Text:
.Configuring Multipath TCP using NetworkManager is now fully supported With this update, the NetworkManager utility provides you with the Multipath TCP (MPTCP) functionality. You can use `nmcli` commands to control MPTCP and make its settings persistent. For more information, see: * link:https://www.redhat.com/en/blog/understanding-multipath-tcp-networking-highway-future[Understanding Multipath TCP: High availability for endpoints and the networking highway of the future] * link:https://www.rfc-editor.org/rfc/rfc8684[RFC 8684: TCP Extensions for Multipath Operation with Multiple Addresses] * link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index#proc_permanently-configuring-multiple-paths-for-mptcp-applications_getting-started-with-multipath-tcp[Permanently configuring multiple paths for MPTCP applications]
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:49:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Comment 7 Gris Ge 2022-04-27 09:54:40 UTC
Hi Team,

Any objection on marking this feature as tech preview in NetworkManager for 9.1 and 8.7?

Comment 8 Jonathan Maxwell 2022-06-06 01:36:44 UTC
(In reply to Gris Ge from comment #7)
> Hi Team,
> 
> Any objection on marking this feature as tech preview in NetworkManager for
> 9.1 and 8.7?

No objection. Sounds reasonable to me.

Comment 14 David Jaša 2022-08-30 15:08:34 UTC
Marking as VERIFIED for 1.40.0-1.el8: NM behaves as described in nm-settings-nmcli(5):

       mptcp-flags
           Whether to configure MPTCP endpoints and the address flags. If
           MPTCP is enabled in NetworkManager, it will configure the
           addresses of the interface as MPTCP endpoints. Note that IPv4
           loopback addresses (127.0.0.0/8), IPv4 link local addresses
           (169.254.0.0/16), the IPv6 loopback address (::1), IPv6 link local
           addresses (fe80::/10), IPv6 unique local addresses (ULA, fc00::/7)
           and IPv6 privacy extension addresses (rfc3041, ipv6.ip6-privacy)
           will be excluded from being configured as endpoints.

           If "disabled" (0x1), MPTCP handling for the interface is disabled
           and no endpoints are registered.

           The "enabled" (0x2) flag means that MPTCP handling is enabled.
           This flag can also be implied from the presence of other flags.

           Even when enabled, MPTCP handling will by default still be
           disabled unless "/proc/sys/net/mptcp/enabled" sysctl is on.
           NetworkManager does not change the sysctl and this is up to the
           administrator or distribution. To configure endpoints even if the
           sysctl is disabled, "also-without-sysctl" (0x4) flag can be used.
           In that case, NetworkManager doesn't look at the sysctl and
           configures endpoints regardless.

           Even when enabled, NetworkManager will only configure MPTCP
           endpoints for a certain address family, if there is a unicast
           default route (0.0.0.0/0 or ::/0) in the main routing table. The
           flag "also-without-default-route" (0x8) can override that.

           When MPTCP handling is enabled then endpoints are configured with
           the specified address flags "signal" (0x10), "subflow" (0x20),
           "backup" (0x40), "fullmesh" (0x80). See ip-mptcp(8) manual for
           additional information about the flags.

           If the flags are zero (0x0), the global connection default from
           NetworkManager.conf is honored. If still unspecified, the fallback
           is "enabled,subflow". Note that this means that MPTCP is by
           default done depending on the "/proc/sys/net/mptcp/enabled"
           sysctl.

           NetworkManager does not change the MPTCP limits nor enable MPTCP
           via "/proc/sys/net/mptcp/enabled". That is a host configuration
           which the admin can change via sysctl and ip-mptcp.

           Strict reverse path filtering (rp_filter) breaks many MPTCP use
           cases, so when MPTCP handling for IPv4 addresses on the interface
           is enabled, NetworkManager would loosen the strict reverse path
           filtering (1) to the loose setting (2).

           Format: uint32

Comment 18 errata-xmlrpc 2022-11-15 10:49:31 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (NetworkManager bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:8265