)]}'
{
  "log": [
    {
      "commit": "59b80802a8a18b64d38b51aa168253684b2649d5",
      "tree": "b6be92f705d00796733e03e43041605b74d0ce5f",
      "parents": [
        "a7d13fbf85375698879d16f118af77fbfcc2de44"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Jun 22 01:14:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 25 21:33:15 2010 -0700"
      },
      "message": "dccp: make implementation of Syn-RTT symmetric\n\nThis patch is thanks to Andre Noll who reported the issue and helped testing.\n\nThe Syn-RTT sampled during the initial handshake currently only works for\nthe client sending the DCCP-Request. TFRC penalizes the absence of an RTT\nsample with a very slow initial speed (1 packet per second), which delays\nslow-start significantly, resulting in sluggish performance.\n\nThis patch mirrors the \"Syn RTT\" principle by adding a timestamp also onto\nthe DCCP-Response, producing an RTT sample  when the (Data)Ack completing\nthe handshake arrives.\n\nAlso changed the documentation to \u0027TFRC\u0027 since Syn RTTs are also used by CCID-4.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7d13fbf85375698879d16f118af77fbfcc2de44",
      "tree": "5b8220160aa441847e3f5f10c1a5086229e8dfa2",
      "parents": [
        "87cad5c385877ce45244886748564672fd6db035"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Jun 22 01:14:34 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 25 21:33:14 2010 -0700"
      },
      "message": "dccp: remove unused function argument\n\nThis removes an unused \u0027sk\u0027 argument from several option-inserting functions.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3f3abb62ccb1a1c77bcce855c04e12356e6ac95",
      "tree": "6b3e73207a047e600ab44bfe126132c538f4d772",
      "parents": [
        "883ca833e5fb814fb03426c9d35e5489ce43e8da"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Jan 16 23:36:33 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 14:34:05 2009 -0800"
      },
      "message": "dccp: Debugging functions for feature negotiation\n\nSince all feature-negotiation processing now takes place in feat.c,\nfunctions for producing verbose debugging output are concentrated\nthere.\n\nNew functions to print out values, entry records, and options are\nprovided, and also a macro is defined to not always have the function\nname in the output line.\n\nThanks a lot to Wei Yongjun and Giuseppe Galeota for help and\ndiscussion with an earlier revision 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": "883ca833e5fb814fb03426c9d35e5489ce43e8da",
      "tree": "dcf361291b79e57195f8d89ca493c15c835b14cf",
      "parents": [
        "792b48780e8b6435d017cef4b5c304876a48653e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Jan 16 23:36:32 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 21 14:34:05 2009 -0800"
      },
      "message": "dccp: Initialisation and type-checking of feature sysctls\n\nThis patch takes care of initialising and type-checking sysctls\nrelated to feature negotiation. Type checking is important since some\nof the sysctls now directly impact the feature-negotiation process.\n\nThe sysctls are initialised with the known default values for each\nfeature.  For the type-checking the value constraints from RFC 4340\nare used:\n\n * Sequence Window uses the specified Wmin\u003d32, the maximum is ulong (4 bytes),\n   tested and confirmed that it works up to 4294967295 - for Gbps speed;\n * Ack Ratio is between 0 .. 0xffff (2-byte unsigned integer);\n * CCIDs are between 0 .. 255;\n * request_retries, retries1, retries2 also between 0..255 for good measure;\n * tx_qlen is checked to be non-negative;\n * sync_ratelimit remains as before.\n\nNotes:\n------\n 1. Die s@sysctl_dccp_feat@sysctl_dccp@g since the sysctls are now in feat.c.\n 2. As pointed out by Arnaldo, the pattern of type-checking repeats itself in\n    other places, sometimes with exactly the same kind of definitions (e.g.\n    \"static int zero;\"). It may be a good idea (kernel janitors?) to consolidate\n    type checking. For the sake of keeping the changeset small and in order not\n    to affect other subsystems, I have not strived to generalise here.\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": "6fdd34d43bff8be9bb925b49d87a0ee144d2ab07",
      "tree": "547cf602983db37d573d3d191ac11660f1698e8f",
      "parents": [
        "4098dce5be537a157eed4a326efd464109825b8b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 08 01:19:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:19:06 2008 -0800"
      },
      "message": "dccp ccid-2: Phase out the use of boolean Ack Vector sysctl\n\nThis removes the use of the sysctl and the minisock variable for the Send Ack\nVector feature, as it now is handled fully dynamically via feature negotiation\n(i.e. when CCID-2 is enabled, Ack Vectors are automatically enabled as per\n RFC 4341, 4.).\n\nUsing a sysctl in parallel to this implementation would open the door to\ncrashes, since much of the code relies on tests of the boolean minisock /\nsysctl variable. Thus, this patch replaces all tests of type\n\n\tif (dccp_msk(sk)-\u003edccpms_send_ack_vector)\n\t\t/* ... */\nwith\n\tif (dp-\u003edccps_hc_rx_ackvec !\u003d NULL)\n\t\t/* ... */\n\nThe dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature\nnegotiation concluded that Ack Vectors are to be used on the half-connection.\nOtherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),\nso that the test is a valid one.\n\nThe activation handler for Ack Vectors is called as soon as the feature\nnegotiation has concluded at the\n * server when the Ack marking the transition RESPOND \u003d\u003e OPEN arrives;\n * client after it has sent its ACK, marking the transition REQUEST \u003d\u003e PARTOPEN.\n\nAdding the sequence number of the Response packet to the Ack Vector has been\nremoved, since\n (a) connection establishment implies that the Response has been received;\n (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.\n     this entry will always be ignored;\n (c) it can not be used for anything useful - to detect loss for instance, only\n     packets received after the loss can serve as pseudo-dupacks.\n\nThere was a FIXME to change the error code when dccp_ackvec_add() fails.\nI removed this after finding out that:\n * the check whether ackno \u003c ISN is already made earlier,\n * this Response is likely the 1st packet with an Ackno that the client gets,\n * so when dccp_ackvec_add() fails, the reason is likely not a packet error.\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": "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": "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": "8b7b6c75c6387527b195bb69100182288da94f84",
      "tree": "4a87cbdcacf5736c41eae01481c31c2729bea1a6",
      "parents": [
        "0971d17ca3d80f61863f4750091a64448bf91600"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 01 23:29:30 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 01 23:29:30 2008 -0800"
      },
      "message": "dccp: Integrate feature-negotiation insertion code\n\nThe patch implements insertion of feature negotiation at the server (listening\nand request socket) and the client (connecting socket).\n\nIn dccp_insert_options(), several statements have been grouped together now\nto achieve (it is hoped) better efficiency by reducing the number of tests\neach packet has to go through:\n - Ack Vectors are sent if the packet is neither a Data or a Request packet;\n - a previous issue is corrected - feature negotiation options are allowed\n   on DataAck packets (5.8).\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": "3ed7cc0f8b29da4304825a7bcef25fc83f84c1ae",
      "tree": "ee7dcfc216faa1668b763b25af55ad569e920f28",
      "parents": [
        "b71e839f9a33abf8634b1eea4875bc8057fe39e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:57:30 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:57:30 2008 -0800"
      },
      "message": "dccp: fix warning in net/dccp/options.c\n\nthis warning:\n\n  net/dccp/options.c: In function ‘dccp_parse_options’:\n  net/dccp/options.c:67: warning: ‘value’ may be used uninitialized in this function\n\nis a bogus GCC warning. The compiler does not recognize the relation\nbetween \"value\" and \"mandatory\" variables: the code flow can ever reach\nthe \"out_invalid_option:\" label if \u0027mandatory\u0027 is set to 1, and when\n\u0027mandatory\u0027 is non-zero, we\u0027ll always have \u0027value\u0027 initialized.\n\nHelp out the compiler by annotating the variable.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8c862c23e2563e6aedfc6c4aa6827cadb83f2414",
      "tree": "55550ae7c2b62e5b93a09487278db91c334d615a",
      "parents": [
        "d371056695ef993d36c57b73d654e66080377a9c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 23 16:10:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 16:10:23 2008 -0800"
      },
      "message": "dccp: Header option insertion routine for feature-negotiation\n\nThe patch extends existing code:\n * Confirm options divide into the confirmed value plus an optional preference\n   list for SP values. Previously only the preference list was echoed for SP\n   values, now the confirmed value is added as per RFC 4340, 6.1;\n * length and sanity checks are added to avoid illegal memory (or NULL) access.\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": "d371056695ef993d36c57b73d654e66080377a9c",
      "tree": "85e587e5558cf00232d8b24b4e28a390d3856d2a",
      "parents": [
        "02fa460ef553faabc7e0b15ff9f607f028739808"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 23 16:09:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 16:09:11 2008 -0800"
      },
      "message": "dccp: Support for Mandatory options\n\nSupport for Mandatory options is provided by this patch, which will\nbe used by subsequent feature-negotiation patches.\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": "02fa460ef553faabc7e0b15ff9f607f028739808",
      "tree": "04342d781df0b0a1953cfcc6c52cbca7e172896a",
      "parents": [
        "71c262a3dd42dea73700646d969b0af7a4102edf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 23 16:07:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 23 16:07:53 2008 -0800"
      },
      "message": "dccp: Increase the scope of variable-length htonl/ntohl functions\n\nThis extends the scope of two available functions,\nencode|decode_value_var, to work up to 6 (8) bytes, to match maximum\nrequirements in the RFC.\n\nThese functions are going to be used both by general option processing\nand feature negotiation code, hence declarations have been put into\nfeat.h.\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": "dd9c0e363cef32b7d6f23d4c87e8dfe4f91fd1c5",
      "tree": "2ae48a033a925169f0fd71bdc18a683a308f46c4",
      "parents": [
        "29450559849da7066813601effb7666966869853"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 16 22:55:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 22:55:08 2008 -0800"
      },
      "message": "dccp: Deprecate Ack Ratio sysctl\n\nThis patch deprecates the Ack Ratio sysctl, since\n * Ack Ratio is entirely ignored by CCID-3 and CCID-4,\n * Ack Ratio currently doesn\u0027t work in CCID-2 (i.e. is always set to 1);\n * even if it would work in CCID-2, there is no point for a user to change it:\n   - Ack Ratio is constrained by cwnd (RFC 4341, 6.1.2),\n   - if Ack Ratio \u003e cwnd, the system resorts to spurious RTO timeouts\n     (since waiting for Acks which will never arrive in this window),\n   - cwnd is not a user-configurable value.\n\nThe only reasonable place for Ack Ratio is to print it for debugging. It is\nplanned to do this later on, as part of e.g. dccp_probe.\n\nWith this patch Ack Ratio is now under full control of feature negotiation:\n * Ack Ratio is resolved as a dependency of the selected CCID;\n * if the chosen CCID supports it (i.e. CCID \u003d\u003d CCID-2), Ack Ratio is set to\n   the default of 2, following RFC 4340, 11.3 - \"New connections start with Ack\n   Ratio 2 for both endpoints\";\n * what happens then is part of another patch set, since it concerns the\n   dynamic update of Ack Ratio while the connection is in full flight.\n\nThanks to Tomasz Grobelny for discussion leading up to this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\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": "410e27a49bb98bc7fa3ff5fc05cc313817b9f253",
      "tree": "88bb1fcf84f9ebfa4299c9a8dcd9e6330b358446",
      "parents": [
        "0a68a20cc3eafa73bb54097c28b921147d7d3685"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 09 13:27:22 2008 +0200"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 09 13:27:22 2008 +0200"
      },
      "message": "This reverts \"Merge branch \u0027dccp\u0027 of git://eden-feed.erg.abdn.ac.uk/dccp_exp\"\nas it accentally contained the wrong set of patches. These will be\nsubmitted separately.\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "c8bf462bc567c3dcb083ff95cc13060dd06f138c",
      "tree": "c612129b23db7bb8613fff4c6e2d51301bc77f65",
      "parents": [
        "5a577b488f687f339dea62e7bb4f4c5793ad523f"
      ],
      "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: Separate option parsing from CCID processing\n\nThis patch replaces an almost identical replication of code: large parts\nof dccp_parse_options() re-appeared as ccid2_ackvector() in ccid2.c.\n\nApart from the duplication, this caused two more problems:\n 1. CCIDs should not need to be concerned with parsing header options;\n 2. one can not assume that Ack Vectors appear as a contiguous area within an\n    skb, it is legal to insert other options and/or padding in between. The\n    current code would throw an error and stop reading in such a case.\n\nThe patch provides a new data structure and associated list housekeeping.\n\nOnly small changes were necessary to integrate with CCID-2: data structure\ninitialisation, adapt list traversal routine, and add call to the provided\ncleanup routine.\n\nThe latter also lead to fixing the following BUG: CCID-2 so far ignored\nAck Vectors on all packets other than Ack/DataAck, which is incorrect,\nsince Ack Vectors can be present on any packet that has an Ack field.\n\nDetails:\n--------\n * received Ack Vectors are parsed by dccp_parse_options() alone, which passes\n   the result on to the CCID-specific routine ccid_hc_tx_parse_options();\n * CCIDs interested in using/decoding Ack Vector information will add code\n   to fetch parsed Ack Vectors via this interface;\n * a data structure, `struct dccp_ackvec_parsed\u0027 is provided as interface;\n * this structure arranges Ack Vectors of the same skb into a FIFO order;\n * a doubly-linked list is used to keep the required FIFO code small.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "c2f42077bd06f300ae959204f3c007f820f5e769",
      "tree": "7e3d9c3c8b18f18b35a6ce19d84467ae8711521c",
      "parents": [
        "283fb4a5f39d1521d53e1044bff0ba2654acf145"
      ],
      "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: Schedule Sync as out-of-band mechanism\n\nThe problem with Ack Vectors is that \n\n  i) their length is variable and can in principle grow quite large,\n ii) it is hard to predict exactly how large they will be.\n\nDue to the second point it seems not a good idea to reduce the MPS; in\nparticular when on average there is enough room for the Ack Vector and an\nincrease in length is momentarily due to some burst loss, after which the\nAck Vector returns to its normal/average length.\n\nThe solution taken by this patch is to subtract a minimum-expected Ack Vector\nlength from the MPS (previous patch), and to defer any larger Ack Vectors onto\na separate Sync - but only if indeed there is no space left on the skb.\n\nThis patch provides the infrastructure to schedule Sync-packets for transporting\n(urgent) out-of-band data. Its signalling is quicker than scheduling an Ack, since\nit does not need to wait for new application data.\n\nIt can thus serve other parts of the DCCP code as well.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "d7dc7e5f49299739e610ea8febf9ea91a4dc1ae9",
      "tree": "30a2e1c3b9e99b1a386ca99efa71769415437885",
      "parents": [
        "4829007c7bc689cbc290fc09eccbe90bd52c2a5e"
      ],
      "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:36 2008 +0200"
      },
      "message": "dccp ccid-2: Implementation of circular Ack Vector buffer with overflow handling\n\nThis completes the implementation of a circular buffer for Ack Vectors, by \nextending the current (linear array-based) implementation.  The changes are:\n\n (a) An `overflow\u0027 flag to deal with the case of overflow. As before, dynamic\n     growth of the buffer will not be supported; but code will be added to deal\n     robustly with overflowing Ack Vector buffers.\n\n (b) A `tail_seqno\u0027 field. When naively implementing the algorithm of Appendix A\n     in RFC 4340, problems arise whenever subsequent Ack Vector records overlap,\n     which can bring the entire run length calculation completely out of synch.\n     (This is documented on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/\\\n                                             ack_vectors/tracking_tail_ackno/ .)\n (c) The buffer lengthi is now computed dynamically (i.e. current fill level),\n     as the span between head to tail.\n\nAs a result, dccp_ackvec_pending() is now simpler - the #ifdef is no longer \nnecessary since buf_empty is always true when IP_DCCP_ACKVEC is not configured.\n\nNote on overflow handling: \n-------------------------\n The Ack Vector code previously simply started to drop packets when the\n Ack Vector buffer overflowed. This means that the userspace application\n will not be able to receive, only because of an Ack Vector storage problem.\n \n Furthermore, overflow may be transient, so that applications may later\n recover from the overflow. Recovering from dropped packets is more difficult\n (e.g. video key frames).\n \n Hence the patch uses a different policy: when the buffer overflows, the oldest\n entries are subsequently overwritten. This has a higher chance of recovery.\n Details are on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ack_vectors/\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "4829007c7bc689cbc290fc09eccbe90bd52c2a5e",
      "tree": "f8f2058b9db8e8df7b4cb2f1f850ca3115e5c58f",
      "parents": [
        "ff49e27089ec363b7fc3849504e0435d447ab18a"
      ],
      "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:36 2008 +0200"
      },
      "message": "dccp ccid-2: Separate internals of Ack Vectors from option-parsing code\n\nThis patch\n * separates Ack Vector housekeeping code from option-insertion code;\n * shifts option-specific code from ackvec.c into options.c;\n * introduces a dedicated routine to take care of the Ack Vector records;\n * simplifies the dccp_ackvec_insert_avr() routine: the BUG_ON was redundant, \n   since the list is automatically arranged in descending order of ack_seqno.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "2975abd251d795810932b20354729ba236d95bf9",
      "tree": "343733773977a67eb5aa7692ff301466125871e8",
      "parents": [
        "d0995e6a9e3328cdc76b4c45882dee118284f960"
      ],
      "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:35 2008 +0200"
      },
      "message": "dccp: Schedule an Ack when receiving timestamps\n\nThis schedules an Ack when receiving a timestamp, exploiting the\nexisting inet_csk_schedule_ack() function, saving one case in the\n`dccp_ack_pending()\u0027 function.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "f10ecaee6dc2c6d56783462b2a82e98bc81b55f4",
      "tree": "d8c8049b47c2a8bfa74a6308da21c6d873cb9131",
      "parents": [
        "ce177ae2e6b196659e93a9408cc1f5f13f206d13"
      ],
      "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:34 2008 +0200"
      },
      "message": "dccp: Replace magic CCID-specific numbers by symbolic constants\n\nThe constants DCCPO_{MIN,MAX}_CCID_SPECIFIC are nowhere used in the code, but\ninstead for the CCID-specific options numbers are used.\n\nThis patch unifies the use of CCID-specific option numbers, by adding symbolic\nnames reflecting the definitions in RFC 4340, 10.3.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "3306c781ff13aea89606435c134ec84e3c608681",
      "tree": "281cfebaf9504e4747938509efca0cc255b3372f",
      "parents": [
        "47a61e7b433a014296971ea1226eb1adb6310ab4"
      ],
      "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:34 2008 +0200"
      },
      "message": "dccp: Add packet type information to CCID-specific option parsing\n\nThis patch ...\n 1. adds packet type information to ccid_hc_{rx,tx}_parse_options(). This is \n    necessary, since table 3 in RFC 4340, 5.8 leaves it to the CCIDs to state\n    which options may (not) appear on what packet type.\n \n 2. adds such a check for CCID-3\u0027s {Loss Event, Receive} Rate as specified in\n    RFC 4340 8.3 (\"Receive Rate options MUST NOT be sent on DCCP-Data packets\")\n    and 8.5 (\"Loss Event Rate options MUST NOT be sent on DCCP-Data packets\").\n\n 3. removes an unused argument `idx\u0027 from ccid_hc_{rx,tx}_parse_options(). This\n    is also no longer necessary, since the CCID-specific option-parsing routines\n    are passed every single parameter of the type-length-value option encoding.\n\nAlso added documentation and made argument naming scheme consistent.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "76f738a7950b559a23ab3c692c99a02f35a54f7f",
      "tree": "51d8b63cc209821f73ae3af89a151d8185967c88",
      "parents": [
        "0a4822679d94e2b0117aeead06a19fad59533905"
      ],
      "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:32 2008 +0200"
      },
      "message": "dccp: Debugging functions for feature negotiation\n\nSince all feature-negotiation processing now takes place in feat.c, functions\nfor producing verbose debugging output are concentrated there.\n\nNew functions to print out values, entry records, and options are provided,\nand also a macro is defined to not always have the function name in the\noutput line.\n\nThanks a lot to Wei Yongjun and Giuseppe Galeota for help with errors in an\nearlier revision 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\n"
    },
    {
      "commit": "0a4822679d94e2b0117aeead06a19fad59533905",
      "tree": "a7df5bd77ba005e8b5a2f6be44929470d5916a74",
      "parents": [
        "51c7d4fa2675c106a980ddcdbe308b54b5151945"
      ],
      "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:32 2008 +0200"
      },
      "message": "dccp: Initialisation and type-checking of feature sysctls\n\nThis patch takes care of initialising and type-checking sysctls related to\nfeature negotiation. Type checking is important since some of the sysctls\nnow directly act on the feature-negotiation process.\n\nThe sysctls are initialised with the known default values for each feature.\nFor the type-checking the value constraints from RFC 4340 are used:\n\n * Sequence Window uses the specified Wmin\u003d32, the maximum is ulong (4 bytes),\n   tested and confirmed that it works up to 4294967295 - for Gbps speed;\n * Ack Ratio is between 0 .. 0xffff (2-byte unsigned integer);\n * CCIDs are between 0 .. 255;\n * request_retries, retries1, retries2 also between 0..255 for good measure;\n * tx_qlen is checked to be non-negative;\n * sync_ratelimit remains as before.\n\nFurther changes:\n----------------\nPerformed s@sysctl_dccp_feat@sysctl_dccp@g since the sysctls are now in feat.c.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "b235dc4abbc1356284bd0dc730efa711f394e0e2",
      "tree": "c8adf34d1904c04ab0bee54e3d60f743822a8e9f",
      "parents": [
        "68e074bfcef269bc61006c2740d7f89ccbbd93d7"
      ],
      "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:31 2008 +0200"
      },
      "message": "dccp ccid-2: Phase out the use of boolean Ack Vector sysctl\n\nThis removes the use of the sysctl and the minisock variable for the Send Ack\nVector feature, which is now handled fully dynamically via feature negotiation;\ni.e. when CCID2 is enabled, Ack Vectors are automatically enabled (as per\nRFC 4341, 4.).\n\nUsing a sysctl in parallel to this implementation would open the door to\ncrashes, since much of the code relies on tests of the boolean minisock /\nsysctl variable. Thus, this patch replaces all tests of type\n\n\tif (dccp_msk(sk)-\u003edccpms_send_ack_vector)\n\t\t/* ... */\nwith\n\tif (dp-\u003edccps_hc_rx_ackvec !\u003d NULL)\n\t\t/* ... */\n\nThe dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature\nnegotiation concluded that Ack Vectors are to be used on the half-connection.\nOtherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),\nso that the test is a valid one.\n\nThe activation handler for Ack Vectors is called as soon as the feature\nnegotiation has concluded at the\n * server when the Ack marking the transition RESPOND \u003d\u003e OPEN arrives;\n * client after it has sent its ACK, marking the transition REQUEST \u003d\u003e PARTOPEN.\n\nAdding the sequence number of the Response packet to the Ack Vector has been \nremoved, since\n (a) connection establishment implies that the Response has been received;\n (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.\n     this entry will always be ignored;\n (c) it can not be used for anything useful - to detect loss for instance, only\n     packets received after the loss can serve as pseudo-dupacks.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "68e074bfcef269bc61006c2740d7f89ccbbd93d7",
      "tree": "d5e43100cd59fbd7893ce730e8440a7b7d11ed0b",
      "parents": [
        "78673e24df27c76ec75565f4024d45c2c74ef148"
      ],
      "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:31 2008 +0200"
      },
      "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 is with 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\n"
    },
    {
      "commit": "d2150b7bff3d397692cf0dc890f198d23564de5f",
      "tree": "6916928ec289c46bca21c8a99640048e308fef3e",
      "parents": [
        "5a146b97d5e93db2df075c0d820f492bb996d0e3"
      ],
      "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:29 2008 +0200"
      },
      "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\n"
    },
    {
      "commit": "5a146b97d5e93db2df075c0d820f492bb996d0e3",
      "tree": "b21d2576cdaeffe14f28cbbce5b75b26cbf0ef91",
      "parents": [
        "c664d4f4e2963ee355b1b0e77461eb844d1b288d"
      ],
      "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:29 2008 +0200"
      },
      "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\n"
    },
    {
      "commit": "f8a644c07e6f38b2c3cbaf99990e867d670d207b",
      "tree": "f73051f64757db74135e538c4643a1d305a7fa0b",
      "parents": [
        "0ef118a017919cd661cf294811d1889ac556ee80"
      ],
      "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:29 2008 +0200"
      },
      "message": "dccp: Integrate feature-negotiation insertion code\n\nThe patch implements insertion of feature negotiation at the server (listening\nand request socket) and the client (connecting socket).\n\nIn dccp_insert_options(), several statements have been grouped together now\nto achieve (I hope) better efficiency by reducing the number of tests each\npacket has to go through:\n - Ack Vectors are sent if the packet is neither a Data or a Request packet;\n - a previous issue is corrected - feature negotiation options are allowed\n   on DataAck packets (5.8).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "cf9ddf73b9ba21a5cd6d3fcb0a45cfa9ec452033",
      "tree": "c5137cf30d6f28100e57492e5c0e64a7294add22",
      "parents": [
        "d0440ee6f6903fcde6ed4efb88c910de1dfa18e5"
      ],
      "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:29 2008 +0200"
      },
      "message": "dccp: Header option insertion routine for feature-negotiation\n\nThe patch extends existing code:\n * Confirm options divide into the confirmed value plus an optional preference\n   list for SP values. Previously only the preference list was echoed for SP\n   values, now the confirmed value is added as per RFC 4340, 6.1;\n * length and sanity checks are added to avoid illegal memory (or NULL) access.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "d0440ee6f6903fcde6ed4efb88c910de1dfa18e5",
      "tree": "3eacaa56f4766967365d6f944129b6b71b528d9a",
      "parents": [
        "b9aaac1c538a9c86e8ef3be2579a13ff55580908"
      ],
      "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:28 2008 +0200"
      },
      "message": "dccp: Support for Mandatory options\n\nSupport for Mandatory options is provided by this patch, which will\nbe used by subsequent feature-negotiation patches.\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\n"
    },
    {
      "commit": "b9aaac1c538a9c86e8ef3be2579a13ff55580908",
      "tree": "3647b3d93e22ad4fb4e31460bf81f4040a697d70",
      "parents": [
        "c8041e264b3db6944d37b87969fbe6458cb30cfd"
      ],
      "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:28 2008 +0200"
      },
      "message": "dccp: Increase the scope of variable-length htonl/ntohl functions\n\nThis extends the scope of two available functions, encode|decode_value_var,\nto work up to 6 (8) bytes, to match maximum requirements in the RFC.\n\nThese functions are going to be used both by general option processing and \nfeature negotiation code, hence declarations have been put into feat.h.\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\n"
    },
    {
      "commit": "17c30b40ed79e9f3955e884632c8f01e577b204a",
      "tree": "41b91885f808f0b1d48b8b87a303ea7891565a46",
      "parents": [
        "20f41eee82864e308a5499308a1722dc3181cc3a"
      ],
      "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:28 2008 +0200"
      },
      "message": "dccp: Deprecate Ack Ratio sysctl\n\nThis patch deprecates the Ack Ratio sysctl, since\n * Ack Ratio is entirely ignored by CCID-3 and CCID-4,\n * Ack Ratio currently doesn\u0027t work in CCID-2 (i.e. is always set to 1);\n * even if it would work in CCID-2, there is no point for a user to change it:\n   - Ack Ratio is constrained by cwnd (RFC 4341, 6.1.2),\n   - if Ack Ratio \u003e cwnd, the system resorts to spurious RTO timeouts \n     (since waiting for Acks which will never arrive in this window),\n   - cwnd is not a user-configurable value.\t\n\nThe only reasonable place for Ack Ratio is to print it for debugging. It is\nplanned to do this later on, as part of e.g. dccp_probe.\n\nWith this patch Ack Ratio is now under full control of feature negotiation:\n * Ack Ratio is resolved as a dependency of the selected CCID;\n * if the chosen CCID supports it (i.e. CCID \u003d\u003d CCID-2), Ack Ratio is set to\n   the default of 2, following RFC 4340, 11.3 - \"New connections start with Ack\n   Ratio 2 for both endpoints\";\n * what happens then is part of another patch set, since it concerns the \n   dynamic update of Ack Ratio while the connection is in full flight.\n\nThanks to Tomasz Grobelny for discussion leading up to this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "5591d286281fdfb57914f5fad3ca001d44ce8fc6",
      "tree": "e823aa756d48f31670815be0d4a1d1813d0d54d2",
      "parents": [
        "702083839b607f390dbed5d2304eb8fc5f4c85ac"
      ],
      "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:27 2008 +0200"
      },
      "message": "dccp: Limit feature negotiation to connection setup phase\n\nThis patch starts the new implementation of feature negotiation:\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\n"
    },
    {
      "commit": "eac7726bf5cd24440d84b166e0813668d1bf3224",
      "tree": "02d293769c68cd87f3cc8c2184080f2e8a58fc42",
      "parents": [
        "faf61c3319ea336ed47acd6ca86faaaa3a8f4937"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Aug 23 13:28:27 2008 +0200"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Sep 04 07:45:25 2008 +0200"
      },
      "message": "dccp: Fill in the Data fields for \"Option Error\" Resets\n\nThis updates the use of the `out_invalid_option\u0027 label, which produces a \nReset (code 5, \"Option Error\"), to fill in the  Data1...Data3 fields as\nspecified in RFC 4340, 5.6.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "faf61c3319ea336ed47acd6ca86faaaa3a8f4937",
      "tree": "1882b47335d202597b57ce393049ba9e48fdacb2",
      "parents": [
        "ba1a6c7bc0ff33e405f5156dc8f4145437255f1f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Aug 23 13:28:27 2008 +0200"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Sep 04 07:45:24 2008 +0200"
      },
      "message": "dccp: Silently ignore options with nonsensical lengths\n\nThis updates the option-parsing code with regard to RFC 4340, 5.8:\n \"[..] options with nonsensical lengths (length byte less than two or more\n  than the remaining space in the options portion of the header) MUST be\n  ignored, and any option space following an option with nonsensical length\n  MUST likewise be ignored.\"\n\nHence in the following cases erratic options will be ignored:\n 1. The type byte of a multi-byte option is the last byte of the header\n    options (i.e. effective option length of 1).\n 2. The value of the length byte is less than the minimum 2. This has been \n    changed from previously 3: although no multi-byte option with a length\n    less than 3 yet exists (cf. table 3 in 5.8), a length of 2 is valid.\n    (The switch-statement in dccp_parse has further per-option length checks.)\n 3. The option length exceeds the length of the remaining option space.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "5b5d0e704880addfd979c262e6441f126708539c",
      "tree": "1b3bff6cd378c858ab245de3a40c3510d4ba4745",
      "parents": [
        "2013c7e35aeba39777f9b3eef8a70207b3931152"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Jul 13 11:51:40 2008 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Jul 13 11:51:40 2008 +0100"
      },
      "message": "dccp: Upgrade NDP count from 3 to 6 bytes\n\nRFC 4340, 7.7 specifies up to 6 bytes for the NDP Count option, whereas the code\nis currently limited to up to 3 bytes. This seems to be a relict of an earlier \ndraft version and is brought up to date by the patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "65907a433ac0ca450c4408080f24c6e4743386b2",
      "tree": "086656bf856f17038ca040a9bfb8e4c63e3707a3",
      "parents": [
        "1e2f0e5e8376f2a0ada8760fc9d3104e1a81382b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Jun 11 11:19:09 2008 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Jun 11 11:19:09 2008 +0100"
      },
      "message": "dccp ccid-2: Bug-Fix - Ack Vectors need to be ignored on request sockets\n\nThis fixes an oversight from an earlier patch, ensuring that Ack Vectors\nare not processed on request sockets.\n\nThe issue is that Ack Vectors must not be parsed on request sockets, since\nthe Ack Vector feature depends on the selection of the (TX) CCID. During the\ninitial handshake the CCIDs are undefined, and so RFC 4340, 10.3 applies:\n\n \"Using CCID-specific options and feature options during a negotiation\n  for the corresponding CCID feature is NOT RECOMMENDED [...]\"\n\nAnd it is not even possible: when the server receives the Request from the \nclient, the CCID and Ack vector features are undefined; when the Ack finalising\nthe 3-way hanshake arrives, the request socket has not been cloned yet into a\nfull socket. (This order is necessary, since otherwise the newly created socket\nwould have to be destroyed whenever an option error occurred - a malicious\nhacker could simply send garbage options and exploit this.)\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "cf86314cb7460423b0b7e611edad80a52dc90d10",
      "tree": "19c9389017f08828f2bcbbf1652904fa64aa8e84",
      "parents": [
        "5cdae198de33184c01226395b840f44f9834233a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:48:19 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:54 2008 -0800"
      },
      "message": "[DCCP]: Ignore feature negotiation on Data packets\n\nThis implements [RFC 4340, p. 32]: \"any feature negotiation options received\non DCCP-Data packets MUST be ignored\".\n\nAlso added a FIXME for further processing, since the code currently (wrongly)\nclassifies empty Confirm options as invalid - this needs to be resolved in\na separate patch.\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": "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc",
      "tree": "c675b01b9f1ae5099ea0be7c13942f6e2a98a676",
      "parents": [
        "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:38:11 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Support inserting options during the 3-way handshake\n\nThis provides a separate routine to insert options during the initial handshake.\nThe main purpose is to conduct feature negotiation, for the moment the only user\nis the timestamp echo needed for the (CCID3) handshake RTT sample.\n\nPadding of options has been put into a small separate routine, to be shared among\nthe two functions. This could also be used as a generic routine to finish inserting\noptions.\n\nAlso removed an `XXX\u0027 comment since its content was obvious.\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": "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4",
      "tree": "b84c712184dfcdde4b68980f4eff21bcaefbfcf3",
      "parents": [
        "8109616e2ef978d142ea45850efd4f102b9bdce4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:37:19 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:51 2008 -0800"
      },
      "message": "[DCCP]: Handle timestamps on Request/Response exchange separately\n\nIn DCCP, timestamps can occur on packets anytime, CCID3 uses a timestamp(/echo) on the Request/Response\nexchange. This patch addresses the following situation:\n\t* timestamps are recorded on the listening socket;\n\t* Responses are sent from dccp_request_sockets;\n\t* suppose two connections reach the listening socket with very small time in between:\n\t* the first timestamp value gets overwritten by the second connection request.\n\nThis is not really good, so this patch separates timestamps into\n * those which are received by the server during the initial handshake (on dccp_request_sock);\n * those which are received by the client or the client after connection establishment.\n\nAs before, a timestamp of 0 is regarded as indicating that no (meaningful) timestamp has been\nreceived (in addition, a warning message is printed if hosts send 0-valued timestamps).\n\nThe timestamp-echoing now works as follows:\n * when a timestamp is present on the initial Request, it is placed into dreq, due to the\n   call to dccp_parse_options in dccp_v{4,6}_conn_request;\n * when a timestamp is present on the Ack leading from RESPOND \u003d\u003e OPEN, it is copied over\n   from the request_sock into the child cocket in dccp_create_openreq_child;\n * timestamps received on an (established) dccp_sock are treated as before.\n\nSince Elapsed Time is measured in hundredths of milliseconds (13.2), the new dccp_timestamp()\nfunction is used, as it is expected that the time between receiving the timestamp and\nsending the timestamp echo will be very small against the wrap-around time. As a byproduct,\nthis allows smaller timestamping-time fields.\n\nFurthermore, inserting the Timestamp Echo option has been taken out of the block starting with\n\u0027!dccp_packet_without_ack()\u0027, since Timestamp Echo can be carried on any packet (5.8 and 13.3).\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: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b819412481494fb6861c08d360b75fabcbbfbbf",
      "tree": "ddd9f976f051fb5cff794992b38613bbbfcb9cc1",
      "parents": [
        "7913350663e2756ecb91dd3a7c773806b943426e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:29:24 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:50 2008 -0800"
      },
      "message": "[DCCP]: Allow to parse options on Request Sockets\n\nThe option parsing code currently only parses on full sk\u0027s. This causes a problem for\noptions sent during the initial handshake (in particular timestamps and feature-negotiation\noptions). Therefore, this patch extends the option parsing code with an additional argument\nfor request_socks: if it is non-NULL, options are parsed on the request socket, otherwise\nthe normal path (parsing on the sk) is used.\n\nSubsequent patches, which implement feature negotiation during connection setup, make use\nof this facility.\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": "c86ab2b6a5deec2223a606b90c001bedda9d950b",
      "tree": "92cb4b8549f2cc623cb0422e354875944790ba6d",
      "parents": [
        "6d57b43bf810cd66ccf252c04ba65c3e8e56cbb1"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 21 10:13:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:47 2008 -0800"
      },
      "message": "[DCCP]: Ignore Ack Vectors / Elapsed Time on DCCP-Request also\n\nSmall update with regard to RFC 4340 (references added as documentation):\non Requests, Ack Vectors / Elapsed Time should be ignored.\nLength handling of Elapsed Time also simplified.\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": "76fd1e87d9456c8185b8df76ac5e533e0c8b39bb",
      "tree": "2706975f5e479de467afd959d68866dd12bbb363",
      "parents": [
        "d8ef2c29a0dcfccb2d90cac990143d1a4668708a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 24 10:46:58 2007 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Wed Oct 24 10:46:58 2007 -0200"
      },
      "message": "[DCCP]: Unaligned pointer access\n\nThis fixes `unaligned (read) access\u0027 errors of the type\n\nKernel unaligned access at TPC[100f970c] dccp_parse_options+0x4f4/0x7e0 [dccp]\nKernel unaligned access at TPC[1011f2e4] ccid3_hc_tx_parse_options+0x1ac/0x380 [dccp_ccid3]\nKernel unaligned access at TPC[100f9898] dccp_parse_options+0x680/0x880 [dccp]\n\nby using the get_unaligned macro for parsing options.\n\nCommiter note: Preserved the sparse __be{16,32} annotations.\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\n"
    },
    {
      "commit": "dcad856fe8e0222012d9ae0e4dc6c6e5cce276e6",
      "tree": "6eba059a2b8bea346ff54ad6bd9913991c7e4d5f",
      "parents": [
        "451bc0473f010babeadd888ae8ec1015959fd1b2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:44:01 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:36 2007 -0700"
      },
      "message": "[DCCP]: Wrong format in printk\n\nThe elapsed time uses u32, but printk was using %d, not %u.\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\n"
    },
    {
      "commit": "451bc0473f010babeadd888ae8ec1015959fd1b2",
      "tree": "19aa37b414f2879556bfa376aac277b9cd547a63",
      "parents": [
        "5e28599a6e45eb8ce7e50510b06c3a34ebf1a8fa"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:43:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:36 2007 -0700"
      },
      "message": "[DCCP]: Tidy-up -- minisock initialisation\n\nThis\n\n * removes a declaration of a non-existent function\n   __dccp_minisock_init;\n\n * shifts the initialisation function dccp_minisock_init() from\n   options.c to minisocks.c, where it is more naturally expected to\n   be.\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": "4c70f383e0c0273c4092c4efdb414be0966978b7",
      "tree": "733cc2497ec68c74d42ed6d8f6978b24152a3de0",
      "parents": [
        "aa97efd97acefb7d3dcd864adb878c7ce34061b3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 25 22:40:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:35 2007 -0700"
      },
      "message": "[DCCP]: Provide 10s of microsecond timesource\n\nThis provides a timesource, conveniently used for DCCP timestamps, which\nreturns the elapsed time in 10s of microseconds since initialisation.\nThis makes for a wrap-around time of about 11.9 hours, which should be\nsufficient for most applications.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8fb8354af9b92ce3bd41083995f1fe26024d0959",
      "tree": "62d1920b5ed158e28d96691637d82a2a4fd58dc5",
      "parents": [
        "234748954a9880cce8a065698dcbf692f9c23918"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:19:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:17 2007 -0700"
      },
      "message": "[DCCP]: Nuke dccp_timestamp and dccps_epoch, not used anymore\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "234748954a9880cce8a065698dcbf692f9c23918",
      "tree": "04c98174068201d9f631ed3967065a10f1664ee1",
      "parents": [
        "19ac21465e15e476220909c01b23df847b6ffa30"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:18:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:16 2007 -0700"
      },
      "message": "[DCCP] options: convert dccp_insert_option_timestamp to ktime_t\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "19ac21465e15e476220909c01b23df847b6ffa30",
      "tree": "0f47d32208477e4150e9caa295e1badad7321628",
      "parents": [
        "0740d49c2465bdd2644455c4bc49794395b73433"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:18:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:16 2007 -0700"
      },
      "message": "[DCCP]: Convert dccps_timestamp_time to ktime_t\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f73f7097c986aab159491dcded7fc918e76e9ec3",
      "tree": "8064000a2ed8c4567e56e1c666c2464728305d3a",
      "parents": [
        "b2449fdc30ccac550344df5e60d38bb8427b109c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Apr 20 13:56:47 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:55 2007 -0700"
      },
      "message": "[DCCP]: Debug statements for Elapsed Time option\n\nThis prints the value of the parsed Elapsed Time when received via a\nTimestamp Echo option [RFC 4342, 13.3].\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: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89560b53b92a07c529e13a462aa7fd87a844f1f5",
      "tree": "89409bee68da1ee44b7945315efecd779d7fe60a",
      "parents": [
        "7dfee1a9c07f80a82aa5fbad340146f2b5c794b4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 20 15:27:17 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:02 2007 -0700"
      },
      "message": "[DCCP]: Sample RTT from SYN exchange\n\nFunction:\n"
    },
    {
      "commit": "cb69cc52364690d7789940c480b3a9490784b680",
      "tree": "725cef0cfc7e43b0826490ccd99769baacf2977d",
      "parents": [
        "fe067e8ab5e0dc5ca3c54634924c628da92090b4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Mar 07 19:33:52 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:03 2007 -0700"
      },
      "message": "[TCP/DCCP/RANDOM]: Remove unused exports.\n\nThis patch removes the following not or no longer used exports:\n- drivers/char/random.c: secure_tcp_sequence_number\n- net/dccp/options.c: sysctl_dccp_feat_sequence_window\n- net/netlink/af_netlink.c: netlink_set_err\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "65d6c2b42ecc0ca77bb3c0fe27fcbdc84fc7a79a",
      "tree": "f38a54545125cf0c736fd484f03ec3e3ee3d971a",
      "parents": [
        "f6282f4da5eb67e08eff94d73a1911c3a008846a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 10 00:05:38 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:34:49 2006 -0800"
      },
      "message": "[DCCP] ccid: Deprecate ccid_hc_tx_insert_options\n\n The function ccid3_hc_tx_insert_options only does a redundant no-op,\n as the operation\n\n  DCCP_SKB_CB(skb)-\u003edccpd_ccval \u003d hctx-\u003eccid3hctx_last_win_count;\n\n is already performed _unconditionally_ in ccid3_hc_tx_send_packet.\n\n Since there is further no current need for this function, it is removed\n entirely. Since furthermore, there is actually no present need for the\n entire interface function ccid_hc_tx_insert_options, it was decided to\n remove it also, to clean up the interface.\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": "bdf13d208dee4ada6d2b422536a12b45d5831aa3",
      "tree": "ce8c076cce9f8c1bb70d5d6c0f05da2767df3a3f",
      "parents": [
        "0bd4ff1b1528a39b07aab6c744ac37e053740ad0"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Fri Nov 24 13:02:42 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:30:32 2006 -0800"
      },
      "message": "[DCCP] ackvec: infrastructure for sending more than one ackvec per packet\n\nCommiter note:\n\nThis was split from Andrea\u0027s original patch, in the process I changed the type\nof the ackvec index fields to u16 instead of to int and haven\u0027t folded\ndccp_ackvec_parse with dccp_ackvec_check_rcv_ackno.\n\nNext patch will actually do the insertion of more than one ackvec per packet,\nusing, initially, up to a max of 2 ackvecs as per Andrea\u0027s original patch, then\nI\u0027ll work on support for larger ackvecs, be it using a sysctl or using\nsetsockopt.\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\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": "09dbc3895e3242346bd434dae743c456fd28fc6a",
      "tree": "a7bc1d0879b025152bff9e4a0ba44beaa5da654b",
      "parents": [
        "c02fdc0e81e9c735d8d895af1e201b235df326d8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 12:57:34 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:30 2006 -0800"
      },
      "message": "[DCCP]: Miscellaneous code tidy-ups\n\nThis patch does not change code; it performs some trivial clean/tidy-ups:\n\n  * removal of a `debug_prefix\u0027 string in favour of the\n    already existing dccp_role(sk)\n\n  * add documentation of structures and constants\n\n  * separated out the cases for invalid packets (step 1\n    of the packet validation)\n\n  * removing duplicate statements\n\n  * combining declaration \u0026 initialisation\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": "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": "afb0a34dd3e20b3f534de19993271b8664cf10bb",
      "tree": "f7660923d8dfa7e75ea655b99a6b608d67dea327",
      "parents": [
        "2e2e9e92bd723244ea20fa488b1780111f2b05e1"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 13 13:25:41 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:19 2006 -0800"
      },
      "message": "[DCCP]: Introduce a consistent naming scheme for sysctls\n\nIn order to make their function clearer and obtain a consistent naming\nscheme to identify sysctls, all existing DCCP sysctls have been prefixed\nwith `sysctl_dccp\u0027, following the same convention as used by TCP.\n\nFeature-specific sysctls retain the `feat\u0027 in the middle, although the\n`default\u0027 has been dropped, since it is obvious from use.\n\nAlso removed a duplicate `dccp_feat_default_sequence_window\u0027 in ipv4.c.\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": "0e64e94e477f8ed04e9295b11a5898d443c28a47",
      "tree": "0a02a3017d41a3a21038ff081b93b5b6359e1692",
      "parents": [
        "977a415f2b70b5693aaa23b1a16ad57ea20a1dce"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Oct 24 16:17:51 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 24 16:17:51 2006 -0700"
      },
      "message": "[DCCP]: Update documentation references.\n\nUpdates the references to spec documents throughout the code, taking into\naccount that\n\n* the DCCP, CCID 2, and CCID 3 drafts all became RFCs in March this year\n\n* RFC 1063 was obsoleted by RFC 1191\n\n* draft-ietf-tcpimpl-pmtud-0x.txt was published as an Informational\n  RFC, RFC 2923 on 2000-09-22.\n\nAll references verified.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.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": "e6bccd357343e98db9e1fd0d487f4f924e1a7921",
      "tree": "21155efb0a977e9a408b0e6013b44bacff4b1881",
      "parents": [
        "f3166c07175c1639687288006aeabed363a921f3"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Sat Aug 26 19:01:30 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Aug 26 19:01:30 2006 -0700"
      },
      "message": "[DCCP]: Update contact details and copyright\n\nJust updating copyright and contacts\n\nSigned off by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b79f0af48d529a360d3529def01835dc5d45fe1",
      "tree": "0d5013514dd5f19a09f9c2d32dee2ba0f4f4827a",
      "parents": [
        "8fdf679fdb00f588b65abb9c775c178098a05aeb"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Sun Jul 23 23:33:28 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 24 12:44:21 2006 -0700"
      },
      "message": "[DCCP]: Fix default sequence window size\n\nWhen using the default sequence window size (100) I got the following in\nmy logs:\n\nJun 22 14:24:09 localhost kernel: [ 1492.114775] DCCP: Step 6 failed for\nDATA packet, (LSWL(6279674225) \u003c\u003d P.seqno(6279674749) \u003c\u003d\nS.SWH(6279674324)) and (P.ackno doesn\u0027t exist or LAWL(18798206530) \u003c\u003d\nP.ackno(1125899906842620) \u003c\u003d S.AWH(18798206548), sending SYNC...\nJun 22 14:24:09 localhost kernel: [ 1492.115147] DCCP: Step 6 failed for\nDATA packet, (LSWL(6279674225) \u003c\u003d P.seqno(6279674750) \u003c\u003d\nS.SWH(6279674324)) and (P.ackno doesn\u0027t exist or LAWL(18798206530) \u003c\u003d\nP.ackno(1125899906842620) \u003c\u003d S.AWH(18798206549), sending SYNC...\n\nI went to alter the default sysctl and it didn\u0027t take for new sockets.\nBelow patch fixes this.\n\nI think the default is too low but it is what the DCCP spec specifies.\n\nAs a side effect of this my rx speed using iperf goes from about 2.8 Mbits/sec\nto 3.5. This is still far too slow but it is a step in the right direction.\n\nCompile tested only for IPv6 but not particularly complex change.\n\nSigned off by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "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": "fb9504964d32f69e4381dc8895eeb8e81a32af72",
      "tree": "156bf7039f0502f823cf81cccd9ac8f8a1d83d95",
      "parents": [
        "57b47a53ec4a67691ba32cff5768e8d78fa6c67f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:36:01 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:36:01 2006 -0800"
      },
      "message": "[DCCP]: Fix uninitialized var warnings in dccp_parse_options().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d0817d11eaec57435feb61493331a763f732a2b",
      "tree": "7c42229b1cc64e67efe8ed21b82cdc513e638f82",
      "parents": [
        "110bae4efb5ed5565257a0fb9f6d26e6125a1c4b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:32:06 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:32:06 2006 -0800"
      },
      "message": "[DCCP] options: Make dccp_insert_options \u0026 friends yell on error\n\nAnd not the silly LIMIT_NETDEBUG and silently return without inserting\nthe option requested.\n\nAlso drop some old debugging messages associated to option insertion.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5a6de915ba9ba828751ade5d3e874072a89a00a",
      "tree": "cac9cbfd549fa7736fe5af0e5c0f7b0f83854f16",
      "parents": [
        "aa837b5bbd92ca3791345e809d0027594faa738b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:30:51 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:30:51 2006 -0800"
      },
      "message": "[DCCP] options: Fix handling of ackvecs in DATA packets\n\nI.e. they should be just ignored, but we have to use \u0027break\u0027, not \u0027continue\u0027,\nas we have to possibly reset the mandatory flag.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6df9424a9ca35f9fab773d1a0a8919781a367125",
      "tree": "3c577a45046f9daeb574a76df704f88f76175faf",
      "parents": [
        "c0c736db7ef4a7bdc1a28f3de751cc7e9f720313"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:06:02 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:06:02 2006 -0800"
      },
      "message": "[DCCP] options: Fix some aspects of mandatory option processing\n\nAccording to dccp draft (draft-ietf-dccp-spec-13.txt) section 5.8.2\n(Mandatory Option) the following patch correct the handling of the\nfollowing cases:\n\n1) \"... and any Mandatory options received on DCCP-Data packets MUST be\n  ignored.\"\n\n2) \"The connection is in error and should be reset with Reset Code 5, ...\n  if option O is absent (Mandatory was the last byte of the option list), or\n  if option O equals Mandatory.\"\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: Hagen Paul Pfeifer \u003chagen@jauu.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b61fafc4ef3faf54236d57e3b230ca19167663bf",
      "tree": "d928d79a28556ee06fda685458d3f398b6e57d40",
      "parents": [
        "46f09ffa7db595f49fb42338e013417756816d37"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 21:25:11 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 21:25:11 2006 -0800"
      },
      "message": "[DCCP]: Move the IPv4 specific bits from proto.c to ipv4.c\n\nWith this patch in place we can break down the complexity by better\ncompartmentalizing the code that is common to ipv6 and ipv4.\n\nNow we have these modules:\nModule                  Size  Used by\ndccp_diag               1344  0\ninet_diag               9448  1 dccp_diag\ndccp_ccid3             15856  0\ndccp_tfrc_lib          12320  1 dccp_ccid3\ndccp_ccid2              5764  0\ndccp_ipv4              16996  2\ndccp                   48208  4 dccp_diag,dccp_ccid3,dccp_ccid2,dccp_ipv4\n\ndccp_ipv6 still requires dccp_ipv4 due to dccp_ipv6_mapped, that is\nthe next target to work on the \"hey, ipv4 is legacy, I only want ipv6\ndude!\" direction.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e55d912f5b75723159348a7fc7692f869a86636a",
      "tree": "c00be180cac20e4247ffda446ad266d885a1a811",
      "parents": [
        "04e2661e9c00386412b64612549cf24c8baef67c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 19:25:02 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:25:02 2006 -0800"
      },
      "message": "[DCCP] feat: Introduce sysctls for the default features\n\n[root@qemu ~]# for a in /proc/sys/net/dccp/default/* ; do echo $a ; cat $a ; done\n/proc/sys/net/dccp/default/ack_ratio\n2\n/proc/sys/net/dccp/default/rx_ccid\n3\n/proc/sys/net/dccp/default/send_ackvec\n1\n/proc/sys/net/dccp/default/send_ndp\n1\n/proc/sys/net/dccp/default/seq_window\n100\n/proc/sys/net/dccp/default/tx_ccid\n3\n[root@qemu ~]#\n\nSo if wanting to test ccid3 as the tx CCID one can just do:\n\n[root@qemu ~]# echo 3 \u003e /proc/sys/net/dccp/default/tx_ccid\n[root@qemu ~]# echo 2 \u003e /proc/sys/net/dccp/default/rx_ccid\n[root@qemu ~]# cat /proc/sys/net/dccp/default/[tr]x_ccid\n2\n3\n[root@qemu ~]#\n\nOf course we also need the setsockopt for each app to tell its preferences, but\nfor testing or defining something other than CCID2 as the default for apps that\ndon\u0027t explicitely set their preference the sysctl interface is handy.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60fe62e789076ae7c13f7ffb35fec4b24802530d",
      "tree": "cc8d507a4276c3d5a2bcb72746660d485bc2e045",
      "parents": [
        "a193a4abdd1f742a57f3f70b6a83c3e536876e97"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 19:23:32 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:23:32 2006 -0800"
      },
      "message": "[DCCP]: sparse endianness annotations\n\nThis also fixes the layout of dccp_hdr short sequence numbers, problem\nwas not fatal now as we only support long (48 bits) sequence numbers.\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: Al Viro \u003cviro@zeniv.linux.org.uk\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"
    },
    {
      "commit": "561713cf475de1f671cc89c437927ec008a20209",
      "tree": "f0485a84b71e2e14f02c9c87e792b187e28b6fdd",
      "parents": [
        "65299d6c3cfb49cc3eee4fc483e7edd23ea7b2ed"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:18:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:18:52 2005 -0700"
      },
      "message": "[DCCP]: Don\u0027t use necessarily the same CCID for tx and rx\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae31c3399d17b1f7bc1742724f70476b5417744f",
      "tree": "c34099afb228936672e6e589f0af7d81f1f62443",
      "parents": [
        "21f130a2370ba837cdfc5204ebe52e7c664fec3d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "message": "[DCCP]: Move the ack vector code to net/dccp/ackvec.[ch]\n\nIsolating it, that will be used when we introduce a CCID2 (TCP-Like)\nimplementation.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0e567806d16586629468c824dfb2e71155df7da",
      "tree": "70f5905fae3270985fed1050335c56598fd32646",
      "parents": [
        "954ee31f366fabe53fb450482789258fe552f40b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:38:35 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:38:35 2005 -0300"
      },
      "message": "[DCCP] Introduce dccp_timestamp\n\nTo start the timestamps with 0.0ms, easing the integer maths in the CCIDs, this\nprobably will be reworked to use the to be introduced struct timeval_offset\ninfrastructure out of skb_get_timestamp, etc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "1c14ac0ae8eb62cbb40af1e31b156994c7d7d3d5",
      "tree": "d58ab81e5a82d53e58596dda2dc6a9dab88fd0b4",
      "parents": [
        "27ae543e6f116df66e2b19ff0a3aa1053e4784d8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:32:01 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:32:01 2005 -0300"
      },
      "message": "[DCCP] Give precedence to the biggest ELAPSED_TIME\n\nWe can get this value in an TIMESTAMP_ECHO and/or in an ELAPSED_TIME option, if\nreceiving both give precendence to the biggest one.\n\nIn my tests they are very close if not equal at all times, so we may well think\nabout removing the code in CCID3 that inserts this option and leaving this to\nthe core, and perhaps even use just TIMESTAMP_ECHO including the elapsed time.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "507d37cf269ebbd1b32bcc435fe577e411f73151",
      "tree": "68b797a2f2c8645a86ac1a5f521df6b8873d9338",
      "parents": [
        "0ba7a3ba6608de6e0c0bfe3009a63d7e0b7ab0ce"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:30:07 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:30:07 2005 -0300"
      },
      "message": "[CCID] Only call the HC insert_options methods when requested\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "b6ee3d4ada4e85d9b9b9164c1327ef0850c79d5e",
      "tree": "26dfc68ab042ebb8186fe3a93a34723cb1faaae1",
      "parents": [
        "1f2333aea3269e196c44ae9a220e714cc1427792"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 27 18:18:18 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:11:56 2005 -0700"
      },
      "message": "[CCID3]: Reorganise timeval handling\n\nIntroducing functions to add to or subtract from a timeval variable\nand renaming now_delta to timeval_new_delta that calls do_gettimeofday\nand then timeval_delta, that should be used when there are several\ndeltas made relative to the current time or setting variables to it,\nso as to avoid calling do_gettimeofday excessively.\n\nI\u0027m leaving these \"timeval_\" prefixed funcions internal to DCCP for a\nwhile till we\u0027re sure there are no subtle bugs in it.\n\nIt also is more correct as it checks if the number of usecs added to\nor subtracted from a tv_usec field is more than 2 seconds.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d4b81ff70547b40c9b0742b163e8354560003cc0",
      "tree": "dde55db47394af881411a33e06843ff8ab3fd3d8",
      "parents": [
        "012e13eac7579fcc7618df4ca1d5af3cdc03748c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 23 21:51:36 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:04:53 2005 -0700"
      },
      "message": "[DCCP]: Export dccp_insert_option_timestamp to CCIDs\n\nAnd don\u0027t insert a TIMESTAMP option in all packets, leave the decision\nto the CCIDs.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bc0986957b63a2fbbc46ab95d3d1d72830bda83",
      "tree": "8be8f0e0e19f58cc5cc9cb7d789f3283436712ed",
      "parents": [
        "bf0ff9e578ba7dd8331005f00ad7310122011f43"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "iam4@cs.waikato.ac.nz",
        "time": "Sat Aug 20 00:23:43 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:02:34 2005 -0700"
      },
      "message": "[DCCP]: Fix the timestamp options\n\nThis changes timestamp, timestamp echo, and elapsed time to use units of 10\nusecs as per DCCP spec. This has been tested to verify that times are correct.\nAlso fixed up length and used hton/ntoh more.\n\nStill to add in later patches:\n- actually use elapsed time to adjust RTT\n(commented out as was prior to this patch)\n- send options at times more closely following the spec\n(content is now correct)\n\nSigned-off-by: Ian McDonald \u003ciam4@cs.waikato.ac.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1c9fe7b818acbd36dc908c5c1ad4cab34c67b39",
      "tree": "7cc9a954c01b9161e44fc90ed24692fe6d933828",
      "parents": [
        "d179cd12928443f3ec29cfbc3567439644bd0afc"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "iam4@cs.waikato.ac.nz",
        "time": "Thu Aug 18 20:45:29 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:02:03 2005 -0700"
      },
      "message": "[DCCP]: Fix elapsed time option as per section 13.2 of spec v11\n\nThe elapsed time can be two bytes or four bytes only.\n\nSigned-off-by: Ian McDonald \u003ciam4@cs.waikato.ac.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1d3a35518779df0579dd9de0121354b49c68ddc",
      "tree": "1d99d52393b5eb2d46e306cecbaf86547cafbc6a",
      "parents": [
        "8649b0d4166e6e80ffa298e75abd8f2afdd491a6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 13 22:42:25 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:59:59 2005 -0700"
      },
      "message": "[DCCP]: Fix sparse warnings\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "725ba8eee3881e619c8e5a0116f1bdb6480ac2d9",
      "tree": "e4d92f0fcbac811ae5954f771794165225b0726f",
      "parents": [
        "531669a0a9041d60d13920973ef8aa4f743c14a0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 13 20:35:39 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:59:43 2005 -0700"
      },
      "message": "[DCCP]: Introduce the DCCP Kernel hacking menu\n\nOnly available if CONFIG_DEBUG_KERNEL is enabled in the \"Kernel\nHacking\" Menu.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7690af3fff7633e40b1b9950eb8489129251d074",
      "tree": "92fa07234a7547c4a7dd74877972b5a291673fcf",
      "parents": [
        "c173437669967301facff151bfeb7bae67354e4c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 13 20:34:54 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:59:26 2005 -0700"
      },
      "message": "[DCCP]: Just reflow the source code to fit in 80 columns\n\nAndrew Morton should be happy now 8)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64ce207306debd7157f47282be94770407bec01c",
      "tree": "b4004f01b2b0e935b95bcce9a78e60a9e9e17f65",
      "parents": [
        "64cf1e5d8b5f88d56509260e08fa0d8314277350"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 09 20:50:53 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:56:08 2005 -0700"
      },
      "message": "[NET]: Make NETDEBUG pure printk wrappers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6ccf55419c4f0021e7382f000f2fd14a29f3d3c",
      "tree": "c0b6446bf3ebf84437eeb16d357a7845598de206",
      "parents": [
        "1d3de414eb20d937d82c5219fd13ee4cedc499cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 09 20:27:14 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:34 2005 -0700"
      },
      "message": "[DCCP]: Fix u64 printf format warnings.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c",
      "tree": "3cb2732870c9cf8f976cb6fa57e0223f1c648e2a",
      "parents": [
        "c4365c9235f80128c3c3d5993074173941b1c1f0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:14:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:46 2005 -0700"
      },
      "message": "[DCCP]: Initial implementation\n\nDevelopment to this point was done on a subversion repository at:\n\nhttp://oops.ghostprotocols.net:81/cgi-bin/viewcvs.cgi/dccp-2.6/\n\nThis repository will be kept at this site for the foreseable future,\nso that interested parties can see the history of this code,\nattributions, etc.\n\nIf I ever decide to take this offline I\u0027ll provide the full history at\nsome other suitable place.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
