1. 08 Dec, 2021 38 commits
  2. 07 Dec, 2021 2 commits
    • Jakub Kicinski's avatar
      Merge branch 'mptcp-new-features-for-mptcp-sockets-and-netlink-pm' · 59d58d93
      Jakub Kicinski authored
      Mat Martineau says:
      
      ====================
      mptcp: New features for MPTCP sockets and netlink PM
      
      This collection of patches adds MPTCP socket support for a few socket
      options, ioctls, and one ancillary data type (specifics for each are
      listed below). There's also a patch modifying the netlink MPTCP path
      manager API to allow setting the backup flag on a configured interface
      using the endpoint ID instead of the full IP address.
      
      Patches 1 & 2: TCP_INQ cmsg and selftests.
      
      Patches 2 & 3: SIOCINQ, OUTQ, and OUTQNSD ioctls and selftests.
      
      Patch 5: Change backup flag using endpoint ID.
      
      Patches 6 & 7: IP_TOS socket option and selftests.
      
      Patches 8-10: TCP_CORK and TCP_NODELAY socket options. Includes a tcp
      change to expose __tcp_sock_set_cork() and __tcp_sock_set_nodelay() for
      use by MPTCP.
      ====================
      
      Link: https://lore.kernel.org/r/20211203223541.69364-1-mathew.j.martineau@linux.intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      59d58d93
    • Maxim Galaganov's avatar
      mptcp: support TCP_CORK and TCP_NODELAY · 4f6e14bd
      Maxim Galaganov authored
      First, add cork and nodelay fields to the mptcp_sock structure
      so they can be used in sync_socket_options(), and fill them on setsockopt
      while holding the msk socket lock.
      
      Then, on setsockopt set proper tcp_sk(ssk)->nonagle values for subflows
      by calling __tcp_sock_set_cork() or __tcp_sock_set_nodelay() on the ssk
      while holding the ssk socket lock.
      
      tcp_push_pending_frames() will be invoked on the ssk if a cork was cleared
      or nodelay was set. Also set MPTCP_PUSH_PENDING bit by calling
      mptcp_check_and_set_pending(). This will lead to __mptcp_push_pending()
      being called inside mptcp_release_cb() with new tcp_sk(ssk)->nonagle.
      
      Also add getsockopt support for TCP_CORK and TCP_NODELAY.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Signed-off-by: default avatarMaxim Galaganov <max@internet.ru>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4f6e14bd