)]}'
{
  "commit": "79d44516b4b178ffb6e2159c75584cfcfc097914",
  "tree": "4721a8524c40452835018d315f80d2abc46e0d24",
  "parents": [
    "a1c1f281b84a751fdb5ff919da3b09df7297619f"
  ],
  "author": {
    "name": "Ilpo Järvinen",
    "email": "ilpo.jarvinen@helsinki.fi",
    "time": "Tue May 13 02:54:19 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue May 13 02:54:19 2008 -0700"
  },
  "message": "tcp FRTO: work-around inorder receivers\n\nIf receiver consumes segments successfully only in-order, FRTO\nfallback to conventional recovery produces RTO loop because\nFRTO\u0027s forward transmissions will always get dropped and need to\nbe resent, yet by default they\u0027re not marked as lost (which are\nthe only segments we will retransmit in CA_Loss).\n\nPrice to pay about this is occassionally unnecessarily\nretransmitting the forward transmission(s). SACK blocks help\na bit to avoid this, so it\u0027s mainly a concern for NewReno case\nthough SACK is not fully immune either.\n\nThis change has a side-effect of fixing SACKFRTO problem where\nit didn\u0027t have snd_nxt of the RTO time available anymore when\nfallback become necessary (this problem would have only occured\nwhen RTO would occur for two or more segments and ECE arrives\nin step 3; no need to figure out how to fix that unless the\nTODO item of selective behavior is considered in future).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nReported-by: Damon L. Chesser \u003cdamon@damtek.com\u003e\nTested-by: Damon L. Chesser \u003cdamon@damtek.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6edb98fd526b6471c34dd197d8c429a5c9ffb9f",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_input.c",
      "new_id": "b54d9d37b636a79b26de0f0ee36e9f6024ba453e",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_input.c"
    }
  ]
}
