)]}'
{
  "log": [
    {
      "commit": "129fa44785a399248ae2466b6cb5c655e96668f7",
      "tree": "c2440b83e752c6cf3e6ec6f60492b85ddb8932a9",
      "parents": [
        "e5fd56ca4eb3a130882bbef69d6952ef6aca5c8d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Jan 04 21:45:33 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 21:45:33 2009 -0800"
      },
      "message": "dccp: Integrate the TFRC library with DCCP\n\nThis patch integrates the TFRC library, which is a dependency of CCID-3 (and\nCCID-4), with the new use of CCIDs in the DCCP module.\t\t\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5fd56ca4eb3a130882bbef69d6952ef6aca5c8d",
      "tree": "4e0c6670335f2434fbe8f44554988ca9832a685a",
      "parents": [
        "ddebc973c56b51b4e5d84d606f0430d81b895d67"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Jan 04 21:43:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 21:43:23 2009 -0800"
      },
      "message": "dccp: Clean up ccid.c after integration of CCID plugins\n\nThis patch cleans up after integrating the CCID modules and, in addition,\n\n * moves the if/else cases from ccid_delete() into ccid_hc_{tx,rx}_delete();\n * removes the \u0027gfp\u0027 argument to ccid_new() - since it is always gfp_any().\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4098dce5be537a157eed4a326efd464109825b8b",
      "tree": "f7116e98853d805eb874c4f2345c3cce2acbfaa7",
      "parents": [
        "0049bab5e765aa74cf767a834fa336e19453fc5e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 08 01:18:37 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:18:37 2008 -0800"
      },
      "message": "dccp: Remove manual influence on NDP Count feature\n\nUpdating the NDP count feature is handled automatically now:\n * for CCID-2 it is disabled, since the code does not use NDP counts;\n * for CCID-3 it is enabled, as NDP counts are used to determine loss lengths.\n\nAllowing the user to change NDP values leads to unpredictable and failing\nbehaviour, since it is then possible to disable NDP counts even when they\nare needed (e.g. in CCID-3).\n\nThis means that only those user settings are sensible that agree with the\nvalues for Send NDP Count implied by the choice of CCID. But those settings\nare already activated by the feature negotiation (CCID dependency tracking),\nhence this form of support is redundant.\n\nAt startup the initialisation of the NDP count feature uses the default\nvalue of 0, which is done implicitly by the zeroing-out of the socket when\nit is allocated. If the choice of CCID or feature negotiation enables NDP\ncount, this will then be updated via the NDP activation handler.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0049bab5e765aa74cf767a834fa336e19453fc5e",
      "tree": "f3210e13c5645dbedffe90a4b1f1dca787673bb0",
      "parents": [
        "63b8e2861f31868dce9c92fd7444f212a5a8a775"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 08 01:18:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:18:05 2008 -0800"
      },
      "message": "dccp: Remove obsolete parts of the old CCID interface\n\nThe TX/RX CCIDs of the minisock are now redundant: similar to the Ack Vector\ncase, their value equals initially that of the sysctl, but at the end of\nfeature negotiation may be something different.\n\nThe old interface removed by this patch thus has been replaced by the newer\ninterface to dynamically query the currently loaded CCIDs.\n\nAlso removed are the constructors for the TX CCID and the RX CCID, since the\nswitch \"rx \u003c-\u003e non-rx\" is done by the handler in minisocks.c (and the handler\nis the only place in the code where CCIDs are loaded).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63b8e2861f31868dce9c92fd7444f212a5a8a775",
      "tree": "086f7deee646fb9b69d58f06509e58664eeba27a",
      "parents": [
        "991d927c8652b2ab51bd8eef2b773bb2c77d457b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 08 01:17:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:17:32 2008 -0800"
      },
      "message": "dccp: Clean up old feature-negotiation infrastructure\n\nThe code removed by this patch is no longer referenced or used, the added\nlines update documentation and copyrights.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "422d9cdcb85b3622d08a590fed66021af7aea333",
      "tree": "e40520346933d4c1d27ad7712f09bcd45fb25fca",
      "parents": [
        "b1ad00422ecba0449f8e3a8f2ec9267bc994bf8f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:34:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:34:01 2008 -0800"
      },
      "message": "dccp: Feature activation handlers\n\nThis patch provides the post-processing of feature negotiation state, after\nthe negotiation has completed.\n\nTo this purpose, handlers are used and added to the dccp_feat_table. Each\nhandler is passed a boolean flag whether the RX or TX side of the feature\nis meant.\n\nSeveral handlers are provided already, new handlers can easily be added.\n\nThe initialisation is now fully dynamic, i.e. CCIDs are activated only\nafter the feature negotiation. The integration of this dynamic activation\nis done in the subsequent patches.\n\nThanks to Wei Yongjun for pointing out the necessity of skipping over empty\nConfirm options while copying the negotiated feature values.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1ad00422ecba0449f8e3a8f2ec9267bc994bf8f",
      "tree": "6a3923ca76d60dd0e39b7323c8abaa74bbc7db20",
      "parents": [
        "e77b8363b2ea7c0d89919547c1a8b0562f298b57"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:33:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:33:18 2008 -0800"
      },
      "message": "dccp: Processing Confirm options\n\nAnalogous to the previous patch, this adds code to interpret incoming Confirm\nfeature-negotiation options. Both functions operate on the feature-negotiation\nlist of either the request_sock (server) or the dccp_sock (client).\n\nThanks to Wei Yongjun for pointing out that it is overly restrictive to check\nthe entire list of confirmed SP values.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e77b8363b2ea7c0d89919547c1a8b0562f298b57",
      "tree": "9fdef240be3aeb49c012fd00d41f9ee90afe776c",
      "parents": [
        "75757a7d0c54f8fdd414c74a6005d275032b0115"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:32:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:32:35 2008 -0800"
      },
      "message": "dccp: Process incoming Change feature-negotiation options\n\nThis adds/replaces code for processing incoming ChangeL/R options.\nThe main difference is that:\n * mandatory FN options are now interpreted inside the function\n  (there are too many individual cases to do this externally);\n * the function returns an appropriate Reset code or 0,\n   which is then used to fill in the data for the Reset packet.\n\nOld code, which is no longer used or referenced, has been removed.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "75757a7d0c54f8fdd414c74a6005d275032b0115",
      "tree": "768c07adad4a6f42723acfeada434c045f36a489",
      "parents": [
        "8b7b6c75c6387527b195bb69100182288da94f84"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:31:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:31:04 2008 -0800"
      },
      "message": "dccp: Preference list reconciliation\n\nThis provides two functions to\n * reconcile preference lists (with appropriate return codes) and\n * reorder the preference list if successful reconciliation changed the\n   preferred value.\n\nThe patch also removes the old code for processing SP/NN Change options, since\nnew code to process these is mostly there already; related references have been\ncommented out.\n\nThe code for processing Change options follows in the next patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0971d17ca3d80f61863f4750091a64448bf91600",
      "tree": "4f4a4f334b382c873462788adf915e85230f5363",
      "parents": [
        "25f13048bce61f33f6a102e0bf377fd3922ed364"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:27:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:27:31 2008 -0800"
      },
      "message": "dccp: Insert feature-negotiation options into skb\n\nThis patch replaces the earlier insertion routine from options.c, so that\ncode specific to feature negotiation can remain in feat.c. This is possible\nby calling a function already existing in options.c.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d3e35aa78c9498eed3209c9d82376085ed0c36f",
      "tree": "76c349b4017f63ed8e0ac7f9d96ce5b64c8118b0",
      "parents": [
        "f4bdd264b43cc60dccb617afce2859dffdd7a935"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Nov 20 01:03:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 20 01:03:08 2008 -0800"
      },
      "message": "dccp: Fix bracing in dccp_feat_list_lookup.\n\nFrom: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49aebc66d6b896f9c7c5739d85c4548c00015aa7",
      "tree": "0b12afdd2e742c3eb481aef8d2adcb7b1aeca9f1",
      "parents": [
        "0c1168398ecbfacbb27203b281bde20ec9f78017"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 16 22:51:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 22:51:23 2008 -0800"
      },
      "message": "dccp: Deprecate old setsockopt framework\n\nThe previous setsockopt interface, which passed socket options via struct\ndccp_so_feat, is complicated/difficult to use. Continuing to support it leads to\nugly code since the old approach did not distinguish between NN and SP values.\n\nThis patch removes the old setsockopt interface and replaces it with two new\nfunctions to register NN/SP values for feature negotiation. \nThese are essentially wrappers around the internal __feat_register functions,\nwith checking added to avoid\n\n * wrong usage (type);\n * changing values while the connection is in progress.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c1168398ecbfacbb27203b281bde20ec9f78017",
      "tree": "3298379e950bba174b46e53102f265829340fa6d",
      "parents": [
        "3f2c31d90327f21d76d296af34aa4ca547932ff4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 16 22:49:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 22:49:52 2008 -0800"
      },
      "message": "dccp: Mechanism to resolve CCID dependencies\n\nThis adds a hook to resolve features whose value depends on the choice of\nCCID. It is done at the server since it can only be done after the CCID\nvalues have been negotiated; i.e. the client will add its CCID preference\nlist on the Change options sent in the Request, which will be reconciled\nwith the local preference list of the server.\n\nThe concept is documented on\nhttp://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/feature_negotiation/\\\n\t\t\t\timplementation_notes.html#ccid_dependencies\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9eca0a47dee201a73967026985b5f0a79a46bd36",
      "tree": "beb39fbd3c28865705d7409aa35fd59914257da9",
      "parents": [
        "d90ebcbfa7f5a8b4e20518c9f94c5c4e4cd3c2e5"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 12 00:48:44 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 00:48:44 2008 -0800"
      },
      "message": "dccp: Resolve dependencies of features on choice of CCID\n\nThis provides a missing link in the code chain, as several features implicitly\ndepend and/or rely on the choice of CCID. Most notably, this is the Send Ack Vector\nfeature, but also Ack Ratio and Send Loss Event Rate (also taken care of).\n\nFor Send Ack Vector, the situation is as follows:\n * since CCID2 mandates the use of Ack Vectors, there is no point in allowing \n   endpoints which use CCID2 to disable Ack Vector features such a connection;\n\n * a peer with a TX CCID of CCID2 will always expect Ack Vectors, and a peer\n   with a RX CCID of CCID2 must always send Ack Vectors (RFC 4341, sec. 4);\n\n * for all other CCIDs, the use of (Send) Ack Vector is optional and thus\n   negotiable. However, this implies that the code negotiating the use of Ack\n   Vectors also supports it (i.e. is able to supply and to either parse or\n   ignore received Ack Vectors). Since this is not the case (CCID-3 has no Ack\n   Vector support), the use of Ack Vectors is here disabled, with a comment\n   in the source code.\n\nAn analogous consideration arises for the Send Loss Event Rate feature,\nsince the CCID-3 implementation does not support the loss interval options\nof RFC 4342. To make such use explicit, corresponding feature-negotiation\noptions are inserted which signal the use of the loss event rate option,\nas it is used by the CCID3 code.\n\nLastly, the values of the Ack Ratio feature are matched to the choice of CCID.\n\nThe patch implements this as a function which is called after the user has\nmade all other registrations for changing default values of features.\n\nThe table is variable-length, the reserved (and hence for feature-negotiation\ninvalid, confirmed by considering section 19.4 of RFC 4340) feature number `0\u0027\nis used to mark the end of the table.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d90ebcbfa7f5a8b4e20518c9f94c5c4e4cd3c2e5",
      "tree": "b1fb407c7ee1adbe8215311675d133a83a2d55b5",
      "parents": [
        "e8ef967a54f401ac5e8637b7f7f8bddb006144c4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 12 00:47:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 00:47:26 2008 -0800"
      },
      "message": "dccp: Query supported CCIDs\n\nThis provides a data structure to record which CCIDs are locally supported\nand three accessor functions:\n - a test function for internal use which is used to validate CCID requests\n   made by the user;\n - a copy function so that the list can be used for feature-negotiation;   \n - documented getsockopt() support so that the user can query capabilities.\n\nThe data structure is a table which is filled in at compile-time with the\nlist of available CCIDs (which in turn depends on the Kconfig choices).\n\nUsing the copy function for cloning the list of supported CCIDs is useful for\nfeature negotiation, since the negotiation is now with the full list of available\nCCIDs (e.g. {2, 3}) instead of the default value {2}. This means negotiation \nwill not fail if the peer requests to use CCID3 instead of CCID2. \n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e8ef967a54f401ac5e8637b7f7f8bddb006144c4",
      "tree": "37f7e6b384f27f30158e8f5d750fa3235951265d",
      "parents": [
        "f74e91b6cca5889e667193c7e794186db73c2000"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 12 00:43:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 00:43:40 2008 -0800"
      },
      "message": "dccp: Registration routines for changing feature values\n\nTwo registration routines, for SP and NN features, are provided by this patch,\nreplacing a previous routine which was used for both feature types.\n\nThese are internal-only routines and therefore start with `__feat_register\u0027.\n\nIt further exports the known limits of Sequence Window and Ack Ratio as symbolic\nconstants.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f74e91b6cca5889e667193c7e794186db73c2000",
      "tree": "10f6a612d97b3ab5ba4ecd75b6decb669f178d76",
      "parents": [
        "6bb3ce25d05f2990c8a19adaf427531430267c1f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 12 00:42:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 00:42:58 2008 -0800"
      },
      "message": "dccp: Limit feature negotiation to connection setup phase\n\nThis patch limits feature (capability) negotation to the connection setup phase:\n\n 1. Although it is theoretically possible to perform feature negotiation at any\n    time (and RFC 4340 supports this), in practice this is prohibitively complex,\n    as it requires to put traffic on hold for each new negotiation.\n 2. As a byproduct of restricting feature negotiation to connection setup, the\n    feature-negotiation retransmit timer is no longer required. This part is now\n    mapped onto the protocol-level retransmission.\n    Details indicating why timers are no longer needed can be found on\n    http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/feature_negotiation/\\\n\t                                      implementation_notes.html\n\nThis patch disables anytime negotiation, subsequent patches work out full\nfeature negotiation support for connection setup.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac75773c2742d82cbcb078708df406e9017224b7",
      "tree": "7e7b1aa5131c4a61aabd9d86d7332eca98d66a89",
      "parents": [
        "61e6473efbd6087e1db3aaa93a5266c5bfd8aa99"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 04 23:55:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 04 23:55:49 2008 -0800"
      },
      "message": "dccp: Per-socket initialisation of feature negotiation\n\nThis provides feature-negotiation initialisation for both DCCP sockets\nand DCCP request_sockets, to support feature negotiation during\nconnection setup.\n\nIt also resolves a FIXME regarding the congestion control\ninitialisation.\n\nThanks to Wei Yongjun for help with the IPv6 side of this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61e6473efbd6087e1db3aaa93a5266c5bfd8aa99",
      "tree": "4717cfb41ad603d5def3db557628e5d96a918e63",
      "parents": [
        "7d43d1a0f2cf535167ec7247f110a1f85cecac43"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 04 23:54:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 04 23:54:04 2008 -0800"
      },
      "message": "dccp: List management for new feature negotiation\n\nThis adds list initial fields and list management functions for the\nnew feature negotiation implementation.\n\nThanks to Arnaldo for suggestions and improvements.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d43d1a0f2cf535167ec7247f110a1f85cecac43",
      "tree": "3dc4411cfe27b3ffd0368a65f8ec17dd809157a7",
      "parents": [
        "bd012f2e7be9f69a47d240ded0fa491967d9827c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 04 23:43:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 04 23:43:47 2008 -0800"
      },
      "message": "dccp: Implement lookup table for feature-negotiation information\n\nA lookup table for feature-negotiation information, extracted from RFC\n4340/42, is provided by this patch. All currently known features can\nbe found in this table, along with their feature location, their\ndefault value, and type.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "19443178fbfbf40db15c86012fc37df1a44ab857",
      "tree": "e41cd59c5e6aba6f5ca932c9131f73e563b02bf8",
      "parents": [
        "7a1aa309f21ea2f6c31f364341e4027ecf4e79bc"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Mon May 05 13:50:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 05 13:50:24 2008 -0700"
      },
      "message": "dccp: return -EINVAL on invalid feature length\n\ndccp_feat_change() validates length and on error is returning 1.\nThis happens to work since call chain is checking for 0 \u003d\u003d success,\nbut this is returned to userspace, so make it a real error value.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5cdae198de33184c01226395b840f44f9834233a",
      "tree": "581c70dcbb31fb2494f18191a7cf815fd2ed05e4",
      "parents": [
        "dd6303df095d18b0c524a76a42f57bcc679b2039"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:41:46 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:53 2008 -0800"
      },
      "message": "[DCCP]: Make code assumptions explicit\n\nThis removes several `XXX\u0027 references which indicate a missing support\nfor non-1-byte feature values: this is unnecessary, as all currently known\n(standardised) SP feature values are 1-byte quantities.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd6303df095d18b0c524a76a42f57bcc679b2039",
      "tree": "7bb19426bb87c895b3b0cdcb3639623481abbcea",
      "parents": [
        "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:40:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Remove unused and redundant validation functions\n\nThis removes two inlines which were both called in a single function only:\n\n 1) dccp_feat_change() is always called with either DCCPO_CHANGE_L or DCCPO_CHANGE_R as argument\n    * from dccp_set_socktopt_change() via do_dccp_setsockopt() with DCCP_SOCKOPT_CHANGE_R/L\n    * from __dccp_feat_init() via dccp_feat_init() also with DCCP_SOCKOPT_CHANGE_R/L.\n\n    Hence the dccp_feat_is_valid_type() is completely unnecessary and always returns true.\n\n 2) Due to (1), the length test reduces to \u0027len \u003e\u003d 4\u0027, which in turn makes\n    dccp_feat_is_valid_length() unnecessary.\n\nFurthermore, the inline function dccp_feat_is_reserved() was unfolded,\nsince only called in a single place.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e576de82ee628f68e5a44527c7ee99eadeab2e62",
      "tree": "387900c511a4171568997f37e450238107746b6d",
      "parents": [
        "d725fdc8027a4cd961f58d92917fbb91b171abfa"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Fri Aug 10 15:23:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 13 22:52:10 2007 -0700"
      },
      "message": "[DCCP]: fix memory leak and clean up style - dccp_feat_empty_confirm()\n\nThere\u0027s a memory leak in net/dccp/feat.c::dccp_feat_empty_confirm().  If we\nhit the \u0027default:\u0027 case of the \u0027switch\u0027 statement, then we return without\nfreeing \u0027opt\u0027, thus leaking \u0027struct dccp_opt_pend\u0027 bytes.\n\nThe leak is fixed easily enough by adding a kfree(opt); before the return\nstatement.\n\nThe patch also changes the layout of the \u0027switch\u0027 to be more in line with\nCodingStyle.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c9eaf17341834de00351bf79f16b2d879c8aea96",
      "tree": "d8b2005197444fa6b6bdf8e8c8fd6eaf2db9ecd7",
      "parents": [
        "4ec93edb14fe5fdee9fae6335f2cbba204627eac"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:38 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:27 2007 -0800"
      },
      "message": "[NET] DCCP: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8109b02b5397ed52a32c116163a62a34f4768b26",
      "tree": "0dbeae8cc999d2f6b71807b942eda7ff686ba7d2",
      "parents": [
        "1fba78b6cba14bd37fdb12c5367f1e4d58ff2e0f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Dec 10 16:01:18 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:35:00 2006 -0800"
      },
      "message": "[DCCP]: Whitespace cleanups\n\nThat accumulated over the last months hackaton, shame on me for not\nusing git-apply whitespace helping hand, will do that from now on.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "59348b19efebfd6a8d0791ff81d207b16594c94b",
      "tree": "a9212a7bf62bd594cf02d23b9e33eb45a46d414d",
      "parents": [
        "b1308dc015eb09cf094ca169296738a13ae049ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 20 18:39:23 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:24:38 2006 -0800"
      },
      "message": "[DCCP]: Simplified conditions due to use of enum:8 states\n\nThis reaps the benefit of the earlier patch, which changed the type of\nCCID 3 states to use enums, in that many conditions are now simplified\nand the number of possible (unexpected) values is greatly reduced.\n\nIn a few instances, this also allowed to simplify pre-conditions; where\ncare has been taken to retain logical equivalence.\n\n[DCCP]: Introduce a consistent BUG/WARN message scheme\n\nThis refines the existing set of DCCP messages so that\n * BUG(), BUG_ON(), WARN_ON() have meaningful DCCP-specific counterparts\n * DCCP_CRIT (for severe warnings) is not rate-limited\n * DCCP_WARN() is introduced as rate-limited wrapper\n\nUsing these allows a faster and cleaner transition to their original\ncounterparts once the code has matured into a full DCCP implementation.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "eed73417d501c2c7bdef1bc8a1f7a1548a635b09",
      "tree": "61fb259d247169bbe4194fff5d6461908fcead1b",
      "parents": [
        "af879cc704372ef762584e916129d19ffb39e844"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Nov 17 12:21:43 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:59 2006 -0800"
      },
      "message": "[DCCP]: Use kmemdup\n\nCode diff stats:\n\n[acme@newtoy net-2.6.20]$ codiff /tmp/dccp.ko.before /tmp/dccp.ko.after\n/pub/scm/linux/kernel/git/acme/net-2.6.20/net/dccp/feat.c:\n  __dccp_feat_init      |  -16\n  dccp_feat_change_recv |  -55\n  dccp_feat_clone       |  -56\n 3 functions changed, 127 bytes removed\n[acme@newtoy net-2.6.20]$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "c02fdc0e81e9c735d8d895af1e201b235df326d8",
      "tree": "f30af6744e4ecea9e5bb12483addb306d49ce458",
      "parents": [
        "6a128e053e75a5f1be9fb53d0d53159f88197c61"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 12:48:10 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:29 2006 -0800"
      },
      "message": "[DCCP]: Make feature negotiation more readable\n\nThis patch replaces cryptic feature negotiation messages of type\n\nOct 31 15:42:20 kernel: dccp_feat_change: feat change type\u003d32 feat\u003d1\nOct 31 15:42:21 kernel: dccp_feat_change: feat change type\u003d34 feat\u003d1\nOct 31 15:42:21 kernel: dccp_feat_change: feat change type\u003d32 feat\u003d5\n\ninto ones of type:\n\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeL(CCID (1), 3)\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeR(CCID (1), 3)\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeL(Ack Ratio (5), 2)\n\nAlso,\n\t* completed the feature number list wrt RFC 4340 sec. 6.4\n\t* annotating which ones have been implemented so far\n\t* implemented rudimentary sanity checking in feat.c (FIXMEs)\n\t* some minor fixes\n\nCommiter note: uninlined dccp_feat_name and dccp_feat_typename, for\n               consistency with dccp_{state,packet}_name, that, BTW,\n               should be compiled only if CONFIG_IP_DCCP_DEBUG is\n               selected, leaving this to another cset tho. Also\n               shortened dccp_feat_negotiation_debug to dccp_feat_debug.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "68907dad58cd7ef11536e1db6baeb98b20af91b2",
      "tree": "721ab4db9371e2ea3925244227daa4ab25f12aca",
      "parents": [
        "6a57b2ee4506bb8a3d2f7ba2f62ff65ec56ba150"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Mar 29 13:58:25 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 29 13:58:25 2006 -0800"
      },
      "message": "[DCCP]: Use NULL for pointers, comfort sparse.\n\nFrom: Randy Dunlap \u003crdunlap@xenotime.net\u003e\n\nUse NULL instead of 0 for pointers.\nFix these sparse warnings:\nnet/dccp/feat.c:207:20: warning: Using plain integer as NULL pointer\nnet/dccp/feat.c:325:21: warning: Using plain integer as NULL pointer\nnet/dccp/feat.c:526:20: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8ca0d17bd716c0aa3f496714e0e304fc6b982ae3",
      "tree": "a1e3881117aa4b687bacace28c794e7cc3522827",
      "parents": [
        "a4bf3902427a128455b8de299ff0918072b2e974"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:51:53 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:51:53 2006 -0800"
      },
      "message": "[DCCP] feat: Pass dccp_minisock ptr where only the minisock is used\n\nThis is in preparation for having a dccp_minisock embedded into\ndccp_request_sock so that feature negotiation can be done prior to\ncreating the full blown dccp_sock.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4bf3902427a128455b8de299ff0918072b2e974",
      "tree": "5269cd4d84702a0a728b390e08242be01252d20d",
      "parents": [
        "e6f507196c2b50243beb09b1bfa4639f999d4d1e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "message": "[DCCP] minisock: Rename struct dccp_options to struct dccp_minisock\n\nThis will later be included in struct dccp_request_sock so that we can\nhave per connection feature negotiation state while in the 3way\nhandshake, when we clone the DCCP_ROLE_LISTEN socket (in\ndccp_create_openreq_child) we\u0027ll just copy this state from\ndreq_minisock to dccps_minisock.\n\nAlso the feature negotiation and option parsing code will mostly touch\ndccps_minisock, which will simplify some stuff.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ffd30fbbb1b4a01a9f56049521693375a864d3e",
      "tree": "0d127a675df6e574d9120f93f33c9495365f7e5b",
      "parents": [
        "91f0ebf7b6d5cb2b6e818d48587566144821babe"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 19:22:37 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:22:37 2006 -0800"
      },
      "message": "[DCCP] feat: Actually change the CCID upon negotiation\n\nChange the CCID upon successful feature negotiation.\n\nCommiter note: patch mostly rewritten to use the new ccid API.\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afe00251dd9b53d51de91ff0099961f42bbf3754",
      "tree": "a56aa987140662cf3e6e65be402b8591298c5ced",
      "parents": [
        "2a91aa3967398fb94eccc8da67c82bce9f67afdf"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 17:43:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:43:56 2006 -0800"
      },
      "message": "[DCCP]: Initial feature negotiation implementation\n\nStill needs more work, but boots and doesn\u0027t crashes, even\ndoes some negotiation!\n\n18:38:52.174934  127.0.0.1.43458 \u003e 127.0.0.1.5001: request \u003cchange_l ack_ratio 2, change_r ccid 2, change_l ccid 2\u003e\n18:38:52.218526  127.0.0.1.5001 \u003e 127.0.0.1.43458: response \u003cnop, nop, change_l ack_ratio 2, confirm_r ccid 2 2, confirm_l ccid 2 2, confirm_r ack_ratio 2\u003e\n18:38:52.185398  127.0.0.1.43458 \u003e 127.0.0.1.5001: \u003cnop, confirm_r ack_ratio 2, ack_vector0 0x00, elapsed_time 212\u003e\n\n:-)\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
