)]}'
{
  "commit": "0af9e0905663e609aafa3b8d9c485e534efdd2a9",
  "tree": "28d0242f7e37528db6e95dbd4d36c472cfb6a51c",
  "parents": [
    "47a32c0083d7eb0f8a9b269accbea5419b739876"
  ],
  "author": {
    "name": "Menglong Dong",
    "email": "menglong8.dong@gmail.com",
    "time": "Fri Jan 26 12:05:19 2024 +0800"
  },
  "committer": {
    "name": "Chenglong Tang",
    "email": "chenglongtang@google.com",
    "time": "Fri Mar 27 17:02:11 2026 -0700"
  },
  "message": "net: tcp: accept old ack during closing\n\ncommit 795a7dfbc3d95e4c7c09569f319f026f8c7f5a9c upstream.\n\nFor now, the packet with an old ack is not accepted if we are in\nFIN_WAIT1 state, which can cause retransmission. Taking the following\ncase as an example:\n\n    Client                               Server\n      |                                    |\n  FIN_WAIT1(Send FIN, seq\u003d10)          FIN_WAIT1(Send FIN, seq\u003d20, ack\u003d10)\n      |                                    |\n      |                                Send ACK(seq\u003d21, ack\u003d11)\n   Recv ACK(seq\u003d21, ack\u003d11)\n      |\n   Recv FIN(seq\u003d20, ack\u003d10)\n\nIn the case above, simultaneous close is happening, and the FIN and ACK\npacket that send from the server is out of order. Then, the FIN will be\ndropped by the client, as it has an old ack. Then, the server has to\nretransmit the FIN, which can cause delay if the server has set the\nSO_LINGER on the socket.\n\nOld ack is accepted in the ESTABLISHED and TIME_WAIT state, and I think\nit should be better to keep the same logic.\n\nIn this commit, we accept old ack in FIN_WAIT1/FIN_WAIT2/CLOSING/LAST_ACK\nstates. Maybe we should limit it to FIN_WAIT1 for now?\n\nBUG\u003db/486637172\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dNone\n\nChange-Id: I44cc9da97c48720dc41e8781e6b1b540a73b5e13\nSigned-off-by: Menglong Dong \u003cmenglong8.dong@gmail.com\u003e\nReviewed-by: Simon Horman \u003chorms@kernel.org\u003e\nReviewed-by: Eric Dumazet \u003cedumazet@google.com\u003e\nLink: https://lore.kernel.org/r/20240126040519.1846345-1-menglong8.dong@gmail.com\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: chenglongtang \u003cchenglongtang@google.com\u003e\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/140944\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Kevin Berry \u003ckpberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d4a4a36839fdbd67ba586c2499f99b18eacce604",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_input.c",
      "new_id": "b2690c40c96b61c8ab01dbab0eebf410fcf155c0",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_input.c"
    }
  ]
}
