)]}'
{
  "log": [
    {
      "commit": "19443178fbfbf40db15c86012fc37df1a44ab857",
      "tree": "e41cd59c5e6aba6f5ca932c9131f73e563b02bf8",
      "parents": [
        "7a1aa309f21ea2f6c31f364341e4027ecf4e79bc"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Mon May 05 13:50:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 05 13:50:24 2008 -0700"
      },
      "message": "dccp: return -EINVAL on invalid feature length\n\ndccp_feat_change() validates length and on error is returning 1.\nThis happens to work since call chain is checking for 0 \u003d\u003d success,\nbut this is returned to userspace, so make it a real error value.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84994e16f25dabe234be4fc2d323ec9db95b87cb",
      "tree": "d30cc0144afe0f4640e432b4c0bd4a0f1f86c9ed",
      "parents": [
        "0c0b0aca66b3a58e12a216d992a0b534eff210e0"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri May 02 16:44:07 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 02 16:44:07 2008 -0700"
      },
      "message": "dccp: ccid2.c, ccid3.c use clamp(), clamp_t()\n\nMakes the intention of the nested min/max clear.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2e561c7b7e705b619122e5386d6f99f28f2b6e5a",
      "tree": "be942c58cacd25c66cced37e1a82f269c37871de",
      "parents": [
        "2cfed60cc24676d65e01278dbf10d0069de02592",
        "653252c2302cdf2dfbca66a7e177f7db783f9efa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 25 12:28:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 25 12:28:28 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (48 commits)\n  net: Fix wrong interpretation of some copy_to_user() results.\n  xfrm: alg_key_len \u0026 alg_icv_len should be unsigned\n  [netdrvr] tehuti: move ioctl perm check closer to function start\n  ipv6: Fix typo in net/ipv6/Kconfig\n  via-velocity: fix vlan receipt\n  tg3: sparse cleanup\n  forcedeth: realtek phy crossover detection\n  ibm_newemac: Increase MDIO timeouts\n  gianfar: Fix skb allocation strategy\n  netxen: reduce stack usage of netxen_nic_flash_print\n  smc911x: test after postfix decrement fails in smc911x_{reset,drop_pkt}\n  net drivers: fix platform driver hotplug/coldplug\n  forcedeth: new backoff implementation\n  ehea: make things static\n  phylib: Add support for board-level PHY fixups\n  [netdrvr] atlx: code movement: move atl1 parameter parsing\n  atlx: remove flash vendor parameter\n  korina: misc cleanup\n  korina: fix misplaced return statement\n  WAN: Fix confusing insmod error code for C101 too.\n  ...\n"
    },
    {
      "commit": "653252c2302cdf2dfbca66a7e177f7db783f9efa",
      "tree": "8d77bebbe29378c818313e4557242548b923d787",
      "parents": [
        "cc93d7d77d28d65d4f947dabc95a01c42d713ea3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Apr 25 01:49:48 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 25 01:49:48 2008 -0700"
      },
      "message": "net: Fix wrong interpretation of some copy_to_user() results.\n\nI found some places, that erroneously return the value obtained from\nthe copy_to_user() call: if some amount of bytes were not able to get\nto the user (this is what this one returns) the proper behavior is to\nreturn the -EFAULT error, not that number itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b0d19a378a409373244088511e889957645f2a44",
      "tree": "25275409eeea845f2e7617f12c8f28801ee4198f",
      "parents": [
        "0093cb1199ec551f179562ca9fbd6f64fb750645",
        "d7d313000ba2fc94a5383511a17ff38a39bab928"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 23 12:23:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 23 12:23:45 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  iwlwifi: Fix built-in compilation of iwlcore\n  net: Unexport move_addr_to_{kernel,user}\n  rt2x00: Select LEDS_CLASS.\n  iwlwifi: Select LEDS_CLASS.\n  leds: Do not guard NEW_LEDS with HAS_IOMEM\n  [IPSEC]: Fix catch-22 with algorithm IDs above 31\n  time: Export set_normalized_timespec.\n  tcp: Make use of before macro in tcp_input.c\n  hamradio: Remove unneeded and deprecated cli()/sti() calls in dmascc.c\n  [NETNS]: Remove empty -\u003einit callback.\n  [DCCP]: Convert do_gettimeofday() to getnstimeofday().\n  [NETNS]: Don\u0027t initialize err variable twice.\n  [NETNS]: The ip6_fib_timer can work with garbage on net namespace stop.\n  [IPV4]: Convert do_gettimeofday() to getnstimeofday().\n  [IPV4]: Make icmp_sk_init() static.\n  [IPV6]: Make struct ip6_prohibit_entry_template static.\n  tcp: Trivial fix to correct function name in a comment in net/ipv4/tcp.c\n  [NET]: Expose netdevice dev_id through sysfs\n  skbuff: fix missing kernel-doc notation\n  [ROSE]: Fix soft lockup wrt. rose_node_list_lock\n"
    },
    {
      "commit": "cdd04d98f6922f5a7ba52714f077140d42bc67c9",
      "tree": "501f645032b1becd913ef8bea8acba7232bee7fd",
      "parents": [
        "633d424bf33dab99e77b36210fbd1b996e7823df"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Apr 21 14:28:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 21 14:28:45 2008 -0700"
      },
      "message": "[DCCP]: Convert do_gettimeofday() to getnstimeofday().\n\nWhat do_gettimeofday() does is to call getnstimeofday() and\nto convert the result from timespec{} to timeval{}.\nWe do not always need timeval{} and we can convert timespec{}\nwhen we really need (to print).\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f090dcb4d4fff373ce7165bce4ba5e87534d50a",
      "tree": "7555518ce0687cc7de59aa271081cf648fc8a759",
      "parents": [
        "950e4da32426859ee4b37b2c95026d4f1efa5d05"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Apr 18 22:15:50 2008 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:15:50 2008 -0400"
      },
      "message": "net: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.  It\u0027s possible that they rely on it dragging in some\nunrelated header file, but I can\u0027t build all these files, so we\u0027ll have\nfix any build failures as they come up.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "e56d8b8a2ee5fb7f63ceba58e1c0fb3c844888a4",
      "tree": "cc145929b5b5dd3e7d2ddeb75cba6c7813a5c206",
      "parents": [
        "8b73a07c8ffaa70683022566080f4df3328ea18d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Apr 17 23:17:34 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 17 23:17:34 2008 -0700"
      },
      "message": "[INET]: Drop the inet_inherit_port() call.\n\nAs I can see from the code, two places (tcp_v6_syn_recv_sock and\ndccp_v6_request_recv_sock) that call this one already run with\nBHs disabled, so it\u0027s safe to call __inet_inherit_port there.\n\nBesides (in case I missed smth with code review) the calltrace\ntcp_v6_syn_recv_sock\n `- tcp_v4_syn_recv_sock\n     `- __inet_inherit_port\nand the similar for DCCP are valid, but assumes BHs to be disabled.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13f51d82acb003918d71ce4639ae77fceaa58cad",
      "tree": "cdb06ee7338e197ac449bf2439ccb270ae5861bf",
      "parents": [
        "df39e8ba56a788733d369068c7319e04b1da3cd5"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Apr 14 02:38:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 14 02:38:45 2008 -0700"
      },
      "message": "[DCCP]: Fix comment about control sockets.\n\nThese sockets now have a bit other names and are no longer global.\n\nShame on me, I haven\u0027t provided a good comment for this when\nsending DCCP netnsization patches.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "671a1c7401c6e48f5f2a77ac330727a13a9c8b63",
      "tree": "9737d14faacc2ee40fb1cc0319f04f487477ded1",
      "parents": [
        "334527d3511ecbffca68d6c8f75046262510cf41"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:33:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:33:06 2008 -0700"
      },
      "message": "[NETNS][DCCPV6]: Make per-net socket lookup.\n\nThe inet6_lookup family of functions requires a net to lookup\na socket in, so give a proper one to them.\n\nNo more things to do for dccpv6, since routing is OK and the\nipv4-like transport layer filtering is not done for ipv6.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "334527d3511ecbffca68d6c8f75046262510cf41",
      "tree": "ff57da540599a21bb547f01631c474b189837fa1",
      "parents": [
        "0204774191d3e7bc69e3ae6bbf328b635607505a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:32:45 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:32:45 2008 -0700"
      },
      "message": "[NETNS][DCCPV6]: Actually create ctl socket on each net and use it.\n\nMove the call to inet_ctl_sock_create to init callback (and\ninet_ctl_sock_destroy to exit one) and use proper ctl sock\nin dccp_v6_ctl_send_reset.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0204774191d3e7bc69e3ae6bbf328b635607505a",
      "tree": "b26ac01c17f2acc3feb6b92d36564d13609e9a1f",
      "parents": [
        "8231bd270df435f2d4d85b284dd9dbd48521dd84"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:32:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:32:25 2008 -0700"
      },
      "message": "[NETNS][DCCPV6]: Move the dccp_v6_ctl_sk on the struct net.\n\nAnd replace all its usage with init_net\u0027s socket.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8231bd270df435f2d4d85b284dd9dbd48521dd84",
      "tree": "910c5d067af572ae28809df7ed7501b10c399d57",
      "parents": [
        "68d185980f70413b353df99cdf5e667510036668"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:32:02 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:32:02 2008 -0700"
      },
      "message": "[NETNS][DCCPV6]: Add dummy per-net operations.\n\nThey will be responsible for ctl socket initialization, but\ncurrently they are void.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68d185980f70413b353df99cdf5e667510036668",
      "tree": "3bbea21c14f6cd0f6feb28a66249bdeead9e3011",
      "parents": [
        "fc5f8580d31d52890f17526ea739b124bd4e56f4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:31:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:31:32 2008 -0700"
      },
      "message": "[NETNS][DCCPV6]: Don\u0027t pass NULL to ip6_dst_lookup.\n\nThis call uses the sock to get the net to lookup the routing\nin. With CONFIG_NET_NS this code will OOPS, since the sk ptr\nis NULL.\n\nAfter looking inside the ip6_dst_lookup and drawing the analogy\nwith respective ipv6 code, it seems, that the dccp ctl socket \nis a good candidate for the first argument.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc5f8580d31d52890f17526ea739b124bd4e56f4",
      "tree": "dddbaef88fca366dcff053af94e75c97cec12a09",
      "parents": [
        "b9901a84c98fe27c6a598c0f3ec944a7f17a5f97"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:31:05 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:31:05 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Enable DCCPv4 in net namespaces.\n\nThis enables sockets creation with IPPROTO_DCCP and enables\nthe ip level to pass DCCP packets to the DCCP level.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b9901a84c98fe27c6a598c0f3ec944a7f17a5f97",
      "tree": "42e43b306154705ee17ccb350914e486308040ca",
      "parents": [
        "f54873982c6aac9bc5c7eef62a9ce4d52b1dfc19"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:30:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:30:43 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Make per-net socket lookup.\n\nThe inet_lookup family of functions requires a net to lookup\na socket in, so give a proper one to them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f54873982c6aac9bc5c7eef62a9ce4d52b1dfc19",
      "tree": "df285d76f0ada79cd588f607a276757b2a4630ec",
      "parents": [
        "b76c4b27fee9c88294d3152784291fc6f6d23401"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:30:19 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:30:19 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Use proper net to route the reset packet.\n\nThe dccp_v4_route_skb used in dccp_v4_ctl_send_reset, currently\nworks with init_net\u0027s routing tables - fix it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b76c4b27fee9c88294d3152784291fc6f6d23401",
      "tree": "afdaf5706f8d930d9ac5441ebdb6245e1a136fa7",
      "parents": [
        "7b1cffa8c90269dc3dc721d084d1e0d742d87c31"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:29:59 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:29:59 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Actually create ctl socket on each net and use it.\n\nMove the call to inet_ctl_sock_create to init callback (and\ninet_ctl_sock_destroy to exit one) and use proper ctl sock\nin dccp_v4_ctl_send_reset.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b1cffa8c90269dc3dc721d084d1e0d742d87c31",
      "tree": "790914a5574a2cf33a7ee3672629bf0a31f77b71",
      "parents": [
        "72a2d6138224298a576bcdc33d7d0004de604856"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:29:37 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:29:37 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Move the dccp_v4_ctl_sk on the struct net.\n\nAnd replace all its usage with init_net\u0027s socket.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72a2d6138224298a576bcdc33d7d0004de604856",
      "tree": "f2bebe6490dd58214140046945d55c8519aa44e0",
      "parents": [
        "67019cc9ee3f4868c8e5e493b2873c4722306019"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Apr 13 22:29:13 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 13 22:29:13 2008 -0700"
      },
      "message": "[NETNS][DCCPV4]: Add dummy per-net operations.\n\nThey will be responsible for ctl socket initialization, but\ncurrently they are void.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "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": "24e8b7e48471514c9311c733b3f399bd20d014fe",
      "tree": "6563b3ac632b01d71909313c6feb0ff704862d4f",
      "parents": [
        "387a5487f5a1f8bfc3b2c5818e50dfd19eeb4f3f"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Apr 10 03:48:43 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 10 03:48:43 2008 -0700"
      },
      "message": "[DCCP]: Use snmp_mib_{init,free}().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5677242f432102dea9e6eceec1dc089e2f709ca4",
      "tree": "73036437b91f2e8cd5427be48a588bff3af587eb",
      "parents": [
        "eee4fe4ded6e9c196168aee8f9787771f4df9c90"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 14:28:30 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:28:30 2008 -0700"
      },
      "message": "[NETNS]: Inet control socket should not hold a namespace.\n\nThis is a generic requirement, so make inet_ctl_sock_create namespace\naware and create a inet_ctl_sock_destroy wrapper around\nsk_release_kernel.\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": "eee4fe4ded6e9c196168aee8f9787771f4df9c90",
      "tree": "271a5837eef0a7f25bf7c8e1e36f413271dd70c7",
      "parents": [
        "8258175c811440e93baa15ab1962a5905686dda3"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 14:27:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:27:58 2008 -0700"
      },
      "message": "[INET]: Let inet_ctl_sock_create return sock rather than socket.\n\nAll upper protocol layers are already use sock internally.\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": "3d58b5fa8e4c461ab09afdacd3d1754fccca06ad",
      "tree": "b5793c1cc2f0d41657c5e5d101cc00e07c515a60",
      "parents": [
        "4f049b4f33d07bd11335c3a074ebef14213a3e37"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 14:22:32 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:22:32 2008 -0700"
      },
      "message": "[INET]: Rename inet_csk_ctl_sock_create to inet_ctl_sock_create.\n\nThis call is nothing common with INET connection sockets code. It\nsimply creates an unhashes kernel sockets for protocol messages.\n\nMove the new call into af_inet.c after the rename.\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": "4f049b4f33d07bd11335c3a074ebef14213a3e37",
      "tree": "01b9ce8cee9e75cf69269779b457c82b4c32cb77",
      "parents": [
        "7630f026810a63464e47391ab1e03674c33eb1b8"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Apr 03 14:21:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 03 14:21:33 2008 -0700"
      },
      "message": "[DCCP]: dccp_v(4|6)_ctl_socket is leaked.\n\nThis seems a purism as module can\u0027t be unloaded, but though if cleanup\nmethod is present it should be correct and clean all staff created.\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": "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": "bdcde3d71a67e97f25e851f3ca97c9bb5ef03e7f",
      "tree": "eab4a66777582718ffe2eff9038324331106ec18",
      "parents": [
        "60e7663d462af3994f292cb3691ea4f7371a9220"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Mar 28 16:39:33 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:39:33 2008 -0700"
      },
      "message": "[SOCK]: Drop inuse pcounter from struct proto (v2).\n\nAn uppercut - do not use the pcounter on struct proto.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39d8cda76cfb1178455f9d196b39e773878e6c05",
      "tree": "b58af892ccb3fd232078a87148c1dc9622be0c84",
      "parents": [
        "22aba383ce52f8ca8740f9a74dc66b1b68138813"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sat Mar 22 16:50:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 22 16:50:58 2008 -0700"
      },
      "message": "[SOCK]: Add udp_hash member to struct proto.\n\nInspired by the commit ab1e0a13 ([SOCK] proto: Add hashinfo member to \nstruct proto) from Arnaldo, I made similar thing for UDP/-Lite IPv4 \nand -v6 protocols.\n\nThe result is not that exciting, but it removes some levels of\nindirection in udpxxx_get_port and saves some space in code and text.\n\nThe first step is to union existing hashinfo and new udp_hash on the\nstruct proto and give a name to this union, since future initialization \nof tcpxxx_prot, dccp_vx_protinfo and udpxxx_protinfo will cause gcc \nwarning about inability to initialize anonymous member this way.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0dc47877a3de00ceadea0005189656ae8dc52669",
      "tree": "7440a87385fe318cb42f0ae161be195f5e967d82",
      "parents": [
        "6387c4bed539539b05fa773cf2ff26529dc3074c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Mar 05 20:47:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 05 20:47:47 2008 -0800"
      },
      "message": "net: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ee6b967301b4aa5d4a4b61e2f682f086266db9fb",
      "tree": "197c2430f87733dc80d00d1971f1be2a0e562358",
      "parents": [
        "a05c44f6d5fb6cd29da04f96bf5ffaa05f545ac5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Mar 05 18:30:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 05 18:30:47 2008 -0800"
      },
      "message": "[IPV4]: Add \u0027rtable\u0027 field in struct sk_buff to alias \u0027dst\u0027 and avoid casts\n\n(Anonymous) unions can help us to avoid ugly casts.\n\nA common cast it the (struct rtable *)skb-\u003edst one.\n\nDefining an union like  :\nunion {\n     struct dst_entry *dst;\n     struct rtable *rtable;\n};\npermits to use skb-\u003ertable in place.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd80eb942ad9761f241c9b287b3b9a342b20690d",
      "tree": "664b7a2351dab82419ccf7fa91e6f89ede52065c",
      "parents": [
        "58fbbed4fbc0094fc808a568fe99a915f85402ee"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Fri Feb 29 11:43:03 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 29 11:43:03 2008 -0800"
      },
      "message": "[INET]: Remove struct dst_entry *dst from request_sock_ops.rtx_syn_ack.\n\nIt looks like dst parameter is used in this API due to historical\nreasons.  Actually, it is really used in the direct call to\ntcp_v4_send_synack only.  So, create a wrapper for tcp_v4_send_synack\nand remove dst from rtx_syn_ack.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab1e0a13d70299e792fd0527cefd070c1405fa5b",
      "tree": "d470e7b94b0e33ea59b12713366f1bee0b94f78c",
      "parents": [
        "9dc7f30e3bac329998a2a9bb814bd0abc7cb58e2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Feb 03 04:06:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 03 04:28:52 2008 -0800"
      },
      "message": "[SOCK] proto: Add hashinfo member to struct proto\n\nThis way we can remove TCP and DCCP specific versions of\n\nsk-\u003esk_prot-\u003eget_port: both v4 and v6 use inet_csk_get_port\nsk-\u003esk_prot-\u003ehash:     inet_hash is directly used, only v6 need\n                       a specific version to deal with mapped sockets\nsk-\u003esk_prot-\u003eunhash:   both v4 and v6 use inet_hash directly\n\nstruct inet_connection_sock_af_ops also gets a new member, bind_conflict, so\nthat inet_csk_get_port can find the per family routine.\n\nNow only the lookup routines receive as a parameter a struct inet_hashtable.\n\nWith this we further reuse code, reducing the difference among INET transport\nprotocols.\n\nEventually work has to be done on UDP and SCTP to make them share this\ninfrastructure and get as a bonus inet_diag interfaces so that iproute can be\nused with these protocols.\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  struct proto\t\t\t     |   +8\n  struct inet_connection_sock_af_ops |   +8\n 2 structs changed\n  __inet_hash_nolisten               |  +18\n  __inet_hash                        | -210\n  inet_put_port                      |   +8\n  inet_bind_bucket_create            |   +1\n  __inet_hash_connect                |   -8\n 5 functions changed, 27 bytes added, 218 bytes removed, diff: -191\n\nnet-2.6/net/core/sock.c:\n  proto_seq_show                     |   +3\n 1 function changed, 3 bytes added, diff: +3\n\nnet-2.6/net/ipv4/inet_connection_sock.c:\n  inet_csk_get_port                  |  +15\n 1 function changed, 15 bytes added, diff: +15\n\nnet-2.6/net/ipv4/tcp.c:\n  tcp_set_state                      |   -7\n 1 function changed, 7 bytes removed, diff: -7\n\nnet-2.6/net/ipv4/tcp_ipv4.c:\n  tcp_v4_get_port                    |  -31\n  tcp_v4_hash                        |  -48\n  tcp_v4_destroy_sock                |   -7\n  tcp_v4_syn_recv_sock               |   -2\n  tcp_unhash                         | -179\n 5 functions changed, 267 bytes removed, diff: -267\n\nnet-2.6/net/ipv6/inet6_hashtables.c:\n  __inet6_hash |   +8\n 1 function changed, 8 bytes added, diff: +8\n\nnet-2.6/net/ipv4/inet_hashtables.c:\n  inet_unhash                        | +190\n  inet_hash                          | +242\n 2 functions changed, 432 bytes added, diff: +432\n\nvmlinux:\n 16 functions changed, 485 bytes added, 492 bytes removed, diff: -7\n\n/home/acme/git/net-2.6/net/ipv6/tcp_ipv6.c:\n  tcp_v6_get_port                    |  -31\n  tcp_v6_hash                        |   -7\n  tcp_v6_syn_recv_sock               |   -9\n 3 functions changed, 47 bytes removed, diff: -47\n\n/home/acme/git/net-2.6/net/dccp/proto.c:\n  dccp_destroy_sock                  |   -7\n  dccp_unhash                        | -179\n  dccp_hash                          |  -49\n  dccp_set_state                     |   -7\n  dccp_done                          |   +1\n 5 functions changed, 1 bytes added, 242 bytes removed, diff: -241\n\n/home/acme/git/net-2.6/net/dccp/ipv4.c:\n  dccp_v4_get_port                   |  -31\n  dccp_v4_request_recv_sock          |   -2\n 2 functions changed, 33 bytes removed, diff: -33\n\n/home/acme/git/net-2.6/net/dccp/ipv6.c:\n  dccp_v6_get_port                   |  -31\n  dccp_v6_hash                       |   -7\n  dccp_v6_request_recv_sock          |   +5\n 3 functions changed, 5 bytes added, 38 bytes removed, diff: -33\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d86e0dac2ce412715181f792aa0749fe3effff11",
      "tree": "bc9197a7316c7d7641112d5f5975d8b91afdbd08",
      "parents": [
        "c67499c0e772064b37ad75eb69b28fc218752636"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:07:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:20 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v6 sockets per-net lookup.\n\nAdd a net argument to inet6_lookup and propagate it further.\nActually, this is tcp-v6 implementation of what was done for\ntcp-v4 sockets in a previous patch.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c67499c0e772064b37ad75eb69b28fc218752636",
      "tree": "7d2873308f16080c0c3801d6024881360dd8e196",
      "parents": [
        "941b1d22cc035ad58b3d9b44a1c74efac2d7e499"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Jan 31 05:06:40 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:19 2008 -0800"
      },
      "message": "[NETNS]: Tcp-v4 sockets per-net lookup.\n\nAdd a net argument to inet_lookup and propagate it further\ninto lookup calls. Plus tune the __inet_check_established.\n\nThe dccp and inet_diag, which use that lookup functions\npass the init_net into them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140",
      "tree": "37e8dce4268cb657a75e5074a38db48264f1e42f",
      "parents": [
        "611c183ebcb5af384df3a4ddb391034a1b6ac255"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:06 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_flow.\n\nNeeded to propagate it down to the __ip_route_output_key.\n\nSigned_off_by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5ccd792fa413f9336273cb8fa3b9dd3a7ec1735",
      "tree": "64b23972fdf667baa74a0895bf403b22eb7de86c",
      "parents": [
        "cb7928a528264a69b29b6001b490b64607ed0557"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 09 00:30:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:07 2008 -0800"
      },
      "message": "[NET]: Simple ctl_table to ctl_path conversions.\n\nThis patch includes many places, that only required\nreplacing the ctl_table-s with appropriate ctl_paths\nand call register_sysctl_paths().\n\nNothing special was done with them.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4e18dade1f878db33ed38927de22e63d550970d",
      "tree": "514e2321c39618ae4c7ad4b15f7ae0d65eefb66c",
      "parents": [
        "cf35f43e6e41b160d8dedd80a127210fd3be9ada"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Jan 05 23:13:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:44 2008 -0800"
      },
      "message": "[CCID3]: Kill some bloat\n\nWithout a number of CONFIG.*DEBUG:\n\nnet/dccp/ccids/ccid3.c:\n  ccid3_hc_tx_update_x          | -170\n  ccid3_hc_tx_packet_sent       | -175\n  ccid3_hc_tx_packet_recv       | -169\n  ccid3_hc_tx_no_feedback_timer | -192\n  ccid3_hc_tx_send_packet       | -144\n 5 functions changed, 850 bytes removed, diff: -850\n\nnet/dccp/ccids/ccid3.c:\n  ccid3_update_send_interval | +191\n 1 function changed, 191 bytes added, diff: +191\n\nnet/dccp/ccids/ccid3.o:\n 6 functions changed, 191 bytes added, 850 bytes removed, diff: -659\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "152da81deb9a4870aeac352336184b2b14d4b2ba",
      "tree": "63db8e49be92e7f23667d8c3356177840287118f",
      "parents": [
        "d6701191329b51793bc56724548f0863d2149c29"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Dec 20 15:31:33 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:59:26 2008 -0800"
      },
      "message": "[INET]: Uninline the __inet_hash function.\n\nThis one is used in quite many places in the networking code and\nseems to big to be inline.\n\nAfter the patch net/ipv4/build-in.o loses ~650 bytes:\nadd/remove: 2/0 grow/shrink: 0/5 up/down: 461/-1114 (-653)\nfunction                                     old     new   delta\n__inet_hash_nolisten                           -     282    +282\n__inet_hash                                    -     179    +179\ntcp_sacktag_write_queue                     2255    2254      -1\n__inet_lookup_listener                       284     274     -10\ntcp_v4_syn_recv_sock                         755     493    -262\ntcp_v4_hash                                  389      35    -354\ninet_hash_connect                           1086     599    -487\n\nThis version addresses the issue pointed by Eric, that\nwhile being inline this function was optimized by gcc\nin respect to the \u0027listen_possible\u0027 argument.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a07a5a86d091699fd5e791765b8a79e6b1ef96cb",
      "tree": "95540f4a233271a8066b01f339c853a8277f12fe",
      "parents": [
        "52515e77a7a69867c479db4c9efb6be832b82179"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:58:04 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:24 2008 -0800"
      },
      "message": "[DCCP]: Remove unused inline function\n\nThe function follows48(), which is a special-case of dccp_delta_seqno(),\nis nowhere used in the DCCP code, thus removed by this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52515e77a7a69867c479db4c9efb6be832b82179",
      "tree": "d4246af065a53f7e2ae92070ec07d59ba892baf6",
      "parents": [
        "d8d1252f744cb7cebd6ba3a4b7feec31ff23ccde"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:57:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:23 2008 -0800"
      },
      "message": "[CCID3]: Nofeedback timer according to rfc3448bis\n\nThis implements the changes to the nofeedback timer handling suggested\nin draft rfc3448bis00, section 4.4. In particular, these changes mean:\n\n * better handling of the lossless case (p \u003d\u003d 0)\n * the timestamp for computing t_ld becomes obsolete\n * much more recent document (RFC 3448 is almost 5 years old)\n * concepts in rfc3448bis arose from a real, working implementation\n   (cf. sec. 12)\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8d1252f744cb7cebd6ba3a4b7feec31ff23ccde",
      "tree": "acb47c9a5e654a6b5ca3ebf60c8c60d783fb3a65",
      "parents": [
        "5bd370a63daf62bb5520c258f04e91a4d9d274dd"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 12:48:47 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:22 2008 -0800"
      },
      "message": "[CCID3]: Implement rfc3448bis changes to feedback reception\n\nThis implements the algorithm to update the allowed sending rate X upon\nreceiving feedback packets, as described in draft rfc3448bis, 4.2/4.3.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bd370a63daf62bb5520c258f04e91a4d9d274dd",
      "tree": "acec316f81c7d2b4e87373a229875a2f78b6ca96",
      "parents": [
        "8e138e7949490eebdccbd65b1f660a0488149a6b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 10:25:06 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:22 2008 -0800"
      },
      "message": "[CCID3]: Remove two irrelevant states in TX feedback handling\n\n * the NO_SENT state is only triggered in bidirectional mode,\n   costing unnecessary processing.\n * the TERM (terminating) state is irrelevant.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e138e7949490eebdccbd65b1f660a0488149a6b",
      "tree": "8013f8f699f3bac8daa9747183a704854150c496",
      "parents": [
        "17159b0b494ad27f397f914d6eab1b91faf57630"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 17 10:07:44 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:58:21 2008 -0800"
      },
      "message": "[CCID3]: Use a function to update p_inv, and p is never used\n\nThis patch\n 1) concentrates previously scattered computation of p_inv into one function;\n 2) removes the `p\u0027 element of the CCID3 RX sock (it is redundant);\n 3) makes the tfrc_rx_info structure standalone, only used on demand.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6179983ad30c43313e153b35af52bd9ebd7745c3",
      "tree": "1b1fcbad582d7aef0505910bdbfecaf833726357",
      "parents": [
        "84a97b0af8c29aa5a47cc5271968a9c6004fb91e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:37:55 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:59 2008 -0800"
      },
      "message": "[DCCP]: Introducing CCMPS\n\nThis introduces a CCMPS field for setting a CCID-specific upper bound on the application payload\nsize, as is defined in RFC 4340, section 14.\n\nOnly the TX CCID is considered in setting this limit, since the RX CCID generates comparatively\nsmall (DCCP-Ack) feedback packets. The CCMPS field includes network and transport layer header\nlengths. The only current CCMPS customer is CCID4 (via RFC 4828).\n\nA wrapper is used to allow querying the CCMPS even at times where the CCID modules may not have\nbeen fully negotiated yet.\n\nIn dccp_sync_mss() the variable `mss_now\u0027 has been renamed into `cur_mps\u0027, to reflect that we are\ndealing with an MPS, but not an MSS.\nSince the DCCP code closely follows the TCP code, the identifiers `dccp_sync_mss\u0027 and\n`dccps_mss_cache\u0027 have been kept, as they have direct TCP counterparts.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "84a97b0af8c29aa5a47cc5271968a9c6004fb91e",
      "tree": "8fb3da66a7c0cc0933b714de884f210f0ecb90e0",
      "parents": [
        "9cb2345a8c49ea380437d02bb9fd9f291c0a005d"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:33:25 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:58 2008 -0800"
      },
      "message": "[CCID]: More informative registration\n\nThe patch makes the registration messages of CCID 2/3 a bit more\ninformative: instead of repeating the CCID number as currently done,\n\n        \"CCID: Registered CCID 2 (ccid2)\"  or\n        \"CCID: Registered CCID 3 (ccid3)\",\n\nthe descriptive names of the CCID\u0027s (from RFCs) are now used:\n\n\t\"CCID: Registered CCID 2 (TCP-like)\" and\n\t\"CCID: Registered CCID 3 (TCP-Friendly Rate Control)\".\n\nTo allow spaces in the name, the slab name string has been changed to\nrefer to the numeric CCID identifier, using the same format as before.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cb2345a8c49ea380437d02bb9fd9f291c0a005d",
      "tree": "d9305b7be0f0a29bdfc252285b7c1079c18a29cf",
      "parents": [
        "f5026fabda54e5ab5d469d8cfac5f46b4d321ce9"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 23:31:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:58 2008 -0800"
      },
      "message": "[DCCP]: Documentation for CCID operations\n\nThis adds documentation for the ccid_operations structure.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf86314cb7460423b0b7e611edad80a52dc90d10",
      "tree": "19c9389017f08828f2bcbbf1652904fa64aa8e84",
      "parents": [
        "5cdae198de33184c01226395b840f44f9834233a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:48:19 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:54 2008 -0800"
      },
      "message": "[DCCP]: Ignore feature negotiation on Data packets\n\nThis implements [RFC 4340, p. 32]: \"any feature negotiation options received\non DCCP-Data packets MUST be ignored\".\n\nAlso added a FIXME for further processing, since the code currently (wrongly)\nclassifies empty Confirm options as invalid - this needs to be resolved in\na separate patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5cdae198de33184c01226395b840f44f9834233a",
      "tree": "581c70dcbb31fb2494f18191a7cf815fd2ed05e4",
      "parents": [
        "dd6303df095d18b0c524a76a42f57bcc679b2039"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:41:46 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:53 2008 -0800"
      },
      "message": "[DCCP]: Make code assumptions explicit\n\nThis removes several `XXX\u0027 references which indicate a missing support\nfor non-1-byte feature values: this is unnecessary, as all currently known\n(standardised) SP feature values are 1-byte quantities.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd6303df095d18b0c524a76a42f57bcc679b2039",
      "tree": "7bb19426bb87c895b3b0cdcb3639623481abbcea",
      "parents": [
        "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:40:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Remove unused and redundant validation functions\n\nThis removes two inlines which were both called in a single function only:\n\n 1) dccp_feat_change() is always called with either DCCPO_CHANGE_L or DCCPO_CHANGE_R as argument\n    * from dccp_set_socktopt_change() via do_dccp_setsockopt() with DCCP_SOCKOPT_CHANGE_R/L\n    * from __dccp_feat_init() via dccp_feat_init() also with DCCP_SOCKOPT_CHANGE_R/L.\n\n    Hence the dccp_feat_is_valid_type() is completely unnecessary and always returns true.\n\n 2) Due to (1), the length test reduces to \u0027len \u003e\u003d 4\u0027, which in turn makes\n    dccp_feat_is_valid_length() unnecessary.\n\nFurthermore, the inline function dccp_feat_is_reserved() was unfolded,\nsince only called in a single place.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af3b867e2f6b72422bc7aacb1f1e26f47a9649bc",
      "tree": "c675b01b9f1ae5099ea0be7c13942f6e2a98a676",
      "parents": [
        "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:38:11 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:52 2008 -0800"
      },
      "message": "[DCCP]: Support inserting options during the 3-way handshake\n\nThis provides a separate routine to insert options during the initial handshake.\nThe main purpose is to conduct feature negotiation, for the moment the only user\nis the timestamp echo needed for the (CCID3) handshake RTT sample.\n\nPadding of options has been put into a small separate routine, to be shared among\nthe two functions. This could also be used as a generic routine to finish inserting\noptions.\n\nAlso removed an `XXX\u0027 comment since its content was obvious.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4d4f7c70fd3361c6c889752e08ea9be304cf5f4",
      "tree": "b84c712184dfcdde4b68980f4eff21bcaefbfcf3",
      "parents": [
        "8109616e2ef978d142ea45850efd4f102b9bdce4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:37:19 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:51 2008 -0800"
      },
      "message": "[DCCP]: Handle timestamps on Request/Response exchange separately\n\nIn DCCP, timestamps can occur on packets anytime, CCID3 uses a timestamp(/echo) on the Request/Response\nexchange. This patch addresses the following situation:\n\t* timestamps are recorded on the listening socket;\n\t* Responses are sent from dccp_request_sockets;\n\t* suppose two connections reach the listening socket with very small time in between:\n\t* the first timestamp value gets overwritten by the second connection request.\n\nThis is not really good, so this patch separates timestamps into\n * those which are received by the server during the initial handshake (on dccp_request_sock);\n * those which are received by the client or the client after connection establishment.\n\nAs before, a timestamp of 0 is regarded as indicating that no (meaningful) timestamp has been\nreceived (in addition, a warning message is printed if hosts send 0-valued timestamps).\n\nThe timestamp-echoing now works as follows:\n * when a timestamp is present on the initial Request, it is placed into dreq, due to the\n   call to dccp_parse_options in dccp_v{4,6}_conn_request;\n * when a timestamp is present on the Ack leading from RESPOND \u003d\u003e OPEN, it is copied over\n   from the request_sock into the child cocket in dccp_create_openreq_child;\n * timestamps received on an (established) dccp_sock are treated as before.\n\nSince Elapsed Time is measured in hundredths of milliseconds (13.2), the new dccp_timestamp()\nfunction is used, as it is expected that the time between receiving the timestamp and\nsending the timestamp echo will be very small against the wrap-around time. As a byproduct,\nthis allows smaller timestamping-time fields.\n\nFurthermore, inserting the Timestamp Echo option has been taken out of the block starting with\n\u0027!dccp_packet_without_ack()\u0027, since Timestamp Echo can be carried on any packet (5.8 and 13.3).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8109616e2ef978d142ea45850efd4f102b9bdce4",
      "tree": "338aa4e2bf9d9424090b0d698d20b3c465cf229c",
      "parents": [
        "8b819412481494fb6861c08d360b75fabcbbfbbf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:31:26 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:50 2008 -0800"
      },
      "message": "[DCCP]: Add (missing) option parsing to request_sock processing\n\nThis adds option-parsing code to processing of Acks in the listening state\non request_socks on the server, serving two purposes\n (i)  resolves a FIXME (removed);\n (ii) paves the way for feature-negotiation during connection-setup.\n\nThere is an intended subtlety here with regard to dccp_check_req:\n\n Parsing options happens only after testing whether the received packet is\n a retransmitted Request.  Otherwise, if the Request contained (a possibly\n large number of) feature-negotiation options, recomputing state would have to\n happen each time a retransmitted Request arrives, which opens the door to an\n easy DoS attack.  Since in a genuine retransmission the options should not be\n different from the original, reusing the already computed state seems better.\n\n The other point is - if there are timestamp options on the Request, they will\n not be answered; which means that in the presence of retransmission (likely\n due to loss and/or other problems), the use of Request/Response RTT sampling\n is suspended, so that startup problems here do not propagate.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b819412481494fb6861c08d360b75fabcbbfbbf",
      "tree": "ddd9f976f051fb5cff794992b38613bbbfcb9cc1",
      "parents": [
        "7913350663e2756ecb91dd3a7c773806b943426e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:29:24 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:50 2008 -0800"
      },
      "message": "[DCCP]: Allow to parse options on Request Sockets\n\nThe option parsing code currently only parses on full sk\u0027s. This causes a problem for\noptions sent during the initial handshake (in particular timestamps and feature-negotiation\noptions). Therefore, this patch extends the option parsing code with an additional argument\nfor request_socks: if it is non-NULL, options are parsed on the request socket, otherwise\nthe normal path (parsing on the sk) is used.\n\nSubsequent patches, which implement feature negotiation during connection setup, make use\nof this facility.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7913350663e2756ecb91dd3a7c773806b943426e",
      "tree": "3fcb07f5465930633526affa050571527ecd5c5a",
      "parents": [
        "b8599d20708fa3bde1e414689f3474560c2d990b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:27:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:49 2008 -0800"
      },
      "message": "[DCCP]: Collapse repeated `len\u0027 statements into one\n\nThis replaces 4 individual assignments for `len\u0027 with a single\none, placed where the control flow of those 4 leads to.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8599d20708fa3bde1e414689f3474560c2d990b",
      "tree": "adeb51da63a75b03fa55ddbc4712c8359240a3bf",
      "parents": [
        "28be5440044d5b19b0331f79fb3e81845ad6d77e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:25:01 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:48 2008 -0800"
      },
      "message": "[DCCP]: Support for server holding timewait state\n\nThis adds a socket option and signalling support for the case where the server\nholds timewait state on closing the connection, as described in RFC 4340, 8.3.\n\nSince holding timewait state at the server is the non-usual case, it is enabled\nvia a socket option. Documentation for this socket option has been added.\n\nThe setsockopt statement has been made resilient against different possible cases\nof expressing boolean `true\u0027 values using a suggestion by Ian McDonald.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "28be5440044d5b19b0331f79fb3e81845ad6d77e",
      "tree": "859ca1c5cc4fe3787b67e26e6b19f0a6b4900278",
      "parents": [
        "92d31920b84f258badf206eea8aaf5ac677ac535"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:16:23 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:47 2008 -0800"
      },
      "message": "[DCCP]: Use maximum-RTO backoff from DCCP spec\n\nThis removes another Fixme, using the TCP maximum RTO rather than the value\nspecified by the DCCP specification. Across the sections in RFC 4340, 64\nseconds is consistently suggested as maximum RTO backoff value; and this is\nthe value which is now used.\n\nI have checked both termination cases for retransmissions of Close/CloseReq:\nwith the default value 15 of `retries2\u0027, and an initial icsk_retransmit \u003d 0,\nit takes about 614 seconds to declare a non-responding peer as dead, after\nwhich the final terminating Reset is sent. With the TCP maximum RTO value of\n120 seconds it takes (as might be expected) almost twice as long, about 23\nminutes.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92d31920b84f258badf206eea8aaf5ac677ac535",
      "tree": "b61c5a87ccd5110638df0a4d44924d8dffacbcf1",
      "parents": [
        "09f7709f4929666006931f1d4efc498a6d419bbc"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 12:02:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:47 2008 -0800"
      },
      "message": "[DCCP]: Shift the retransmit timer for active-close into output.c\n\nWhen performing active close, RFC 4340, 8.3. requires to retransmit the\nClose/CloseReq with a backoff-retransmit timer starting at intially 2 RTTs.\n\nThis patch shifts the existing code for active-close retransmit timer\ninto output.c, so that the retransmit timer is started when the first\nClose/CloseReq is sent. Previously, the timer was started when, after\nreleasing the socket in dccp_close(), the actively-closing side had not yet\nreached the CLOSED/TIMEWAIT state.\n\nThe patch further reduces the initial timeout from 3 seconds to the required\n2 RTTs, where - in absence of a known RTT - the fallback value specified in\nRFC 4340, 3.4 is used.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "69567d0b63b7f4ffeb53fe746c87bd6efe1c284b",
      "tree": "d2ce8ff37ecc6481684cddd386bc302f47a0a468",
      "parents": [
        "96eba69dbac767f4e287df39e6fa489d37f1aa7b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 13 11:28:43 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:45 2008 -0800"
      },
      "message": "[DCCP]: Perform SHUT_RD and SHUT_WR on receiving close\n\nThis patch performs two changes:\n\n1) Close the write-end in addition to the read-end when a fin-like segment\n  (Close or CloseReq) is received by DCCP. This accounts for the fact that DCCP,\n  in contrast to TCP, does not have a half-close. RFC 4340 says in this respect\n  that when a fin-like segment has been sent there is no guarantee at all that\n  any   further data will be processed.\n  Thus this patch performs SHUT_WR in addition to the SHUT_RD when a fin-like\n  segment is encountered.\n\n2) Minor change: I noted that code appears twice in different places and think it\n   makes sense to put this into a self-contained function (dccp_enqueue()).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb72845e699d3c84e5f861b51db686107a51dea5",
      "tree": "a4a84343cbcc96e86c83954dc82f2a5ee0ce787d",
      "parents": [
        "7233b9f33e72ca477034ff5cf901c89efba3a5bc"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Dec 12 18:48:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:42 2008 -0800"
      },
      "message": "[IPSEC]: Make callers of xfrm_lookup to use XFRM_LOOKUP_WAIT\n\nThis patch converts all callers of xfrm_lookup that used an\nexplicit value of 1 to indiciate blocking to use the new flag\nXFRM_LOOKUP_WAIT.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f71c81ac37b27b824e9ce18fe17438dc2af4a16",
      "tree": "0291ca60c033aec233443faec78777f603e5e419",
      "parents": [
        "954c2db868ce896325dced91d5fba5e2226897a4"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:23:08 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:20 2008 -0800"
      },
      "message": "[TFRC]: Remove previous loss intervals implementation\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "954c2db868ce896325dced91d5fba5e2226897a4",
      "tree": "d74b480530878c25eb770293d786f2e78ace90e7",
      "parents": [
        "de0d411cb8ea51175f52d935faead5c542b6e007"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:06:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:20 2008 -0800"
      },
      "message": "[CCID3]: Interface CCID3 code with newer Loss Intervals Database\n\nThis hooks up the TFRC Loss Interval database with CCID 3 packet reception.\nIn addition, it makes the CCID-specific computation of the first loss\ninterval (which requires access to all the guts of CCID3) local to ccid3.c.\n\nThe patch also fixes an omission in the DCCP code, that of a default /\nfallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while\nat it, the  upper bound of 4 seconds for an RTT sample has  been reduced to\nmatch the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1].\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de0d411cb8ea51175f52d935faead5c542b6e007",
      "tree": "d26398b1da10d52a4138728ff11e955d9d1fba04",
      "parents": [
        "db64196038e79b0460245d558e54ff4a21a52d1f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 14:03:01 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:19 2008 -0800"
      },
      "message": "[TFRC]: CCID3 (and CCID4) needs to access these inlines\n\nThis moves two inlines back to packet_history.h: these are not private\nto packet_history.c, but are needed by CCID3/4 to detect whether a new\nloss is indicated, or whether a loss is already pending.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db64196038e79b0460245d558e54ff4a21a52d1f",
      "tree": "c24ee13b726832a85a95a2824f01293fe84dcc75",
      "parents": [
        "8a9c7e92e0ca97632126feee32ba2698b4eb6c8f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 13:57:14 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:18 2008 -0800"
      },
      "message": "[CCID3]: Redundant debugging output / documentation\n\nEach time feedback is sent two lines are printed:\n\n\tccid3_hc_rx_send_feedback: client ... - entry\n\tccid3_hc_rx_send_feedback: Interval ...usec, X_recv\u003d..., 1/p\u003d...\n\nThe first line is redundant and thus removed.\n\nFurther, documentation of ccid3_hc_rx_sock (capitalisation) is made consistent.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a9c7e92e0ca97632126feee32ba2698b4eb6c8f",
      "tree": "b569d6e39f3630f7a973814a925502035c63904b",
      "parents": [
        "8995a238ef6869bc5c80240440bc58452c7af283"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 13:50:51 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:18 2008 -0800"
      },
      "message": "[TFRC]: Ringbuffer to track loss interval history\n\nA ringbuffer-based implementation of loss interval history is easier to\nmaintain, allocate, and update.\n\nThe `swap\u0027 routine to keep the RX history sorted is due to and was written\nby Arnaldo Carvalho de Melo, simplifying an earlier macro-based variant.\n\nDetails:\n * access to the Loss Interval Records via macro wrappers (with safety checks);\n * simplified, on-demand allocation of entries (no extra memory consumption on\n   lossless links); cache allocation is local to the module / exported as service;\n * provision of RFC-compliant algorithm to re-compute average loss interval;\n * provision of comprehensive, new loss detection algorithm\n \t- support for all cases of loss, including re-ordered/duplicate packets;\n \t- waiting for NDUPACK\u003d3 packets to fill the hole;\n\t- updating loss records when a late-arriving packet fills a hole.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8995a238ef6869bc5c80240440bc58452c7af283",
      "tree": "40850acfd1042ecdf9bf3f745358871ef42772bb",
      "parents": [
        "df8f83fdd6369e1ba85f089fd6fe26bb2ddcb36f"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 12:28:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:16 2008 -0800"
      },
      "message": "[TFRC]: Loss interval code needs the macros/inlines that were moved\n\nThis moves the inlines (which were previously declared as macros) back into\npacket_history.h since the loss detection code needs to be able to read entries\nfrom the RX history in order to create the relevant loss entries: it needs at\nleast tfrc_rx_hist_loss_prev() and tfrc_rx_hist_last_rcv(), which in turn\nrequire the definition of the other inlines (macros).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df8f83fdd6369e1ba85f089fd6fe26bb2ddcb36f",
      "tree": "8ddb2e0b70d5ed99837919ada6664e70c876f119",
      "parents": [
        "2aaef4e47fef8a6c0bc7fc5d9d3eea4af290e04c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Dec 12 12:24:49 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:15 2008 -0800"
      },
      "message": "[TFRC]: Put RX/TX initialisation into tfrc.c\n\nThis separates RX/TX initialisation and puts all packet history / loss intervals\ninitialisation into tfrc.c.\nThe organisation is uniform: slab declaration -\u003e {rx,tx}_init() -\u003e {rx,tx}_exit()\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "385ac2e3f226c09cb71733df1899658e33a7850f",
      "tree": "d3b9754ec75c550b784ef51ab02b25e00aa70c34",
      "parents": [
        "797eba424d4332f6aff5b741600b61e3d4b3d3f2"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 16:26:59 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:04 2008 -0800"
      },
      "message": "[CCID3]: HC-receiver should not insert timestamps as HC-sender doesn\u0027t uses it\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "797eba424d4332f6aff5b741600b61e3d4b3d3f2",
      "tree": "f29150076bb9032eb1e11a9a83c974b7875b3553",
      "parents": [
        "78282d2af598a1840934e2049a5c196885647f6a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 16:08:41 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:03 2008 -0800"
      },
      "message": "[TFRC]: The function tfrc_rx_hist_entry_delete() is not used anymore\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78282d2af598a1840934e2049a5c196885647f6a",
      "tree": "19f2a626bc2a8741b3740a44ccaa9f0e02e21d34",
      "parents": [
        "c69bce20dda7f79160856a338298d65a284ba303"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Dec 08 15:08:08 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:57:03 2008 -0800"
      },
      "message": "[TFRC]: Move comment.\n\nMoved up the comment \"Receiver routines\" above the first occurrence of\nRX history routines.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b84a2189c4e1835c51fd6b974a0497be9bc4ba87",
      "tree": "d488b0a45618ac37c605b10b093f8f03a050a7fc",
      "parents": [
        "30a0eacd479f1c7c15fe0496585ff29f76de3378"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 13:18:11 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:43 2008 -0800"
      },
      "message": "[TFRC]: New rx history code\n\nCredit here goes to Gerrit Renker, that provided the initial implementation for\nthis new codebase.\n\nI modified it just to try to make it closer to the existing API, renaming some\nfunctions, add namespacing and fix one bug where the tfrc_rx_hist_alloc was not\nfreeing the allocated ring entries on the error path.\n\nOriginal changeset comment from Gerrit:\n      -----------\nThis provides a new, self-contained and generic RX history service for TFRC\nbased protocols.\n\nDetails:\n * new data structure, initialisation and cleanup routines;\n * allocation of dccp_rx_hist entries local to packet_history.c,\n   as a service exported by the dccp_tfrc_lib module.\n * interface to automatically track highest-received seqno;\n * receiver-based RTT estimation (needed for instance by RFC 3448, 6.3.1);\n * a generic function to test for `data packets\u0027 as per  RFC 4340, sec. 7.7.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30a0eacd479f1c7c15fe0496585ff29f76de3378",
      "tree": "eed98813afd0814e0d0999428b50477c5d36471e",
      "parents": [
        "d58d1af03a6a3ddf296ae3aeb4ff234af4b15958"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:29:07 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:43 2008 -0800"
      },
      "message": "[CCID3]: The receiver of a half-connection does not set window counter values\n\nOnly the sender sets window counters [RFC 4342, sections 5 and 8.1].\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d58d1af03a6a3ddf296ae3aeb4ff234af4b15958",
      "tree": "44194b47b1c1b188f300ec1d1f6f0eed6e9a8849",
      "parents": [
        "34a9e7ea91bb4acb45ae5331e7403304029329b2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:28:39 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:42 2008 -0800"
      },
      "message": "[TFRC]: Rename dccp_rx_ to tfrc_rx_\n\nThis is in preparation for merging the new rx history code written by Gerrit Renker.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34a9e7ea91bb4acb45ae5331e7403304029329b2",
      "tree": "196c60bbe79f4d480cefa9d141a6096f3450fa75",
      "parents": [
        "e9c8b24a6ade50315f3c080799da45ddadf42269"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:28:13 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:41 2008 -0800"
      },
      "message": "[TFRC]: Make the rx history slab be global\n\nThis is in preparation for merging the new rx history code written by Gerrit Renker.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9c8b24a6ade50315f3c080799da45ddadf42269",
      "tree": "bf7c9aabba852c4f54f3f38223e0c41445bb2f50",
      "parents": [
        "2180c41ca5c1a36c67f4140e80154699333109d2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Dec 06 12:27:49 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:40 2008 -0800"
      },
      "message": "[TFRC]: Rename tfrc_tx_hist to tfrc_tx_hist_slab, for consistency\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2180c41ca5c1a36c67f4140e80154699333109d2",
      "tree": "77438292f56f848fea4cb44f097234a1f3c9acf7",
      "parents": [
        "c40616c597bf02a2346cbf2f120283734b436245"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:27:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:40 2008 -0800"
      },
      "message": "[DCCP]: Introduce generic function to test for `data packets\u0027\n\nas per  RFC 4340, sec. 7.7.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c40616c597bf02a2346cbf2f120283734b436245",
      "tree": "2fb6f82ed8fec01038f4607b489086a8f2a719f9",
      "parents": [
        "f8b33fdfafea0f909712a55fbb3d83b89f70f3f5"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Thu Dec 06 12:26:38 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:39 2008 -0800"
      },
      "message": "[TFRC]: Provide central source file and debug facility\n\nThis patch changes the tfrc_lib module in the following manner:\n\n (1) a dedicated tfrc source file to call the packet history \u0026\n     loss interval init/exit functions.\n (2) a dedicated tfrc_pr_debug macro with toggle switch `tfrc_debug\u0027.\n\nCommiter note: renamed tfrc_module.c to tfrc.c, and made CONFIG_IP_DCCP_CCID3\nselect IP_DCCP_TFRC_LIB.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9108d5f4b2cd82f55ad178caa0be66a866a06dcc",
      "tree": "c706ab8146fa93ab56c72037b7daa2a6f78e4062",
      "parents": [
        "95bdfccb2bf4ea21c0065772c6a2c75cbaf6ad0d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Nov 29 22:47:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:19 2008 -0800"
      },
      "message": "[TFRC]: Hide tx history details from the CCIDs\n\nBased on a previous patch by Gerrit Renker.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3159afe0d2c1994392c269cf9dee2797830d016b",
      "tree": "cae67feeee5c22c74a35a9d704e27679ac507ee2",
      "parents": [
        "0c869620762fea4b3acf6502d9e80840b27ec642"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 12:06:04 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:14 2008 -0800"
      },
      "message": "[DCCP]: Remove duplicate test for CloseReq\n\nThis removes a redundant test for unexpected packet types. In dccp_rcv_state_process\nit is tested twice whether a DCCP-server has received a CloseReq (Step 7):\n\n * first in the combined if-statement,\n * then in the call to dccp_rcv_closereq().\n\nThe latter is necesssary since dccp_rcv_closereq() is also called from\n__dccp_rcv_established().\n\nThis patch removes the duplicate test.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c869620762fea4b3acf6502d9e80840b27ec642",
      "tree": "218146397018baf917260f3d0a90dd89fc13cc7f",
      "parents": [
        "f11135a3442996d78dad99933bfdb90d1f6588d3"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 11:59:48 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:13 2008 -0800"
      },
      "message": "[DCCP]: Integrate state transitions for passive-close\n\nThis adds the necessary state transitions for the two forms of passive-close\n\n * PASSIVE_CLOSE    - which is entered when a host   receives a Close;\n * PASSIVE_CLOSEREQ - which is entered when a client receives a CloseReq.\n\nHere is a detailed account of what the patch does in each state.\n\n1) Receiving CloseReq\n\n  The pseudo-code in 8.5 says:\n\n     Step 13: Process CloseReq\n          If P.type \u003d\u003d CloseReq and S.state \u003c CLOSEREQ,\n              Generate Close\n              S.state :\u003d CLOSING\n              Set CLOSING timer.\n\n  This means we need to address what to do in CLOSED, LISTEN, REQUEST, RESPOND, PARTOPEN, and OPEN.\n\n   * CLOSED:         silently ignore - it may be a late or duplicate CloseReq;\n   * LISTEN/RESPOND: will not appear, since Step 7 is performed first (we know we are the client);\n   * REQUEST:        perform Step 13 directly (no need to enqueue packet);\n   * OPEN/PARTOPEN:  enter PASSIVE_CLOSEREQ so that the application has a chance to process unread data.\n\n  When already in PASSIVE_CLOSEREQ, no second CloseReq is enqueued. In any other state, the CloseReq is ignored.\n  I think that this offers some robustness against rare and pathological cases: e.g. a simultaneous close where\n  the client sends a Close and the server a CloseReq. The client will then be retransmitting its Close until it\n  gets the Reset, so ignoring the CloseReq while in state CLOSING is sane.\n\n2) Receiving Close\n\n  The code below from 8.5 is unconditional.\n\n     Step 14: Process Close\n          If P.type \u003d\u003d Close,\n              Generate Reset(Closed)\n              Tear down connection\n              Drop packet and return\n\n  Thus we need to consider all states:\n   * CLOSED:           silently ignore, since this can happen when a retransmitted or late Close arrives;\n   * LISTEN:           dccp_rcv_state_process() will generate a Reset (\"No Connection\");\n   * REQUEST:          perform Step 14 directly (no need to enqueue packet);\n   * RESPOND:          dccp_check_req() will generate a Reset (\"Packet Error\") -- left it at that;\n   * OPEN/PARTOPEN:    enter PASSIVE_CLOSE so that application has a chance to process unread data;\n   * CLOSEREQ:         server performed active-close -- perform Step 14;\n   * CLOSING:          simultaneous-close: use a tie-breaker to avoid message ping-pong (see comment);\n   * PASSIVE_CLOSEREQ: ignore - the peer has a bug (sending first a CloseReq and now a Close);\n   * TIMEWAIT:         packet is ignored.\n\n   Note that the condition of receiving a packet in state CLOSED here is different from the condition \"there\n   is no socket for such a connection\": the socket still exists, but its state indicates it is unusable.\n\n   Last, dccp_finish_passive_close sets either DCCP_CLOSED or DCCP_CLOSING \u003d TCP_CLOSING, so that\n   sk_stream_wait_close() will wait for the final Reset (which will trigger CLOSING \u003d\u003e CLOSED).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f11135a3442996d78dad99933bfdb90d1f6588d3",
      "tree": "6b10cea26f0551b769097296b7e41f25d6b44f08",
      "parents": [
        "f53dc67c5e7babafe239b93a11678b0e05bead51"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 11:34:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:12 2008 -0800"
      },
      "message": "[DCCP]: Dedicated auxiliary states to support passive-close\n\nThis adds two auxiliary states to deal with passive closes:\n  * PASSIVE_CLOSE    (reached from OPEN via reception of Close)    and\n  * PASSIVE_CLOSEREQ (reached from OPEN via reception of CloseReq)\nas internal intermediate states.\n\nThese states are used to allow a receiver to process unread data before\nacknowledging the received connection-termination-request (the Close/CloseReq).\n\nWithout such support, it will happen that passively-closed sockets enter CLOSED\nstate while there is still unprocessed data in the queue; leading to unexpected\nand erratic API behaviour.\n\nPASSIVE_CLOSE has been mapped into TCPF_CLOSE_WAIT, so that the code will\nseamlessly work with inet_accept() (which tests for this state).\n\nThe state names are thanks to Arnaldo, who suggested this naming scheme\nfollowing an earlier revision of this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f53dc67c5e7babafe239b93a11678b0e05bead51",
      "tree": "50737228e796667e8c24e9a821cb11bca372516a",
      "parents": [
        "276f2edc52e309b38a216245952e05880e182c83"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Wed Nov 28 08:35:08 2007 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:12 2008 -0800"
      },
      "message": "[DCCP]: Use AF-independent rebuild_header routine\n\nThis fixes a nasty bug: dccp_send_reset() is called by both DCCPv4 and DCCPv6, but uses\ninet_sk_rebuild_header() in each case. This leads to unpredictable and weird behaviour:\nunder some conditions, DCCPv6 Resets were sent, in other not.\n\nThe fix is to use the AF-independent rebuild_header routine.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "276f2edc52e309b38a216245952e05880e182c83",
      "tree": "3f581eb831a6f7f16ab30bd0f8e8d80b5b97fe50",
      "parents": [
        "ea4f76ae13b4240dac304ed50636391d6b22e9c5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Nov 28 11:15:40 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:11 2008 -0800"
      },
      "message": "[TFRC]: Migrate TX history to singly-linked lis\n\nThis patch was based on another made by Gerrit Renker, his changelog was:\n\n    ------------------------------------------------------\nThe patch set migrates TFRC TX history to a singly-linked list.\n\nThe details are:\n * use of a consistent naming scheme (all TFRC functions now begin with `tfrc_\u0027);\n * allocation and cleanup are taken care of internally;\n * provision of a lookup function, which is used by the CCID TX infrastructure\n   to determine the time a packet was sent (in turn used for RTT sampling);\n * integration of the new interface with the present use in CCID3.\n    ------------------------------------------------------\n\nSimplifications I did:\n\n. removing the tfrc_tx_hist_head that had a pointer to the list head and\n  another for the slabcache.\n. No need for creating a slabcache for each CCID that wants to use the TFRC\n  tx history routines, create a single slabcache when the dccp_tfrc_lib module\n  init routine is called.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d8ad9d7c4bfe79bc91b7fc419ecfb9dcdfe6a51",
      "tree": "4b655c4b898e634f39fd170eeb8d06f45b240660",
      "parents": [
        "ce865a61c810c971b47f57c729ec6e9b2d522d94"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Nov 26 20:10:50 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:03 2008 -0800"
      },
      "message": "[NET]: Name magic constants in sock_wake_async()\n\nThe sock_wake_async() performs a bit different actions\ndepending on \"how\" argument. Unfortunately this argument\nony has numerical magic values.\n\nI propose to give names to their constants to help people\nreading this function callers understand what\u0027s going on\nwithout looking into this function all the time.\n\nI suppose this is 2.6.25 material, but if it\u0027s not (or the\nnaming seems poor/bad/awful), I can rework it against the\ncurrent net-2.6 tree.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce865a61c810c971b47f57c729ec6e9b2d522d94",
      "tree": "95e3013184679deb4699d416f2431910b9dd5c68",
      "parents": [
        "d83bd95bf11444993b9c405b255ffa644c32d414"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:14:15 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:02 2008 -0800"
      },
      "message": "[DCCP]: Add support for abortive release\n\nThis continues from the previous patch and adds support for actively aborting\na DCCP connection, using a Reset Code 2, \"Aborted\" to inform the peer of an\nabortive release.\n\nI have tried this in various client/server settings and it works as expected.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83bd95bf11444993b9c405b255ffa644c32d414",
      "tree": "57311d4ffaa31ea73ca4a18a58fed985a14576cc",
      "parents": [
        "dcfbc7e97a2e3a0d73a2e41e1bddb988dcca701e"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sun Dec 16 16:06:03 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:01 2008 -0800"
      },
      "message": "[DCCP]: Check for unread data on close\n\nThis removes one FIXME with regard to close when there is still unread data.\nThe mechanism is implemented similar to TCP: with regard to DCCP-specifics,\na Reset with Code 2, \"Aborted\" is sent to the peer.\n\nThis corresponds in part to RFC 4340, 8.1.1 and 8.1.5.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcfbc7e97a2e3a0d73a2e41e1bddb988dcca701e",
      "tree": "72f3e847a2cff031e8d9d7728065716da3ca0be9",
      "parents": [
        "a302002516a094015e5d004b8d939a8a34559c82"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:12:06 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:01 2008 -0800"
      },
      "message": "[CCID2]: Remove misleading comment\n\nThis removes a comment which identifies an `issue\u0027 with dccp_write_xmit() where there is none.\nThe comment assumes it is possible that a packet is sent between the calls to\n\n\tccid_hc_tx_send_packet(),\n\tdccp_transmit_skb(),\n\tccid_hc_tx_packet_sent()\n\n(in the above order) in dccp_write_xmit().\n\nI think that this is impossible, since dccp_write_xmit() is always called under lock:\n\n * when called as dccp_write_xmit(sk, 1) from dccp_send_close(), the socket is locked\n   (see code comment above dccp_send_close());\n * when called as dccp_write_xmit(sk, 0) from dccp_send_msg(), it is after lock_sock() has been called;\n * when called as dccp_write_xmit(sk, 0) from dccp_write_xmit_timer(), bh_lock_sock() has been called\n   and the if/else statement has made sure that sk_lock.owner is not set;\n * there are no other places where dccp_write_xmit() is called.\n\nFurthermore, the debug statement for printing the sequence number of the packet just sent has been\nremoved, since the entire list is being printed anyway and so the entry of that number appears last.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a302002516a094015e5d004b8d939a8a34559c82",
      "tree": "681d5be6c6e283f6889152d3e97af3e833f473ba",
      "parents": [
        "83399361c30f2ffae20ee348ba9ada9a856d499a"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:10:29 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:00 2008 -0800"
      },
      "message": "[CCID2]: Remove redundant ack-counting variable\n\nThe code used two different variables to count Acks, one of them redundant.\nThis patch reduces the number of Ack counters to one.\n\nThe type of the Ack counter has also been changed to u32 (twice the range of int);\nand the variable has been renamed into `packets_acked\u0027 - for consistency with\nRFC 3465 (and similarly named variables are used by TCP and SCTP).\n\nLastly, a slightly less aggressive `maxincr\u0027 increment is used (for even Ack Ratios,\nmaxincr was Ack Ratio/2 + 1 instead of Ack Ratio/2).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83399361c30f2ffae20ee348ba9ada9a856d499a",
      "tree": "51f5399c9d394ab4ec1483d7bb908566a19e8792",
      "parents": [
        "da98e0b5d4c1f88b7c9e63e8918783cd4905be2b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:09:35 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:59 2008 -0800"
      },
      "message": "[CCID2]: Remove redundant synchronisation variable\n\nThis removes the synchronisation variable `ccid2hctx_sendwait\u0027, which is set to 1\nwhen the CCID2 sender may send a new packet, and which is set to 0 otherwise\n\nThe variable is redundant, since it is only used in combination with the hc_tx_send_packet/\nhc_tx_packet_sent function pair. Both functions are called under socket lock, so the\nfollowing happens when the CCID2 may send a new packet:\n\n * it sets sendwait \u003d 1 in tx_send_packet and returns 0;\n * the subsequent call to tx_packet_sent clears the sendwait flag;\n * since tx_send_packet returns 0 if and only if sendwait \u003d\u003d 1, the BUG_ON condition\n   in tx_packet_sent is never satisfied, since that function is never called when\n   tx_send_packet returns a value different from 0 (cf. dccp_write_xmit);\n * the call to tx_packet_sent clears the flag so that the condition \"!sendwait\" is\n   true the next time tx_packet_sent is called.\n\nIn other words, it is sufficient to just return 0 / not-0 to synchronise tx_send_packet\nand tx_packet_sent -- which is what the patch does.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da98e0b5d4c1f88b7c9e63e8918783cd4905be2b",
      "tree": "4a0dcc5d424b325b67c3b9f7d9a90dea9a4b1780",
      "parents": [
        "95b21d7e9d099f1cffca08e40f292d6658a88b3c"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:08:27 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:59 2008 -0800"
      },
      "message": "[CCID2]: Redundant debugging output\n\nThis reduces the amount of redundant debugging messages:\n\n * pipe/cwnd are printed in both tx_send_packet() and tx_packet_sent().\n   Both functions are called immediately after one another, so one occurrence is sufficient.\n\n * Since tx_packet_sent() prints pipe/cwnd already, the second printk for pipe is redundant.\n\n * In tx_packet_sent() the check_sanity function is called twice (at the begin and at the end).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95b21d7e9d099f1cffca08e40f292d6658a88b3c",
      "tree": "23f30c58c1bbe6344c6077552b4220a442b94624",
      "parents": [
        "3deeadd74bbf916b502d307222833ffcf68db557"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:06:52 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:58 2008 -0800"
      },
      "message": "[CCID2]: Replace pipe assignment-function with assignment\n\nThe function ccid2_change_pipe only does an assignment. This patch simplifies the code by\nreplacing the function with the assignment it performs.\n\nFurthermore, the type of pipe is promoted from `signed\u0027 to unsigned (increasing the range).\nAs a result, a BUG_ON test for negative values now becomes obsolete (for safety not removed,\nbut replaced with a less annoying `DCCP_BUG\u0027).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3deeadd74bbf916b502d307222833ffcf68db557",
      "tree": "86f33bdcbab3a6b48157e6aa381a5a1668935ed7",
      "parents": [
        "63df18ad7fb91c65dafc89d3cf94a58a486ad416"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:05:51 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:57 2008 -0800"
      },
      "message": "[CCID2]: Replace cwnd assignment-function with assignment\n\nThe current function ccid2_change_cwnd in effect makes only an assignment, as\nthe test whether cwnd has reached 0 is only required when cwnd is halved.\n\nThis patch simplifies the code by replacing the function with the assignment\nit performs.\n\nFurthermore, since ssthresh derives from cwnd and appears in many assignments and\ncomparisons, the type of ssthresh has also been changed to match that of cwnd.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63df18ad7fb91c65dafc89d3cf94a58a486ad416",
      "tree": "63172fb7125c990516430ef8b4e50648079d89fd",
      "parents": [
        "7792cd8885954eb7ac38e781a7a9faae5a80a3d8"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:04:35 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:57 2008 -0800"
      },
      "message": "[CCID2]: Replace read-only variable with constant\n\nThis replaces the field member `numdupack\u0027, which was used as a read-only\nconstant in the code, with a #define.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7792cd8885954eb7ac38e781a7a9faae5a80a3d8",
      "tree": "4f96ef45b1ab85eb4b1d79d16d11e2bc8bc27051",
      "parents": [
        "900bfed4718126e6c32244903b6f43e0990d04ad"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 22:01:56 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:56 2008 -0800"
      },
      "message": "[CCID2]: Remove unused variable\n\nThis removes a variable `ccid2hctx_sent\u0027 which is incremented but\nnever referenced/read (i.e., dead code).\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "900bfed4718126e6c32244903b6f43e0990d04ad",
      "tree": "d4644ea4770657046d762d9997d7a8e1d794ff94",
      "parents": [
        "b00d2bbc45a287c9a72374582ce42205f3412419"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:58:33 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:55 2008 -0800"
      },
      "message": "[CCID2]: Disable broken Ack Ratio adaptation algorithm\n\nThis comments out a problematic section comprising a half-finished algorithm:\n\n - The variable `ccid2hctx_ackloss\u0027 is never initialised to a value different from 0 and\n   hence in fact is a read-only constant.\n - The `arsent\u0027 variable counts packets other than Acks (it is incremented for every packet),\n   and there is no test for Ack Loss.\n - The concept of counting Acks as such leads to a complex calculation, and the calculation\n   at the moment is inconsistent with this concept.\n   The problem is that the number of Acks - rather than the number of windows - is counted,\n   which leads to a complex (cubic/quadratic) expression - this is not even implemented.\n\nIn its current state, the commented-out algorithm interfers with normal processing by\nchanging Ack Ratio incorrectly, and at the wrong times.\n\nA new algorithm is necessary, which will not necessarily use the same variables as used by\nthe unfinished one; hence the old variables have been removed.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b00d2bbc45a287c9a72374582ce42205f3412419",
      "tree": "22a301fc6d05fe98b142cf53ec75967e847ac02e",
      "parents": [
        "e18d7a9857cb620a8f70622c4e400be477c264cf"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:44:30 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:55 2008 -0800"
      },
      "message": "[CCID2]: Larger initial windows also for CCID2\n\nRFC 4341, sec. 5 states that \"The cwnd parameter is initialized to at most\nfour packets for new connections, following the rules from [RFC3390]\", which\nis implemented by this patch.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e18d7a9857cb620a8f70622c4e400be477c264cf",
      "tree": "b09b5040a1885ba2f5287fb3d0a9e05e6abc33c5",
      "parents": [
        "d50ad163e6db2dcc365b8d02b30350220f86df04"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Nov 24 21:42:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:54 2008 -0800"
      },
      "message": "[DCCP]: Initialize dccp_sock before calling the ccid constructors\n\nThis is because in the next patch CCID2 will assume that dccps_mss_cache is\nnon-zero.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d50ad163e6db2dcc365b8d02b30350220f86df04",
      "tree": "56998d89dcf4b748c09b4f5fe82bd2b7742ea3cb",
      "parents": [
        "df054e1d00fdafa2e2920319df326ddb3f0d0413"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:40:24 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:53 2008 -0800"
      },
      "message": "[CCID2]: Deadlock and spurious timeouts when Ack Ratio \u003e cwnd\n\nThis patch removes a bug in the current code. I agree with Andrea\u0027s comment\nthat there is a problem here but the way it is treated does not fix it.\n\nThe problem is that whenever Ack Ratio \u003e cwnd, starvation/deadlock occurs:\n * the receiver will not send an Ack until (Ack Ratio - cwnd) data packets\n   have arrived;\n * the sender will not send any data packet before the receipt of an Ack\n   advances the send window.\nThe only way that the connection then progresses was via RTO timeout. In one\nextreme case (bulk transfer), it was observed that this happened for every single\npacket; i.e. hundreds of packets, each a RTO timeout of 1..3 seconds apart:\na transfer which normally would take a fraction of a second thus grew to\nseveral minutes.\n\nThe solution taken by this approach is to observe the relation\n\n                   \"Ack Ratio \u003c\u003d cwnd\"\n\nby using the constraint (1) from RFC 4341, 6.1.2; i.e. set\n\n                 Ack Ratio \u003d ceil(cwnd / 2)\n\nand update it whenever either Ack Ratio or cwnd change. This ensures that\nthe deadlock problem can not arise.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df054e1d00fdafa2e2920319df326ddb3f0d0413",
      "tree": "4c5178212391dc2b1fe0d329da5e8552bcab4a55",
      "parents": [
        "cfbbeabc8864902c4af1c0cadf0972b352930a26"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Sat Nov 24 21:32:53 2007 -0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:53 2008 -0800"
      },
      "message": "[CCID2]: Don\u0027t assign negative values to Ack Ratio\n\nSince it makes not sense to assign negative values to Ack Ratio, this\npatch disallows this possibility.\n\nAs a consequence, a Bug test for negative Ack Ratio values becomes obsolete.\n\nFurthermore, a check against overflow (as Ack Ratio may not exceed 2 bytes,\ndue to RFC 4340, 11.3) has been added.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "cfbbeabc8864902c4af1c0cadf0972b352930a26"
}
