1. 27 Sep, 2021 34 commits
  2. 26 Sep, 2021 3 commits
  3. 25 Sep, 2021 3 commits
    • David S. Miller's avatar
      Merge branch 'mptcp-fixes' · 24aa160d
      David S. Miller authored
      Mat Martineau says:
      
      ====================
      mptcp: Miscellaneous fixes
      
      Here are five changes we've collected and tested in the mptcp-tree:
      
      Patch 1 changes handling of the MPTCP-level snd_next value during the
      recovery phase after a subflow link failure.
      
      Patches 2 and 3 are some small refactoring changes to replace some
      open-coded bits.
      
      Patch 4 removes an unused field in struct mptcp_sock.
      
      Patch 5 restarts the MPTCP retransmit timer when there is
      not-yet-transmitted data to send and all previously sent data has been
      acknowledged. This prevents some sending stalls.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      24aa160d
    • Florian Westphal's avatar
      mptcp: re-arm retransmit timer if data is pending · 3241a9c0
      Florian Westphal authored
      The retransmit head will be NULL in case there is no in-flight data
      (meaning all data injected into network has been acked).
      
      In that case the retransmit timer is stopped.
      
      This is only correct if there is no more pending, not-yet-sent data.
      
      If there is, the retransmit timer needs to set the PENDING bit again so
      that mptcp tries to send the remaining (new) data once a subflow can accept
      more data.
      
      Also, mptcp_subflow_get_retrans() has to be called unconditionally.
      
      This function checks for subflows that have become unresponsive and marks
      them as stale, so in the case where the rtx queue is empty, subflows
      will never be marked stale which prevents available backup subflows from
      becoming eligible for transmit.
      
      Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/226Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3241a9c0
    • Florian Westphal's avatar
      mptcp: remove tx_pending_data · 9e65b6a5
      Florian Westphal authored
      The update on recovery is not correct.
      
      msk->tx_pending_data += msk->snd_nxt - rtx_head->data_seq;
      
      will update tx_pending_data multiple times when a subflow is declared
      stale while earlier recovery is still in progress.
      This means that tx_pending_data will still be positive even after
      all data as has been transmitted.
      
      Rather than fix it, remove this field: there are no consumers.
      The outstanding data byte count can be computed either via
      
       "msk->write_seq - rtx_head->data_seq" or
       "msk->write_seq - msk->snd_una".
      
      The latter is more recent/accurate estimate as rtx_head adjustment
      is deferred until mptcp lock can be acquired.
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e65b6a5