)]}'
{
  "commit": "f698204bd0bfdc645642e271da117b56b795aee0",
  "tree": "a08c3714c3f1e0e523db799d0455b9e9b17fa8ab",
  "parents": [
    "e95ae2f2cf10f7bf27b492aa6188f3cd745de162"
  ],
  "author": {
    "name": "Neal Cardwell",
    "email": "ncardwell@google.com",
    "time": "Wed Nov 16 08:58:04 2011 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sun Nov 27 18:54:09 2011 -0500"
  },
  "message": "tcp: allow undo from reordered DSACKs\n\nPreviously, SACK-enabled connections hung around in TCP_CA_Disorder\nstate while snd_una\u003d\u003dhigh_seq, just waiting to accumulate DSACKs and\nhopefully undo a cwnd reduction. This could and did lead to the\nfollowing unfortunate scenario: if some incoming ACKs advance snd_una\nbeyond high_seq then we were setting undo_marker to 0 and moving to\nTCP_CA_Open, so if (due to reordering in the ACK return path) we\nshortly thereafter received a DSACK then we were no longer able to\nundo the cwnd reduction.\n\nThe change: Simplify the congestion avoidance state machine by\nremoving the behavior where SACK-enabled connections hung around in\nthe TCP_CA_Disorder state just waiting for DSACKs. Instead, when\nsnd_una advances to high_seq or beyond we typically move to\nTCP_CA_Open immediately and allow an undo in either TCP_CA_Open or\nTCP_CA_Disorder if we later receive enough DSACKs.\n\nOther patches in this series will provide other changes that are\nnecessary to fully fix this problem.\n\nSigned-off-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "751d39060fb8edac46466c063ee2a14d47e2ed87",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_input.c",
      "new_id": "a4efdd7cf5a18f56f10a87a560ec7787aa645a46",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_input.c"
    }
  ]
}
