)]}'
{
  "commit": "68b1de15765f2b0e0925e692dab2b2fa2abd93fc",
  "tree": "893594a088a7d9ba4bff6c1820ec014740ca62bf",
  "parents": [
    "d7dc7e5f49299739e610ea8febf9ea91a4dc1ae9"
  ],
  "author": {
    "name": "Gerrit Renker",
    "email": "gerrit@erg.abdn.ac.uk",
    "time": "Thu Sep 04 07:30:19 2008 +0200"
  },
  "committer": {
    "name": "Gerrit Renker",
    "email": "gerrit@erg.abdn.ac.uk",
    "time": "Thu Sep 04 07:45:37 2008 +0200"
  },
  "message": "dccp ccid-2: Algorithm to update buffer state\n\nThis provides a routine to consistently update the buffer state when the\npeer acknowledges receipt of Ack Vectors; updating state in the list of Ack\nVectors as well as in the circular buffer.\n\nWhile based on RFC 4340, several additional (and necessary) precautions were\nadded to protect the consistency of the buffer state. These additions are\nessential, since analysis and experience showed that the basic algorithm was\ninsufficient for this task (which lead to problems that were hard to debug).\n\nThe algorithm now\n * deals with HC-sender acknowledging to HC-receiver and vice versa,\n * keeps track of the last unacknowledged but received seqno in tail_ackno,\n * has special cases to reset the overflow condition when appropriate,\n * is protected against receiving older information (would mess up buffer state).\n\nNote: The older code performed an unnecessary step, where the sender cleared\nAck Vector state by parsing the Ack Vector received by the HC-receiver. Doing\nthis was entirely redundant, since\n * the receiver always puts the full acknowledgment window (groups 2,3 in 11.4.2)\n   into the Ack Vectors it sends; hence the HC-receiver is only interested in the\n   highest state that the HC-sender received;\n * this means that the acknowledgment number on the (Data)Ack from the HC-sender\n   is sufficient; and work done in parsing earlier state is not necessary, since\n   the later state subsumes the  earlier one (see also RFC 4340, A.4).\nThis older interface (dccp_ackvec_parse()) is therefore removed.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1184d5e5dc96631f7abb7590b324e99cf0f333eb",
      "old_mode": 33188,
      "old_path": "net/dccp/ackvec.c",
      "new_id": "f1341a617f963a26be3483f21451ca77d9f810b5",
      "new_mode": 33188,
      "new_path": "net/dccp/ackvec.c"
    },
    {
      "type": "modify",
      "old_id": "92f65b0fef5b53ce7f233ed1b550d8e1a93a5937",
      "old_mode": 33188,
      "old_path": "net/dccp/ackvec.h",
      "new_id": "b757e9b4110f1c945badfee8447aec526c888ce9",
      "new_mode": 33188,
      "new_path": "net/dccp/ackvec.h"
    },
    {
      "type": "modify",
      "old_id": "70ad0ba72146654dd92f58245c5f13b0350c7b6f",
      "old_mode": 33188,
      "old_path": "net/dccp/input.c",
      "new_id": "77a5d57ab70285d32dc3b97f33e1fffd10ee66f2",
      "new_mode": 33188,
      "new_path": "net/dccp/input.c"
    },
    {
      "type": "modify",
      "old_id": "3163ae980f16f5c5710b9857dc3d9e35a35796b2",
      "old_mode": 33188,
      "old_path": "net/dccp/options.c",
      "new_id": "b11d7b7167f0a00f79cda29f518dd3921dee0316",
      "new_mode": 33188,
      "new_path": "net/dccp/options.c"
    }
  ]
}
