)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "a94f0f970549e63e54c80c4509db299c514d8c11",
      "tree": "3b9421fc70e00c16ed57ef4330b24504b04ae309",
      "parents": [
        "ee1a15922d356aff0e31bf9bb9088ab346b8033a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 11:31:49 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:43 2007 -0700"
      },
      "message": "[DCCP]: Rate-limit DCCP-Syncs\n\nThis implements a SHOULD from RFC 4340, 7.5.4:\n \"To protect against denial-of-service attacks, DCCP implementations SHOULD\n  impose a rate limit on DCCP-Syncs sent in response to sequence-invalid packets,\n  such as not more than eight DCCP-Syncs per second.\"\n\nThe rate-limit is maintained on a per-socket basis. This is a more stringent\npolicy than enforcing the rate-limit on a per-source-address basis and\nprotects against attacks with forged source addresses.\n\nMoreover, the mechanism is deliberately kept simple. In contrast to\nxrlim_allow(), bursts of Sync packets in reply to sequence-invalid packets\nare not supported.  This foils such attacks where the receipt of a Sync\ntriggers further sequence-invalid packets. (I have tested this mechanism against\nxrlim_allow algorithm for Syncs, permitting bursts just increases the problems.)\n\nIn order to keep flexibility, the timeout parameter can be set via sysctl; and\nthe whole mechanism can even be disabled (which is however not recommended).\n\nThe algorithm in this patch has been improved with regard to wrapping issues\nthanks to a suggestion by Arnaldo.\n\nCommiter note: Rate limited the step 6 DCCP_WARN too, as it says we\u0027re\n               sending a sync.\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@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "08831700cc65f85a497d6b32b1c83ca84d71de4a",
      "tree": "419a08b43e529f211dbdc7224283ed560334b4b3",
      "parents": [
        "53465eb4ab16660eab0a7be168a087a97172e650"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 10:30:05 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:40 2007 -0700"
      },
      "message": "[DCCP]: Send Reset upon Sync in state REQUEST\n\nThis fixes the code to correspond to RFC 4340, 7.5.4, which states the\nexception that a Sync received in state REQUEST generates a Reset (not\na SyncAck).\n\nTo achieve this, only a small change is required. Since\ndccp_rcv_request_sent_state_process() already uses the correct Reset Code\nnumber 4 (\"Packet Error\"), we only need to shift the if-statement a few\nlines further down.\n\n(To test this case: replace DCCP_PKT_RESPONSE with DCCP_PKT_SYNC\n                    in dccp_make_response.)\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@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "e155d7692290f7bc539ccb8ebc3450ec964e53fd",
      "tree": "ceca4fe0902c5efc8fb0936ec40d9482907d5d3a",
      "parents": [
        "cbe1f5f88af454303a9c1a0624209269430d49fe"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 25 22:41:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:37 2007 -0700"
      },
      "message": "[DCCP]: Fix Reset/Sync-Flood Bug\n\nThis updates sequence number checking with regard to RFC 4340, 7.5.4.\nMissing in the code was an exception for sequence-invalid Reset packets,\nwhich get a Sync acknowledging GSR, instead of (as usual) P.seqno.\n\nThis can lead to an oscillating ping-pong flood of Reset packets.\n\nIn fact, it has been observed on the wire as follows:\n\n 1. client establishes connection to server;\n 2. before server can write to client, client crashes without notifying\n    the server (NB: now no longer possible due to ABORT function);\n 3. server sends DCCP-Data packet (has no ackno);\n 4. client generates Reset \"No Connection\", seqno\u003d0, increments seqno;\n 5. server replies with Sync, using ackno \u003d P.seqno;\n 6. client generates Reset \"No Connection\" with seqno \u003d ackno + 1;\n 7. goto (5).\n\nThe difference is that now in (5) the server uses GSR.  This causes the\nReset sent by the client in (6) to become sequence-valid, so that in (7)\nthe vicious circle is broken; the Reset is then enqueued and causes the\nsocket to enter TIMEWAIT state.\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@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbe1f5f88af454303a9c1a0624209269430d49fe",
      "tree": "6edfe1ee1b660e06fb7be3788b5587f55f41972c",
      "parents": [
        "3393da8241ae3a53e183ba15f8bd822995ec97cd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 25 22:41:19 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:36 2007 -0700"
      },
      "message": "[DCCP]: Shorten variable names in dccp_check_seqno\n\nThis patch is in part required by the next patch; it\n\n * replaces 6 instances of `DCCP_SKB_CB(skb)-\u003edccpd_seq\u0027 with `seqno\u0027;\n * replaces 7 instances of `DCCP_SKB_CB(skb)-\u003edccpd_ack_seq\u0027 with `ackno\u0027;\n * replaces 1 use of dccp_inc_seqno() by unfolding `ADD48\u0027 macro in place.\n\nNo changes in algorithm, all changes are text replacement/substitution.\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@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3393da8241ae3a53e183ba15f8bd822995ec97cd",
      "tree": "28e6d2823d901976844982319e4c53b76a55967c",
      "parents": [
        "4c70f383e0c0273c4092c4efdb414be0966978b7"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 25 22:40:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:35 2007 -0700"
      },
      "message": "[DCCP]: Simplify interface of dccp_sample_rtt\n\nThe third parameter of dccp_sample_rtt now becomes useless and is removed.\n\nAlso combined the subtraction of the timestamp echo and the elapsed time.\nThis is safe, since (a) presence of timestamp echo is tested first and (b)\nelapsed time is either present and non-zero or it is not set and equals 0\ndue to the memset in dccp_parse_options.\n\nTo avoid measuring option-processing time, the timestamp for measuring the\ninitial Request/Response RTT sample is taken directly when the function is\ncalled (the Linux implementation always adds a timestamp on the Request,\nso there is no loss in doing this).\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@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9823b7b5542858afe5b6a1e2df83b3847c28f3d6",
      "tree": "14be62612143fbcec66cd1b28a1d76564c578453",
      "parents": [
        "a272378d1128d1c60a463a315646c86d174ff74c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:16:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:13 2007 -0700"
      },
      "message": "[DCCP]: Convert dccp_sample_rtt to ktime_t\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89560b53b92a07c529e13a462aa7fd87a844f1f5",
      "tree": "89409bee68da1ee44b7945315efecd779d7fe60a",
      "parents": [
        "7dfee1a9c07f80a82aa5fbad340146f2b5c794b4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 20 15:27:17 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:02 2007 -0700"
      },
      "message": "[DCCP]: Sample RTT from SYN exchange\n\nFunction:\n"
    },
    {
      "commit": "4712a792ee661921374c163eb6a4d06e33fd305f",
      "tree": "0c5ecf7973a195bff36101904417bb7b90fd18aa",
      "parents": [
        "0c150efb280986db7958cf2a559b91d826241e59"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 20 15:23:18 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:00 2007 -0700"
      },
      "message": "[DCCP]: Provide function for RTT sampling\n\nA recurring problem, in particular in the CCID code, is that RTT samples\nfrom packets with timestamp echo and elapsed time options need to be taken.\n\nThis service is provided via a new function dccp_sample_rtt in this patch.\nFurthermore, to protect against `insane\u0027 RTT samples, the sampled value\nis bounded between 100 microseconds and 4 seconds - for which u32 is sufficient.\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": "8d13bf9a0bd4984756e234ce54299b92acefab99",
      "tree": "3a5fa39fec52b934d0d86afe93423cb9bb5ded20",
      "parents": [
        "b16be51b5e5d75cec71b18ebc75f15a4734c62ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 20 13:08:19 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:46 2007 -0700"
      },
      "message": "[DCCP]: Remove ambiguity in the way before48 is used\n\nThis removes two ambiguities in employing the new definition of before48,\nfollowing the analysis on http://www.mail-archive.com/dccp@vger.kernel.org/msg01295.html\n\n (1) Updating GSR when P.seqno \u003e\u003d S.SWL\n     With the old definition we did not update when P.seqno and S.SWL are 2^47 apart. To\n     ensure the same behaviour as with the old definition, this is replaced with the\n     equivalent condition dccp_delta_seqno(S.SWL, P.seqno) \u003e\u003d 0\n\n (2) Sending SYNC when P.seqno \u003e\u003d S.OSR\n     Here it is debatable whether the new definition causes an ambiguity: the case is\n     similar to (1); and to have consistency with the case (1), we use the equivalent\n     condition dccp_delta_seqno(S.OSR, P.seqno) \u003e\u003d 0\n\nDetailed Justification\n"
    },
    {
      "commit": "151a99317ee9efcfd3e642da62e1edf4f47fcb3e",
      "tree": "8abf1427c3e25fc7ec6d48c863a4a2cf33ddc004",
      "parents": [
        "286930797d74b2c9a5beae84836044f6a836235f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Mar 07 12:53:48 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 07 16:08:07 2007 -0800"
      },
      "message": "[DCCP]: Revert patch which disables bidirectional mode\n\nThis reverts an earlier patch which disabled bidirectional mode, meaning that\na listening (passive) socket was not allowed to write to the other (active)\nend of the connection.\n\nThis mode had been disabled when there were problems with CCID3, but it\nimposes a constraint on socket programming and thus hinders deployment.\n\nA change is included to ignore RX feedback received by the TX CCID3 module.\n\nMany thanks to Andre Noll for pointing out this issue.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d46861be6196d0f1614724590968d8da26af82a",
      "tree": "d9c579064159f52edd5dbebed85214ae6a3468df",
      "parents": [
        "1e51f9513e6b021abcaefd7c76f9b5d682f83232"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 06 14:24:18 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 06 14:24:18 2007 -0800"
      },
      "message": "[DCCP]: Correctly split CCID half connections\n\nThis fixes a bug caused by a previous patch, which causes DCCP servers in\nLISTEN state to not receive packets.\n\nThis patch changes the logic so that\n * servers in either LISTEN or OPEN state get the RX half connection packets\n * clients in OPEN state get the TX half connection packets\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": "c9eaf17341834de00351bf79f16b2d879c8aea96",
      "tree": "d8b2005197444fa6b6bdf8e8c8fd6eaf2db9ecd7",
      "parents": [
        "4ec93edb14fe5fdee9fae6335f2cbba204627eac"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:38 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:27 2007 -0800"
      },
      "message": "[NET] DCCP: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8109b02b5397ed52a32c116163a62a34f4768b26",
      "tree": "0dbeae8cc999d2f6b71807b942eda7ff686ba7d2",
      "parents": [
        "1fba78b6cba14bd37fdb12c5367f1e4d58ff2e0f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Dec 10 16:01:18 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:35:00 2006 -0800"
      },
      "message": "[DCCP]: Whitespace cleanups\n\nThat accumulated over the last months hackaton, shame on me for not\nusing git-apply whitespace helping hand, will do that from now on.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "bf58a381e8106fe73247c753e3da58fcb5eabd2e",
      "tree": "4f0539a3d96930bddc5291b136f4fa08c1af8e77",
      "parents": [
        "d63d8364cfe17fc9bb738f554f452595f76f21d2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 10 00:04:43 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:34:47 2006 -0800"
      },
      "message": "[DCCP]: Only deliver to the CCID rx side in charge\n\nThis is an optimisation to reduce CPU load. The received feedback is now\nonly directed to the active CCID component, without requiring processing\nalso by the inactive one.\n\nAs a consequence, a similar test in ccid3.c is now redundant and is\nalso removed.\n\nJustification:\n\n Currently DCCP works as a unidirectional service, i.e. a listening server\n is not at the same time a connecting client.\n As far as I can see, several modifications are necessary until that\n becomes possible.\n At the present time, received feedback is both fed to the rx/tx CCID\n modules. In unidirectional service, only one of these is active at any\n one time.\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@mandriva.com\u003e\n"
    },
    {
      "commit": "59348b19efebfd6a8d0791ff81d207b16594c94b",
      "tree": "a9212a7bf62bd594cf02d23b9e33eb45a46d414d",
      "parents": [
        "b1308dc015eb09cf094ca169296738a13ae049ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 20 18:39:23 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:24:38 2006 -0800"
      },
      "message": "[DCCP]: Simplified conditions due to use of enum:8 states\n\nThis reaps the benefit of the earlier patch, which changed the type of\nCCID 3 states to use enums, in that many conditions are now simplified\nand the number of possible (unexpected) values is greatly reduced.\n\nIn a few instances, this also allowed to simplify pre-conditions; where\ncare has been taken to retain logical equivalence.\n\n[DCCP]: Introduce a consistent BUG/WARN message scheme\n\nThis refines the existing set of DCCP messages so that\n * BUG(), BUG_ON(), WARN_ON() have meaningful DCCP-specific counterparts\n * DCCP_CRIT (for severe warnings) is not rate-limited\n * DCCP_WARN() is introduced as rate-limited wrapper\n\nUsing these allows a faster and cleaner transition to their original\ncounterparts once the code has matured into a full DCCP implementation.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "d83ca5accb256de1b44835cd222bfdc3207bd7dc",
      "tree": "c7be8b1f61d4403fe15bd279ecf9d52619134592",
      "parents": [
        "cf557926f6955b4c3fa55e81fdb3675e752e8eed"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Nov 10 16:29:14 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:04 2006 -0800"
      },
      "message": "[DCCP]: Update code comments for Step 2/3\n\nSorts out the comments for processing steps 2,3 in section 8.5 of RFC 4340.\nAll comments have been updated against this document, and the reference to step\n2 has been made consistent throughout the files.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "0e64e94e477f8ed04e9295b11a5898d443c28a47",
      "tree": "0a02a3017d41a3a21038ff081b93b5b6359e1692",
      "parents": [
        "977a415f2b70b5693aaa23b1a16ad57ea20a1dce"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Oct 24 16:17:51 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 24 16:17:51 2006 -0700"
      },
      "message": "[DCCP]: Update documentation references.\n\nUpdates the references to spec documents throughout the code, taking into\naccount that\n\n* the DCCP, CCID 2, and CCID 3 drafts all became RFCs in March this year\n\n* RFC 1063 was obsoleted by RFC 1191\n\n* draft-ietf-tcpimpl-pmtud-0x.txt was published as an Informational\n  RFC, RFC 2923 on 2000-09-22.\n\nAll references verified.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "a4bf3902427a128455b8de299ff0918072b2e974",
      "tree": "5269cd4d84702a0a728b390e08242be01252d20d",
      "parents": [
        "e6f507196c2b50243beb09b1bfa4639f999d4d1e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "message": "[DCCP] minisock: Rename struct dccp_options to struct dccp_minisock\n\nThis will later be included in struct dccp_request_sock so that we can\nhave per connection feature negotiation state while in the 3way\nhandshake, when we clone the DCCP_ROLE_LISTEN socket (in\ndccp_create_openreq_child) we\u0027ll just copy this state from\ndreq_minisock to dccps_minisock.\n\nAlso the feature negotiation and option parsing code will mostly touch\ndccps_minisock, which will simplify some stuff.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c25a18ba347f091d1ce620ba33e6772b60a528e1",
      "tree": "788c596356e150a26e0a67243ffc68213abdd493",
      "parents": [
        "5e0817f84c33285c2ac7d3848e8896d025b5deff"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 21:58:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 21:58:56 2006 -0800"
      },
      "message": "[DCCP]: Uninline some functions\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "017487d7d1e905a5bb529f6a2bc8cf8ea14e2307",
      "tree": "6a68904ea48ccae0c4c17f7dc248831fd46bd3e6",
      "parents": [
        "e55d912f5b75723159348a7fc7692f869a86636a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 19:25:24 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:25:24 2006 -0800"
      },
      "message": "[DCCP]: Generalize dccp_v4_send_reset\n\nRenaming it to dccp_send_reset and moving it from the ipv4 specific\ncode to the core dccp code.\n\nThis fixes some bugs in IPV6 where timers would send v4 resets, etc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "91f0ebf7b6d5cb2b6e818d48587566144821babe",
      "tree": "505c66f36bd72014d7eacb7a04ea011bae2e9a3a",
      "parents": [
        "f38c39d6ce8226519455a6dfe91c2ad84f363f6f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 19:21:44 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:21:44 2006 -0800"
      },
      "message": "[DCCP] CCID: Improve CCID infrastructure\n\n1. No need for -\u003eccid_init nor -\u003eccid_exit, this is what module_{init,exit}\n   does and anynways neither ccid2 nor ccid3 were using it.\n\n2. Rename struct ccid to struct ccid_operations and introduce struct ccid\n   with a pointer to ccid_operations and rigth after it the rx or tx\n   private state.\n\n3. Remove the pointer to the state of the half connections from struct\n   dccp_sock, now its derived thru ccid_priv() from the ccid pointer.\n\nNow we also can implement the setsockopt for changing the CCID easily as\nno ccid init routines can affect struct dccp_sock in any way that prevents\nother CCIDs from working if a CCID switch operation is asked by apps.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "afe00251dd9b53d51de91ff0099961f42bbf3754",
      "tree": "a56aa987140662cf3e6e65be402b8591298c5ced",
      "parents": [
        "2a91aa3967398fb94eccc8da67c82bce9f67afdf"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 17:43:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:43:56 2006 -0800"
      },
      "message": "[DCCP]: Initial feature negotiation implementation\n\nStill needs more work, but boots and doesn\u0027t crashes, even\ndoes some negotiation!\n\n18:38:52.174934  127.0.0.1.43458 \u003e 127.0.0.1.5001: request \u003cchange_l ack_ratio 2, change_r ccid 2, change_l ccid 2\u003e\n18:38:52.218526  127.0.0.1.5001 \u003e 127.0.0.1.43458: response \u003cnop, nop, change_l ack_ratio 2, confirm_r ccid 2 2, confirm_l ccid 2 2, confirm_r ack_ratio 2\u003e\n18:38:52.185398  127.0.0.1.43458 \u003e 127.0.0.1.5001: \u003cnop, confirm_r ack_ratio 2, ack_vector0 0x00, elapsed_time 212\u003e\n\n:-)\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e84a9f5e9cd2b229dda24002334bc3cd36c1109d",
      "tree": "4b4f51efb168618f507ce89645e4cb7d443e3742",
      "parents": [
        "9e377202d2c968dde8efd6121d94c7f0a77787aa"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Tue Jan 03 14:26:15 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 14:26:15 2006 -0800"
      },
      "message": "[DCCP]: Notify CCID only after ACK vectors have been processed.\n\nThe CCID should be notified of packet reception only when a packet is\nvalid.  Therefore, the ACK vector needs to be processed before\nnotifying the CCID.  Also, the CCID might need information provided by\nthe ACK vector.\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9e377202d2c968dde8efd6121d94c7f0a77787aa",
      "tree": "e52e9cbd49a99bcbac5bb4831b12bd5b1cb23f18",
      "parents": [
        "709dd3aaf5304993083c2297c73f5531c36fba5a"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Tue Jan 03 14:25:49 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 14:25:49 2006 -0800"
      },
      "message": "[DCCP]: Send an ACK vector when ACKing a response packet\n\nIf ACK vectors are used, each packet with an ACK should contain an ACK\nvector.  The only exception currently is response packets.  It\nprobably is not a good idea to store ACK vector state before the\nconnection is completed (to help protect from syn floods).\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "709dd3aaf5304993083c2297c73f5531c36fba5a",
      "tree": "8e6929b88040fb9acb92c3bfe1c45f210ad8e659",
      "parents": [
        "5062430c5cc526655e3d10c670fc9c263656f66c"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Tue Jan 03 14:25:17 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 14:25:17 2006 -0800"
      },
      "message": "[DCCP]: Do not process a packet twice when it\u0027s not in state DCCP_OPEN.\n\nWhen packets are received, the connection is either in DCCP_OPEN\n[fast-path] or it isn\u0027t.  If it\u0027s not [e.g. DCCP_PARTOPEN] upper\nlayers will perform sanity checks and parse options.  If it is in\nDCCP_OPEN, dccp_rcv_established() will do it.  It is important not to\nre-parse options in dccp_rcv_established() when it is not called from\nthe fast-path.  Else, fore example, the ack vector will be added twice\nand the CCID will see the packet twice.\n\nThe solution is to always enfore sanity checks from the upper layers.\nWhen packets arrive in the fast-path, sanity checks will be performed\nbefore calling dccp_rcv_established().\n\nNote(acme): I rewrote the patch to achieve the same result but keeping\ndccp_rcv_established with the previous semantics and having it split\ninto __dccp_rcv_established, that doesn\u0027t does do any sanity check,\ncode in state !\u003d DCCP_OPEN use this lighter version as they already do\nthe sanity checks.\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83d8461f902c672bc1bd8fbc6a94e19f092da97",
      "tree": "0534c553ab92baa2eb9dbb5bba64f2c4540b1e89",
      "parents": [
        "22712813620fa8e682dbfb253a60ca0131da1e07"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:26:10 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:58 2006 -0800"
      },
      "message": "[IP_SOCKGLUE]: Remove most of the tcp specific calls\n\nAs DCCP needs to be called in the same spots.\n\nNow we have a member in inet_sock (is_icsk), set at sock creation time from\nstruct inet_protosw-\u003eflags (if INET_PROTOSW_ICSK is set, like for TCP and\nDCCP) to see if a struct sock instance is a inet_connection_sock for places\nlike the ones in ip_sockglue.c (v4 and v6) where we previously were looking if\nsk_type was SOCK_STREAM, that is insufficient because we now use the same code\nfor DCCP, that has sk_type SOCK_DCCP.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f21e68caa0ddffddf98a1e729e734a470957b6ec",
      "tree": "52b372d10cbacd066867ba1c918f48b9fdaad950",
      "parents": [
        "34ca6860810342441f801226b19ae6c9e0ecb34f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:24:16 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:50 2006 -0800"
      },
      "message": "[DCCP]: Prepare the AF agnostic core for the introduction of DCCPv6\n\nBasically exports a similar set of functions as the one exported by\nthe non-AF specific TCP code.\n\nIn the process moved some non-AF specific code from dccp_v4_connect to\ndccp_connect_init and moved the checksum verification from\ndccp_invalid_packet to dccp_v4_rcv, so as to use it in dccp_v6_rcv\ntoo.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57cca05af1e20fdc65b55be52c042c234f86c866",
      "tree": "43b18dca01340861e7ad392c0c2ce398a1c878fd",
      "parents": [
        "af05dc9394feb193d221bc9d4c6db768facb4b40"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:16:16 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:40 2006 -0800"
      },
      "message": "[DCCP]: Introduce dccp_ipv4_af_ops\n\nAnd make the core DCCP code AF agnostic, just like TCP, now its time\nto work on net/dccp/ipv6.c, we are close to the end!\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a9bc9bb4d3a4570a8a48aadf071b91e657adb89",
      "tree": "b20dc78e5e9dc6deed61c47bf12a72ec8f9a9768",
      "parents": [
        "777b25a2fea7129222eb11fba55c0a67982383ff"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Mon Oct 10 21:25:00 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 10 21:25:00 2005 -0700"
      },
      "message": "[DCCP]: Transition from PARTOPEN to OPEN when receiving DATA packets\n\nNoticed by Andrea Bittau, that provided a patch that was modified to\nnot transition from RESPOND to OPEN when receiving DATA packets.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae31c3399d17b1f7bc1742724f70476b5417744f",
      "tree": "c34099afb228936672e6e589f0af7d81f1f62443",
      "parents": [
        "21f130a2370ba837cdfc5204ebe52e7c664fec3d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "message": "[DCCP]: Move the ack vector code to net/dccp/ackvec.[ch]\n\nIsolating it, that will be used when we introduce a CCID2 (TCP-Like)\nimplementation.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c10c5d96865ce611d6a780888eff0ef4fab358b",
      "tree": "ab1303166355b32730185445557623bec09a1dcb",
      "parents": [
        "37f7f421cce13435fdc0d870caf51141e5ebf079"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 16 16:58:33 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 16 16:58:33 2005 -0700"
      },
      "message": "[DCCP]: More precisely set reset_code when sending RESET packets\n\nMoving the setting of DCCP_SKB_CB(skb)-\u003edccpd_reset_code to the places\nwhere events happen that trigger sending a RESET packet.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b80230a7f8cd346c1e2ebafdd02be432bf10459",
      "tree": "a51d45efbe4b77c395ffe4fc51894e173d6d7345",
      "parents": [
        "811265b8e8bf84e3b91507bf6a3a8eea20e7a4b7"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Sep 13 19:05:08 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Sep 13 19:05:08 2005 -0300"
      },
      "message": "[DCCP]: Handle SYNC packets in dccp_rcv_state_process\n\nEliciting a SYNCACK in response, we were handling SYNC packets\nonly in the DCCP_OPEN state, in dccp_rcv_established.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "811265b8e8bf84e3b91507bf6a3a8eea20e7a4b7",
      "tree": "7b27a9c2c2a1bac2a4b3c9176f8741e5d71ced41",
      "parents": [
        "24b8e05dc1b03c1f80828e642838511c16e17250"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Sep 13 19:03:15 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Sep 13 19:03:15 2005 -0300"
      },
      "message": "[DCCP]: Check if already in the CLOSING state in dccp_rcv_closereq\n\nIt is possible to receive more than one CLOSEREQ packet if the\nCLOSE packet sent in response is somehow lost, change the state\nto DCCP_CLOSING only on the first CLOSEREQ packet received.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "b0e567806d16586629468c824dfb2e71155df7da",
      "tree": "70f5905fae3270985fed1050335c56598fd32646",
      "parents": [
        "954ee31f366fabe53fb450482789258fe552f40b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:38:35 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:38:35 2005 -0300"
      },
      "message": "[DCCP] Introduce dccp_timestamp\n\nTo start the timestamps with 0.0ms, easing the integer maths in the CCIDs, this\nprobably will be reworked to use the to be introduced struct timeval_offset\ninfrastructure out of skb_get_timestamp, etc.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "331968bd0c1b2437f3ad773cbf55f2e0737bafc0",
      "tree": "ec9c5aeaa5217c8ce009a7e5e07a60c3a390e021",
      "parents": [
        "8efa544f9c84919c047dc2f96e308c902e8fb1a4"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 23 21:54:23 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:05:45 2005 -0700"
      },
      "message": "[DCCP]: Initial dccp_poll implementation\n\nTested with a patched netcat, no horror stories so far 8)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ad07e7cf343181002c10c39d3f57a88e4903d4f",
      "tree": "c22067f3f443faebdcd3403fa8ce7c5c89662c60",
      "parents": [
        "58e45131dc269eff0983c6d44494f9e687686900"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 23 21:50:06 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:04:31 2005 -0700"
      },
      "message": "[DCCP]: Implement the CLOSING timer\n\nSo that we retransmit CLOSE/CLOSEREQ packets till they elicit an\nanswer or we hit a timeout.\n\nMost of the machinery uses TCP approaches, this code has to be\npolished \u0026 audited, but this is better than we had before.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58e45131dc269eff0983c6d44494f9e687686900",
      "tree": "2ad04be66ec5ac7471c89180ff85f301e4f19a87",
      "parents": [
        "05465343bf74e00c8c2c5a310740157de3149f27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 21 23:46:01 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:04:27 2005 -0700"
      },
      "message": "[DCCP]: Fix printf format warnings on 64-bit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "03ace394ac9bcad38043a381ae5f4860b9c9fa1c",
      "tree": "bbe5f7fc56074224ded47113974dbc3db550b303",
      "parents": [
        "a3054d48b9b9d6290eccc9fc09c286ef450d9b1d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Aug 21 05:36:45 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:03:42 2005 -0700"
      },
      "message": "[DCCP]: Fix the ACK and SEQ window variables settings\n\nThis is from a first audit, more eyeballs are more than welcome.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a3054d48b9b9d6290eccc9fc09c286ef450d9b1d",
      "tree": "08a6b91f57e6c7c66a4839ba4fb3c0bf570cebf6",
      "parents": [
        "2807d4ffb0dccb8f932c3e1701b6b6163153d333"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Aug 21 05:35:18 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:03:33 2005 -0700"
      },
      "message": "[DCCP]: Give more info on Step 6 failure debug printk\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c59eab4637dbc3f832503be4ccb9213b0f323d92",
      "tree": "95bf99ecc5150dc9a97c63f20b9e5d90a61edc13",
      "parents": [
        "5480855bfbc125f34d9b752689bb9a64da7e1fc6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Thu Aug 18 21:12:02 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:02:26 2005 -0700"
      },
      "message": "[DCCP]: Use LIMIT_NETDEBUG in some debugging printks\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e92ae93a8aa66aea12935420cb22d4df1c18d023",
      "tree": "61ffc292a8e437f7d44bbfe00c4e052f7488dd25",
      "parents": [
        "ba602a816132dcc66e875dddf2c62512a9f6f8cb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Wed Aug 17 03:10:59 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:50 2005 -0700"
      },
      "message": "[DCCP]: Send SYNCACK packets in response to SYNC packets\n\nAlso fix step 6 when receiving SYNC or SYNCACK packets, i.e. we were not using\nthe updated swl.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8649b0d4166e6e80ffa298e75abd8f2afdd491a6",
      "tree": "e6024532d165f5dc9987fe38fb84cb2076c86100",
      "parents": [
        "725ba8eee3881e619c8e5a0116f1bdb6480ac2d9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 13 20:36:01 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:59:50 2005 -0700"
      },
      "message": "[DCCP]: Fix RESET handling in dccp_rcv_state_process\n\nTo avoid holding TIMEWAIT state for sockets in the LISTEN state.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7690af3fff7633e40b1b9950eb8489129251d074",
      "tree": "92fa07234a7547c4a7dd74877972b5a291673fcf",
      "parents": [
        "c173437669967301facff151bfeb7bae67354e4c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 13 20:34:54 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:59:26 2005 -0700"
      },
      "message": "[DCCP]: Just reflow the source code to fit in 80 columns\n\nAndrew Morton should be happy now 8)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64ce207306debd7157f47282be94770407bec01c",
      "tree": "b4004f01b2b0e935b95bcce9a78e60a9e9e17f65",
      "parents": [
        "64cf1e5d8b5f88d56509260e08fa0d8314277350"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 09 20:50:53 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:56:08 2005 -0700"
      },
      "message": "[NET]: Make NETDEBUG pure printk wrappers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f6ccf55419c4f0021e7382f000f2fd14a29f3d3c",
      "tree": "c0b6446bf3ebf84437eeb16d357a7845598de206",
      "parents": [
        "1d3de414eb20d937d82c5219fd13ee4cedc499cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 09 20:27:14 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:34 2005 -0700"
      },
      "message": "[DCCP]: Fix u64 printf format warnings.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c657876b63cb1d8a2ec06f8fc6c37bb8412e66c",
      "tree": "3cb2732870c9cf8f976cb6fa57e0223f1c648e2a",
      "parents": [
        "c4365c9235f80128c3c3d5993074173941b1c1f0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:14:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:46 2005 -0700"
      },
      "message": "[DCCP]: Initial implementation\n\nDevelopment to this point was done on a subversion repository at:\n\nhttp://oops.ghostprotocols.net:81/cgi-bin/viewcvs.cgi/dccp-2.6/\n\nThis repository will be kept at this site for the foreseable future,\nso that interested parties can see the history of this code,\nattributions, etc.\n\nIf I ever decide to take this offline I\u0027ll provide the full history at\nsome other suitable place.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
