)]}'
{
  "commit": "8e1ee18c332e08bee9d8bd66e63cd564fbf17fc2",
  "tree": "8dace1db660d555eb6e020f301fdfe6cf6c05b80",
  "parents": [
    "3c689b7320ae6f20dba6a8b71806a6c6fd604ee8"
  ],
  "author": {
    "name": "Vlad Yasevich",
    "email": "vladislav.yasevich@hp.com",
    "time": "Wed Oct 08 14:18:39 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Oct 08 14:18:39 2008 -0700"
  },
  "message": "sctp: Rework the tsn map to use generic bitmap.\n\nThe tsn map currently use is 4K large and is stuck inside\nthe sctp_association structure making memory references REALLY\nexpensive.  What we really need is at most 4K worth of bits\nso the biggest map we would have is 512 bytes.   Also, the\nmap is only really usefull when we have gaps to store and\nreport.  As such, starting with minimal map of say 32 TSNs (bits)\nshould be enough for normal low-loss operations.  We can grow\nthe map by some multiple of 32 along with some extra room any\ntime we receive the TSN which would put us outside of the map\nboundry.  As we close gaps, we can shift the map to rebase\nit on the latest TSN we\u0027ve seen.  This saves 4088 bytes per\nassociation just in the map alone along savings from the now\nunnecessary structure members.\n\nSigned-off-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c32ddf0279c83513430c841f8a5f31e4c969f7d3",
      "old_mode": 33188,
      "old_path": "include/net/sctp/constants.h",
      "new_id": "b05b0557211f00ee05cd5d27c3313c59072e1df3",
      "new_mode": 33188,
      "new_path": "include/net/sctp/constants.h"
    },
    {
      "type": "modify",
      "old_id": "94c62e4ddea9915eae413745c900f6b03645d1ba",
      "old_mode": 33188,
      "old_path": "include/net/sctp/structs.h",
      "new_id": "9661d7b765f08cc09295273b7e92edba74a32e4a",
      "new_mode": 33188,
      "new_path": "include/net/sctp/structs.h"
    },
    {
      "type": "modify",
      "old_id": "099211bf998dc1b9e740fa28508122133d94b85d",
      "old_mode": 33188,
      "old_path": "include/net/sctp/tsnmap.h",
      "new_id": "6dabbee8bbd3c396026f799be5e352e4d8e360c5",
      "new_mode": 33188,
      "new_path": "include/net/sctp/tsnmap.h"
    },
    {
      "type": "modify",
      "old_id": "abd51cef24131846299485b6f238ecbd4c939dbe",
      "old_mode": 33188,
      "old_path": "net/sctp/associola.c",
      "new_id": "f4b23043b610b85a7a004770569fa5a01e0e932a",
      "new_mode": 33188,
      "new_path": "net/sctp/associola.c"
    },
    {
      "type": "modify",
      "old_id": "76726bcff3e9b4a4cc599ff3dc85edfb51e84e2a",
      "old_mode": 33188,
      "old_path": "net/sctp/sm_make_chunk.c",
      "new_id": "6dd9b3ef33d0887a10d478e4555d27c25929d8b4",
      "new_mode": 33188,
      "new_path": "net/sctp/sm_make_chunk.c"
    },
    {
      "type": "modify",
      "old_id": "13d9eea5cf1a9b25258f60b1f9afeb7a80b9359e",
      "old_mode": 33188,
      "old_path": "net/sctp/sm_sideeffect.c",
      "new_id": "e1d6076b4f59531e6fa5ccd352e42f5e15b8a08b",
      "new_mode": 33188,
      "new_path": "net/sctp/sm_sideeffect.c"
    },
    {
      "type": "modify",
      "old_id": "f3e58b2759050806f00f7e0c5269489997e8bdb6",
      "old_mode": 33188,
      "old_path": "net/sctp/tsnmap.c",
      "new_id": "142ed7ca424d65d7974477745550b80d17c6b742",
      "new_mode": 33188,
      "new_path": "net/sctp/tsnmap.c"
    },
    {
      "type": "modify",
      "old_id": "a1f654aea2687ea740a48596a927486869bb7f65",
      "old_mode": 33188,
      "old_path": "net/sctp/ulpevent.c",
      "new_id": "5f186ca550d798e7fa4e6bad1262d16aca82dae4",
      "new_mode": 33188,
      "new_path": "net/sctp/ulpevent.c"
    }
  ]
}
