)]}'
{
  "log": [
    {
      "commit": "cf6b5fbe7426cab3322c3a82f25291672d70a65f",
      "tree": "33dce2ed6d685a10a22e4ee64c2c2982876027e7",
      "parents": [
        "4e7e5cfe3825b4d854fc005d784a6f551b3c039f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Feb 03 04:07:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 03 04:28:53 2008 -0800"
      },
      "message": "[DCCP]: Reorganize struct dccp_sock to save 8 bytes\n\n/home/acme/git/net-2.6/net/dccp/ipv6.c:\n  struct dccp_sock  |   -8\n  struct dccp6_sock |   -8\n 2 structs changed\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4",
      "tree": "b84c712184dfcdde4b68980f4eff21bcaefbfcf3",
      "parents": [
        "8109616e2ef978d142ea45850efd4f102b9bdce4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:37:19 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:51 2008 -0800"
      },
      "message": "[DCCP]: Handle timestamps on Request/Response exchange separately\n\nIn DCCP, timestamps can occur on packets anytime, CCID3 uses a timestamp(/echo) on the Request/Response\nexchange. This patch addresses the following situation:\n\t* timestamps are recorded on the listening socket;\n\t* Responses are sent from dccp_request_sockets;\n\t* suppose two connections reach the listening socket with very small time in between:\n\t* the first timestamp value gets overwritten by the second connection request.\n\nThis is not really good, so this patch separates timestamps into\n * those which are received by the server during the initial handshake (on dccp_request_sock);\n * those which are received by the client or the client after connection establishment.\n\nAs before, a timestamp of 0 is regarded as indicating that no (meaningful) timestamp has been\nreceived (in addition, a warning message is printed if hosts send 0-valued timestamps).\n\nThe timestamp-echoing now works as follows:\n * when a timestamp is present on the initial Request, it is placed into dreq, due to the\n   call to dccp_parse_options in dccp_v{4,6}_conn_request;\n * when a timestamp is present on the Ack leading from RESPOND \u003d\u003e OPEN, it is copied over\n   from the request_sock into the child cocket in dccp_create_openreq_child;\n * timestamps received on an (established) dccp_sock are treated as before.\n\nSince Elapsed Time is measured in hundredths of milliseconds (13.2), the new dccp_timestamp()\nfunction is used, as it is expected that the time between receiving the timestamp and\nsending the timestamp echo will be very small against the wrap-around time. As a byproduct,\nthis allows smaller timestamping-time fields.\n\nFurthermore, inserting the Timestamp Echo option has been taken out of the block starting with\n\u0027!dccp_packet_without_ack()\u0027, since Timestamp Echo can be carried on any packet (5.8 and 13.3).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b819412481494fb6861c08d360b75fabcbbfbbf",
      "tree": "ddd9f976f051fb5cff794992b38613bbbfcb9cc1",
      "parents": [
        "7913350663e2756ecb91dd3a7c773806b943426e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:29:24 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:50 2008 -0800"
      },
      "message": "[DCCP]: Allow to parse options on Request Sockets\n\nThe option parsing code currently only parses on full sk\u0027s. This causes a problem for\noptions sent during the initial handshake (in particular timestamps and feature-negotiation\noptions). Therefore, this patch extends the option parsing code with an additional argument\nfor request_socks: if it is non-NULL, options are parsed on the request socket, otherwise\nthe normal path (parsing on the sk) is used.\n\nSubsequent patches, which implement feature negotiation during connection setup, make use\nof this facility.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "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": "9b91ad2747891767c0efb4fb965c5dfed8d4f88e",
      "tree": "010b946c201fab39f3417ffd0abbdc74dbe62cdb",
      "parents": [
        "c3ada46a009001e144b29736880962f24ee2afdf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 20 21:56:37 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:44 2008 -0800"
      },
      "message": "[DCCP]: Make PARTOPEN an autonomous state\n\nThis decouples PARTOPEN from TCP-specific stream-states.\n\nIt thus addresses the FIXME.\n\nThe code has been checked with regard to dependency on PARTOPEN and FIN_WAIT1\nstates (to which PARTOPEN previously was mapped): there is no difference, as\nPARTOPEN is always referred to directly (i.e. not via the mapping to TCP\nstate).\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": "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": "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": "7c559a9e44ee61faf2f339604ce708decb345a93",
      "tree": "8e0e89521445a42cf801747af20be172b6e9e582",
      "parents": [
        "bc8498721dfe3f7d537f4f75302be7dbe9c7b939"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:39:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:31 2007 -0700"
      },
      "message": "[DCCP]: Add socket option to query the current MPS\n\nThis enables applications to query the current value of the Maximum\nPacket Size via a socket option, suggested as a SHOULD in (RFC 4340,\np. 102).\n\nThis socket option is useful to avoid the annoying bail-out via\n`-EMSGSIZE\u0027.  In particular, as fragmentation is not currently\nsupported (and its use is partly discouraged in RFC 4340).\n\nWith this option, it is possible to size buffers accordingly, e.g.\n\n\tint buflen \u003d dccp_get_cur_mps(sockfd);\n\n\t/* or */\n\tif (msgsize \u003e dccp_get_cur_mps(sockfd))\n\t\tdie(\"message is too large for this path\");\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": "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": "0430ee3451f4589b68f522552b1896825f2043b3",
      "tree": "f96e46fa079d90a51a4fc5b912d271470b489668",
      "parents": [
        "727ecc5faaf6e976fc841649821c865ebd1e822d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 11:27:56 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:42 2007 -0700"
      },
      "message": "[DCCP]: Add Support for Data 1 .. 3 fields of Reset packets\n\nThis adds fields to support the informational Data 1..3 fields of the\nDCCP-Reset packets (RFC 4340, 5.6), and makes minor cosmetic changes\nto documentation.\nCode which fills in these fields follows in subsequent patches, it is\nprimarily used for reporting option-processing and feature-negotiation\nerrors.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "8fb8354af9b92ce3bd41083995f1fe26024d0959",
      "tree": "62d1920b5ed158e28d96691637d82a2a4fd58dc5",
      "parents": [
        "234748954a9880cce8a065698dcbf692f9c23918"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:19:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:17 2007 -0700"
      },
      "message": "[DCCP]: Nuke dccp_timestamp and dccps_epoch, not used anymore\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "19ac21465e15e476220909c01b23df847b6ffa30",
      "tree": "0f47d32208477e4150e9caa295e1badad7321628",
      "parents": [
        "0740d49c2465bdd2644455c4bc49794395b73433"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sun Aug 19 17:18:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:48:16 2007 -0700"
      },
      "message": "[DCCP]: Convert dccps_timestamp_time to ktime_t\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "91d73c15cb165195bc8c3d6a35e30df454b1485b",
      "tree": "3e32716861f8784f635d482a187d4a5fda25658f",
      "parents": [
        "f73f7097c986aab159491dcded7fc918e76e9ec3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Apr 20 13:57:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:56 2007 -0700"
      },
      "message": "[DCCP]: Complete documentation of dccp_sock\n\nThis fills in missing documentation for dccp_sock fields.\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": "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": "9c70220b73908f64792422a2c39c593c4792f2c5",
      "tree": "2090ea10aaa2714a5e095bae8cc02e743c378a3a",
      "parents": [
        "a27ef749e7be3b06fb58df53d94eb97a21f18707"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 18:04:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:31 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_transport_header(skb)\n\nFor the places where we need a pointer to the transport header, it is\nstill legal to touch skb-\u003eh.raw directly if just adding to,\nsubtracting from or setting it to another layer header.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "badff6d01a8589a1c828b0bf118903ca38627f4e",
      "tree": "89611d7058c612085c58dfb9913ee30ddf04b604",
      "parents": [
        "0660e03f6b18f19b6bbafe7583265a51b90daf36"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 13 13:06:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:25:15 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_transport_header(skb)\n\nFor the common, open coded \u0027skb-\u003eh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003eh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple cases:\n\nskb-\u003eh.raw \u003d skb-\u003edata;\nskb-\u003eh.raw \u003d {skb_push|[__]skb_pull}()\n\nThe next ones will handle the slightly more \"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\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": "5aed324369c94a2c38469c8288e42eb1a9fac400",
      "tree": "76290075540058745b53d34db1672f5e292e6b1a",
      "parents": [
        "78ad713da673a2977763521c347176137f3e493f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 28 19:33:36 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:30:59 2006 -0800"
      },
      "message": "[DCCP]: Tidy up unused structures\n\nThis removes and cleans up unused variables and structures which have become\nunnecessary following the introduction of the EWMA patch to automatically track\nthe CCID 3 receiver/sender packet sizes `s\u0027.\n\nIt deprecates the PACKET_SIZE socket option by returning an error code and\nprinting a deprecation warning if an application tries to read or write this\nsocket option.\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": "9981a0e36a572e9fcf84bfab915fdc93bed0e3c9",
      "tree": "3c64dba5b233b97417f3c46135607bfc19e2182f",
      "parents": [
        "56649d5d3c4cb0fe6dd34808ca9f9208d84130ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:24:30 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:26 2006 -0800"
      },
      "message": "[NET]: Annotate checksums in on-the-wire packets.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09dbc3895e3242346bd434dae743c456fd28fc6a",
      "tree": "a7bc1d0879b025152bff9e4a0ba44beaa5da654b",
      "parents": [
        "c02fdc0e81e9c735d8d895af1e201b235df326d8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 12:57:34 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:30 2006 -0800"
      },
      "message": "[DCCP]: Miscellaneous code tidy-ups\n\nThis patch does not change code; it performs some trivial clean/tidy-ups:\n\n  * removal of a `debug_prefix\u0027 string in favour of the\n    already existing dccp_role(sk)\n\n  * add documentation of structures and constants\n\n  * separated out the cases for invalid packets (step 1\n    of the packet validation)\n\n  * removing duplicate statements\n\n  * combining declaration \u0026 initialisation\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "c02fdc0e81e9c735d8d895af1e201b235df326d8",
      "tree": "f30af6744e4ecea9e5bb12483addb306d49ce458",
      "parents": [
        "6a128e053e75a5f1be9fb53d0d53159f88197c61"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 12:48:10 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:29 2006 -0800"
      },
      "message": "[DCCP]: Make feature negotiation more readable\n\nThis patch replaces cryptic feature negotiation messages of type\n\nOct 31 15:42:20 kernel: dccp_feat_change: feat change type\u003d32 feat\u003d1\nOct 31 15:42:21 kernel: dccp_feat_change: feat change type\u003d34 feat\u003d1\nOct 31 15:42:21 kernel: dccp_feat_change: feat change type\u003d32 feat\u003d5\n\ninto ones of type:\n\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeL(CCID (1), 3)\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeR(CCID (1), 3)\nNov  2 13:54:45 kernel: dccp_feat_change: ChangeL(Ack Ratio (5), 2)\n\nAlso,\n\t* completed the feature number list wrt RFC 4340 sec. 6.4\n\t* annotating which ones have been implemented so far\n\t* implemented rudimentary sanity checking in feat.c (FIXMEs)\n\t* some minor fixes\n\nCommiter note: uninlined dccp_feat_name and dccp_feat_typename, for\n               consistency with dccp_{state,packet}_name, that, BTW,\n               should be compiled only if CONFIG_IP_DCCP_DEBUG is\n               selected, leaving this to another cset tho. Also\n               shortened dccp_feat_negotiation_debug to dccp_feat_debug.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "6f4e5fff1e4d46714ea554fd83e44eab534e8b11",
      "tree": "4b14344fd825bbcefb6e8514e98e3e796b2dc1bd",
      "parents": [
        "a11d206d0f88e092419877c7f706cafb5e1c2e57"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Nov 10 17:43:06 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:09 2006 -0800"
      },
      "message": "[DCCP]: Support for partial checksums (RFC 4340, sec. 9.2)\n\nThis patch does the following:\n  a) introduces variable-length checksums as specified in [RFC 4340, sec. 9.2]\n  b) provides necessary socket options and documentation as to how to use them\n  c) basic support and infrastructure for the Minimum Checksum Coverage feature\n     [RFC 4340, sec. 9.2.1]: acceptability tests, user notification and user\n     interface\n\nIn addition, it\n\n (1) fixes two bugs in the DCCPv4 checksum computation:\n \t* pseudo-header used checksum_len instead of skb-\u003elen\n\t* incorrect checksum coverage calculation based on dccph_x\n (2) removes dccp_v4_verify_checksum() since it reduplicates code of the\n     checksum computation; code calling this function is updated accordingly.\n (3) now uses skb_checksum(), which is safer than checksum_partial() if the\n     sk_buff has is a non-linear buffer (has pages attached to it).\n (4) fixes an outstanding TODO item:\n        * If P.CsCov is too large for the packet size, drop packet and return.\n\nThe code has been tested with applications, the latest version of tcpdump now\ncomes with support for partial DCCP checksums.\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": "9b42078ed6edfe04e9dc9a59b946ad912aeef717",
      "tree": "d3d20e17aa85e1bb16b99397f98f151d197b3177",
      "parents": [
        "89e7e57778ecd8744fee97491300f05a9fb1388a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Nov 10 11:22:32 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:55 2006 -0800"
      },
      "message": "[DCCP]: Combine allocating \u0026 zeroing header space on skb\n\nThis is a code simplification:\nit combines three often recurring operations into one inline function,\n\n        * allocate `len\u0027 bytes header space in skb\n        * fill these `len\u0027 bytes with zeroes\n        * cast the start of this header space as dccp_hdr\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": "1acc04cd4c0b54ada85d0dd5d7c5efc3441261bf",
      "tree": "21c766ea954bcc4a0515fcee811661f47fcb821d",
      "parents": [
        "6aae8738473b7447284fe370d4e6816c02b4511b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Oct 10 22:44:37 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 15:37:20 2006 -0700"
      },
      "message": "[PATCH] dccp __user annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b83eff641ed39bd631535b9a8971e161b056f541",
      "tree": "3989df2905034c50f5f035cd884fe33f5c709749",
      "parents": [
        "00e4d116a7ef94eb910be037912b0b2fc09f608b"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Fri Sep 22 14:25:36 2006 +1200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 24 17:56:32 2006 -0300"
      },
      "message": "[DCCP]: Introduce constants for CCID numbers\n\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "00e4d116a7ef94eb910be037912b0b2fc09f608b",
      "tree": "81e8a52c7529691b3c07605613da65cae80f41c9",
      "parents": [
        "1ab9dd0902df4f4ff56fbf672220549090ab28ba"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Sep 22 09:33:58 2006 +0100"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 24 17:49:26 2006 -0300"
      },
      "message": "[DCCP]: Allow default/fallback service code.\n\nThis has been discussed on dccp@vger and removes the necessity for applications\nto supply service codes in each and every case.\n\nIf an application does not want to provide a service code, that\u0027s fine, it will\nbe given 0. Otherwise, service codes can be set via socket options as before.\n\nThis patch has been tested using various client/server configurations\n(including listening on multiple service codes).\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": "97e5848dd39e7e76bd6077735ebb5473763ab9c5",
      "tree": "f1292b7bb558df8f27016fbac31a3b017bdba438",
      "parents": [
        "2a0109a707d2b0ae48f124d3be0fdf1715c0107a"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Sat Aug 26 19:16:45 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:18:17 2006 -0700"
      },
      "message": "[DCCP]: Introduce tx buffering\n\nThis adds transmit buffering to DCCP.\n\nI have tested with CCID2/3 and with loss and rate limiting.\n\nSigned off by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4bf3902427a128455b8de299ff0918072b2e974",
      "tree": "5269cd4d84702a0a728b390e08242be01252d20d",
      "parents": [
        "e6f507196c2b50243beb09b1bfa4639f999d4d1e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "message": "[DCCP] minisock: Rename struct dccp_options to struct dccp_minisock\n\nThis will later be included in struct dccp_request_sock so that we can\nhave per connection feature negotiation state while in the 3way\nhandshake, when we clone the DCCP_ROLE_LISTEN socket (in\ndccp_create_openreq_child) we\u0027ll just copy this state from\ndreq_minisock to dccps_minisock.\n\nAlso the feature negotiation and option parsing code will mostly touch\ndccps_minisock, which will simplify some stuff.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93ce20928f6e197707add8f670ae0cd029107e8f",
      "tree": "d7a3219c9a81d103c72267b568e7ea90dd673f42",
      "parents": [
        "60fe62e789076ae7c13f7ffb35fec4b24802530d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 19:23:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:23:58 2006 -0800"
      },
      "message": "[DCCP]: Make CCID2 be the default\n\nAs per the draft. This fixes the build when netfilter dccp components\nare built and dccp isn\u0027t. Thanks to Reuben Farrelly for reporting\nthis.\n\nThe following changesets will introduce /proc/sys/net/dccp/defaults/\nto give more flexibility to DCCP developers and testers while apps\ndoesn\u0027t use setsockopt to specify the desired CCID, 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": "60fe62e789076ae7c13f7ffb35fec4b24802530d",
      "tree": "cc8d507a4276c3d5a2bcb72746660d485bc2e045",
      "parents": [
        "a193a4abdd1f742a57f3f70b6a83c3e536876e97"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 19:23:32 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 19:23:32 2006 -0800"
      },
      "message": "[DCCP]: sparse endianness annotations\n\nThis also fixes the layout of dccp_hdr short sequence numbers, problem\nwas not fatal now as we only support long (48 bits) sequence numbers.\n\nSigned-off-by: Andrea Bittau \u003ca.bittau@cs.ucl.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "ba66c6e8b292997467128506f39fa6607e959050",
      "tree": "d9c467ac7017b21b793442376080107b155c2afd",
      "parents": [
        "dc808fe28db59fadf4ec32d53f62477fa28f3be8"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "imcdnzl@gmail.com",
        "time": "Mon Mar 20 17:56:56 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:56:56 2006 -0800"
      },
      "message": "[DCCP]: Set the default CCID according to kernel config selection\n\nNow CCID2 is the default, as stated in the RFC drafts, but we allow\na config where just CCID3 is built, where CCID3 becomes the default.\n\nSigned-off-by: Ian McDonald \u003cimcdnzl@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\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": "2a91aa3967398fb94eccc8da67c82bce9f67afdf",
      "tree": "62bf003487121bc629919c85810df11e52016b8f",
      "parents": [
        "aa5d7df3b20e0e493e90e1151510ab3ae8366bb5"
      ],
      "author": {
        "name": "Andrea Bittau",
        "email": "a.bittau@cs.ucl.ac.uk",
        "time": "Mon Mar 20 17:41:47 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:41:47 2006 -0800"
      },
      "message": "[DCCP] CCID2: Initial CCID2 (TCP-Like) implementation\n\nOriginal work by Andrea Bittau, Arnaldo Melo cleaned up and fixed several\nissues on the merge process.\n\nFor now CCID2 was turned the default for all SOCK_DCCP connections, but this\nwill be remedied soon with the merge of the feature negotiation code.\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": "14c850212ed8f8cbb5972ad6b8812e08a0bc901c",
      "tree": "53c88f03e7bbac4064f6e80d462ad484ee038326",
      "parents": [
        "25995ff577675b58dbd848b7758e7bad87411947"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 27 02:43:12 2005 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:21 2006 -0800"
      },
      "message": "[INET_SOCK]: Move struct inet_sock \u0026 helper functions to net/inet_sock.h\n\nTo help in reducing the number of include dependencies, several files were\ntouched as they were getting needed headers indirectly for stuff they use.\n\nThanks also to Alan Menegotto for pointing out that net/dccp/proto.c had\nlinux/dccp.h include twice.\n\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": "88f964db6ef728982734356bf4c406270ea29c1d",
      "tree": "7fb9ba2fb646f4917911fed4a0a37cd52a12eae4",
      "parents": [
        "561713cf475de1f671cc89c437927ec008a20209"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:19:32 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:19:32 2005 -0700"
      },
      "message": "[DCCP]: Introduce CCID getsockopt for the CCIDs\n\nAllocation for the optnames is similar to the DCCP options, with a\nrange for rx and tx half connection CCIDs.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "561713cf475de1f671cc89c437927ec008a20209",
      "tree": "f0485a84b71e2e14f02c9c87e792b187e28b6fdd",
      "parents": [
        "65299d6c3cfb49cc3eee4fc483e7edd23ea7b2ed"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:18:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:18:52 2005 -0700"
      },
      "message": "[DCCP]: Don\u0027t use necessarily the same CCID for tx and rx\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae31c3399d17b1f7bc1742724f70476b5417744f",
      "tree": "c34099afb228936672e6e589f0af7d81f1f62443",
      "parents": [
        "21f130a2370ba837cdfc5204ebe52e7c664fec3d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 18 00:17:51 2005 -0700"
      },
      "message": "[DCCP]: Move the ack vector code to net/dccp/ackvec.[ch]\n\nIsolating it, that will be used when we introduce a CCID2 (TCP-Like)\nimplementation.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67e6b629212fa9ffb7420e8a88a41806af637e28",
      "tree": "64f07616a23b657f3eb06e1daedf2450f6fbfc60",
      "parents": [
        "0c10c5d96865ce611d6a780888eff0ef4fab358b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 16 16:58:40 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 16 16:58:40 2005 -0700"
      },
      "message": "[DCCP]: Introduce DCCP_SOCKOPT_SERVICE\n\nAs discussed in the dccp@vger mailing list:\n\nNow applications have to use setsockopt(DCCP_SOCKOPT_SERVICE, service[s]),\nprior to calling listen() and connect().\n\nAn array of unsigned ints can be passed meaning that the listening sock accepts\nconnection requests for several services.\n\nWith this we can ditch struct sockaddr_dccp and use only sockaddr_in (and\nsockaddr_in6 in the future).\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\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": "507d37cf269ebbd1b32bcc435fe577e411f73151",
      "tree": "68b797a2f2c8645a86ac1a5f521df6b8873d9338",
      "parents": [
        "0ba7a3ba6608de6e0c0bfe3009a63d7e0b7ab0ce"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:30:07 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 02:30:07 2005 -0300"
      },
      "message": "[CCID] Only call the HC insert_options methods when requested\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "a84ffe430342db6ee585a5038f3242a6b4112d69",
      "tree": "db6eeaf68290a0247449e824e3c46a7929f4be02",
      "parents": [
        "0ac4f893f20ed524198da5ebf591fc0b9e2ced2f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Aug 28 04:51:32 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:13:37 2005 -0700"
      },
      "message": "[DCCP]: Introduce DCCP_SOCKOPT_PACKET_SIZE\n\nSo that applications can set dccp_sock-\u003edccps_pkt_size, that in turn\nis used in the CCID3 half connection init routines to set\nccid3hc[tr]x_s and use it in its rate calculations.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bc0986957b63a2fbbc46ab95d3d1d72830bda83",
      "tree": "8be8f0e0e19f58cc5cc9cb7d789f3283436712ed",
      "parents": [
        "bf0ff9e578ba7dd8331005f00ad7310122011f43"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "iam4@cs.waikato.ac.nz",
        "time": "Sat Aug 20 00:23:43 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:02:34 2005 -0700"
      },
      "message": "[DCCP]: Fix the timestamp options\n\nThis changes timestamp, timestamp echo, and elapsed time to use units of 10\nusecs as per DCCP spec. This has been tested to verify that times are correct.\nAlso fixed up length and used hton/ntoh more.\n\nStill to add in later patches:\n- actually use elapsed time to adjust RTT\n(commented out as was prior to this patch)\n- send options at times more closely following the spec\n(content is now correct)\n\nSigned-off-by: Ian McDonald \u003ciam4@cs.waikato.ac.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "64cf1e5d8b5f88d56509260e08fa0d8314277350",
      "tree": "1b2decb48c52d8f3f3abe04ffb8e0dca80f0747a",
      "parents": [
        "696ab2d3bffc746fb8cf3712f066d42b9886aeed"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 09 20:45:21 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:56:03 2005 -0700"
      },
      "message": "[DCCP]: Finish the TIMEWAIT minisock support\n\nUsing most of the infrastructure TCP uses, with a dccp_death_row,\netc. As per my current interpretation of the draft what we have with\nthis changeset seems to be all we need (or very close to it 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": "1d3de414eb20d937d82c5219fd13ee4cedc499cb",
      "tree": "3e249fc3ecd33bdec336208a29f0a8fdea062439",
      "parents": [
        "e2e268665f6c01686b477a6b0cc5a70bab689d54"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@netfilter.org",
        "time": "Tue Aug 09 20:26:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:28 2005 -0700"
      },
      "message": "[NETFILTER]: New iptables DCCP protocol header match\n\nUsing this new iptables DCCP protocol header match, it is possible to\ncreate simplistic stateless packet filtering rules for DCCP.  It\npermits matching of port numbers, packet type and options.\n\nSigned-off-by: Harald Welte \u003claforge@netfilter.org\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2e268665f6c01686b477a6b0cc5a70bab689d54",
      "tree": "1e0ea532c344e09c0747f488088bf7f85feed3ec",
      "parents": [
        "5a47a470e602eecb168ddd3b78841b84ceddd319"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:26:28 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:23 2005 -0700"
      },
      "message": "[DCCP]: Fix struct sockaddr_dccp definition\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a47a470e602eecb168ddd3b78841b84ceddd319",
      "tree": "9b2408cd295189662f4909522a15d24101bf3fdc",
      "parents": [
        "bb435b8d816582064ee0ddb1e2a6fbca67f34108"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@netfilter.org",
        "time": "Tue Aug 09 20:26:03 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:18 2005 -0700"
      },
      "message": "[DCCP]: make \u003clinux/dccp.h\u003e include-able from userspace\n\nThe protocol header files in \u003clinux/foo.h\u003e are usually structured in a\nway to be included by userspace code.  The top section consists of\ngeneral protocol structure definitions, typedefs, enums - followed by\nan #ifdef __KERNEL__ section.\n\nCurrently \u003clinux/dccp.h\u003e doesn\u0027t follow that convention and can\ntherefore not be used from userspace.  However, for example iptables\u0027\nlibipt_dccp.c actually needs various definitions from there.\n\nSigned-off-by: Harald Welte \u003claforge@netfilter.org\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\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"
    }
  ]
}
