)]}'
{
  "log": [
    {
      "commit": "871a2c16c21b988688b4ab1a78eadd969765c0a3",
      "tree": "34ffb3be1402747ef3b7fdb754fb99778bd45728",
      "parents": [
        "cfa969e385a23e4c85f50e0ed5de25a2e18bf9d4"
      ],
      "author": {
        "name": "Tomasz Grobelny",
        "email": "tomasz@grobelny.oswiecenia.net",
        "time": "Sat Dec 04 13:38:01 2010 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Dec 07 13:47:12 2010 +0100"
      },
      "message": "dccp: Policy-based packet dequeueing infrastructure\n\nThis patch adds a generic infrastructure for policy-based dequeueing of\nTX packets and provides two policies:\n * a simple FIFO policy (which is the default) and\n * a priority based policy (set via socket options).\nBoth policies honour the tx_qlen sysctl for the maximum size of the write\nqueue (can be overridden via socket options).\n\nThe priority policy uses skb-\u003epriority internally to assign an u32 priority\nidentifier, using the same ranking as SO_PRIORITY. The skb-\u003epriority field\nis set to 0 when the packet leaves DCCP. The priority is supplied as ancillary\ndata using cmsg(3), the patch also provides the requisite parsing routines.\n\nSigned-off-by: Tomasz Grobelny \u003ctomasz@grobelny.oswiecenia.net\u003e\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "d83447f0944e73d690218d79c07762ffa4ceb9e4",
      "tree": "2a9adf943eee50d8c495ac9302692a277d862d92",
      "parents": [
        "18219463c884bfdb7954d298b9edb5194b14d621"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 14 17:25:46 2010 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 15 07:12:00 2010 +0100"
      },
      "message": "dccp ccid-2: Schedule Sync as out-of-band mechanism\n\nThe problem with Ack Vectors is that\n  i) their length is variable and can in principle grow quite large,\n ii) it is hard to predict exactly how large they will be.\n\nDue to the second point it seems not a good idea to reduce the MPS; in\nparticular when on average there is enough room for the Ack Vector and an\nincrease in length is momentarily due to some burst loss, after which the\nAck Vector returns to its normal/average length.\n\nThe solution taken by this patch is to subtract a minimum-expected Ack Vector\nlength from the MPS, and to defer any larger Ack Vectors onto a separate\nSync - but only if indeed there is no space left on the skb.\n\nThis patch provides the infrastructure to schedule Sync-packets for transporting\n(urgent) out-of-band data. Its signalling is quicker than scheduling an Ack, since\nit does not need to wait for new application data.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "b1fcf55eea541af9efa5d39f5a0d1aec8ceca55d",
      "tree": "a021b6abde9c784d67ee0de3bb7fb31f7d5b2e9f",
      "parents": [
        "dc841e30eaea9f9f83c9ab1ee0b3ef9e5c95ce8a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 27 19:16:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 28 10:27:01 2010 -0700"
      },
      "message": "dccp: Refine the wait-for-ccid mechanism\n\nThis extends the existing wait-for-ccid routine so that it may be used with\ndifferent types of CCID, addressing the following problems:\n\n 1) The queue-drain mechanism only works with rate-based CCIDs. If CCID-2 for\n    example has a full TX queue and becomes network-limited just as the\n    application wants to close, then waiting for CCID-2 to become unblocked\n    could lead to an indefinite  delay (i.e., application \"hangs\").\n 2) Since each TX CCID in turn uses a feedback mechanism, there may be changes\n    in its sending policy while the queue is being drained. This can lead to\n    further delays during which the application will not be able to terminate.\n 3) The minimum wait time for CCID-3/4 can be expected to be the queue length\n    times the current inter-packet delay. For example if tx_qlen\u003d100 and a delay\n    of 15 ms is used for each packet, then the application would have to wait\n    for a minimum of 1.5 seconds before being allowed to exit.\n 4) There is no way for the user/application to control this behaviour. It would\n    be good to use the timeout argument of dccp_close() as an upper bound. Then\n    the maximum time that an application is willing to wait for its CCIDs to can\n    be set via the SO_LINGER option.\n\nThese problems are addressed by giving the CCID a grace period of up to the\n`timeout\u0027 value.\n\nThe wait-for-ccid function is, as before, used when the application\n (a) has read all the data in its receive buffer and\n (b) if SO_LINGER was set with a non-zero linger time, or\n (c) the socket is either in the OPEN (active close) or in the PASSIVE_CLOSEREQ\n     state (client application closes after receiving CloseReq).\n\nIn addition, there is a catch-all case of __skb_queue_purge() after waiting for\nthe CCID. This is necessary since the write queue may still have data when\n (a) the host has been passively-closed,\n (b) abnormal termination (unread data, zero linger time),\n (c) wait-for-ccid could not finish within the given time limit.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc841e30eaea9f9f83c9ab1ee0b3ef9e5c95ce8a",
      "tree": "921458d0ea02f1478dbac9305c1925dbea8c0dd9",
      "parents": [
        "fe84f4140f0d24deca8591e38926b95cfd097e62"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Oct 27 19:16:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 28 10:27:00 2010 -0700"
      },
      "message": "dccp: Extend CCID packet dequeueing interface\n\nThis extends the packet dequeuing interface of dccp_write_xmit() to allow\n 1. CCIDs to take care of timing when the next packet may be sent;\n 2. delayed sending (as before, with an inter-packet gap up to 65.535 seconds).\n\nThe main purpose is to take CCID-2 out of its polling mode (when it is network-\nlimited, it tries every millisecond to send, without interruption).\n\nThe mode of operation for (2) is as follows:\n * new packet is enqueued via dccp_sendmsg() \u003d\u003e dccp_write_xmit(),\n * ccid_hc_tx_send_packet() detects that it may not send (e.g. window full),\n * it signals this condition via `CCID_PACKET_WILL_DEQUEUE_LATER\u0027,\n * dccp_write_xmit() returns without further action;\n * after some time the wait-condition for CCID becomes true,\n * that CCID schedules the tasklet,\n * tasklet function calls ccid_hc_tx_send_packet() via dccp_write_xmit(),\n * since the wait-condition is now true, ccid_hc_tx_packet() returns \"send now\",\n * packet is sent, and possibly more (since dccp_write_xmit() loops).\n\nCode reuse: the taskled function calls dccp_write_xmit(), the timer function\n            reduces to a wrapper around the same code.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "baf9e782e1dc4991edecfa3b8700cf8739c40259",
      "tree": "1715d02df95b82af9eb79633d9a498084fd678c3",
      "parents": [
        "93344af44c0f649582bf1e3b5ecc45b3d19e98c2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Oct 11 20:37:38 2010 +0200"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Oct 12 06:57:41 2010 +0200"
      },
      "message": "dccp: remove unused argument in CCID tx function\n\nThis removes the argument `more\u0027 from ccid_hc_tx_packet_sent, since it was\nnowhere used in the entire code.\n\n(Btw, this argument was not even used in the original KAME code where the\n function initially came from; compare the variable moreToSend in the\n freebsd61-dccp-kame-28.08.2006.patch kept by Emmanuel Lochin.)\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "93344af44c0f649582bf1e3b5ecc45b3d19e98c2",
      "tree": "582193ad30a6b0f2523b667bd0a39ca70d9dcba0",
      "parents": [
        "0b53d4604ac2b4f2faa9a62a04ea9b383ad2efe0"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Oct 11 20:36:33 2010 +0200"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Oct 12 06:57:40 2010 +0200"
      },
      "message": "dccp: merge now-reduced connect_init() function\n\nAfter moving the assignment of GAR/ISS from dccp_connect_init() to\ndccp_transmit_skb(), the former function becomes very small, so that\na merger with dccp_connect() suggests itself.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "43815482370c510c569fd18edb57afcb0fa8cab6",
      "tree": "063efaae3758402b84f056438b704d1de68f7837",
      "parents": [
        "83d7eb2979cd3390c375470225dd2d8f2009bc70"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Apr 29 11:01:49 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 01 15:00:15 2010 -0700"
      },
      "message": "net: sock_def_readable() and friends RCU conversion\n\nsk_callback_lock rwlock actually protects sk-\u003esk_sleep pointer, so we\nneed two atomic operations (and associated dirtying) per incoming\npacket.\n\nRCU conversion is pretty much needed :\n\n1) Add a new structure, called \"struct socket_wq\" to hold all fields\nthat will need rcu_read_lock() protection (currently: a\nwait_queue_head_t and a struct fasync_struct pointer).\n\n[Future patch will add a list anchor for wakeup coalescing]\n\n2) Attach one of such structure to each \"struct socket\" created in\nsock_alloc_inode().\n\n3) Respect RCU grace period when freeing a \"struct socket_wq\"\n\n4) Change sk_sleep pointer in \"struct sock\" by sk_wq, pointer to \"struct\nsocket_wq\"\n\n5) Change sk_sleep() function to use new sk-\u003esk_wq instead of\nsk-\u003esk_sleep\n\n6) Change sk_has_sleeper() to wq_has_sleeper() that must be used inside\na rcu_read_lock() section.\n\n7) Change all sk_has_sleeper() callers to :\n  - Use rcu_read_lock() instead of read_lock(\u0026sk-\u003esk_callback_lock)\n  - Use wq_has_sleeper() to eventually wakeup tasks.\n  - Use rcu_read_unlock() instead of read_unlock(\u0026sk-\u003esk_callback_lock)\n\n8) sock_wake_async() is modified to use rcu protection as well.\n\n9) Exceptions :\n  macvtap, drivers/net/tun.c, af_unix use integrated \"struct socket_wq\"\ninstead of dynamically allocated ones. They dont need rcu freeing.\n\nSome cleanups or followups are probably needed, (possible\nsk_callback_lock conversion to a spinlock for example...).\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa395145165cb06a0d0885221bbe0ce4a564391d",
      "tree": "118b0403621f10db8dc3dbf12079f9af5b19e05d",
      "parents": [
        "ab9304717f7624c41927f442e6b6d418b2d8b3e4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Apr 20 13:03:51 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 16:37:13 2010 -0700"
      },
      "message": "net: sk_sleep() helper\n\nDefine a new function to return the waitqueue of a \"struct sock\".\n\nstatic inline wait_queue_head_t *sk_sleep(struct sock *sk)\n{\n\treturn sk-\u003esk_sleep;\n}\n\nChange all read occurrences of sk_sleep by a call to this function.\n\nNeeded for a future RCU conversion. sk_sleep wont be a field directly\navailable.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e15ed4d930297c127d280ca1d0c785be870def4",
      "tree": "e0808d650ae66cf273758496100d3d24739a9e48",
      "parents": [
        "0eecb784942792863b77dfe11e0c7e286e92db85"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Thu Apr 15 16:43:08 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 15 23:36:37 2010 -0700"
      },
      "message": "net: replace ipfragok with skb-\u003elocal_df\n\nAs Herbert Xu said: we should be able to simply replace ipfragok\nwith skb-\u003elocal_df. commit f88037(sctp: Drop ipfargok in sctp_xmit function)\nhas droped ipfragok and set local_df value properly.\n\nThe patch kills the ipfragok parameter of .queue_xmit().\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb29624614c2afe2873ee8ee97cf09df42701694",
      "tree": "aea85e4cd6643fb47beba987849378c0e80166a0",
      "parents": [
        "8ad50d96db58c58ba67ec1c6f9d3dae0db52338a"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Apr 11 02:15:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 11 15:29:09 2010 -0700"
      },
      "message": "inet: Remove unused send_check length argument\n\ninet: Remove unused send_check length argument\n\nThis patch removes the unused length argument from the send_check\nfunction in struct inet_connection_sock_af_ops.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nTested-by: Yinghai \u003cyinghai.lu@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "c720c7e8383aff1cb219bddf474ed89d850336e3",
      "tree": "4f12337e6690fccced376db9f501eaf98614a65e",
      "parents": [
        "988ade6b8e27e79311812f83a87b5cea11fabcd7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 15 06:30:45 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 18 18:52:53 2009 -0700"
      },
      "message": "inet: rename some inet_sock fields\n\nIn order to have better cache layouts of struct sock (separate zones\nfor rx/tx paths), we need this preliminary patch.\n\nGoal is to transfert fields used at lookup time in the first\nread-mostly cache line (inside struct sock_common) and move sk_refcnt\nto a separate cache line (only written by rx path)\n\nThis patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,\nsport and id fields. This allows a future patch to define these\nfields as macros, like sk_refcnt, without name clashes.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a57de0b4336e48db2811a2030bb68dba8dd09d88",
      "tree": "a01c189d5fd55c69c9e2e842241e84b46728bc60",
      "parents": [
        "1b614fb9a00e97b1eab54d4e442d405229c059dd"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Jul 08 12:09:13 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 09 17:06:57 2009 -0700"
      },
      "message": "net: adding memory barrier to the poll and receive callbacks\n\nAdding memory barrier after the poll_wait function, paired with\nreceive callbacks. Adding fuctions sock_poll_wait and sk_has_sleeper\nto wrap the memory barrier.\n\nWithout the memory barrier, following race can happen.\nThe race fires, when following code paths meet, and the tp-\u003ercv_nxt\nand __add_wait_queue updates stay in CPU caches.\n\nCPU1                         CPU2\n\nsys_select                   receive packet\n  ...                        ...\n  __add_wait_queue           update tp-\u003ercv_nxt\n  ...                        ...\n  tp-\u003ercv_nxt check          sock_def_readable\n  ...                        {\n  schedule                      ...\n                                if (sk-\u003esk_sleep \u0026\u0026 waitqueue_active(sk-\u003esk_sleep))\n                                        wake_up_interruptible(sk-\u003esk_sleep)\n                                ...\n                             }\n\nIf there was no cache the code would work ok, since the wait_queue and\nrcv_nxt are opposit to each other.\n\nMeaning that once tp-\u003ercv_nxt is updated by CPU2, the CPU1 either already\npassed the tp-\u003ercv_nxt check and sleeps, or will get the new value for\ntp-\u003ercv_nxt and will return with new data mask.\nIn both cases the process (CPU1) is being added to the wait queue, so the\nwaitqueue_active (CPU2) call cannot miss and will wake up CPU1.\n\nThe bad case is when the __add_wait_queue changes done by CPU1 stay in its\ncache, and so does the tp-\u003ercv_nxt update on CPU2 side.  The CPU1 will then\nendup calling schedule and sleep forever if there are no more data on the\nsocket.\n\nCalls to poll_wait in following modules were ommited:\n\tnet/bluetooth/af_bluetooth.c\n\tnet/irda/af_irda.c\n\tnet/irda/irnet/irnet_ppp.c\n\tnet/mac80211/rc80211_pid_debugfs.c\n\tnet/phonet/socket.c\n\tnet/rds/af_rds.c\n\tnet/rfkill/core.c\n\tnet/sunrpc/cache.c\n\tnet/sunrpc/rpc_pipe.c\n\tnet/tipc/socket.c\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adf30907d63893e4208dfe3f5c88ae12bc2f25d5",
      "tree": "0f07542bb95de2ad537540868aba6cf87a86e17d",
      "parents": [
        "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:19:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:04 2009 -0700"
      },
      "message": "net: skb-\u003edst accessors\n\nDefine three accessors to get/set dst attached to a skb\n\nstruct dst_entry *skb_dst(const struct sk_buff *skb)\n\nvoid skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)\n\nvoid skb_dst_drop(struct sk_buff *skb)\nThis one should replace occurrences of :\ndst_release(skb-\u003edst)\nskb-\u003edst \u003d NULL;\n\nDelete skb-\u003edst field\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86739fb96e8c8269fc5b3d300c959bede272a6f6",
      "tree": "5bbb9c976a86996064d5e740e2c31da281c61a3f",
      "parents": [
        "361a5c1dd0bd7bb2b90e7fe9127b366d3566522e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Feb 27 22:38:29 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 02 03:07:23 2009 -0800"
      },
      "message": "dccp: Do not let initial option overhead shrink the MPS\n\nThis fixes a problem caused by the overlap of the connection-setup and\nestablished-state phases of DCCP connections.\n\nDuring connection setup, the client retransmits Confirm Feature-Negotiation\noptions until a response from the server signals that it can move from the\nhalf-established PARTOPEN into the OPEN state, whereupon the connection is\nfully established on both ends (RFC 4340, 8.1.5).\n\nHowever, since the client may already send data while it is in the PARTOPEN\nstate, consequences arise for the Maximum Packet Size: the problem is that the\ninitial option overhead is much higher than for the subsequent established\nphase, as it involves potentially many variable-length list-type options\n(server-priority options, RFC 4340, 6.4).\n\nApplying the standard MPS is insufficient here: especially with larger\npayloads this can lead to annoying, counter-intuitive EMSGSIZE errors.\n\nOn the other hand, reducing the MPS available for the established phase by\nthe added initial overhead is highly wasteful and inefficient.\n\nThe solution chosen therefore is a two-phase strategy:\n\n   If the payload length of the DataAck in PARTOPEN is too large, an Ack is sent\n   to carry the options, and the feature-negotiation list is then flushed.\n\n   This means that the server gets two Acks for one Response. If both Acks get\n   lost, it is probably better to restart the connection anyway and devising yet\n   another special-case does not seem worth the extra complexity.\n\nThe result is a higher utilisation of the available packet space for the data\ntransmission phase (established state) of a connection.\n\nThe patch (over-)estimates the initial overhead to be 32*4 bytes -- commonly\nseen values were around 90 bytes for initial feature-negotiation options.\n\nIt uses sizeof(u32) to mean \"aligned units of 4 bytes\".\nFor consistency, another use of 4-byte alignment is adapted.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "361a5c1dd0bd7bb2b90e7fe9127b366d3566522e",
      "tree": "440150dfa03f976d4ef6d3062744f2185373820d",
      "parents": [
        "9ce01461028d595a6f1cd724fbd7a0dd70464fe4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Feb 27 22:38:28 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 02 03:07:23 2009 -0800"
      },
      "message": "dccp: Minimise header option overhead in setting the MPS\n\nThis patch resolves a long-standing FIXME to dynamically update the Maximum\nPacket Size depending on actual options usage.\n\nIt uses the flags set by the feature-negotiation infrastructure to compute\nthe required header option size.\n\nMost options are fixed-size, a notable exception are Ack Vectors (required\ncurrently only by CCID-2). These can have any length between 3 and 1020\nbytes. As a result of testing, 16 bytes (2 bytes for type/length plus 14 Ack\nVector cells) have been found to be sufficient for loss-free situations.\n\nThere are currently no CCID-specific header options which may appear on data\npackets, thus it is not necessary to define a corresponding CCID field as\nsuggested in the old comment.\n\nFurther changes:\n----------------\n Adjusted the type of \u0027cur_mps\u0027 to match the unsigned return type of the\n function.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61c1d052a3c7d5acba3bd535aaffa5bb5d085181",
      "tree": "c638a390d7f3967bd43a84a0cfe4ca35f1b629a2",
      "parents": [
        "d2b88814c6a63e4018cd299826907a12068ffdb7"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Dec 05 22:39:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 05 22:39:49 2008 -0800"
      },
      "message": "dccp: use roundup instead of opencoding\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c1168398ecbfacbb27203b281bde20ec9f78017",
      "tree": "3298379e950bba174b46e53102f265829340fa6d",
      "parents": [
        "3f2c31d90327f21d76d296af34aa4ca547932ff4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Nov 16 22:49:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 16 22:49:52 2008 -0800"
      },
      "message": "dccp: Mechanism to resolve CCID dependencies\n\nThis adds a hook to resolve features whose value depends on the choice of\nCCID. It is done at the server since it can only be done after the CCID\nvalues have been negotiated; i.e. the client will add its CCID preference\nlist on the Change options sent in the Request, which will be reconciled\nwith the local preference list of the server.\n\nThe concept is documented on\nhttp://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/feature_negotiation/\\\n\t\t\t\timplementation_notes.html#ccid_dependencies\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9eca0a47dee201a73967026985b5f0a79a46bd36",
      "tree": "beb39fbd3c28865705d7409aa35fd59914257da9",
      "parents": [
        "d90ebcbfa7f5a8b4e20518c9f94c5c4e4cd3c2e5"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 12 00:48:44 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 00:48:44 2008 -0800"
      },
      "message": "dccp: Resolve dependencies of features on choice of CCID\n\nThis provides a missing link in the code chain, as several features implicitly\ndepend and/or rely on the choice of CCID. Most notably, this is the Send Ack Vector\nfeature, but also Ack Ratio and Send Loss Event Rate (also taken care of).\n\nFor Send Ack Vector, the situation is as follows:\n * since CCID2 mandates the use of Ack Vectors, there is no point in allowing \n   endpoints which use CCID2 to disable Ack Vector features such a connection;\n\n * a peer with a TX CCID of CCID2 will always expect Ack Vectors, and a peer\n   with a RX CCID of CCID2 must always send Ack Vectors (RFC 4341, sec. 4);\n\n * for all other CCIDs, the use of (Send) Ack Vector is optional and thus\n   negotiable. However, this implies that the code negotiating the use of Ack\n   Vectors also supports it (i.e. is able to supply and to either parse or\n   ignore received Ack Vectors). Since this is not the case (CCID-3 has no Ack\n   Vector support), the use of Ack Vectors is here disabled, with a comment\n   in the source code.\n\nAn analogous consideration arises for the Send Loss Event Rate feature,\nsince the CCID-3 implementation does not support the loss interval options\nof RFC 4342. To make such use explicit, corresponding feature-negotiation\noptions are inserted which signal the use of the loss event rate option,\nas it is used by the CCID3 code.\n\nLastly, the values of the Ack Ratio feature are matched to the choice of CCID.\n\nThe patch implements this as a function which is called after the user has\nmade all other registrations for changing default values of features.\n\nThe table is variable-length, the reserved (and hence for feature-negotiation\ninvalid, confirmed by considering section 19.4 of RFC 4340) feature number `0\u0027\nis used to mark the end of the table.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "944f750227fa0beb2b440709687415621e2533a4",
      "tree": "ca4120450381f13e831de3e7cfc0bca40a68fed2",
      "parents": [
        "fd5070370c74c32b7a98090eabb46c53baf41733"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Oct 19 23:36:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 19 23:36:47 2008 -0700"
      },
      "message": "dccp: Port redirection support for DCCP\n\nCommit a3116ac5c216fc3c145906a46df9ce542ff7dcf2 from 1st October (\"tcp: Port\nredirection support for TCP\") broke DCCP skb lookup by changing inet_csk_clone,\nwhich is used by DCCP to generate the child socket after the handshake.\n\nThis patch updates DCCP to use \u0027loc_port\u0027 instead of \u0027sport\u0027, which fixes the\nproblem, and thus inheriting port redirection support via the new interface.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: KOVACS Krisztian \u003chidden@sch.bme.hu\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73f18fdbca3f92b90aeaee16f5175fe30496e218",
      "tree": "855e3a9dcad54336c3b0301e09f85b39a9c2b48a",
      "parents": [
        "59435444a13ed52d3444c5df26b73d3086bcd57b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jul 26 11:59:10 2008 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jul 26 11:59:10 2008 +0100"
      },
      "message": "dccp: Bug-Fix - AWL was never updated\n\nThe AWL lower Ack validity window advances in proportion to GSS, the greatest\nsequence number sent. Updating AWL other than at connection setup (in the\nDCCP-Request sent by dccp_v{4,6}_connect()) was missing in the DCCP code.\n\nThis bug lead to syslog messages such as\n\n \"kernel: dccp_check_seqno: DCCP: Step 6 failed for DATAACK packet, [...] \n  P.ackno exists or LAWL(82947089) \u003c\u003d P.ackno(82948208)\n                                   \u003c\u003d S.AWH(82948728), sending SYNC...\"\n\nThe difference between AWL/AWH here is 1639 packets, while the expected value\n(the Sequence Window) would have been 100 (the default).  A closer look showed\nthat LAWL \u003d AWL \u003d 82947089 equalled the ISS on the Response.\n\nThe patch now updates AWL with each increase of GSS.\n\n\nFurther changes:\n----------------\nThe patch also enforces more stringent checks on the ISS sequence number:\n\n * AWL is initialised to ISS at connection setup and remains at this value;\n * AWH is then always set to GSS (via dccp_update_gss());\n * so on the first Request: AWL \u003d      AWH \u003d ISS,\n   and on the n-th Request: AWL \u003d ISS, AWH \u003d ISS + n.\n\nAs a consequence, only Response packets that refer to Requests sent by this\nhost will pass, all others are discarded. This is the intention and in effect \nimplements the initial adjustments for AWL as specified in RFC 4340, 7.5.1.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e   \nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\n"
    },
    {
      "commit": "59435444a13ed52d3444c5df26b73d3086bcd57b",
      "tree": "72846dbcb8c6c41e6d630bcb81297801dfe7fb16",
      "parents": [
        "cdec7e50a4896c5197d5575d9ca635eea6825149"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jul 26 11:59:09 2008 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Jul 26 11:59:09 2008 +0100"
      },
      "message": "dccp: Allow to distinguish original and retransmitted packets\n\nThis patch allows the sender to distinguish original and retransmitted packets,\nwhich is in particular needed for the retransmission of DCCP-Requests:\n * the first Request uses ISS (generated in net/dccp/ip*.c), and sets GSS \u003d ISS;\n * all retransmitted Requests use GSS\u0027 \u003d GSS + 1, so that the n-th retransmitted\n   Request has sequence number ISS + n (mod 48).\n\nTo add generic support, the patch reorganises existing code so that:\n * icsk_retransmits \u003d\u003d 0     for the original packet and\n * icsk_retransmits \u003d n \u003e 0  for the n-th retransmitted packet\nat the time dccp_transmit_skb() is called, via dccp_retransmit_skb().\n \nThanks to Wei Yongjun for pointing this problem out.\n\nFurther changes:\n----------------\n * removed the `skb\u0027 argument from dccp_retransmit_skb(), since sk_send_head\n   is used for all retransmissions (the exception is client-Acks in PARTOPEN\n   state, but these do not use sk_send_head);\n * since sk_send_head always contains the original skb (via dccp_entail()),\n   skb_cloned() never evaluated to true and thus pskb_copy() was never used.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "1e2f0e5e8376f2a0ada8760fc9d3104e1a81382b",
      "tree": "8e0dc375e574092814d7d020292cf6df67db5bb1",
      "parents": [
        "3294f202dc1acd82223e83ef59f272bd87bb06b2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Jun 11 11:19:09 2008 +0100"
      },
      "committer": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Jun 11 11:19:09 2008 +0100"
      },
      "message": "dccp: Fix sparse warnings\n\nThis patch fixes the following sparse warnings:\n * nested min(max()) expression:\n   net/dccp/ccids/ccid3.c:91:21: warning: symbol \u0027__x\u0027 shadows an earlier one\n   net/dccp/ccids/ccid3.c:91:21: warning: symbol \u0027__y\u0027 shadows an earlier one\n   \n * Declaration of function prototypes in .c instead of .h file, resulting in\n   \"should it be static?\" warnings. \n\n * Declared \"struct dccpw\" static (local to dccp_probe).\n \n * Disabled dccp_delayed_ack() - not fully removed due to RFC 4340, 11.3\n   (\"Receivers SHOULD implement delayed acknowledgement timers ...\").\n\n * Used a different local variable name to avoid\n   net/dccp/ackvec.c:293:13: warning: symbol \u0027state\u0027 shadows an earlier one\n   net/dccp/ackvec.c:238:33: originally declared here\n\n * Removed unused functions `dccp_ackvector_print\u0027 and `dccp_ackvec_print\u0027.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\n"
    },
    {
      "commit": "df39e8ba56a788733d369068c7319e04b1da3cd5",
      "tree": "1e9be853bdb455e341cdbf957656f342cfa2eb9e",
      "parents": [
        "f5572855ec492334d8c3ec0e0e86c31865d5cf07",
        "159d83363b629c91d020734207c1bc788b96af5a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 02:30:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 02:30:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/ehea/ehea_main.c\n\tdrivers/net/wireless/iwlwifi/Kconfig\n\tdrivers/net/wireless/rt2x00/rt61pci.c\n\tnet/ipv4/inet_timewait_sock.c\n\tnet/ipv6/raw.c\n\tnet/mac80211/ieee80211_sta.c\n"
    },
    {
      "commit": "028b027524b162eef90839a92ba4b8bddf23e06c",
      "tree": "5c128717f73ff6fb93c361cfae6961267ed52082",
      "parents": [
        "ae1b6a31b1f9ef2c7ba5ef89799f210a9ba6937c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Apr 12 18:35:41 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 12 18:35:41 2008 -0700"
      },
      "message": "[DCCP]: Fix skb-\u003ecb conflicts with IP\n\ndev_queue_xmit() and the other IP output functions expect to get a skb\nwith clear or properly initialized skb-\u003ecb. Unlike TCP and UDP, the\ndccp_skb_cb doesn\u0027t contain a struct inet_skb_parm at the beginning,\nso the DCCP-specific data is interpreted by the IP output functions.\nThis can cause false negatives for the conditional POST_ROUTING hook\ninvocation, making the packet bypass the hook.\n\nAdd a inet_skb_parm/inet6_skb_parm union to the beginning of\ndccp_skb_cb to avoid clashes. Also add a BUILD_BUG_ON to make\nsure it fits in the cb.\n\n[ Combined with patch from Gerrit Renker to remove two now unnecessary\n  memsets of IPCB(skb)-\u003eopt ]\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7630f026810a63464e47391ab1e03674c33eb1b8",
      "tree": "05ff3b2f6a750e659de4484c4b825953ecce1659",
      "parents": [
        "14c0c8e8e0fb85e7a57e88606c009377746b39d9"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 14:20:52 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:20:52 2008 -0700"
      },
      "message": "[DCCP]: Replace socket with sock for reset sending.\n\nReplace dccp_v(4|6)_ctl_socket with sock to unify a code with TCP/ICMP.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6179983ad30c43313e153b35af52bd9ebd7745c3",
      "tree": "1b1fcbad582d7aef0505910bdbfecaf833726357",
      "parents": [
        "84a97b0af8c29aa5a47cc5271968a9c6004fb91e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:37:55 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:59 2008 -0800"
      },
      "message": "[DCCP]: Introducing CCMPS\n\nThis introduces a CCMPS field for setting a CCID-specific upper bound on the application payload\nsize, as is defined in RFC 4340, section 14.\n\nOnly the TX CCID is considered in setting this limit, since the RX CCID generates comparatively\nsmall (DCCP-Ack) feedback packets. The CCMPS field includes network and transport layer header\nlengths. The only current CCMPS customer is CCID4 (via RFC 4828).\n\nA wrapper is used to allow querying the CCMPS even at times where the CCID modules may not have\nbeen fully negotiated yet.\n\nIn dccp_sync_mss() the variable `mss_now\u0027 has been renamed into `cur_mps\u0027, to reflect that we are\ndealing with an MPS, but not an MSS.\nSince the DCCP code closely follows the TCP code, the identifiers `dccp_sync_mss\u0027 and\n`dccps_mss_cache\u0027 have been kept, as they have direct TCP counterparts.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc",
      "tree": "c675b01b9f1ae5099ea0be7c13942f6e2a98a676",
      "parents": [
        "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:38:11 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Support inserting options during the 3-way handshake\n\nThis provides a separate routine to insert options during the initial handshake.\nThe main purpose is to conduct feature negotiation, for the moment the only user\nis the timestamp echo needed for the (CCID3) handshake RTT sample.\n\nPadding of options has been put into a small separate routine, to be shared among\nthe two functions. This could also be used as a generic routine to finish inserting\noptions.\n\nAlso removed an `XXX\u0027 comment since its content was obvious.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "92d31920b84f258badf206eea8aaf5ac677ac535",
      "tree": "b61c5a87ccd5110638df0a4d44924d8dffacbcf1",
      "parents": [
        "09f7709f4929666006931f1d4efc498a6d419bbc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:02:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:47 2008 -0800"
      },
      "message": "[DCCP]: Shift the retransmit timer for active-close into output.c\n\nWhen performing active close, RFC 4340, 8.3. requires to retransmit the\nClose/CloseReq with a backoff-retransmit timer starting at intially 2 RTTs.\n\nThis patch shifts the existing code for active-close retransmit timer\ninto output.c, so that the retransmit timer is started when the first\nClose/CloseReq is sent. Previously, the timer was started when, after\nreleasing the socket in dccp_close(), the actively-closing side had not yet\nreached the CLOSED/TIMEWAIT state.\n\nThe patch further reduces the initial timeout from 3 seconds to the required\n2 RTTs, where - in absence of a known RTT - the fallback value specified in\nRFC 4340, 3.4 is used.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f53dc67c5e7babafe239b93a11678b0e05bead51",
      "tree": "50737228e796667e8c24e9a821cb11bca372516a",
      "parents": [
        "276f2edc52e309b38a216245952e05880e182c83"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 08:35:08 2007 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:12 2008 -0800"
      },
      "message": "[DCCP]: Use AF-independent rebuild_header routine\n\nThis fixes a nasty bug: dccp_send_reset() is called by both DCCPv4 and DCCPv6, but uses\ninet_sk_rebuild_header() in each case. This leads to unpredictable and weird behaviour:\nunder some conditions, DCCPv6 Resets were sent, in other not.\n\nThe fix is to use the AF-independent rebuild_header routine.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "bc8498721dfe3f7d537f4f75302be7dbe9c7b939",
      "tree": "6bf28dc1b1443e1ea47c3f45135ef1f11a5cd42a",
      "parents": [
        "af289e803fdf2fcd19cf4a57c3c896dba146c756"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Oct 04 14:38:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:31 2007 -0700"
      },
      "message": "[DCCP]: Wait for CCID\n\nThis performs a minor optimisation: when ccid_hc_tx_send_packet\nreturns a value greater zero, then the same call previously was done\nagain at the begin of the while loop in dccp_wait_for_ccid.\n\nThis patch exploits the available information and schedule-timeouts\ndirectly instead.\n\nDocumentation also added.\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": "e356d37a096a990ea1a74c44c15640122e56110b",
      "tree": "174fea2bce6bbd6d6001c7ea1b0bb914053571d0",
      "parents": [
        "9bf55cda9b2487fa7316dad3880acb0031ad3c0f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 14:35:19 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:44 2007 -0700"
      },
      "message": "[DCCP]: Factor out common code for generating Resets\n\nThis factors code common to dccp_v{4,6}_ctl_send_reset into a separate function,\nand adds support for filling in the Data 1 ... Data 3 fields from RFC 4340, 5.6.\n\nIt is useful to have this separate, since the following Reset codes will always\nbe generated from the control socket rather than via dccp_send_reset:\n * Code 3, \"No Connection\", cf. 8.3.1;\n * Code 4, \"Packet Error\" (identification for Data 1 added);\n * Code 5, \"Option Error\" (identification for Data 1..3 added, will be used later);\n * Code 6, \"Mandatory Error\" (same as Option Error);\n * Code 7, \"Connection Refused\" (what on Earth is the difference to \"No Connection\"?);\n * Code 8, \"Bad Service Code\";\n * Code 9, \"Too Busy\";\n * Code 10, \"Bad Init Cookie\" (not used).\n\nCode 0 is not recommended by the RFC, the following codes would be used in\ndccp_send_reset() instead, since they all relate to an established DCCP connection:\n * Code 1, \"Closed\";\n * Code 2, \"Aborted\";\n * Code 11, \"Aggression Penalty\" (12.3).\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": "ee1a15922d356aff0e31bf9bb9088ab346b8033a",
      "tree": "d7ace96d054e6af9f676ad63257f785f3fbb0f6e",
      "parents": [
        "0430ee3451f4589b68f522552b1896825f2043b3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 11:30:02 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:42 2007 -0700"
      },
      "message": "[DCCP]: Remove duplicate code for Reset from connected socket\n\nIn this patch, duplicated code is removed for the case when a Reset packet is\nsent from a connected socket. This code duplication is between dccp_make_reset\nand dccp_transmit_skb, which already contained an (up to now entirely unused)\nswitch statement to fill in the reset code from the DCCP_SKB_CB.\n\nThe only thing that has been removed is the call to dst_clone(dst), since\nthe queue_xmit functions use sk_dst_cache anyway.\n\nI wasn\u0027t sure which purpose inet_sk_rebuild_header served, so I left it in.\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": "727ecc5faaf6e976fc841649821c865ebd1e822d",
      "tree": "7e12432db774b0278fb641b44f4528f523094ad4",
      "parents": [
        "2e86908f7dfb71b67ca4739d9a6c678b83b01078"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Sep 26 11:26:04 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:41 2007 -0700"
      },
      "message": "[DCCP]: Add FIXME for send_delayed_ack\n\nThis adds a FIXME to signal that the function dccp_send_delayed_ack is nowhere\nused in the entire DCCP/CCID code.\n\nUsing a delayed Ack timer is suggested in 11.3 of RFC 4340, but it has also\nrather subtle implications for the Ack-Ratio-accounting.\n\nCCID2 does not use this (maybe it should).\n\nI think leaving the function in is good, in case someone wants to implement\nthis.\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": "b0d045ca45a44d9f8bd66d0a10558b10c60f895a",
      "tree": "bdeaf09e5911fb27186e2840133f69e95fb025b5",
      "parents": [
        "e155d7692290f7bc539ccb8ebc3450ec964e53fd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Sep 25 22:42:27 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:37 2007 -0700"
      },
      "message": "[DCCP]: Parameter renaming\n\nThe parameter `seq\u0027 of dccp_send_sync() is in fact an acknowledgement number\nand not a sequence number - thus renamed by this patch into `ackno\u0027.\n\nSecondly, a `critical\u0027 warning is added when a Sync/SyncAck could not be sent.\n\nSanity: I have checked all other functions that are called in dccp_transmit_skb,\n        there are no clashes with the use of dccpd_ack_seq; no other function is\n        using this slot at the same time.\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": "6626e3628fe42837f733d103e194c6b4473d8669",
      "tree": "a37b19400561134b2fc28498b39e453db61c35ca",
      "parents": [
        "ac12b0c49571fe4c3a2f4957ed494da316d558be"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Mar 20 15:00:28 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:54 2007 -0700"
      },
      "message": "[DCCP]: More debug information for dccp_wait_for_ccid\n\nThis adds more detail in the wait_for_ccid packet scheduling loop.\nIn particular, it informs about (i) when delay is used and (ii) why\na packet is discarded.\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": "aabb601b0f08b909b650f1a7bfa1e8d9b5a8d999",
      "tree": "c3060d0005f6b035b43fe4e5855a1d514b43e589",
      "parents": [
        "c4e38f41e34ad853651d66227aae23e48457dce0"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Fri Mar 09 13:47:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 09 13:47:58 2007 -0800"
      },
      "message": "[DCCP]: Initialise write_xmit_timer also on passive sockets\n\nThe TX CCID needs the write_xmit_timer for delaying packet sends. Previously\nthis timer was only activated on active (connecting) sockets.\n\nThis patch initialises the write_xmit_timer in sync with the other timers, i.e.\nthe timer will be ready on any socket. This is used by applications with a\nlistening socket which start to stream after receiving an initiation by the\nclient.  The write_xmit_timer is stopped when the application closes, as before.\n\nWas tested to work and to remove the timer bug reported on dccp@vger.\n\nAlso moved timer initialisation into timer.c (static). \n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b08d5840d2c5a6ac0bce172f4c861974d718e34b",
      "tree": "8f9423bc255d312269065623fcb136fc661b8bc1",
      "parents": [
        "4498121ca3acbf928681b71261227d28dc29b6f6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Feb 27 09:57:37 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Feb 28 09:42:14 2007 -0800"
      },
      "message": "[NET]: Fix kfree(skb)\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.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": "e89862f4c5b3c4ac9afcd8cb1365d2f1e16ddc3b",
      "tree": "f402fe7326021a371e11c2c59b7aaf1b12d300d3",
      "parents": [
        "d5e76b0a280f71b20bdd20d1c1b4d6812ceb8c3a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jan 26 01:04:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Jan 26 01:04:55 2007 -0800"
      },
      "message": "[TCP]: Restore SKB socket owner setting in tcp_transmit_skb().\n\nRevert 931731123a103cfb3f70ac4b7abfc71d94ba1f03\n\nWe can\u0027t elide the skb_set_owner_w() here because things like certain\nnetfilter targets (such as owner MATCH) need a socket to be set on the\nSKB for correct operation.\n\nThanks to Jan Engelhardt and other netfilter list members for\npointing this out.\n\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": "f6282f4da5eb67e08eff94d73a1911c3a008846a",
      "tree": "e9d0afde4f959e374caa5b8eb4c3c9d2c588eb38",
      "parents": [
        "bf58a381e8106fe73247c753e3da58fcb5eabd2e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 10 00:05:12 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:34:48 2006 -0800"
      },
      "message": "[DCCP]: Warn when discarding packet due to internal errors\n\nThis adds a (debug) warning message which is triggered whenever a packet is\ndiscarded due to send failure.\n\nIt also adds a conditional, so that an interruption during dccp_wait_for_ccid\nis not treated as a `BUG\u0027: the rationale is that interruptions are external,\nwhereas bug warnings are concerned with the internals.\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": "5cc3741d6cc9f07d8ddd9c45cb5088460ce3364f",
      "tree": "7f7f1e51e54e7f34025b60cf93e284de72740ba5",
      "parents": [
        "e37b8d931936f88e4b2af66304eb44e69510b86c"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Sat Dec 09 23:56:09 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Dec 11 14:34:37 2006 -0800"
      },
      "message": "[DCCP]: Remove timeo from output.c\n\nIt simplifies waiting for the CCID module to signal that a packet\nis ready to be sent.  Other simplifications flow on from this such as\nremoving constants.\n\nAs a result of this EAGAIN is not returned any more by dccp_wait_for_ccid\n(which would otherwise lead to unnecessarily discarding the packet in\ndccp_write_xmit).\n\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "6b57c93dc3aa0115b589cb89ef862d46ab9bd95e",
      "tree": "f825b1288d7839ade26225bb0a630540e38ffe41",
      "parents": [
        "a79ef76f4d8424324c2f108824a7398571193f43"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 28 19:55:06 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:31:02 2006 -0800"
      },
      "message": "[DCCP]: Use `unsigned\u0027 for packet lengths\n\nThis patch implements a suggestion by Ian McDonald and\n\n 1) Avoids tests against negative packet lengths by using unsigned int\n    for packet payload lengths in the CCID send_packet()/packet_sent() routines\n\n 2) As a consequence, it removes an now unnecessary test with regard to `len \u003e 0\u0027\n    in ccid3_hc_tx_packet_sent: that condition is always true, since\n      * negative packet lengths are avoided\n      * ccid3_hc_tx_send_packet flags an error whenever the payload length is 0.\n        As a consequence, ccid3_hc_tx_packet_sent is never called as all errors\n        returned by ccid_hc_tx_send_packet are caught in dccp_write_xmit\n\n 3) Removes the third argument of ccid_hc_tx_send_packet (the `len\u0027 parameter),\n    since it is currently always set to skb-\u003elen. The code is updated with regard\n    to this parameter change.\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@mandriva.com\u003e\n"
    },
    {
      "commit": "59348b19efebfd6a8d0791ff81d207b16594c94b",
      "tree": "a9212a7bf62bd594cf02d23b9e33eb45a46d414d",
      "parents": [
        "b1308dc015eb09cf094ca169296738a13ae049ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 20 18:39:23 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:24:38 2006 -0800"
      },
      "message": "[DCCP]: Simplified conditions due to use of enum:8 states\n\nThis reaps the benefit of the earlier patch, which changed the type of\nCCID 3 states to use enums, in that many conditions are now simplified\nand the number of possible (unexpected) values is greatly reduced.\n\nIn a few instances, this also allowed to simplify pre-conditions; where\ncare has been taken to retain logical equivalence.\n\n[DCCP]: Introduce a consistent BUG/WARN message scheme\n\nThis refines the existing set of DCCP messages so that\n * BUG(), BUG_ON(), WARN_ON() have meaningful DCCP-specific counterparts\n * DCCP_CRIT (for severe warnings) is not rate-limited\n * DCCP_WARN() is introduced as rate-limited wrapper\n\nUsing these allows a faster and cleaner transition to their original\ncounterparts once the code has matured into a full DCCP implementation.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "09dbc3895e3242346bd434dae743c456fd28fc6a",
      "tree": "a7bc1d0879b025152bff9e4a0ba44beaa5da654b",
      "parents": [
        "c02fdc0e81e9c735d8d895af1e201b235df326d8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 12:57:34 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:30 2006 -0800"
      },
      "message": "[DCCP]: Miscellaneous code tidy-ups\n\nThis patch does not change code; it performs some trivial clean/tidy-ups:\n\n  * removal of a `debug_prefix\u0027 string in favour of the\n    already existing dccp_role(sk)\n\n  * add documentation of structures and constants\n\n  * separated out the cases for invalid packets (step 1\n    of the packet validation)\n\n  * removing duplicate statements\n\n  * combining declaration \u0026 initialisation\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "b9df3cb8cf9a96e63dfdcd3056a9cbc71f2459e7",
      "tree": "46d19124b1bbfd9eaa26af3d6ba2293b4e8f326d",
      "parents": [
        "1ed176a801b83915b7c8ab80e0a2a6376a2d6051"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 14 11:21:36 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:27 2006 -0800"
      },
      "message": "[TCP/DCCP]: Introduce net_xmit_eval\n\nThroughout the TCP/DCCP (and tunnelling) code, it often happens that the\nreturn code of a transmit function needs to be tested against NET_XMIT_CN\nwhich is a value that does not indicate a strict error condition.\n\nThis patch uses a macro for these recurring situations which is consistent\nwith the already existing macro net_xmit_errno, saving on duplicated code.\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": "d7f7365f5776723da6df73540d855069c2daaa5c",
      "tree": "cc63c8a85c4d6a768cee8da00577900215e786a8",
      "parents": [
        "865e9022d88ceedd89fa1079a6e1f9266ccd3711"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 13 13:34:38 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:22 2006 -0800"
      },
      "message": "[DCCPv6]: Choose a genuine initial sequence number\n\nThis\n\t* resolves a FIXME - DCCPv6 connections started all with\n\t  an initial sequence number of 1;\n\t* provides a redirection `secure_dccpv6_sequence_number\u0027\n\t  in case the init_sequence_v6 code should be updated later;\n\t* concentrates the update of S.GAR into dccp_connect_init();\n\t* removes a duplicate dccp_update_gss() in ipv4.c;\n\t* uses inet-\u003edport instead of usin-\u003esin_port, due to the\n\t  following assignment in dccp_v4_connect():\n \t\tinet-\u003edport \u003d usin-\u003esin_port;\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": "e11d9d30802278af22e78d8c10f348b683670cd9",
      "tree": "ba084b0c5791090164363ad2aaec2c0ab241f603",
      "parents": [
        "08a29e41bb6d6516b0f65e19381f537168d1768e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Nov 13 13:12:07 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:17 2006 -0800"
      },
      "message": "[DCCP]: Increment sequence numbers on retransmitted Response packets\n\nProblem:\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": "f45b3ec481581f24719d8ab0bc812c02fcedc2bc",
      "tree": "fd3907c220fe75055494466f1f3664a13ac095d4",
      "parents": [
        "fec5b80e4924f638418c21b09165dce8b79fee86"
      ],
      "author": {
        "name": "Ian McDonald",
        "email": "ian.mcdonald@jandi.co.nz",
        "time": "Fri Nov 10 13:09:10 2006 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:02 2006 -0800"
      },
      "message": "[DCCP]: Fix logfile overflow\n\nThis patch fixes data being spewed into the logs continually. As the\ncode stood if there was a large queue and long delays timeo would go\ndown to zero and never get reset.\n\nThis fixes it by resetting timeo. Put constant into header as well.\n\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\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": "931731123a103cfb3f70ac4b7abfc71d94ba1f03",
      "tree": "0af6636fde05f74a8aa5421bfe9828e2a209170d",
      "parents": [
        "ef56e622c61e74dd6077615c9ea76c5132195880"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Nov 09 19:58:25 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:52 2006 -0800"
      },
      "message": "[TCP]: Don\u0027t set SKB owner in tcp_transmit_skb().\n\nThe data itself is already charged to the SKB, doing\nthe skb_set_owner_w() just generates a lot of noise and\nextra atomics we don\u0027t really need.\n\nLmbench improvements on lat_tcp are minimal:\n\nbefore:\nTCP latency using localhost: 23.2701 microseconds\nTCP latency using localhost: 23.1994 microseconds\nTCP latency using localhost: 23.2257 microseconds\n\nafter:\nTCP latency using localhost: 22.8380 microseconds\nTCP latency using localhost: 22.9465 microseconds\nTCP latency using localhost: 22.8462 microseconds\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "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": "2d0817d11eaec57435feb61493331a763f732a2b",
      "tree": "7c42229b1cc64e67efe8ed21b82cdc513e638f82",
      "parents": [
        "110bae4efb5ed5565257a0fb9f6d26e6125a1c4b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:32:06 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:32:06 2006 -0800"
      },
      "message": "[DCCP] options: Make dccp_insert_options \u0026 friends yell on error\n\nAnd not the silly LIMIT_NETDEBUG and silently return without inserting\nthe option requested.\n\nAlso drop some old debugging messages associated to option insertion.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "118b2c9532c853ebdf15c21128d30a343b89ea45",
      "tree": "1974a1850b4bfebb08424a241228ac66076c276f",
      "parents": [
        "e5a6de915ba9ba828751ade5d3e874072a89a00a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:31:09 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:31:09 2006 -0800"
      },
      "message": "[DCCP]: Use sk-\u003esk_prot-\u003emax_header consistently for non-data packets\n\nUsing this also provides opportunities for introducing\ninet_csk_alloc_skb that would call alloc_skb, account it to the sock\nand skb_reserve(max_header), but I\u0027ll leave this for later, for now\nusing sk_prot-\u003emax_header consistently is enough.\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": "b61fafc4ef3faf54236d57e3b230ca19167663bf",
      "tree": "d928d79a28556ee06fda685458d3f398b6e57d40",
      "parents": [
        "46f09ffa7db595f49fb42338e013417756816d37"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 21:25:11 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 21:25:11 2006 -0800"
      },
      "message": "[DCCP]: Move the IPv4 specific bits from proto.c to ipv4.c\n\nWith this patch in place we can break down the complexity by better\ncompartmentalizing the code that is common to ipv6 and ipv4.\n\nNow we have these modules:\nModule                  Size  Used by\ndccp_diag               1344  0\ninet_diag               9448  1 dccp_diag\ndccp_ccid3             15856  0\ndccp_tfrc_lib          12320  1 dccp_ccid3\ndccp_ccid2              5764  0\ndccp_ipv4              16996  2\ndccp                   48208  4 dccp_diag,dccp_ccid3,dccp_ccid2,dccp_ipv4\n\ndccp_ipv6 still requires dccp_ipv4 due to dccp_ipv6_mapped, that is\nthe next target to work on the \"hey, ipv4 is legacy, I only want ipv6\ndude!\" direction.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a1ec676ddbee712e1c1da679be4bdc529caf215",
      "tree": "709db39592784baebb9f43f5d1bbd33c70fdcbeb",
      "parents": [
        "c985ed705ffc682ce40d46a5f7bf98db86b27899"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 21:23:59 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 21:23:59 2006 -0800"
      },
      "message": "[DCCP]: Dont use dccp_v4_checksum in dccp_make_response\n\ndccp_make_response is shared by ipv4/6 and the ipv6 code was\nrecalculating the checksum, not good, so move the dccp_v4_checksum\ncall to dccp_v4_send_response.\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": "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": "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": "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": "edc9e81917157d1e73bf081d4fbcad7c34d32783",
      "tree": "28f15652b5965421bed9ff1a0cd676ac4cb14682",
      "parents": [
        "48918a4dbd6c599d6af30bd64cb355fadca708eb"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 30 11:20:59 2005 +1100"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Oct 31 22:30:02 2005 -0200"
      },
      "message": "[DCCP]: Set socket owner iff packet is not data\n  \nHere is a complimentary insurance policy for those feeling a bit insecure.\nYou don\u0027t have to accept this.  However, if you do, you can\u0027t blame me for\nit :)\n  \n\u003e 1) dccp_transmit_skb sets the owner for all packets except data packets.\n  \nWe can actually verify this by looking at pkt_type.\n  \nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "48918a4dbd6c599d6af30bd64cb355fadca708eb",
      "tree": "31893d50f1e21ba19e1acc59c117e220ff57205b",
      "parents": [
        "9d17f218936a0fee43ad9493a841136589c942cd"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 30 11:20:59 2005 +1100"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Oct 31 19:26:17 2005 -0200"
      },
      "message": "[DCCP]: Simplify skb_set_owner_w semantics\n  \nWhile we\u0027re at it let\u0027s reorganise the set_owner_w calls a little so that:\n  \n1) dccp_transmit_skb sets the owner for all packets except data packets.\n2) Add dccp_skb_entail to set owner for packets queued for retransmission.\n3) Make dccp_transmit_skb static.\n  \nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "7d877f3bda870ab5f001bd92528654471d5966b3",
      "tree": "1c05b62abead153956c4ca250ffb1891887e77c9",
      "parents": [
        "fd4f2df24bc23e6b8fc069765b425c7dacf52347"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:43 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: net/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "49c5bfaffe8ae6e6440dc4bf78b03800960d93f5",
      "tree": "dbd4565b42697a7fdeee8d088f017eb7df8bc594",
      "parents": [
        "ffa29347dfbc158d1f47f5925324a6f5713659c1"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Oct 18 12:03:28 2005 +1000"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Thu Oct 20 14:49:59 2005 -0200"
      },
      "message": "[DCCP]: Clear the IPCB area\n\nTurns out the problem has nothing to do with use-after-free or double-free.\nIt\u0027s just that we\u0027re not clearing the CB area and DCCP unlike TCP uses a CB\nformat that\u0027s incompatible with IP.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Ian McDonald \u003cimcdnzl@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "ffa29347dfbc158d1f47f5925324a6f5713659c1",
      "tree": "66c0360d21cc842af830b9c7ffd6e924652e7ce3",
      "parents": [
        "fda0fd6c5b722cc48e904e0daafedca275d332af"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 16 21:08:46 2005 +1000"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Thu Oct 20 14:44:29 2005 -0200"
      },
      "message": "[DCCP]: Make dccp_write_xmit always free the packet\n\nicmp_send doesn\u0027t use skb-\u003esk at all so even if skb-\u003esk has already\nbeen freed it can\u0027t cause crash there (it would\u0027ve crashed somewhere\nelse first, e.g., ip_queue_xmit).\n\nI found a double-free on an skb that could explain this though.\ndccp_sendmsg and dccp_write_xmit are a little confused as to what\nshould free the packet when something goes wrong.  Sometimes they\nboth go for the ball and end up in each other\u0027s way.\n\nThis patch makes dccp_write_xmit always free the packet no matter\nwhat.  This makes sense since dccp_transmit_skb which in turn comes\nfrom the fact that ip_queue_xmit always frees the packet.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "fda0fd6c5b722cc48e904e0daafedca275d332af",
      "tree": "a575ee8872964b55a8ef64ed9f57f52f26e25979",
      "parents": [
        "ac9b9c667c2e1194e22ebe0a441ae1c37aaa9b90"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Oct 14 16:38:49 2005 +1000"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Thu Oct 20 14:25:28 2005 -0200"
      },
      "message": "[DCCP]: Use skb_set_owner_w in dccp_transmit_skb when skb-\u003esk is NULL\n\nDavid S. Miller \u003cdavem@davemloft.net\u003e wrote:\n\u003e One thing you can probably do for this bug is to mark data packets\n\u003e explicitly somehow, perhaps in the SKB control block DCCP already\n\u003e uses for other data.  Put some boolean in there, set it true for\n\u003e data packets.  Then change the test in dccp_transmit_skb() as\n\u003e appropriate to test the boolean flag instead of \"skb_cloned(skb)\".\n\nI agree.  In fact we already have that flag, it\u0027s called skb-\u003esk.\nSo here is patch to test that instead of skb_cloned().\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Ian McDonald \u003cimcdnzl@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\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": "dc19336c76d213fd9ae7b6a352e837f509418012",
      "tree": "4a48efb86f200fa0cd9bf7a5f9a95e94ff6d140a",
      "parents": [
        "d7e0fb985cb033e605c3167ff183b5e98b7f7644"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 19:59:26 2005 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Sep 09 19:59:26 2005 -0300"
      },
      "message": "[DCCP] Only call the HC _exit() routines in dccp_v4_destroy_sock\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "c530cfb1ce1e8f230744c3f3bd86771f50725053",
      "tree": "8309c7803ccb3cbbe07e610e6a0e5580a63d83e2",
      "parents": [
        "a84ffe430342db6ee585a5038f3242a6b4112d69"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Aug 29 02:15:54 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:13:46 2005 -0700"
      },
      "message": "[CCID3]: Call sk-\u003esk_write_space(sk) when receiving a feedback packet\n\nThis makes the send rate calculations behave way more closely to what\nis specified, with the jitter previously seen on x and x_recv\ndisappearing completely on non lossy setups.\n\nThis resembles the tcp_data_snd_check code, that possibly we\u0027ll end up\nusing in DCCP as well, perhaps moving this code to\ninet_connection_sock.\n\nFor now I\u0027m doing the simplest implementation tho.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6809c12b3334a929c39bf08ea63bd819e0500f7",
      "tree": "47fc3aa37c35ae6a83bc41b1ecf4a78c1189a00b",
      "parents": [
        "75b3f207b433dcb807fcf0f47de1c8398571ba5f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sat Aug 27 03:06:35 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:11:38 2005 -0700"
      },
      "message": "[DCCP]: Introduce dccp_wait_for_ccid and use it in dccp_write_xmit\n\nThis is not quite what I think we should have long term but improves\nperformance for now, so lets use it till we get CCID3 working well,\nthen we can think about using sk_write_queue, perhaps using some ideas\nfrom Juwen Lai\u0027s old stack for 2.4.20.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4beb1b64f5846e216bf2c439022df480151902a",
      "tree": "b9415975544fa2bcd78f3f9b51a8eeb11a60c6bc",
      "parents": [
        "20472af986569b0615bd77f0fd7ca9e3d33e9895"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 23 21:50:45 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:04:43 2005 -0700"
      },
      "message": "[DCCP]: Send a DATAACK packet when we have a TIMESTAMP_ECHO pending\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": "24117727b753426d85ba09671c24854834f81b2c",
      "tree": "3a72f0f6e92bec1db7cd4431fc04f454ac1d4569",
      "parents": [
        "03ace394ac9bcad38043a381ae5f4860b9c9fa1c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Sun Aug 21 05:40:16 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:03:52 2005 -0700"
      },
      "message": "[DCCP]: Fix ackno setting in SYNC/SYNCACK packets\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": "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": "27258ee54f8cd4a43d09319aa5448145afc2cb8d",
      "tree": "4a52d16da47f7ab0777252169406ae85e53488b1",
      "parents": [
        "0d48d93947dd9ea21c5cdc76a8581b06a4a39281"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 09 20:30:56 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:55:18 2005 -0700"
      },
      "message": "[DCCP]: Introduce dccp_write_xmit from code in dccp_sendmsg\n\nThis way it gets closer to the TCP flow, where congestion window\nchecks are done, it seems we can map ccid_hc_tx_send_packet in\ndccp_write_xmit to tcp_snd_wnd_test in tcp_write_xmit, a CCID2\ndecision should just fit in here as well...\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95b81ef794278c835b321f6376b0522cd5df59b7",
      "tree": "c2163130b2a2e1bc8ced9ee70b4c87fcbe7cdf8e",
      "parents": [
        "a019d6fe2b9da68ea4ba6cf3c4e86fc1dbf554c3"
      ],
      "author": {
        "name": "Yoshifumi Nishida",
        "email": "nishida@csl.sony.co.jp",
        "time": "Tue Aug 09 20:15:35 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:49:55 2005 -0700"
      },
      "message": "[DCCP]: Fix checksum routines\n\nSigned-off-by: Yoshifumi Nishida \u003cnishida@csl.sony.co.jp\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"
    }
  ]
}
