)]}'
{
  "log": [
    {
      "commit": "ab1e0a13d70299e792fd0527cefd070c1405fa5b",
      "tree": "d470e7b94b0e33ea59b12713366f1bee0b94f78c",
      "parents": [
        "9dc7f30e3bac329998a2a9bb814bd0abc7cb58e2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Feb 03 04:06:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 03 04:28:52 2008 -0800"
      },
      "message": "[SOCK] proto: Add hashinfo member to struct proto\n\nThis way we can remove TCP and DCCP specific versions of\n\nsk-\u003esk_prot-\u003eget_port: both v4 and v6 use inet_csk_get_port\nsk-\u003esk_prot-\u003ehash:     inet_hash is directly used, only v6 need\n                       a specific version to deal with mapped sockets\nsk-\u003esk_prot-\u003eunhash:   both v4 and v6 use inet_hash directly\n\nstruct inet_connection_sock_af_ops also gets a new member, bind_conflict, so\nthat inet_csk_get_port can find the per family routine.\n\nNow only the lookup routines receive as a parameter a struct inet_hashtable.\n\nWith this we further reuse code, reducing the difference among INET transport\nprotocols.\n\nEventually work has to be done on UDP and SCTP to make them share this\ninfrastructure and get as a bonus inet_diag interfaces so that iproute can be\nused with these protocols.\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  struct proto\t\t\t     |   +8\n  struct inet_connection_sock_af_ops |   +8\n 2 structs changed\n  __inet_hash_nolisten               |  +18\n  __inet_hash                        | -210\n  inet_put_port                      |   +8\n  inet_bind_bucket_create            |   +1\n  __inet_hash_connect                |   -8\n 5 functions changed, 27 bytes added, 218 bytes removed, diff: -191\n\nnet-2.6/net/core/sock.c:\n  proto_seq_show                     |   +3\n 1 function changed, 3 bytes added, diff: +3\n\nnet-2.6/net/ipv4/inet_connection_sock.c:\n  inet_csk_get_port                  |  +15\n 1 function changed, 15 bytes added, diff: +15\n\nnet-2.6/net/ipv4/tcp.c:\n  tcp_set_state                      |   -7\n 1 function changed, 7 bytes removed, diff: -7\n\nnet-2.6/net/ipv4/tcp_ipv4.c:\n  tcp_v4_get_port                    |  -31\n  tcp_v4_hash                        |  -48\n  tcp_v4_destroy_sock                |   -7\n  tcp_v4_syn_recv_sock               |   -2\n  tcp_unhash                         | -179\n 5 functions changed, 267 bytes removed, diff: -267\n\nnet-2.6/net/ipv6/inet6_hashtables.c:\n  __inet6_hash |   +8\n 1 function changed, 8 bytes added, diff: +8\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  inet_unhash                        | +190\n  inet_hash                          | +242\n 2 functions changed, 432 bytes added, diff: +432\n\nvmlinux:\n 16 functions changed, 485 bytes added, 492 bytes removed, diff: -7\n\n/home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:\n  tcp_v6_get_port                    |  -31\n  tcp_v6_hash                        |   -7\n  tcp_v6_syn_recv_sock               |   -9\n 3 functions changed, 47 bytes removed, diff: -47\n\n/home/acme/git/net-2.6/net/dccp/proto.c:\n  dccp_destroy_sock                  |   -7\n  dccp_unhash                        | -179\n  dccp_hash                          |  -49\n  dccp_set_state                     |   -7\n  dccp_done                          |   +1\n 5 functions changed, 1 bytes added, 242 bytes removed, diff: -241\n\n/home/acme/git/net-2.6/net/dccp/ipv4.c:\n  dccp_v4_get_port                   |  -31\n  dccp_v4_request_recv_sock          |   -2\n 2 functions changed, 33 bytes removed, diff: -33\n\n/home/acme/git/net-2.6/net/dccp/ipv6.c:\n  dccp_v6_get_port                   |  -31\n  dccp_v6_hash                       |   -7\n  dccp_v6_request_recv_sock          |   +5\n 3 functions changed, 5 bytes added, 38 bytes removed, diff: -33\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d86e0dac2ce412715181f792aa0749fe3effff11",
      "tree": "bc9197a7316c7d7641112d5f5975d8b91afdbd08",
      "parents": [
        "c67499c0e772064b37ad75eb69b28fc218752636"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:07:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:20 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v6 sockets per-net lookup.\n\nAdd a net argument to inet6_lookup and propagate it further.\nActually, this is tcp-v6 implementation of what was done for\ntcp-v4 sockets in a previous patch.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c67499c0e772064b37ad75eb69b28fc218752636",
      "tree": "7d2873308f16080c0c3801d6024881360dd8e196",
      "parents": [
        "941b1d22cc035ad58b3d9b44a1c74efac2d7e499"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:06:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:19 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v4 sockets per-net lookup.\n\nAdd a net argument to inet_lookup and propagate it further\ninto lookup calls. Plus tune the __inet_check_established.\n\nThe dccp and inet_diag, which use that lookup functions\npass the init_net into them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140",
      "tree": "37e8dce4268cb657a75e5074a38db48264f1e42f",
      "parents": [
        "611c183ebcb5af384df3a4ddb391034a1b6ac255"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:06 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_flow.\n\nNeeded to propagate it down to the __ip_route_output_key.\n\nSigned_off_by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5ccd792fa413f9336273cb8fa3b9dd3a7ec1735",
      "tree": "64b23972fdf667baa74a0895bf403b22eb7de86c",
      "parents": [
        "cb7928a528264a69b29b6001b490b64607ed0557"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 09 00:30:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:07 2008 -0800"
      },
      "message": "[NET]: Simple ctl_table to ctl_path conversions.\n\nThis patch includes many places, that only required\nreplacing the ctl_table-s with appropriate ctl_paths\nand call register_sysctl_paths().\n\nNothing special was done with them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4e18dade1f878db33ed38927de22e63d550970d",
      "tree": "514e2321c39618ae4c7ad4b15f7ae0d65eefb66c",
      "parents": [
        "cf35f43e6e41b160d8dedd80a127210fd3be9ada"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Jan 05 23:13:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:44 2008 -0800"
      },
      "message": "[CCID3]: Kill some bloat\n\nWithout a number of CONFIG.*DEBUG:\n\nnet/dccp/ccids/ccid3.c:\n  ccid3_hc_tx_update_x          | -170\n  ccid3_hc_tx_packet_sent       | -175\n  ccid3_hc_tx_packet_recv       | -169\n  ccid3_hc_tx_no_feedback_timer | -192\n  ccid3_hc_tx_send_packet       | -144\n 5 functions changed, 850 bytes removed, diff: -850\n\nnet/dccp/ccids/ccid3.c:\n  ccid3_update_send_interval | +191\n 1 function changed, 191 bytes added, diff: +191\n\nnet/dccp/ccids/ccid3.o:\n 6 functions changed, 191 bytes added, 850 bytes removed, diff: -659\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "152da81deb9a4870aeac352336184b2b14d4b2ba",
      "tree": "63db8e49be92e7f23667d8c3356177840287118f",
      "parents": [
        "d6701191329b51793bc56724548f0863d2149c29"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Dec 20 15:31:33 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:26 2008 -0800"
      },
      "message": "[INET]: Uninline the __inet_hash function.\n\nThis one is used in quite many places in the networking code and\nseems to big to be inline.\n\nAfter the patch net/ipv4/build-in.o loses ~650 bytes:\nadd/remove: 2/0 grow/shrink: 0/5 up/down: 461/-1114 (-653)\nfunction                                     old     new   delta\n__inet_hash_nolisten                           -     282    +282\n__inet_hash                                    -     179    +179\ntcp_sacktag_write_queue                     2255    2254      -1\n__inet_lookup_listener                       284     274     -10\ntcp_v4_syn_recv_sock                         755     493    -262\ntcp_v4_hash                                  389      35    -354\ninet_hash_connect                           1086     599    -487\n\nThis version addresses the issue pointed by Eric, that\nwhile being inline this function was optimized by gcc\nin respect to the \u0027listen_possible\u0027 argument.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a07a5a86d091699fd5e791765b8a79e6b1ef96cb",
      "tree": "95540f4a233271a8066b01f339c853a8277f12fe",
      "parents": [
        "52515e77a7a69867c479db4c9efb6be832b82179"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:58:04 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:24 2008 -0800"
      },
      "message": "[DCCP]: Remove unused inline function\n\nThe function follows48(), which is a special-case of dccp_delta_seqno(),\nis nowhere used in the DCCP code, thus removed by this 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": "52515e77a7a69867c479db4c9efb6be832b82179",
      "tree": "d4246af065a53f7e2ae92070ec07d59ba892baf6",
      "parents": [
        "d8d1252f744cb7cebd6ba3a4b7feec31ff23ccde"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:57:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:23 2008 -0800"
      },
      "message": "[CCID3]: Nofeedback timer according to rfc3448bis\n\nThis implements the changes to the nofeedback timer handling suggested\nin draft rfc3448bis00, section 4.4. In particular, these changes mean:\n\n * better handling of the lossless case (p \u003d\u003d 0)\n * the timestamp for computing t_ld becomes obsolete\n * much more recent document (RFC 3448 is almost 5 years old)\n * concepts in rfc3448bis arose from a real, working implementation\n   (cf. sec. 12)\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": "d8d1252f744cb7cebd6ba3a4b7feec31ff23ccde",
      "tree": "acb47c9a5e654a6b5ca3ebf60c8c60d783fb3a65",
      "parents": [
        "5bd370a63daf62bb5520c258f04e91a4d9d274dd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:48:47 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:22 2008 -0800"
      },
      "message": "[CCID3]: Implement rfc3448bis changes to feedback reception\n\nThis implements the algorithm to update the allowed sending rate X upon\nreceiving feedback packets, as described in draft rfc3448bis, 4.2/4.3.\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": "5bd370a63daf62bb5520c258f04e91a4d9d274dd",
      "tree": "acec316f81c7d2b4e87373a229875a2f78b6ca96",
      "parents": [
        "8e138e7949490eebdccbd65b1f660a0488149a6b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 10:25:06 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:22 2008 -0800"
      },
      "message": "[CCID3]: Remove two irrelevant states in TX feedback handling\n\n * the NO_SENT state is only triggered in bidirectional mode,\n   costing unnecessary processing.\n * the TERM (terminating) state is irrelevant.\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": "8e138e7949490eebdccbd65b1f660a0488149a6b",
      "tree": "8013f8f699f3bac8daa9747183a704854150c496",
      "parents": [
        "17159b0b494ad27f397f914d6eab1b91faf57630"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 10:07:44 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:21 2008 -0800"
      },
      "message": "[CCID3]: Use a function to update p_inv, and p is never used\n\nThis patch\n 1) concentrates previously scattered computation of p_inv into one function;\n 2) removes the `p\u0027 element of the CCID3 RX sock (it is redundant);\n 3) makes the tfrc_rx_info structure standalone, only used on demand.\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": "6179983ad30c43313e153b35af52bd9ebd7745c3",
      "tree": "1b1fcbad582d7aef0505910bdbfecaf833726357",
      "parents": [
        "84a97b0af8c29aa5a47cc5271968a9c6004fb91e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:37:55 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:59 2008 -0800"
      },
      "message": "[DCCP]: Introducing CCMPS\n\nThis introduces a CCMPS field for setting a CCID-specific upper bound on the application payload\nsize, as is defined in RFC 4340, section 14.\n\nOnly the TX CCID is considered in setting this limit, since the RX CCID generates comparatively\nsmall (DCCP-Ack) feedback packets. The CCMPS field includes network and transport layer header\nlengths. The only current CCMPS customer is CCID4 (via RFC 4828).\n\nA wrapper is used to allow querying the CCMPS even at times where the CCID modules may not have\nbeen fully negotiated yet.\n\nIn dccp_sync_mss() the variable `mss_now\u0027 has been renamed into `cur_mps\u0027, to reflect that we are\ndealing with an MPS, but not an MSS.\nSince the DCCP code closely follows the TCP code, the identifiers `dccp_sync_mss\u0027 and\n`dccps_mss_cache\u0027 have been kept, as they have direct TCP counterparts.\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": "84a97b0af8c29aa5a47cc5271968a9c6004fb91e",
      "tree": "8fb3da66a7c0cc0933b714de884f210f0ecb90e0",
      "parents": [
        "9cb2345a8c49ea380437d02bb9fd9f291c0a005d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:33:25 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:58 2008 -0800"
      },
      "message": "[CCID]: More informative registration\n\nThe patch makes the registration messages of CCID 2/3 a bit more\ninformative: instead of repeating the CCID number as currently done,\n\n        \"CCID: Registered CCID 2 (ccid2)\"  or\n        \"CCID: Registered CCID 3 (ccid3)\",\n\nthe descriptive names of the CCID\u0027s (from RFCs) are now used:\n\n\t\"CCID: Registered CCID 2 (TCP-like)\" and\n\t\"CCID: Registered CCID 3 (TCP-Friendly Rate Control)\".\n\nTo allow spaces in the name, the slab name string has been changed to\nrefer to the numeric CCID identifier, using the same format as before.\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": "9cb2345a8c49ea380437d02bb9fd9f291c0a005d",
      "tree": "d9305b7be0f0a29bdfc252285b7c1079c18a29cf",
      "parents": [
        "f5026fabda54e5ab5d469d8cfac5f46b4d321ce9"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:31:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:58 2008 -0800"
      },
      "message": "[DCCP]: Documentation for CCID operations\n\nThis adds documentation for the ccid_operations structure.\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": "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": "5cdae198de33184c01226395b840f44f9834233a",
      "tree": "581c70dcbb31fb2494f18191a7cf815fd2ed05e4",
      "parents": [
        "dd6303df095d18b0c524a76a42f57bcc679b2039"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:41:46 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:53 2008 -0800"
      },
      "message": "[DCCP]: Make code assumptions explicit\n\nThis removes several `XXX\u0027 references which indicate a missing support\nfor non-1-byte feature values: this is unnecessary, as all currently known\n(standardised) SP feature values are 1-byte quantities.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd6303df095d18b0c524a76a42f57bcc679b2039",
      "tree": "7bb19426bb87c895b3b0cdcb3639623481abbcea",
      "parents": [
        "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:40:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Remove unused and redundant validation functions\n\nThis removes two inlines which were both called in a single function only:\n\n 1) dccp_feat_change() is always called with either DCCPO_CHANGE_L or DCCPO_CHANGE_R as argument\n    * from dccp_set_socktopt_change() via do_dccp_setsockopt() with DCCP_SOCKOPT_CHANGE_R/L\n    * from __dccp_feat_init() via dccp_feat_init() also with DCCP_SOCKOPT_CHANGE_R/L.\n\n    Hence the dccp_feat_is_valid_type() is completely unnecessary and always returns true.\n\n 2) Due to (1), the length test reduces to \u0027len \u003e\u003d 4\u0027, which in turn makes\n    dccp_feat_is_valid_length() unnecessary.\n\nFurthermore, the inline function dccp_feat_is_reserved() was unfolded,\nsince only called in a single place.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "8109616e2ef978d142ea45850efd4f102b9bdce4",
      "tree": "338aa4e2bf9d9424090b0d698d20b3c465cf229c",
      "parents": [
        "8b819412481494fb6861c08d360b75fabcbbfbbf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:31:26 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:50 2008 -0800"
      },
      "message": "[DCCP]: Add (missing) option parsing to request_sock processing\n\nThis adds option-parsing code to processing of Acks in the listening state\non request_socks on the server, serving two purposes\n (i)  resolves a FIXME (removed);\n (ii) paves the way for feature-negotiation during connection-setup.\n\nThere is an intended subtlety here with regard to dccp_check_req:\n\n Parsing options happens only after testing whether the received packet is\n a retransmitted Request.  Otherwise, if the Request contained (a possibly\n large number of) feature-negotiation options, recomputing state would have to\n happen each time a retransmitted Request arrives, which opens the door to an\n easy DoS attack.  Since in a genuine retransmission the options should not be\n different from the original, reusing the already computed state seems better.\n\n The other point is - if there are timestamp options on the Request, they will\n not be answered; which means that in the presence of retransmission (likely\n due to loss and/or other problems), the use of Request/Response RTT sampling\n is suspended, so that startup problems here do not propagate.\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": "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": "7913350663e2756ecb91dd3a7c773806b943426e",
      "tree": "3fcb07f5465930633526affa050571527ecd5c5a",
      "parents": [
        "b8599d20708fa3bde1e414689f3474560c2d990b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:27:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:49 2008 -0800"
      },
      "message": "[DCCP]: Collapse repeated `len\u0027 statements into one\n\nThis replaces 4 individual assignments for `len\u0027 with a single\none, placed where the control flow of those 4 leads to.\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": "b8599d20708fa3bde1e414689f3474560c2d990b",
      "tree": "adeb51da63a75b03fa55ddbc4712c8359240a3bf",
      "parents": [
        "28be5440044d5b19b0331f79fb3e81845ad6d77e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:25:01 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:48 2008 -0800"
      },
      "message": "[DCCP]: Support for server holding timewait state\n\nThis adds a socket option and signalling support for the case where the server\nholds timewait state on closing the connection, as described in RFC 4340, 8.3.\n\nSince holding timewait state at the server is the non-usual case, it is enabled\nvia a socket option. Documentation for this socket option has been added.\n\nThe setsockopt statement has been made resilient against different possible cases\nof expressing boolean `true\u0027 values using a suggestion by Ian McDonald.\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": "28be5440044d5b19b0331f79fb3e81845ad6d77e",
      "tree": "859ca1c5cc4fe3787b67e26e6b19f0a6b4900278",
      "parents": [
        "92d31920b84f258badf206eea8aaf5ac677ac535"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:16:23 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:47 2008 -0800"
      },
      "message": "[DCCP]: Use maximum-RTO backoff from DCCP spec\n\nThis removes another Fixme, using the TCP maximum RTO rather than the value\nspecified by the DCCP specification. Across the sections in RFC 4340, 64\nseconds is consistently suggested as maximum RTO backoff value; and this is\nthe value which is now used.\n\nI have checked both termination cases for retransmissions of Close/CloseReq:\nwith the default value 15 of `retries2\u0027, and an initial icsk_retransmit \u003d 0,\nit takes about 614 seconds to declare a non-responding peer as dead, after\nwhich the final terminating Reset is sent. With the TCP maximum RTO value of\n120 seconds it takes (as might be expected) almost twice as long, about 23\nminutes.\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": "92d31920b84f258badf206eea8aaf5ac677ac535",
      "tree": "b61c5a87ccd5110638df0a4d44924d8dffacbcf1",
      "parents": [
        "09f7709f4929666006931f1d4efc498a6d419bbc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:02:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:47 2008 -0800"
      },
      "message": "[DCCP]: Shift the retransmit timer for active-close into output.c\n\nWhen performing active close, RFC 4340, 8.3. requires to retransmit the\nClose/CloseReq with a backoff-retransmit timer starting at intially 2 RTTs.\n\nThis patch shifts the existing code for active-close retransmit timer\ninto output.c, so that the retransmit timer is started when the first\nClose/CloseReq is sent. Previously, the timer was started when, after\nreleasing the socket in dccp_close(), the actively-closing side had not yet\nreached the CLOSED/TIMEWAIT state.\n\nThe patch further reduces the initial timeout from 3 seconds to the required\n2 RTTs, where - in absence of a known RTT - the fallback value specified in\nRFC 4340, 3.4 is used.\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": "69567d0b63b7f4ffeb53fe746c87bd6efe1c284b",
      "tree": "d2ce8ff37ecc6481684cddd386bc302f47a0a468",
      "parents": [
        "96eba69dbac767f4e287df39e6fa489d37f1aa7b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 11:28:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:45 2008 -0800"
      },
      "message": "[DCCP]: Perform SHUT_RD and SHUT_WR on receiving close\n\nThis patch performs two changes:\n\n1) Close the write-end in addition to the read-end when a fin-like segment\n  (Close or CloseReq) is received by DCCP. This accounts for the fact that DCCP,\n  in contrast to TCP, does not have a half-close. RFC 4340 says in this respect\n  that when a fin-like segment has been sent there is no guarantee at all that\n  any   further data will be processed.\n  Thus this patch performs SHUT_WR in addition to the SHUT_RD when a fin-like\n  segment is encountered.\n\n2) Minor change: I noted that code appears twice in different places and think it\n   makes sense to put this into a self-contained function (dccp_enqueue()).\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": "bb72845e699d3c84e5f861b51db686107a51dea5",
      "tree": "a4a84343cbcc96e86c83954dc82f2a5ee0ce787d",
      "parents": [
        "7233b9f33e72ca477034ff5cf901c89efba3a5bc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Dec 12 18:48:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:42 2008 -0800"
      },
      "message": "[IPSEC]: Make callers of xfrm_lookup to use XFRM_LOOKUP_WAIT\n\nThis patch converts all callers of xfrm_lookup that used an\nexplicit value of 1 to indiciate blocking to use the new flag\nXFRM_LOOKUP_WAIT.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f71c81ac37b27b824e9ce18fe17438dc2af4a16",
      "tree": "0291ca60c033aec233443faec78777f603e5e419",
      "parents": [
        "954c2db868ce896325dced91d5fba5e2226897a4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:23:08 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:20 2008 -0800"
      },
      "message": "[TFRC]: Remove previous loss intervals implementation\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": "954c2db868ce896325dced91d5fba5e2226897a4",
      "tree": "d74b480530878c25eb770293d786f2e78ace90e7",
      "parents": [
        "de0d411cb8ea51175f52d935faead5c542b6e007"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:06:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:20 2008 -0800"
      },
      "message": "[CCID3]: Interface CCID3 code with newer Loss Intervals Database\n\nThis hooks up the TFRC Loss Interval database with CCID 3 packet reception.\nIn addition, it makes the CCID-specific computation of the first loss\ninterval (which requires access to all the guts of CCID3) local to ccid3.c.\n\nThe patch also fixes an omission in the DCCP code, that of a default /\nfallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while\nat it, the  upper bound of 4 seconds for an RTT sample has  been reduced to\nmatch the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1].\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": "de0d411cb8ea51175f52d935faead5c542b6e007",
      "tree": "d26398b1da10d52a4138728ff11e955d9d1fba04",
      "parents": [
        "db64196038e79b0460245d558e54ff4a21a52d1f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:03:01 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:19 2008 -0800"
      },
      "message": "[TFRC]: CCID3 (and CCID4) needs to access these inlines\n\nThis moves two inlines back to packet_history.h: these are not private\nto packet_history.c, but are needed by CCID3/4 to detect whether a new\nloss is indicated, or whether a loss is already pending.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db64196038e79b0460245d558e54ff4a21a52d1f",
      "tree": "c24ee13b726832a85a95a2824f01293fe84dcc75",
      "parents": [
        "8a9c7e92e0ca97632126feee32ba2698b4eb6c8f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 13:57:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:18 2008 -0800"
      },
      "message": "[CCID3]: Redundant debugging output / documentation\n\nEach time feedback is sent two lines are printed:\n\n\tccid3_hc_rx_send_feedback: client ... - entry\n\tccid3_hc_rx_send_feedback: Interval ...usec, X_recv\u003d..., 1/p\u003d...\n\nThe first line is redundant and thus removed.\n\nFurther, documentation of ccid3_hc_rx_sock (capitalisation) is made consistent.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a9c7e92e0ca97632126feee32ba2698b4eb6c8f",
      "tree": "b569d6e39f3630f7a973814a925502035c63904b",
      "parents": [
        "8995a238ef6869bc5c80240440bc58452c7af283"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 13:50:51 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:18 2008 -0800"
      },
      "message": "[TFRC]: Ringbuffer to track loss interval history\n\nA ringbuffer-based implementation of loss interval history is easier to\nmaintain, allocate, and update.\n\nThe `swap\u0027 routine to keep the RX history sorted is due to and was written\nby Arnaldo Carvalho de Melo, simplifying an earlier macro-based variant.\n\nDetails:\n * access to the Loss Interval Records via macro wrappers (with safety checks);\n * simplified, on-demand allocation of entries (no extra memory consumption on\n   lossless links); cache allocation is local to the module / exported as service;\n * provision of RFC-compliant algorithm to re-compute average loss interval;\n * provision of comprehensive, new loss detection algorithm\n \t- support for all cases of loss, including re-ordered/duplicate packets;\n \t- waiting for NDUPACK\u003d3 packets to fill the hole;\n\t- updating loss records when a late-arriving packet fills a hole.\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": "8995a238ef6869bc5c80240440bc58452c7af283",
      "tree": "40850acfd1042ecdf9bf3f745358871ef42772bb",
      "parents": [
        "df8f83fdd6369e1ba85f089fd6fe26bb2ddcb36f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 12:28:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:16 2008 -0800"
      },
      "message": "[TFRC]: Loss interval code needs the macros/inlines that were moved\n\nThis moves the inlines (which were previously declared as macros) back into\npacket_history.h since the loss detection code needs to be able to read entries\nfrom the RX history in order to create the relevant loss entries: it needs at\nleast tfrc_rx_hist_loss_prev() and tfrc_rx_hist_last_rcv(), which in turn\nrequire the definition of the other inlines (macros).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df8f83fdd6369e1ba85f089fd6fe26bb2ddcb36f",
      "tree": "8ddb2e0b70d5ed99837919ada6664e70c876f119",
      "parents": [
        "2aaef4e47fef8a6c0bc7fc5d9d3eea4af290e04c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 12:24:49 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:15 2008 -0800"
      },
      "message": "[TFRC]: Put RX/TX initialisation into tfrc.c\n\nThis separates RX/TX initialisation and puts all packet history / loss intervals\ninitialisation into tfrc.c.\nThe organisation is uniform: slab declaration -\u003e {rx,tx}_init() -\u003e {rx,tx}_exit()\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "385ac2e3f226c09cb71733df1899658e33a7850f",
      "tree": "d3b9754ec75c550b784ef51ab02b25e00aa70c34",
      "parents": [
        "797eba424d4332f6aff5b741600b61e3d4b3d3f2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 16:26:59 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:04 2008 -0800"
      },
      "message": "[CCID3]: HC-receiver should not insert timestamps as HC-sender doesn\u0027t uses it\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "797eba424d4332f6aff5b741600b61e3d4b3d3f2",
      "tree": "f29150076bb9032eb1e11a9a83c974b7875b3553",
      "parents": [
        "78282d2af598a1840934e2049a5c196885647f6a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 16:08:41 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:03 2008 -0800"
      },
      "message": "[TFRC]: The function tfrc_rx_hist_entry_delete() is not used anymore\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78282d2af598a1840934e2049a5c196885647f6a",
      "tree": "19f2a626bc2a8741b3740a44ccaa9f0e02e21d34",
      "parents": [
        "c69bce20dda7f79160856a338298d65a284ba303"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 15:08:08 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:03 2008 -0800"
      },
      "message": "[TFRC]: Move comment.\n\nMoved up the comment \"Receiver routines\" above the first occurrence of\nRX history routines.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b84a2189c4e1835c51fd6b974a0497be9bc4ba87",
      "tree": "d488b0a45618ac37c605b10b093f8f03a050a7fc",
      "parents": [
        "30a0eacd479f1c7c15fe0496585ff29f76de3378"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 13:18:11 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:43 2008 -0800"
      },
      "message": "[TFRC]: New rx history code\n\nCredit here goes to Gerrit Renker, that provided the initial implementation for\nthis new codebase.\n\nI modified it just to try to make it closer to the existing API, renaming some\nfunctions, add namespacing and fix one bug where the tfrc_rx_hist_alloc was not\nfreeing the allocated ring entries on the error path.\n\nOriginal changeset comment from Gerrit:\n      -----------\nThis provides a new, self-contained and generic RX history service for TFRC\nbased protocols.\n\nDetails:\n * new data structure, initialisation and cleanup routines;\n * allocation of dccp_rx_hist entries local to packet_history.c,\n   as a service exported by the dccp_tfrc_lib module.\n * interface to automatically track highest-received seqno;\n * receiver-based RTT estimation (needed for instance by RFC 3448, 6.3.1);\n * a generic function to test for `data packets\u0027 as per  RFC 4340, sec. 7.7.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a0eacd479f1c7c15fe0496585ff29f76de3378",
      "tree": "eed98813afd0814e0d0999428b50477c5d36471e",
      "parents": [
        "d58d1af03a6a3ddf296ae3aeb4ff234af4b15958"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:29:07 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:43 2008 -0800"
      },
      "message": "[CCID3]: The receiver of a half-connection does not set window counter values\n\nOnly the sender sets window counters [RFC 4342, sections 5 and 8.1].\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": "d58d1af03a6a3ddf296ae3aeb4ff234af4b15958",
      "tree": "44194b47b1c1b188f300ec1d1f6f0eed6e9a8849",
      "parents": [
        "34a9e7ea91bb4acb45ae5331e7403304029329b2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:28:39 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:42 2008 -0800"
      },
      "message": "[TFRC]: Rename dccp_rx_ to tfrc_rx_\n\nThis is in preparation for merging the new rx history code written by Gerrit Renker.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34a9e7ea91bb4acb45ae5331e7403304029329b2",
      "tree": "196c60bbe79f4d480cefa9d141a6096f3450fa75",
      "parents": [
        "e9c8b24a6ade50315f3c080799da45ddadf42269"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:28:13 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:41 2008 -0800"
      },
      "message": "[TFRC]: Make the rx history slab be global\n\nThis is in preparation for merging the new rx history code written by Gerrit Renker.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9c8b24a6ade50315f3c080799da45ddadf42269",
      "tree": "bf7c9aabba852c4f54f3f38223e0c41445bb2f50",
      "parents": [
        "2180c41ca5c1a36c67f4140e80154699333109d2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:27:49 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:40 2008 -0800"
      },
      "message": "[TFRC]: Rename tfrc_tx_hist to tfrc_tx_hist_slab, for consistency\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2180c41ca5c1a36c67f4140e80154699333109d2",
      "tree": "77438292f56f848fea4cb44f097234a1f3c9acf7",
      "parents": [
        "c40616c597bf02a2346cbf2f120283734b436245"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:27:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:40 2008 -0800"
      },
      "message": "[DCCP]: Introduce generic function to test for `data packets\u0027\n\nas per  RFC 4340, sec. 7.7.\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": "c40616c597bf02a2346cbf2f120283734b436245",
      "tree": "2fb6f82ed8fec01038f4607b489086a8f2a719f9",
      "parents": [
        "f8b33fdfafea0f909712a55fbb3d83b89f70f3f5"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:26:38 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:39 2008 -0800"
      },
      "message": "[TFRC]: Provide central source file and debug facility\n\nThis patch changes the tfrc_lib module in the following manner:\n\n (1) a dedicated tfrc source file to call the packet history \u0026\n     loss interval init/exit functions.\n (2) a dedicated tfrc_pr_debug macro with toggle switch `tfrc_debug\u0027.\n\nCommiter note: renamed tfrc_module.c to tfrc.c, and made CONFIG_IP_DCCP_CCID3\nselect IP_DCCP_TFRC_LIB.\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": "9108d5f4b2cd82f55ad178caa0be66a866a06dcc",
      "tree": "c706ab8146fa93ab56c72037b7daa2a6f78e4062",
      "parents": [
        "95bdfccb2bf4ea21c0065772c6a2c75cbaf6ad0d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Nov 29 22:47:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:19 2008 -0800"
      },
      "message": "[TFRC]: Hide tx history details from the CCIDs\n\nBased on a previous patch by Gerrit Renker.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3159afe0d2c1994392c269cf9dee2797830d016b",
      "tree": "cae67feeee5c22c74a35a9d704e27679ac507ee2",
      "parents": [
        "0c869620762fea4b3acf6502d9e80840b27ec642"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 12:06:04 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:14 2008 -0800"
      },
      "message": "[DCCP]: Remove duplicate test for CloseReq\n\nThis removes a redundant test for unexpected packet types. In dccp_rcv_state_process\nit is tested twice whether a DCCP-server has received a CloseReq (Step 7):\n\n * first in the combined if-statement,\n * then in the call to dccp_rcv_closereq().\n\nThe latter is necesssary since dccp_rcv_closereq() is also called from\n__dccp_rcv_established().\n\nThis patch removes the duplicate test.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c869620762fea4b3acf6502d9e80840b27ec642",
      "tree": "218146397018baf917260f3d0a90dd89fc13cc7f",
      "parents": [
        "f11135a3442996d78dad99933bfdb90d1f6588d3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 11:59:48 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:13 2008 -0800"
      },
      "message": "[DCCP]: Integrate state transitions for passive-close\n\nThis adds the necessary state transitions for the two forms of passive-close\n\n * PASSIVE_CLOSE    - which is entered when a host   receives a Close;\n * PASSIVE_CLOSEREQ - which is entered when a client receives a CloseReq.\n\nHere is a detailed account of what the patch does in each state.\n\n1) Receiving CloseReq\n\n  The pseudo-code in 8.5 says:\n\n     Step 13: Process CloseReq\n          If P.type \u003d\u003d CloseReq and S.state \u003c CLOSEREQ,\n              Generate Close\n              S.state :\u003d CLOSING\n              Set CLOSING timer.\n\n  This means we need to address what to do in CLOSED, LISTEN, REQUEST, RESPOND, PARTOPEN, and OPEN.\n\n   * CLOSED:         silently ignore - it may be a late or duplicate CloseReq;\n   * LISTEN/RESPOND: will not appear, since Step 7 is performed first (we know we are the client);\n   * REQUEST:        perform Step 13 directly (no need to enqueue packet);\n   * OPEN/PARTOPEN:  enter PASSIVE_CLOSEREQ so that the application has a chance to process unread data.\n\n  When already in PASSIVE_CLOSEREQ, no second CloseReq is enqueued. In any other state, the CloseReq is ignored.\n  I think that this offers some robustness against rare and pathological cases: e.g. a simultaneous close where\n  the client sends a Close and the server a CloseReq. The client will then be retransmitting its Close until it\n  gets the Reset, so ignoring the CloseReq while in state CLOSING is sane.\n\n2) Receiving Close\n\n  The code below from 8.5 is unconditional.\n\n     Step 14: Process Close\n          If P.type \u003d\u003d Close,\n              Generate Reset(Closed)\n              Tear down connection\n              Drop packet and return\n\n  Thus we need to consider all states:\n   * CLOSED:           silently ignore, since this can happen when a retransmitted or late Close arrives;\n   * LISTEN:           dccp_rcv_state_process() will generate a Reset (\"No Connection\");\n   * REQUEST:          perform Step 14 directly (no need to enqueue packet);\n   * RESPOND:          dccp_check_req() will generate a Reset (\"Packet Error\") -- left it at that;\n   * OPEN/PARTOPEN:    enter PASSIVE_CLOSE so that application has a chance to process unread data;\n   * CLOSEREQ:         server performed active-close -- perform Step 14;\n   * CLOSING:          simultaneous-close: use a tie-breaker to avoid message ping-pong (see comment);\n   * PASSIVE_CLOSEREQ: ignore - the peer has a bug (sending first a CloseReq and now a Close);\n   * TIMEWAIT:         packet is ignored.\n\n   Note that the condition of receiving a packet in state CLOSED here is different from the condition \"there\n   is no socket for such a connection\": the socket still exists, but its state indicates it is unusable.\n\n   Last, dccp_finish_passive_close sets either DCCP_CLOSED or DCCP_CLOSING \u003d TCP_CLOSING, so that\n   sk_stream_wait_close() will wait for the final Reset (which will trigger CLOSING \u003d\u003e CLOSED).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f11135a3442996d78dad99933bfdb90d1f6588d3",
      "tree": "6b10cea26f0551b769097296b7e41f25d6b44f08",
      "parents": [
        "f53dc67c5e7babafe239b93a11678b0e05bead51"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 11:34:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:12 2008 -0800"
      },
      "message": "[DCCP]: Dedicated auxiliary states to support passive-close\n\nThis adds two auxiliary states to deal with passive closes:\n  * PASSIVE_CLOSE    (reached from OPEN via reception of Close)    and\n  * PASSIVE_CLOSEREQ (reached from OPEN via reception of CloseReq)\nas internal intermediate states.\n\nThese states are used to allow a receiver to process unread data before\nacknowledging the received connection-termination-request (the Close/CloseReq).\n\nWithout such support, it will happen that passively-closed sockets enter CLOSED\nstate while there is still unprocessed data in the queue; leading to unexpected\nand erratic API behaviour.\n\nPASSIVE_CLOSE has been mapped into TCPF_CLOSE_WAIT, so that the code will\nseamlessly work with inet_accept() (which tests for this state).\n\nThe state names are thanks to Arnaldo, who suggested this naming scheme\nfollowing an earlier revision of this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f53dc67c5e7babafe239b93a11678b0e05bead51",
      "tree": "50737228e796667e8c24e9a821cb11bca372516a",
      "parents": [
        "276f2edc52e309b38a216245952e05880e182c83"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 08:35:08 2007 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:12 2008 -0800"
      },
      "message": "[DCCP]: Use AF-independent rebuild_header routine\n\nThis fixes a nasty bug: dccp_send_reset() is called by both DCCPv4 and DCCPv6, but uses\ninet_sk_rebuild_header() in each case. This leads to unpredictable and weird behaviour:\nunder some conditions, DCCPv6 Resets were sent, in other not.\n\nThe fix is to use the AF-independent rebuild_header routine.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "276f2edc52e309b38a216245952e05880e182c83",
      "tree": "3f581eb831a6f7f16ab30bd0f8e8d80b5b97fe50",
      "parents": [
        "ea4f76ae13b4240dac304ed50636391d6b22e9c5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Nov 28 11:15:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:11 2008 -0800"
      },
      "message": "[TFRC]: Migrate TX history to singly-linked lis\n\nThis patch was based on another made by Gerrit Renker, his changelog was:\n\n    ------------------------------------------------------\nThe patch set migrates TFRC TX history to a singly-linked list.\n\nThe details are:\n * use of a consistent naming scheme (all TFRC functions now begin with `tfrc_\u0027);\n * allocation and cleanup are taken care of internally;\n * provision of a lookup function, which is used by the CCID TX infrastructure\n   to determine the time a packet was sent (in turn used for RTT sampling);\n * integration of the new interface with the present use in CCID3.\n    ------------------------------------------------------\n\nSimplifications I did:\n\n. removing the tfrc_tx_hist_head that had a pointer to the list head and\n  another for the slabcache.\n. No need for creating a slabcache for each CCID that wants to use the TFRC\n  tx history routines, create a single slabcache when the dccp_tfrc_lib module\n  init routine is called.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d8ad9d7c4bfe79bc91b7fc419ecfb9dcdfe6a51",
      "tree": "4b655c4b898e634f39fd170eeb8d06f45b240660",
      "parents": [
        "ce865a61c810c971b47f57c729ec6e9b2d522d94"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Nov 26 20:10:50 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:03 2008 -0800"
      },
      "message": "[NET]: Name magic constants in sock_wake_async()\n\nThe sock_wake_async() performs a bit different actions\ndepending on \"how\" argument. Unfortunately this argument\nony has numerical magic values.\n\nI propose to give names to their constants to help people\nreading this function callers understand what\u0027s going on\nwithout looking into this function all the time.\n\nI suppose this is 2.6.25 material, but if it\u0027s not (or the\nnaming seems poor/bad/awful), I can rework it against the\ncurrent net-2.6 tree.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce865a61c810c971b47f57c729ec6e9b2d522d94",
      "tree": "95e3013184679deb4699d416f2431910b9dd5c68",
      "parents": [
        "d83bd95bf11444993b9c405b255ffa644c32d414"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:14:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:02 2008 -0800"
      },
      "message": "[DCCP]: Add support for abortive release\n\nThis continues from the previous patch and adds support for actively aborting\na DCCP connection, using a Reset Code 2, \"Aborted\" to inform the peer of an\nabortive release.\n\nI have tried this in various client/server settings and it works as expected.\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": "d83bd95bf11444993b9c405b255ffa644c32d414",
      "tree": "57311d4ffaa31ea73ca4a18a58fed985a14576cc",
      "parents": [
        "dcfbc7e97a2e3a0d73a2e41e1bddb988dcca701e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 16 16:06:03 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:01 2008 -0800"
      },
      "message": "[DCCP]: Check for unread data on close\n\nThis removes one FIXME with regard to close when there is still unread data.\nThe mechanism is implemented similar to TCP: with regard to DCCP-specifics,\na Reset with Code 2, \"Aborted\" is sent to the peer.\n\nThis corresponds in part to RFC 4340, 8.1.1 and 8.1.5.\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": "dcfbc7e97a2e3a0d73a2e41e1bddb988dcca701e",
      "tree": "72f3e847a2cff031e8d9d7728065716da3ca0be9",
      "parents": [
        "a302002516a094015e5d004b8d939a8a34559c82"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:12:06 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:01 2008 -0800"
      },
      "message": "[CCID2]: Remove misleading comment\n\nThis removes a comment which identifies an `issue\u0027 with dccp_write_xmit() where there is none.\nThe comment assumes it is possible that a packet is sent between the calls to\n\n\tccid_hc_tx_send_packet(),\n\tdccp_transmit_skb(),\n\tccid_hc_tx_packet_sent()\n\n(in the above order) in dccp_write_xmit().\n\nI think that this is impossible, since dccp_write_xmit() is always called under lock:\n\n * when called as dccp_write_xmit(sk, 1) from dccp_send_close(), the socket is locked\n   (see code comment above dccp_send_close());\n * when called as dccp_write_xmit(sk, 0) from dccp_send_msg(), it is after lock_sock() has been called;\n * when called as dccp_write_xmit(sk, 0) from dccp_write_xmit_timer(), bh_lock_sock() has been called\n   and the if/else statement has made sure that sk_lock.owner is not set;\n * there are no other places where dccp_write_xmit() is called.\n\nFurthermore, the debug statement for printing the sequence number of the packet just sent has been\nremoved, since the entire list is being printed anyway and so the entry of that number appears last.\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": "a302002516a094015e5d004b8d939a8a34559c82",
      "tree": "681d5be6c6e283f6889152d3e97af3e833f473ba",
      "parents": [
        "83399361c30f2ffae20ee348ba9ada9a856d499a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:10:29 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:00 2008 -0800"
      },
      "message": "[CCID2]: Remove redundant ack-counting variable\n\nThe code used two different variables to count Acks, one of them redundant.\nThis patch reduces the number of Ack counters to one.\n\nThe type of the Ack counter has also been changed to u32 (twice the range of int);\nand the variable has been renamed into `packets_acked\u0027 - for consistency with\nRFC 3465 (and similarly named variables are used by TCP and SCTP).\n\nLastly, a slightly less aggressive `maxincr\u0027 increment is used (for even Ack Ratios,\nmaxincr was Ack Ratio/2 + 1 instead of Ack Ratio/2).\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": "83399361c30f2ffae20ee348ba9ada9a856d499a",
      "tree": "51f5399c9d394ab4ec1483d7bb908566a19e8792",
      "parents": [
        "da98e0b5d4c1f88b7c9e63e8918783cd4905be2b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:09:35 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:59 2008 -0800"
      },
      "message": "[CCID2]: Remove redundant synchronisation variable\n\nThis removes the synchronisation variable `ccid2hctx_sendwait\u0027, which is set to 1\nwhen the CCID2 sender may send a new packet, and which is set to 0 otherwise\n\nThe variable is redundant, since it is only used in combination with the hc_tx_send_packet/\nhc_tx_packet_sent function pair. Both functions are called under socket lock, so the\nfollowing happens when the CCID2 may send a new packet:\n\n * it sets sendwait \u003d 1 in tx_send_packet and returns 0;\n * the subsequent call to tx_packet_sent clears the sendwait flag;\n * since tx_send_packet returns 0 if and only if sendwait \u003d\u003d 1, the BUG_ON condition\n   in tx_packet_sent is never satisfied, since that function is never called when\n   tx_send_packet returns a value different from 0 (cf. dccp_write_xmit);\n * the call to tx_packet_sent clears the flag so that the condition \"!sendwait\" is\n   true the next time tx_packet_sent is called.\n\nIn other words, it is sufficient to just return 0 / not-0 to synchronise tx_send_packet\nand tx_packet_sent -- which is what the patch does.\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": "da98e0b5d4c1f88b7c9e63e8918783cd4905be2b",
      "tree": "4a0dcc5d424b325b67c3b9f7d9a90dea9a4b1780",
      "parents": [
        "95b21d7e9d099f1cffca08e40f292d6658a88b3c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:08:27 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:59 2008 -0800"
      },
      "message": "[CCID2]: Redundant debugging output\n\nThis reduces the amount of redundant debugging messages:\n\n * pipe/cwnd are printed in both tx_send_packet() and tx_packet_sent().\n   Both functions are called immediately after one another, so one occurrence is sufficient.\n\n * Since tx_packet_sent() prints pipe/cwnd already, the second printk for pipe is redundant.\n\n * In tx_packet_sent() the check_sanity function is called twice (at the begin and at the end).\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": "95b21d7e9d099f1cffca08e40f292d6658a88b3c",
      "tree": "23f30c58c1bbe6344c6077552b4220a442b94624",
      "parents": [
        "3deeadd74bbf916b502d307222833ffcf68db557"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:06:52 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:58 2008 -0800"
      },
      "message": "[CCID2]: Replace pipe assignment-function with assignment\n\nThe function ccid2_change_pipe only does an assignment. This patch simplifies the code by\nreplacing the function with the assignment it performs.\n\nFurthermore, the type of pipe is promoted from `signed\u0027 to unsigned (increasing the range).\nAs a result, a BUG_ON test for negative values now becomes obsolete (for safety not removed,\nbut replaced with a less annoying `DCCP_BUG\u0027).\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": "3deeadd74bbf916b502d307222833ffcf68db557",
      "tree": "86f33bdcbab3a6b48157e6aa381a5a1668935ed7",
      "parents": [
        "63df18ad7fb91c65dafc89d3cf94a58a486ad416"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:05:51 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:57 2008 -0800"
      },
      "message": "[CCID2]: Replace cwnd assignment-function with assignment\n\nThe current function ccid2_change_cwnd in effect makes only an assignment, as\nthe test whether cwnd has reached 0 is only required when cwnd is halved.\n\nThis patch simplifies the code by replacing the function with the assignment\nit performs.\n\nFurthermore, since ssthresh derives from cwnd and appears in many assignments and\ncomparisons, the type of ssthresh has also been changed to match that of cwnd.\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": "63df18ad7fb91c65dafc89d3cf94a58a486ad416",
      "tree": "63172fb7125c990516430ef8b4e50648079d89fd",
      "parents": [
        "7792cd8885954eb7ac38e781a7a9faae5a80a3d8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:04:35 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:57 2008 -0800"
      },
      "message": "[CCID2]: Replace read-only variable with constant\n\nThis replaces the field member `numdupack\u0027, which was used as a read-only\nconstant in the code, with a #define.\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": "7792cd8885954eb7ac38e781a7a9faae5a80a3d8",
      "tree": "4f96ef45b1ab85eb4b1d79d16d11e2bc8bc27051",
      "parents": [
        "900bfed4718126e6c32244903b6f43e0990d04ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:01:56 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:56 2008 -0800"
      },
      "message": "[CCID2]: Remove unused variable\n\nThis removes a variable `ccid2hctx_sent\u0027 which is incremented but\nnever referenced/read (i.e., dead code).\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": "900bfed4718126e6c32244903b6f43e0990d04ad",
      "tree": "d4644ea4770657046d762d9997d7a8e1d794ff94",
      "parents": [
        "b00d2bbc45a287c9a72374582ce42205f3412419"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:58:33 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:55 2008 -0800"
      },
      "message": "[CCID2]: Disable broken Ack Ratio adaptation algorithm\n\nThis comments out a problematic section comprising a half-finished algorithm:\n\n - The variable `ccid2hctx_ackloss\u0027 is never initialised to a value different from 0 and\n   hence in fact is a read-only constant.\n - The `arsent\u0027 variable counts packets other than Acks (it is incremented for every packet),\n   and there is no test for Ack Loss.\n - The concept of counting Acks as such leads to a complex calculation, and the calculation\n   at the moment is inconsistent with this concept.\n   The problem is that the number of Acks - rather than the number of windows - is counted,\n   which leads to a complex (cubic/quadratic) expression - this is not even implemented.\n\nIn its current state, the commented-out algorithm interfers with normal processing by\nchanging Ack Ratio incorrectly, and at the wrong times.\n\nA new algorithm is necessary, which will not necessarily use the same variables as used by\nthe unfinished one; hence the old variables have been removed.\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": "b00d2bbc45a287c9a72374582ce42205f3412419",
      "tree": "22a301fc6d05fe98b142cf53ec75967e847ac02e",
      "parents": [
        "e18d7a9857cb620a8f70622c4e400be477c264cf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:44:30 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:55 2008 -0800"
      },
      "message": "[CCID2]: Larger initial windows also for CCID2\n\nRFC 4341, sec. 5 states that \"The cwnd parameter is initialized to at most\nfour packets for new connections, following the rules from [RFC3390]\", which\nis implemented by 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: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e18d7a9857cb620a8f70622c4e400be477c264cf",
      "tree": "b09b5040a1885ba2f5287fb3d0a9e05e6abc33c5",
      "parents": [
        "d50ad163e6db2dcc365b8d02b30350220f86df04"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Nov 24 21:42:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:54 2008 -0800"
      },
      "message": "[DCCP]: Initialize dccp_sock before calling the ccid constructors\n\nThis is because in the next patch CCID2 will assume that dccps_mss_cache is\nnon-zero.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d50ad163e6db2dcc365b8d02b30350220f86df04",
      "tree": "56998d89dcf4b748c09b4f5fe82bd2b7742ea3cb",
      "parents": [
        "df054e1d00fdafa2e2920319df326ddb3f0d0413"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:40:24 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:53 2008 -0800"
      },
      "message": "[CCID2]: Deadlock and spurious timeouts when Ack Ratio \u003e cwnd\n\nThis patch removes a bug in the current code. I agree with Andrea\u0027s comment\nthat there is a problem here but the way it is treated does not fix it.\n\nThe problem is that whenever Ack Ratio \u003e cwnd, starvation/deadlock occurs:\n * the receiver will not send an Ack until (Ack Ratio - cwnd) data packets\n   have arrived;\n * the sender will not send any data packet before the receipt of an Ack\n   advances the send window.\nThe only way that the connection then progresses was via RTO timeout. In one\nextreme case (bulk transfer), it was observed that this happened for every single\npacket; i.e. hundreds of packets, each a RTO timeout of 1..3 seconds apart:\na transfer which normally would take a fraction of a second thus grew to\nseveral minutes.\n\nThe solution taken by this approach is to observe the relation\n\n                   \"Ack Ratio \u003c\u003d cwnd\"\n\nby using the constraint (1) from RFC 4341, 6.1.2; i.e. set\n\n                 Ack Ratio \u003d ceil(cwnd / 2)\n\nand update it whenever either Ack Ratio or cwnd change. This ensures that\nthe deadlock problem can not arise.\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": "df054e1d00fdafa2e2920319df326ddb3f0d0413",
      "tree": "4c5178212391dc2b1fe0d329da5e8552bcab4a55",
      "parents": [
        "cfbbeabc8864902c4af1c0cadf0972b352930a26"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:32:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:53 2008 -0800"
      },
      "message": "[CCID2]: Don\u0027t assign negative values to Ack Ratio\n\nSince it makes not sense to assign negative values to Ack Ratio, this\npatch disallows this possibility.\n\nAs a consequence, a Bug test for negative Ack Ratio values becomes obsolete.\n\nFurthermore, a check against overflow (as Ack Ratio may not exceed 2 bytes,\ndue to RFC 4340, 11.3) has been added.\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": "cfbbeabc8864902c4af1c0cadf0972b352930a26",
      "tree": "90b544b5ad57bd49c25715a595ccd23d227dd714",
      "parents": [
        "3de5489f47febe0333b142e0eb6389b9924b2634"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 20:43:59 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:52 2008 -0800"
      },
      "message": "[CCID2]: Fix sequence number arithmetic/comparisons\n\nThis replaces use of normal subtraction with modulo-48 subtraction.\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": "3de5489f47febe0333b142e0eb6389b9924b2634",
      "tree": "6ac340c65f64245d14c21a4bca03580c3d9789fe",
      "parents": [
        "a47c51044a77124ce66cd8513bba6f4d7673e43d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 20:37:48 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:51 2008 -0800"
      },
      "message": "[CCID2]: Bug in reading Ack Vectors\n\nIn CCID2 the receiver-history is sorted in ascending order of sequence number,\nbut the processing of received Ack Vectors requires the list traversal in the\nopposite direction.\n\nThe current code has a bug in this regard: the list traversal is upwards. As a\nconsequence, only Ack Vectors with a run length of 1 will pass, in all other\nAck Vectors the remaining (acked) sequence numbers are missed, and may later\nfalsely be identified as lost.\n\nNote: This bug is only visible when Ack Ratio \u003e 1, since otherwise the run\n      lengths of Ack Vectors are 0.\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": "a47c51044a77124ce66cd8513bba6f4d7673e43d",
      "tree": "73fc6ff767aa8075e1246bf8d8d2265d87ca7fa0",
      "parents": [
        "e7d0362dd41e760f340c1b500646cc92522bd9d5"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 30 04:19:31 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:51 2008 -0800"
      },
      "message": "[ACKVEC]: Reduce length of identifiers\n\nThis is reduces the length of the struct ackvec/ackvec_record fields. It is\na purely text-based replacement:\n\n\ts#dccpavr_#avr_#g;\n\ts#dccpav_#av_#g;\n\nand increases readability somewhat.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\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": "6d57b43bf810cd66ccf252c04ba65c3e8e56cbb1",
      "tree": "cd3ed95ee320ce230ce1c94f5fed52af4df4c452",
      "parents": [
        "e333b3edc489151afda2a4f6c798842c64cb67a4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 21 10:11:52 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:46 2008 -0800"
      },
      "message": "[DCCP]: Remove redundant dependency on IP_DCCP\n\nThis cleans up the consequences of an earlier patch which\nintroduced the `if IP_DCCP\u0027 clause into net/dccp/Kconfig.\n\nThe CCID Kconfig menu is sourced within this clause; as a\nconsequence, all tests of type `depends on IP_DCCP\u0027 are now\nredundant.\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": "e333b3edc489151afda2a4f6c798842c64cb67a4",
      "tree": "b392052fe3a4c8cdc4d0026709d1b9cd5e215921",
      "parents": [
        "ebe6f7e73c3efec1de295205806b4550fcb468cd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 21 10:09:56 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:46 2008 -0800"
      },
      "message": "[DCCP]: Promote CCID2 as default CCID\n\nThis patch addresses the following problems:\n\n 1. DCCP relies for its proper functioning on having at least one CCID module\n    enabled (as in TCP plugable congestion control). Currently it is possible to\n    disable both CCIDs and thus leave the DCCP module in a compiled, but entirely\n    non-functional state: no sockets can be created when no CCID is available.\n    Furthermore, the protocol is (again like TCP) not intended to be used without\n    CCIDs. Last, a non-empty CCID list is needed for doing CCID feature negotiation.\n\n 2. Internally the default CCID that is advertised by the Linux host is set to CCID2\n    (DCCPF_INITIAL_CCID in include/linux/dccp.h). Disabling CCID2 in the Kconfig\n    menu without changing the defaults leads to a failure `module not found\u0027 when\n    trying to load the dccp module (which internally tries to load the default CCID).\n\n 3. The specification (RFC 4340, sec. 10) treats CCID2 somewhat like a\n    `minimum common denominator\u0027; the specification says that:\n\n    * \"New connections start with CCID 2 for both endpoints\"\n\n    * \"A DCCP implementation intended for general use, such as an implementation in a\n       general-purpose operating system kernel, SHOULD implement at least CCID 2.\n       The intent is to make CCID 2 broadly available for interoperability [...]\"\n\n    Providing CCID2 as minimum-required CCID (like Reno/Cubic in TCP) thus seems reasonable.\n\nHence this patch automatically selects CCID2 when DCCP is enabled. Documentation also added.\n\nDiscussions with Ian McDonald on this subject are gratefully acknowledged.\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": "8e8c71f1ab0ca1c4e74efad14533b991524dcb6c",
      "tree": "ab9cf593ce85ca9eb278ccb1b683fbe459686cbd",
      "parents": [
        "9b91ad2747891767c0efb4fb965c5dfed8d4f88e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 21 09:56:48 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:44 2008 -0800"
      },
      "message": "[DCCP]: Honour and make use of shutdown option set by user\n\nThis extends the DCCP socket API by honouring any shutdown(2) option set by the user.\nThe behaviour is, as much as possible, made consistent with the API for TCP\u0027s shutdown.\n\nThis patch exploits the information provided by the user via the socket API to reduce\nprocessing costs:\n * if the read end is closed (SHUT_RD), it is not necessary to deliver to input CCID;\n * if the write end is closed (SHUT_WR), the same idea applies, but with a difference -\n   as long as the TX queue has not been drained, we need to receive feedback to keep\n   congestion-control rates up to date. Hence SHUT_WR is honoured only after the last\n   packet (under congestion control) has been sent;\n * although SHUT_RDWR seems nonsensical, it is nevertheless supported in the same manner\n   as for TCP (and agrees with test for SHUTDOWN_MASK in dccp_poll() in net/dccp/proto.c).\n\nFurthermore, most of the code already honours the sk_shutdown flags (dccp_recvmsg() for\ninstance sets the read length to 0 if SHUT_RD had been called); CCID handling is now added\nto this by the present patch.\n\nThere will also no longer be any delivery when the socket is in the final stages, i.e. when\none of dccp_close(), dccp_fin(), or dccp_done() has been called - which is fine since at\nthat stage the connection is its final stages.\n\nMotivation and background are on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/shutdown\n\nA FIXME has been added to notify the other end if SHUT_RD has been set (RFC 4340, 11.7).\n\nNote: There is a comment in inet_shutdown() in net/ipv4/af_inet.c which asks to \"make\n      sure the socket is a TCP socket\". This should probably be extended to mean\n      `TCP or DCCP socket\u0027 (the code is also used by UDP and raw sockets).\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": "c3ada46a009001e144b29736880962f24ee2afdf",
      "tree": "a475095e2ef5bff2f0d94a24ca94776578fe1c75",
      "parents": [
        "a5358fdc9c52e44d79dcd144375e089e166508d7"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 20 18:09:59 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:43 2008 -0800"
      },
      "message": "[CCID3]: Inline for moving average\n\nThe moving average computation occurs so frequently in the CCID 3 code that\nit merits an inline function  of its own. This is uses a suggestion by\nArnaldo as per http://www.mail-archive.com/dccp@vger.kernel.org/msg01662.html\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": "a5358fdc9c52e44d79dcd144375e089e166508d7",
      "tree": "ddd84d7a6115700ff93f24d367d59c8ad03a9adc",
      "parents": [
        "eb279b79c46be767ecffadaa8ed6be3e3555e93d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 20 18:01:59 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:42 2008 -0800"
      },
      "message": "[CCID3]: Accurately determine idle \u0026 application-limited periods\n\nThis fixes/updates the handling of idle and application-limited periods in CCID3,\nwhich currently is broken: there is no detection as to how long a sender has been\nidle - there is only one flag which is toggled in between function calls.\n\nBeing obsolete now, the `idle\u0027 flag is removed.\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": "eb279b79c46be767ecffadaa8ed6be3e3555e93d",
      "tree": "f7695df96e2d129beb65263617ac7ed533e1689a",
      "parents": [
        "6c08b2cf4843788e66a5e69b5512538e686ae3e3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 20 18:00:39 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:42 2008 -0800"
      },
      "message": "[CCID3]: Ignore trivial amounts of elapsed time\n\nThis patch fixes a previously undiscovered bug; the problem is in computing\nthe elapsed time as the time between `receiving\u0027 the packet (i.e. skb enters\nCCID module) and sending feedback:\n\n     - there is no layer-processing, queueing, or delay involved,\n     - hence the elapsed time is in the order of 1 function call\n     - this is in the dimension of maximally 50..100usec\n     - which renders the use of elapsed time almost entirely useless.\n\nThe fix is simply to ignore such trivial amounts of elapsed time.\n\nAs a further advantage, the now useless elapsed_time field can be removed from\nthe socket, which reduces the socket structure by another four bytes.\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": "6c08b2cf4843788e66a5e69b5512538e686ae3e3",
      "tree": "ec4ddefc1600d0fed860670e4d1457632d37b1f1",
      "parents": [
        "ebb53d75657f86587ac8cf3e38ab0c860a8e3d4f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 20 17:33:17 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:41 2008 -0800"
      },
      "message": "[CCID3]: Revert use of MSS instead of s\n\nThis updates the CCID3 code with regard to two instances of using `MSS\u0027 in place of `s\u0027:\n\n 1. The RFC3390-based initial rate: both rfc3448bis as well as the Faster Restart\n    draft now consistently use `s\u0027 instead of MSS.\n\n 2. Now agrees with section 4.2 of rfc3448bis: \"If the sender is ready to send data when\n    it does not yet have a round trip sample, the value of X is set to s bytes per\n    second, for segment size s [...]\"\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": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e8e034cc5154abd639aa5c05d13e24e535c6a9c",
      "tree": "4d28c765f9fc0a6e909038339f2f13388be6673c",
      "parents": [
        "f4ab2f72e9340207ae95e2a7622a74220a61f46a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Dec 20 13:59:39 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 20 13:59:39 2007 -0800"
      },
      "message": "[DCCP]: Spelling fixes\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4756daa3b63e806d8ef093c8b4b5f56ee34250a2",
      "tree": "55a3d11dfd4615f02142aa3e94123e77db4797a2",
      "parents": [
        "5487796f0c9475586277a0a7a91211ce5746fa6a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 19 23:46:02 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 19 23:46:02 2007 -0800"
      },
      "message": "[DCCP]: Add missing \"space\"\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "230140cffa7feae90ad50bf259db1fa07674f3a7",
      "tree": "815472add31606423a508a17806b7884f0ab3e2e",
      "parents": [
        "efac52762b1e3fe3035d29e82d8ee1aebc45e4a7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 07 02:40:20 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:15:11 2007 -0800"
      },
      "message": "[INET]: Remove per bucket rwlock in tcp/dccp ehash table.\n\nAs done two years ago on IP route cache table (commit\n22c047ccbc68fa8f3fa57f0e8f906479a062c426) , we can avoid using one\nlock per hash bucket for the huge TCP/DCCP hash tables.\n\nOn a typical x86_64 platform, this saves about 2MB or 4MB of ram, for\nlitle performance differences. (we hit a different cache line for the\nrwlock, but then the bucket cache line have a better sharing factor\namong cpus, since we dirty it less often). For netstat or ss commands\nthat want a full scan of hash table, we perform fewer memory accesses.\n\nUsing a \u0027small\u0027 table of hashed rwlocks should be more than enough to\nprovide correct SMP concurrency between different buckets, without\nusing too much memory. Sizing of this table depends on\nnum_possible_cpus() and various CONFIG settings.\n\nThis patch provides some locking abstraction that may ease a future\nwork using a different model for TCP/DCCP table.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c62cf5cb173a5b8446e513a14448460cad435db2",
      "tree": "a9726aa7f820347e7022eb5bcaeafc85f3ca139f",
      "parents": [
        "8295b6d9e623879344ed0ca7565336e4fd698e42"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Nov 05 23:42:25 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:09:01 2007 -0800"
      },
      "message": "[DCCP]: Use DEFINE_PROTO_INUSE infrastructure.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24c667db59a9cc4caaafe4f77f6f4ef85899a454",
      "tree": "9470e271eb74375c79aad804d7400644e3762cca",
      "parents": [
        "76fd1e87d9456c8185b8df76ac5e533e0c8b39bb"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 24 10:53:01 2007 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Wed Oct 24 10:53:01 2007 -0200"
      },
      "message": "[CCID2/3]: Initialisation assignments of 0 are redundant\n\nAssigning initial values of `0\u0027 is redundant when loading a new CCID structure,\nsince in net/dccp/ccid.c the entire CCID structure is zeroed out prior to\ninitialisation in ccid_new():\n\n    \tstruct ccid {\n    \t\tstruct ccid_operations *ccid_ops;\n    \t\tchar\t\t       ccid_priv[0];\n    \t};\n\n    \t// ...\n    \tif (rx) {\n    \t\tmemset(ccid + 1, 0, ccid_ops-\u003eccid_hc_rx_obj_size);\n    \t\tif (ccid-\u003eccid_ops-\u003eccid_hc_rx_init !\u003d NULL \u0026\u0026\n    \t\t    ccid-\u003eccid_ops-\u003eccid_hc_rx_init(ccid, sk) !\u003d 0)\n    \t\t\tgoto out_free_ccid;\n    \t} else {\n    \t\tmemset(ccid + 1, 0, ccid_ops-\u003eccid_hc_tx_obj_size);\n    \t\t/* analogous to the rx case */\n    \t}\n\nThis patch therefore removes the redundant assignments. Thanks to Arnaldo for\nthe inspiration.\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": "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": "d8ef2c29a0dcfccb2d90cac990143d1a4668708a",
      "tree": "f84aa65931c586117958718b23aa209136719372",
      "parents": [
        "1238d0873b29f7a2de75d576b4cc706c1c75ffbf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 24 10:27:48 2007 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Wed Oct 24 10:27:48 2007 -0200"
      },
      "message": "[DCCP]: Convert Reset code into socket error number\n\nThis adds support for converting the 11 currently defined Reset codes into system\nerror numbers, which are stored in sk_err for further interpretation.\n\nThis makes the externally visible API behaviour similar to TCP, since a client\nconnecting to a non-existing port will experience ECONNREFUSED.\n\n* Code 0, Unspecified, is interpreted as non-error (0);\n* Code 1, Closed (normal termination), also maps into 0;\n* Code 2, Aborted, maps into \"Connection reset by peer\" (ECONNRESET);\n* Code 3, No Connection and\n  Code 7, Connection Refused, map into \"Connection refused\" (ECONNREFUSED);\n* Code 4, Packet Error, maps into \"No message of desired type\" (ENOMSG);\n* Code 5, Option Error, maps into \"Illegal byte sequence\" (EILSEQ);\n* Code 6, Mandatory Error, maps into \"Operation not supported on transport endpoint\" (EOPNOTSUPP);\n* Code 8, Bad Service Code, maps into \"Invalid request code\" (EBADRQC);\n* Code 9, Too Busy, maps into \"Too many users\" (EUSERS);\n* Code 10, Bad Init Cookie, maps into \"Invalid request descriptor\" (EBADR);\n* Code 11, Aggression Penalty, maps into \"Quota exceeded\" (EDQUOT)\n  which makes sense in terms of using more than the `fair share\u0027 of bandwidth.\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\n"
    },
    {
      "commit": "1238d0873b29f7a2de75d576b4cc706c1c75ffbf",
      "tree": "350b9d10cca89994bd44a0b96ca665419f2d2c7a",
      "parents": [
        "fde20105f332614b23a3131d706cd90bdd7db72d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 24 10:18:06 2007 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Wed Oct 24 10:18:06 2007 -0200"
      },
      "message": "[DCCP]: One more exemption from full sequence number checks\n\nThis fixes the following problem: client connects to peer which has no DCCP\nenabled or loaded; ICMP error messages (\"Protocol Unavailable\") can be seen\non the wire, but the application hangs. Reason: ICMP packets don\u0027t get through\nto dccp_v4_err.\n\nWhen reporting errors, a sequence number check is made for the DCCP packet\nthat had caused an ICMP error to arrive.\nSuch checks can not be made if the socket is in state LISTEN, RESPOND (which\nin the implementation is the same as LISTEN), or REQUEST, since update_gsr()\nhas not been called in these states, hence the sequence window is 0..0.\n\nThis patch fixes the problem by adding the REQUEST state as another exemption\nto the window check. The error reporting now works as expected on connecting.\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\n"
    },
    {
      "commit": "fde20105f332614b23a3131d706cd90bdd7db72d",
      "tree": "217c186a8c038a7a6d7bcc775081f9566b903e36",
      "parents": [
        "03cf786c4e83dba404ad23ca58f49147ae52dffd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 24 10:12:09 2007 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Wed Oct 24 10:12:09 2007 -0200"
      },
      "message": "[DCCP]: Retrieve packet sequence number for error reporting\n\nThis fixes a problem when analysing erroneous packets in dccp_v{4,6}_err:\n* dccp_hdr_seq currently takes an skb\n* however, the transport headers in the skb are shifted, due to the\n  preceding IPv4/v6 header.\nFixed for v4 and v6 by changing dccp_hdr_seq to take a struct dccp_hdr as\nargument. Verified that the correct sequence number is now reported in the\nerror 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: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "6273172e1772bf5ce8697bcae145f0f2954fd159",
      "tree": "2c521a8065621d641768d8fa52e6a073cd916929",
      "parents": [
        "bada339ba24dee9e143bfb42e1dc61f146619846"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Oct 23 20:23:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 23 21:27:50 2007 -0700"
      },
      "message": "[DCCP]: Implement SIOCINQ/FIONREAD\n\nJust like UDP.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Leandro Melo de Sales \u003cleandroal@gmail.com\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7131c6c73656b92aea806c6e688e97aa49ff911e",
      "tree": "33b3395b6c77b2ecfe9511e46ec266098b6a7473",
      "parents": [
        "305e1e96911417d8cda2699f6a20a6f434616a8c"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 21 16:45:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:54 2007 -0700"
      },
      "message": "[INET]: Use MODULE_ALIAS_NET_PF_PROTO_TYPE where possible.\n\nNow that we have this new macro, use it where possible.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "305e1e96911417d8cda2699f6a20a6f434616a8c",
      "tree": "02cc300a2a32478c470d93b7a79dfd7e3b71b560",
      "parents": [
        "81429973cfff7745792c877dd083eec29724ec97"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 21 16:44:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:54 2007 -0700"
      },
      "message": "[INET]: Let inet_diag and friends autoload\n\nBy adding module aliases to inet_diag, tcp_diag and dccp_diag, we let\nthem load automatically as needed. This makes tools like \"ss\" run\nfaster.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bd5435e76a226b7151ae5aaee2cd366ab003dd2e",
      "tree": "54d0d4f05d9fe182abbac3f0d60628835df48a93",
      "parents": [
        "dc8a82ad285dcd2831feb2fd8f7b41ce1f82e243"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 17 19:33:06 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 17 19:33:06 2007 -0700"
      },
      "message": "[DCCP]: fix link error with !CONFIG_SYSCTL\n\nDo not define the sysctl_dccp_sync_ratelimit sysctl variable in the\nCONFIG_SYSCTL dependent sysctl.c module - move it to input.c instead.\n\nThis fixes the following build bug:\n\n net/built-in.o: In function `dccp_check_seqno\u0027:\n input.c:(.text+0xbd859): undefined reference to `sysctl_dccp_sync_ratelimit\u0027\n distcc[29953] ERROR: compile (null) on localhost failed\n make: *** [vmlinux] Error 1\n\nFound via \u0027make randconfig\u0027 build testing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5bbef20e017efcb10700398cc048c49b98628e0",
      "tree": "5139dfbfb416eaeb43cc75645e486fe6a103e39b",
      "parents": [
        "a224be766bf593f7bcd534ca0c48dbd3eaf7bfce"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 15 12:50:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 15 12:50:28 2007 -0700"
      },
      "message": "[IPV6]: Replace sk_buff ** with sk_buff * in input handlers\n\nWith all the users of the double pointers removed from the IPv6 input path,\nthis patch converts all occurances of sk_buff ** to sk_buff * in IPv6 input\nhandlers.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a5409a5a850c84505d658ddf36f98b2c542ec07",
      "tree": "2cc197e3e942513eca7126bac67ea67dafbacc79",
      "parents": [
        "2bfd754d1bf29d3324270e52ef11ce6367bb0685"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:52:28 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:38 2007 -0700"
      },
      "message": "[DCCP]: Twice the wrong reset code in receiving connection-Requests\n\nThis fixes two bugs in processing of connection-Requests in\nv{4,6}_conn_request:\n\n 1. Due to using the variable `reset_code\u0027, the Reset code generated\n    internally by dccp_parse_options() is overwritten with the\n    initialised value (\"Too Busy\") of reset_code, which is not what is\n    intended.\n\n 2. When receiving a connection-Request on a multicast or broadcast\n    address, no Reset should be generated, to avoid storms of such\n    packets. Instead of jumping to the `drop\u0027 label, the\n    v{4,6}_conn_request functions now return 0. Below is why in my\n    understanding this is correct:\n\n    When the conn_request function returns \u003c 0, then the caller,\n    dccp_rcv_state_process(), returns 1. In all instances where\n    dccp_rcv_state_process is called (dccp_v4_do_rcv, dccp_v6_do_rcv,\n    and dccp_child_process), a return value of !\u003d 0 from\n    dccp_rcv_state_process() means that a Reset is generated.\n\n    If on the other hand the conn_request function returns 0, the\n    packet is discarded and no Reset is generated.\n\nNote: There may be a related problem when sending the Response, due to\nthe following.\n\n\tif (dccp_v6_send_response(sk, req, NULL))\n\t\tgoto drop_and_free;\n\t/* ... */\n\tdrop_and_free:\n\t\treturn -1;\n\nIn this case, if send_response fails due to transmission errors, the\nnext thing that is generated is a Reset with a code \"Too Busy\". I\nhaven\u0027t been able to conjure up such a condition, but it might be good\nto change the behaviour here also (not done by this 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": "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": "5e28599a6e45eb8ce7e50510b06c3a34ebf1a8fa",
      "tree": "ff6a34c677f1c16a5fd0921f75fbe58a1568ca6e",
      "parents": [
        "6c583248083c30c5305ec561e79f666ca465b376"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:43:09 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:35 2007 -0700"
      },
      "message": "[CCID2]: Sequence number wraparound issues\n\nThis replaces several uses of standard arithmetic with the DCCP\nsequence number arithmetic functions. The problem here is that the\nsequence number wrap-around was not taken into consideration.\n\n * Condition \"seqp-\u003eccid2s_seq \u003c\u003d prev-\u003eccid2s_seq\" has been replaced\n   by\n\n   \tdccp_delta_seqno(seqp-\u003eccid2s_seq, prev-\u003eccid2s_seq) \u003e\u003d 0\n\n   since if seqp is `before\u0027 prev, then the delta_seqno() is positive.\n\n * The test whether sequence numbers `a\u0027 and `b\u0027 are consecutive has\n   the form\n\n   \tdccp_delta_seqno(a, b) \u003d\u003d 1\n\n * Increment of ccid2hctx_rpseq could be done using dccp_inc_seqno(),\n   but since here the incremented ccid2hctx_rpseq \u003d\u003d seqno, used\n   assignment instead.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6c583248083c30c5305ec561e79f666ca465b376",
      "tree": "b23e2787e6ce0208395aa7b879b924470592c8e3",
      "parents": [
        "ee196c2186d24d82088c94962598470e5abc081f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:42:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:35 2007 -0700"
      },
      "message": "[CCID2]: Remove redundant case block\n\nskb\u0027s passed to ccid2_hc_tx_send_packet() are headerless, the packet\ntype is decided later, in dccp_write_xmit(). Therefore the first test\nof the switch/case block is always true, the others are never reached.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee196c2186d24d82088c94962598470e5abc081f",
      "tree": "18d6f4382ae847c9e6091de8f766eb2918f11a99",
      "parents": [
        "7d9e8931f93683e575679e41f188d3b465269f08"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:41:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:34 2007 -0700"
      },
      "message": "[CCID2]: Remove redundant BUG_ON\n\nThis removes a test for `val \u003c 1\u0027 which would only have been triggered\nwhen val \u003c 0, due to a preceding test for 0.  Fixed by using an\nunsigned type for cwnd (as in TCP) instead.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d9e8931f93683e575679e41f188d3b465269f08",
      "tree": "6ce6b1c15dae53beedf3330d1500a44be86f842d",
      "parents": [
        "cd1f7d347c9e51f348119811bd41b74346ec57b8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:41:26 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:34 2007 -0700"
      },
      "message": "[CCID2]: Remove ugly BUG_ON\n\nThis removes an ugly BUG_ON which has been pointed out by Arnaldo.\n\nInstead of freezing up the machine, a `critical\u0027 message is now issued\nto the system log.\n\nThere is potential of doing this more gracefully (eg. there are a few\ninternal variables which could be updated despite the lack of memory),\nbut that requires more complicated changes to the algorithm; thus a\n`FIXME\u0027 has been added.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "cd1f7d347c9e51f348119811bd41b74346ec57b8"
}
