)]}'
{
  "log": [
    {
      "commit": "c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce",
      "tree": "03a715961ba576a11cbc0e91c5d465e4c4d95d82",
      "parents": [
        "57effc70a5be9f7804e9a99964eb7265367effca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Apr 10 20:45:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:46 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_network_header(skb)\n\nFor the common, open coded \u0027skb-\u003enh.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003enh.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57effc70a5be9f7804e9a99964eb7265367effca",
      "tree": "899aba12491095e6eb55291f5032cccab0f9b609",
      "parents": [
        "a16aeb36239ce612699ed64a75a03c88cbc657e8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 16:21:45 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:45 2007 -0700"
      },
      "message": "[IPV6]: Use skb-\u003enh.ipv6h instead of casting skb-\u003enh.raw\n\nnh.ipv6h is there exactly for this reason! Use it while it exists ;-)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a16aeb36239ce612699ed64a75a03c88cbc657e8",
      "tree": "3b5427efa8fabe911d9dd2a3532a1107f33e6e5c",
      "parents": [
        "797659fb4a4a511649cd71028141c32ad1698a12"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 16:07:19 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:44 2007 -0700"
      },
      "message": "[BONDING]: Introduce arp_pkt()\n\nFor consistency with all the other skb-\u003enh.raw accessors.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "797659fb4a4a511649cd71028141c32ad1698a12",
      "tree": "370361e706de99e3c176b343e9f2db5a1a9df2a3",
      "parents": [
        "37e6636669b0b996681586facee8034f7f674f6a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 15:56:08 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:43 2007 -0700"
      },
      "message": "[PPPOE]: Introduce pppoe_hdr()\n\nFor consistency with all the other skb-\u003enh.raw accessors.\n\nAlso do some really obvious simplifications in pppoe_recvmsg, well the\nkfree_skb one is not so obvious, but free() and kfree() have the same behaviour\n(hint :-) ).\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "37e6636669b0b996681586facee8034f7f674f6a",
      "tree": "4ab874ffd5b5408aa0d8bf59b3dcdb0c89b9b770",
      "parents": [
        "98e399f82ab3a6d863d1d4a7ea48925cc91c830e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 15:34:36 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:42 2007 -0700"
      },
      "message": "[LLC]: Kill llc_set_pdu_hdr\n\nWe\u0027ll have skb_reset_network_header soon.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "98e399f82ab3a6d863d1d4a7ea48925cc91c830e",
      "tree": "5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343",
      "parents": [
        "31713c333ddbb66d694829082620b69b71c4b09a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:33:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:41 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_mac_header()\n\nFor the places where we need a pointer to the mac header, it is still legal to\ntouch skb-\u003emac.raw directly if just adding to, subtracting from or setting it\nto another layer header.\n\nThis one also converts some more cases to skb_reset_mac_header() that my\nregex missed as it had no spaces before nor after \u0027\u003d\u0027, ugh.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31713c333ddbb66d694829082620b69b71c4b09a",
      "tree": "71de8475b04972ef9bdf1d7b4fec0ebf6243cc32",
      "parents": [
        "c51957dafa6f960c5c6372aa3da6c8fa71c13730"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:48:37 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:39 2007 -0700"
      },
      "message": "[TCP]: Use skb_set_mac_header in tcp_collapse\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c51957dafa6f960c5c6372aa3da6c8fa71c13730",
      "tree": "674537df214b57e96660ffd59e2c44616c9ea57a",
      "parents": [
        "39f69c6f922fbfb51e1ff24c9e196584a79f1484"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:47:22 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:38 2007 -0700"
      },
      "message": "[TCP]: Do the layer header setting in tcp_collapse relative to skb-\u003edata\n\nThat is equal to skb-\u003ehead before skb_reserve, to help in the layer header\nchanges.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39f69c6f922fbfb51e1ff24c9e196584a79f1484",
      "tree": "2d68a730ba5b89f895c28489872a1eea3b37db5a",
      "parents": [
        "48d49d0ccdaa9caff4636ef9c3410973d28131b5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:40:27 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:37 2007 -0700"
      },
      "message": "[SK_BUFF] xfrm: Use skb_set_mac_header in the memmove cases\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48d49d0ccdaa9caff4636ef9c3410973d28131b5",
      "tree": "3bdf0729bf05e817d1bb9c3299906682414f8a76",
      "parents": [
        "f64955eb117ad62480b858fd69a11e6f9e74f60b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:30:58 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:37 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_set_mac_header()\n\nFor the cases where we want to set skb-\u003emac.raw to an offset from skb-\u003edata.\n\nSimple cases first, the memmove ones and specially pktgen will be left for later.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f64955eb117ad62480b858fd69a11e6f9e74f60b",
      "tree": "c61c51a7d8241b96f7973424c66bac87896b6158",
      "parents": [
        "0a1b0ad9ae27f918fd935c6da101083e11446f09"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:17:29 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:35 2007 -0700"
      },
      "message": "[LLC]: Use skb_reset_mac_header in llc_mac_hdr_init\n\nskb_push updates and returns skb-\u003edata, so we can just call\nskb_reset_mac_header after the call to skb_push.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a1b0ad9ae27f918fd935c6da101083e11446f09",
      "tree": "87050d750fb3c0a467558db8168dae422983f6fa",
      "parents": [
        "459a98ed881802dee55897441bc7f77af614368e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 12:14:56 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:34 2007 -0700"
      },
      "message": "[LLC]: Use skb_reset_mac_header in llc_alloc_frame\n\nskb-\u003ehead is equal to skb-\u003edata after alloc_skb, so reset the mac header while\nthis is true, i.e. before skb_reserve.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "459a98ed881802dee55897441bc7f77af614368e",
      "tree": "b81f76632d8f2e21eb91ec3d885091a98398d93e",
      "parents": [
        "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:30:44 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:32 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_reset_mac_header(skb)\n\nFor the common, open coded \u0027skb-\u003emac.raw \u003d skb-\u003edata\u0027 operation, so that we can\nlater turn skb-\u003emac.raw into a offset, reducing the size of struct sk_buff in\n64bit land while possibly keeping it as a pointer on 32bit.\n\nThis one touches just the most simple case, next will handle the slightly more\n\"complex\" cases.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0",
      "tree": "d338fad7a61824d8c14c079c0be437ea4ad83f01",
      "parents": [
        "029720f15dcd3c6c16824177cfc486083b229411"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 17:40:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:30 2007 -0700"
      },
      "message": "[ETH]: Make eth_type_trans set skb-\u003edev like the other *_type_trans\n\nOne less thing for drivers writers to worry about.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "029720f15dcd3c6c16824177cfc486083b229411",
      "tree": "b90f272247be09461fa9c0384b3b3329d1e6ed45",
      "parents": [
        "4839fccea04b5f4d2b3ce01585d6bdbcbc24002c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 11:20:07 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:28 2007 -0700"
      },
      "message": "[AOE]: Introduce aoe_hdr()\n\nFor consistency with other skb-\u003emac.raw users.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4839fccea04b5f4d2b3ce01585d6bdbcbc24002c",
      "tree": "c59de4416fb133f615f8c08864c8d5d0336ad317",
      "parents": [
        "0a4f23fbbff70c268b0f2f5e0b87301c132fb305"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 11:13:59 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:27 2007 -0700"
      },
      "message": "[QETH]: Use eth_hdr()\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a4f23fbbff70c268b0f2f5e0b87301c132fb305",
      "tree": "7de3a6bef26eb360e47d77dcf99c2275d1475f40",
      "parents": [
        "c8fb7948dc1aeff0515b2912b564d4236f6c0ebd"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 10:57:13 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:26 2007 -0700"
      },
      "message": "[HIPPI/FDDI]: Make {hippi,fddi}_type_trans set skb-\u003edev\n\nNow all the _type_trans routines are consistent in this regard.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8fb7948dc1aeff0515b2912b564d4236f6c0ebd",
      "tree": "b9134494f009f037fbcfe0ae17ea02d5eec2e253",
      "parents": [
        "c1a4b86e396b6870b420d23e4d49c7b685aef0a4"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:29:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:24 2007 -0700"
      },
      "message": "[TR]: Make tr_type_trans set skb-\u003edev\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1a4b86e396b6870b420d23e4d49c7b685aef0a4",
      "tree": "5b5377d1aba8bb5f525833c21a50e06a4f8279a1",
      "parents": [
        "7c81fd8bfbaa9732eca142350de5154da6919411"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Mar 19 15:27:07 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:23 2007 -0700"
      },
      "message": "[TR]: Use tr_hdr() were appropriate\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c81fd8bfbaa9732eca142350de5154da6919411",
      "tree": "4187e8a4921be94acfb8ef9542f4badaee58de67",
      "parents": [
        "92f37fd2ee805aa77925c1e64fd56088b46094fc"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 10 00:39:35 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:22 2007 -0700"
      },
      "message": "[SOCKET]: Export __sock_recv_timestamp\n\nKernel: arch/x86_64/boot/bzImage is ready  (#2)\n  MODPOST 1816 modules\nWARNING: \"__sock_recv_timestamp\" [net/sctp/sctp.ko] undefined!\nWARNING: \"__sock_recv_timestamp\" [net/packet/af_packet.ko] undefined!\nWARNING: \"__sock_recv_timestamp\" [net/key/af_key.ko] undefined!\nWARNING: \"__sock_recv_timestamp\" [net/ipv6/ipv6.ko] undefined!\nWARNING: \"__sock_recv_timestamp\" [net/atm/atm.ko] undefined!\nmake[2]: *** [__modpost] Error 1\nmake[1]: *** [modules] Error 2\nmake: *** [_all] Error 2\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92f37fd2ee805aa77925c1e64fd56088b46094fc",
      "tree": "8251c38b83ab362116dac89d94412ce229b42831",
      "parents": [
        "c7a3c5da35055e2fa97ed4f0da3eec4bd0ef4c38"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 25 22:14:49 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:21 2007 -0700"
      },
      "message": "[NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support\n\nNow that network timestamps use ktime_t infrastructure, we can add a new\nSOL_SOCKET sockopt  SO_TIMESTAMPNS.\n\nThis command is similar to SO_TIMESTAMP, but permits transmission of\na \u0027timespec struct\u0027 instead of a \u0027timeval struct\u0027 control message.\n(nanosecond resolution instead of microsecond)\n\nControl message is labelled SCM_TIMESTAMPNS instead of SCM_TIMESTAMP\n\nA socket cannot mix SO_TIMESTAMP and SO_TIMESTAMPNS : the two modes are\nmutually exclusive.\n\nsock_recv_timestamp() became too big to be fully inlined so I added a\n__sock_recv_timestamp() helper function.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: linux-arch@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c7a3c5da35055e2fa97ed4f0da3eec4bd0ef4c38",
      "tree": "cd1bf48945fdf2d872047a76d88642a40eb93d7b",
      "parents": [
        "6dea649a8a4c4b086227018c919298f988c34b30"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 09 13:51:54 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:20 2007 -0700"
      },
      "message": "[UDP]: Use __skb_pull since we have checked it won\u0027t fail with pskb_may_pull\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6dea649a8a4c4b086227018c919298f988c34b30",
      "tree": "982d4bb37f789eac9a7f91892c40a3a955b06546",
      "parents": [
        "e5268f12f26f1f51590cd1ed26547e21c46b08f2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Mar 08 22:36:37 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:19 2007 -0700"
      },
      "message": "[NET]: New sysctls should use __read_mostly tags\n\nnet_msg_warn should be placed in the read_mostly section, to avoid\nperformance problems on SMP\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5268f12f26f1f51590cd1ed26547e21c46b08f2",
      "tree": "fd5738c838ff2759a81ee452cb09b8ba16035067",
      "parents": [
        "4c6510a738c71ca6b4b7b624a7d0a00acebfd7fb"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Mar 08 20:48:23 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:17 2007 -0700"
      },
      "message": "[IPV6]: Ensure to truncate result and return full length for sticky options.\n\nBug noticed by Chris Wright \u003cchrisw@sous-sol.org\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c6510a738c71ca6b4b7b624a7d0a00acebfd7fb",
      "tree": "d24c3f769fb2947e87f9e25ed33316ad867bea74",
      "parents": [
        "3fbe070a4293e8ab2d2edb1bc23f1e5220ce61af"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 18 17:35:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:16 2007 -0700"
      },
      "message": "[IPV6]: Return correct result for sticky options.\n\nWe returned incorrect result with IPV6_RTHDRDSTOPTS, IPV6_RTHDR and\nIPV6_DSTOPTS.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fbe070a4293e8ab2d2edb1bc23f1e5220ce61af",
      "tree": "5d2d86c0b5ab1433a3e233a020dd13965531d249",
      "parents": [
        "6f05f629716a71d4c9c82813f45d3e9a6e90d146"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:46:41 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:15 2007 -0700"
      },
      "message": "[UDP]: deinline\n\nA couple of functions are exported or used indirectly\nso it is pointless to mark them as inline.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f05f629716a71d4c9c82813f45d3e9a6e90d146",
      "tree": "6c953d39dbbbd697b8ff4797e26ab45b1d11da4e",
      "parents": [
        "2de979bd7da9c8b39cc0aabb0ab5aa1516d929eb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:46:03 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:14 2007 -0700"
      },
      "message": "[NET]: deinline some functions\n\nSeveral functions are marked inline or forced inline, but it\nwould be better to let the compiler decide.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2de979bd7da9c8b39cc0aabb0ab5aa1516d929eb",
      "tree": "fa3ad76a09660b3b8dac1c53a64f202088c0764c",
      "parents": [
        "132adf54639cf7dd9315e8df89c2faa59f6e46d9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:45:19 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:13 2007 -0700"
      },
      "message": "[TCP]: whitespace cleanup\n\nAdd whitespace around keywords.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "132adf54639cf7dd9315e8df89c2faa59f6e46d9",
      "tree": "256e3e30e843e6144bdae68e4aad181db5819d0e",
      "parents": [
        "1ac58ee37f439044eb09381f33c97ce0e7f2643b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:44:43 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:11 2007 -0700"
      },
      "message": "[IPV4]: cleanup\n\nAdd whitespace around keywords.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ac58ee37f439044eb09381f33c97ce0e7f2643b",
      "tree": "2482c575c6cb1afffe0bb13480e74a1bcd6f0deb",
      "parents": [
        "e71a4783aae059931f63b2d4e7013e36529badef"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:43:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:10 2007 -0700"
      },
      "message": "[WIRELESS]: use ARRAY_SIZE()\n\nUse ARRAY_SIZE() macro now.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e71a4783aae059931f63b2d4e7013e36529badef",
      "tree": "d9c2bad69b8d0512e12c8ff786237319990fbd00",
      "parents": [
        "add459aa1afe05472abc96f6a29aefd0c84e73d6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Apr 10 20:10:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:09 2007 -0700"
      },
      "message": "[NET] core: whitespace cleanup\n\nFix whitespace around keywords. Fix indentation especially of switch\nstatements.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "add459aa1afe05472abc96f6a29aefd0c84e73d6",
      "tree": "ad788cd549dc8fd2fad6a5f5f3eee13cbe4a0d63",
      "parents": [
        "6516c65573fde5e421c6c92c4b180bbe2245b23b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:42:35 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:08 2007 -0700"
      },
      "message": "[UDP]: ipv6 style cleanup\n\nFix whitespace around keywords. Eliminate unnecessary ()\u0027s on return\nstatements.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6516c65573fde5e421c6c92c4b180bbe2245b23b",
      "tree": "8c319e78cebc128cc3363e12c7faaaebf454c568",
      "parents": [
        "a2a316fd068c455c609ecc155dcfaa7e208d29fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:41:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:07 2007 -0700"
      },
      "message": "[UDP]: ipv4 whitespace cleanup\n\nFix whitespace around keywords.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2a316fd068c455c609ecc155dcfaa7e208d29fe",
      "tree": "9839e2c7e05e9d25241fa7c7b27fd06214120292",
      "parents": [
        "ae40eb1ef30ab4120bd3c8b7e3da99ee53d27a23"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Mar 08 20:41:08 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:05 2007 -0700"
      },
      "message": "[NET]: Replace CONFIG_NET_DEBUG with sysctl.\n\nCovert network warning messages from a compile time to runtime choice.\nRemoves kernel config option and replaces it with new /proc/sys/net/core/warnings.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae40eb1ef30ab4120bd3c8b7e3da99ee53d27a23",
      "tree": "b5ae288b3c27d13bde9648c41d7db3cfe1884bc2",
      "parents": [
        "cb69cc52364690d7789940c480b3a9490784b680"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 18 17:33:16 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:04 2007 -0700"
      },
      "message": "[NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution\n\nNow network timestamps use ktime_t infrastructure, we can add a new\nioctl() SIOCGSTAMPNS command to get timestamps in \u0027struct timespec\u0027.\nUser programs can thus access to nanosecond resolution.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb69cc52364690d7789940c480b3a9490784b680",
      "tree": "725cef0cfc7e43b0826490ccd99769baacf2977d",
      "parents": [
        "fe067e8ab5e0dc5ca3c54634924c628da92090b4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Mar 07 19:33:52 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:03 2007 -0700"
      },
      "message": "[TCP/DCCP/RANDOM]: Remove unused exports.\n\nThis patch removes the following not or no longer used exports:\n- drivers/char/random.c: secure_tcp_sequence_number\n- net/dccp/options.c: sysctl_dccp_feat_sequence_window\n- net/netlink/af_netlink.c: netlink_set_err\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe067e8ab5e0dc5ca3c54634924c628da92090b4",
      "tree": "98f5a6ebbb770f16682cfc52caea2da1e7eeb73b",
      "parents": [
        "02ea4923b4997d7e1310c027081f46d584b9d714"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 07 12:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:02 2007 -0700"
      },
      "message": "[TCP]: Abstract out all write queue operations.\n\nThis allows the write queue implementation to be changed,\nfor example, to one which allows fast interval searching.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "02ea4923b4997d7e1310c027081f46d584b9d714",
      "tree": "804263fd5c5b4add5f4004d0eac0e9ce5583625a",
      "parents": [
        "b6d9bcb0697e60d5424e2f395fe950f0e22f4418"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:21:31 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:01 2007 -0700"
      },
      "message": "[NET] TIPC: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6d9bcb0697e60d5424e2f395fe950f0e22f4418",
      "tree": "1b918fe0a8507214cd6e0eecfb07d956d7e34c49",
      "parents": [
        "8f05ce91c8b801af106611ad83b1d8d7429b9b46"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:21:20 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:24:00 2007 -0700"
      },
      "message": "[NET] SCHED: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8f05ce91c8b801af106611ad83b1d8d7429b9b46",
      "tree": "7fdf8adfbba7ddca8dabe51be5a70c47ee8adfc0",
      "parents": [
        "4412ec494868160d57da6e436a92b0696f40b19d"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:21:00 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:59 2007 -0700"
      },
      "message": "[NET] NETFILTER: Use htonl() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4412ec494868160d57da6e436a92b0696f40b19d",
      "tree": "91bb2477d22a95801a5c487349e89acb464793ec",
      "parents": [
        "1c9e8ef7f731c2548414644e5bf540c38c85aff0"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:19:10 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:58 2007 -0700"
      },
      "message": "[NET] IPV4: Use hton{s,l}() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c9e8ef7f731c2548414644e5bf540c38c85aff0",
      "tree": "e72c4b96b3568ba18d9dfde96c6a6d586d0efca7",
      "parents": [
        "f576e24ffaf2c6b01af389e3bad3342681a8b84f"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:19:05 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:57 2007 -0700"
      },
      "message": "[NET] IEEE80211: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f576e24ffaf2c6b01af389e3bad3342681a8b84f",
      "tree": "bf4972ceb7680483e2df8c2ff401e1e80d246ca2",
      "parents": [
        "724800d61b8bc574a364707b6a6c6a6252e8cdb4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 07 14:19:03 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:56 2007 -0700"
      },
      "message": "[NET] ETHERNET: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "724800d61b8bc574a364707b6a6c6a6252e8cdb4",
      "tree": "5da0b6eeaaa80e1fe550be7708a01ca466e212b9",
      "parents": [
        "aca3192cc60d2bf193c2252e45563c32e3117289"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:13:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:55 2007 -0700"
      },
      "message": "[NET] CORE: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aca3192cc60d2bf193c2252e45563c32e3117289",
      "tree": "d73dc39ae9c9f499a026c56517604af21d63bfd9",
      "parents": [
        "acde4855bb8f5fba8bb065d35ff6ac8a94b3dfa8"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:12:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:54 2007 -0700"
      },
      "message": "[NET] BLUETOOTH: Use cpu_to_le{16,32}() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acde4855bb8f5fba8bb065d35ff6ac8a94b3dfa8",
      "tree": "752be41a4b56e8a4c13759215d5a7c049c80a539",
      "parents": [
        "b93b7eebd328d5c1d171896fb823267539d4a0f6"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:12:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:53 2007 -0700"
      },
      "message": "[NET] ATM: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b93b7eebd328d5c1d171896fb823267539d4a0f6",
      "tree": "652add75965e7829b903a4e92e3cd24d228f1011",
      "parents": [
        "2953fd246845f4d00af3717163f37b2ff4c5ce29"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:12:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:53 2007 -0700"
      },
      "message": "[NET] 8021Q: Use htons() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2953fd246845f4d00af3717163f37b2ff4c5ce29",
      "tree": "a66f03e86ffb44b201f4f876b6826ccce4232108",
      "parents": [
        "759e5d006462d53fb708daa8284b4ad909415da1"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:11:55 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:52 2007 -0700"
      },
      "message": "[NET] 802: Use hton{s,l}() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "759e5d006462d53fb708daa8284b4ad909415da1",
      "tree": "edcc4e9d975199b3fe5e2aadc3d1e06824755e75",
      "parents": [
        "1ab6eb62b02e0949a392fb19bf31ba59ae1022b1"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Mar 25 20:10:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:51 2007 -0700"
      },
      "message": "[UDP]: Clean up UDP-Lite receive checksum\n\nThis patch eliminates some duplicate code for the verification of\nreceive checksums between UDP-Lite and UDP.  It does this by\nintroducing __skb_checksum_complete_head which is identical to\n__skb_checksum_complete_head apart from the fact that it takes\na length parameter rather than computing the first skb-\u003elen bytes.\n\nAs a result UDP-Lite will be able to use hardware checksum offload\nfor packets which do not use partial coverage checksums.  It also\nmeans that UDP-Lite loopback no longer does unnecessary checksum\nverification.\n\nIf any NICs start support UDP-Lite this would also start working\nautomatically.\n\nThis patch removes the assumption that msg_flags has MSG_TRUNC clear\nupon entry in recvmsg.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1ab6eb62b02e0949a392fb19bf31ba59ae1022b1",
      "tree": "1f4449baccd0de7fa900c39d04c78deebb79242b",
      "parents": [
        "243bbcaa09e8482aa28065cbc2eb99f0ca2fc8d6"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Mar 06 20:29:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:50 2007 -0700"
      },
      "message": "[UDP6]: Restore sk_filter optimisation\n\nThis reverts the changeset\n\n    [IPV6]: UDPv6 checksum.\n\n    We always need to check UDPv6 checksum because it is mandatory.\n\nThe sk_filter optimisation has nothing to do whether we verify the\nchecksum.  It simply postpones it to the point when the user calls\nrecv or poll.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "243bbcaa09e8482aa28065cbc2eb99f0ca2fc8d6",
      "tree": "e542a4ed151de034779fa311f8d89a55ac90f685",
      "parents": [
        "43e683926f808cec9802466c27cee7499eda3d11"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Mar 06 20:23:10 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:49 2007 -0700"
      },
      "message": "[IPV4]: Optimize inet_getpeer()\n\n1) Some sysctl vars are declared __read_mostly\n\n2) We can avoid updating stack[] when doing an AVL lookup only.\n\n    lookup() macro is extended to receive a second parameter, that may be NULL\nin case of a pure lookup (no need to save the AVL path). This removes\nunnecessary instructions, because compiler knows if this _stack parameter is\nNULL or not.\n\n    text size of net/ipv4/inetpeer.o is 2063 bytes instead of 2107 on x86_64\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43e683926f808cec9802466c27cee7499eda3d11",
      "tree": "869b0138282a4f4391906f805fbf272e51f296f7",
      "parents": [
        "c5f5877c043ca471c3a607fa2c864848b19bc49a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Mar 06 20:21:20 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:48 2007 -0700"
      },
      "message": "[TCP] TCP Yeah: cleanup\n\nEliminate need for full 6/4/64 divide to compute queue.\nVariable maxqueue was really a constant.\nFix indentation.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5f5877c043ca471c3a607fa2c864848b19bc49a",
      "tree": "b28d6cf22a0fc96f86a5c07a1b64cd8a2d3c7668",
      "parents": [
        "8570419fb7be0af84085ac8f13307392a748482c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 25 20:21:15 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:47 2007 -0700"
      },
      "message": "[TCP] tcp_cubic: faster cube root\n\nThe Newton-Raphson method is quadratically convergent so\nonly a small fixed number of steps are necessary.\nTherefore it is faster to unroll the loop. Since div64_64 is no longer\ninline it won\u0027t cause code explosion.\n\nAlso fixes a bug that can occur if x^2 was bigger than 32 bits.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8570419fb7be0af84085ac8f13307392a748482c",
      "tree": "1df16a424f6c9e12a768a17aa67367aa66ca7b33",
      "parents": [
        "fc910a27839584209726537698b596576940add4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Mar 06 20:19:26 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:46 2007 -0700"
      },
      "message": "[ATM] ENI: Convert to struct timeval to ktime_t.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fc910a27839584209726537698b596576940add4",
      "tree": "e03b021dcb5046ffb1e8154f0f4d4bc72c4c1c1d",
      "parents": [
        "ca043569390c528de4cd5ec9e07502f2bf4ecd1f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 25 20:27:59 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:45 2007 -0700"
      },
      "message": "[NETLINK]: Limit NLMSG_GOODSIZE to 8K.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ca043569390c528de4cd5ec9e07502f2bf4ecd1f",
      "tree": "939512ab133de1d85350e8ce5365f9daf4b2b63b",
      "parents": [
        "95c385b4d5a71b8ad552aecaa968ea46d7da2f6a"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Feb 28 23:13:20 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:44 2007 -0700"
      },
      "message": "[IPV6] ADDRCONF: Fix possible inet6_ifaddr leakage with CONFIG_OPTIMISTIC_DAD.\n\nThe inet6_ifaddr for source address of RS is leaked if the address\nis not an optimistic address.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c385b4d5a71b8ad552aecaa968ea46d7da2f6a",
      "tree": "49d8e60418cb4eeb0c9ed79fd095af50f6ec6623",
      "parents": [
        "502b093569e48db264831be7966e1c447de2f52f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Apr 25 17:08:10 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:43 2007 -0700"
      },
      "message": "[IPV6] ADDRCONF: Optimistic Duplicate Address Detection (RFC 4429) Support.\n\nNominally an autoconfigured IPv6 address is added to an interface in the\nTentative state (as per RFC 2462).  Addresses in this state remain in this\nstate while the Duplicate Address Detection process operates on them to\ndetermine their uniqueness on the network.  During this period, these\ntentative addresses may not be used for communication, increasing the time\nbefore a node may be able to communicate on a network.  Using Optimistic\nDuplicate Address Detection, autoconfigured addresses may be used\nimmediately for communication on the network, as long as certain rules are\nfollowed to avoid conflicts with other nodes during the Duplicate Address\nDetection process.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "502b093569e48db264831be7966e1c447de2f52f",
      "tree": "7b9bc3f76ce37d6f907cfe8fa18317ad11e6eb1c",
      "parents": [
        "3144581cb0b4b1ef897470195128cc1c8dc037b6"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Thu Nov 30 14:43:28 2006 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:42 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Enable to control the handled inner protocol.\n\nip6_tunnel before supporting IPv4/IPv6 tunnel allows only IPPROTO_IPV6\nin configurations from userland. This allows userland to set IPPROTO_IPIP\nand 0(wildcard). ip6_tunnel only handles allowed inner protocols.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3144581cb0b4b1ef897470195128cc1c8dc037b6",
      "tree": "1d4dd794bcda78fdae4129348c8966c53f3818ad",
      "parents": [
        "c4d3efafcc933fd2ffd169d7dc4f980393a13796"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sat Feb 10 00:30:33 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:41 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Rename functions ip6ip6_* to ip6_tnl_*.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4d3efafcc933fd2ffd169d7dc4f980393a13796",
      "tree": "01ecdc7128ae03c29acbd605589a56420bcf95ec",
      "parents": [
        "61ec2aec28ba8de09f76a558a5d6d3893b1d2e47"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Thu Feb 15 00:43:16 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:40 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Add support to IPv4 over IPv6 tunnel.\n\nSome notes\n- Protocol number IPPROTO_IPIP is used for IPv4 over IPv6 packets.\n- If IP6_TNL_F_USE_ORIG_TCLASS is set, TOS in IPv4 header is copied to\n  Traffic Class in outer IPv6 header on xmit.\n- IP6_TNL_F_USE_ORIG_FLOWLABEL is ignored on xmit of IPv4 packets, because\n  IPv4 header does not have flow label.\n- Kernel sends ICMP error if IPv4 packet is too big on xmit, even if\n  DF flag is not set.\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61ec2aec28ba8de09f76a558a5d6d3893b1d2e47",
      "tree": "50499ae5687150205a324fe3d79c4b022f6e3d67",
      "parents": [
        "8359925be8bb5960f614e3f25454f3ef7cc9df65"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Sun Nov 05 22:56:45 2006 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:39 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Split out generic routine in ip6ip6_xmit().\n\nThis enables to add IPv4/IPv6 specific handling later,\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8359925be8bb5960f614e3f25454f3ef7cc9df65",
      "tree": "4dd61c55544be0d6d1522d9ec2a4ad61b860058b",
      "parents": [
        "e490d1d85cf5e191791979e5f260d32eb4f703a8"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Fri Nov 03 09:39:14 2006 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:38 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Split out generic routine in ip6ip6_rcv().\n\nThis enables to add IPv4/IPv6 specific handling later,\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e490d1d85cf5e191791979e5f260d32eb4f703a8",
      "tree": "7de61c8d4f1807ae2675889d06f16058b60fbac6",
      "parents": [
        "7159039a128fa0a73ca7b532f6e1d30d9885277f"
      ],
      "author": {
        "name": "Yasuyuki Kozakai",
        "email": "yasuyuki.kozakai@toshiba.co.jp",
        "time": "Tue Oct 31 23:11:25 2006 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:37 2007 -0700"
      },
      "message": "[IPV6] IP6TUNNEL: Split out generic routine in ip6ip6_err().\n\nThis enables to add IPv4/IPv6 specific error handling later,\n\nSigned-off-by: Yasuyuki Kozakai \u003cyasuyuki.kozakai@toshiba.co.jp\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7159039a128fa0a73ca7b532f6e1d30d9885277f",
      "tree": "0d02459f9716d7fe5268c1bcbd9b1b9e531b882b",
      "parents": [
        "b558ff799977a4eda8b3823d1cf6c1c33becb671"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Thu Feb 22 22:05:40 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:36 2007 -0700"
      },
      "message": "[IPV6]: Decentralize EXPORT_SYMBOLs.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "b558ff799977a4eda8b3823d1cf6c1c33becb671",
      "tree": "b68b90c1891120e2904fd5b68d9192ef6ae74d43",
      "parents": [
        "b7aa0bf70c4afb9e38be25f5c0922498d0f8684c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 06 17:02:35 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:35 2007 -0700"
      },
      "message": "[NETLINK]: Mirror UDP MSG_TRUNC semantics.\n\nIf the user passes MSG_TRUNC in via msg_flags, return\nthe full packet size not the truncated size.\n\nIdea from Herbert Xu and Thomas Graf.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b7aa0bf70c4afb9e38be25f5c0922498d0f8684c",
      "tree": "4bc9d61031f4eb40d73887d6bde09e7d6bf2b259",
      "parents": [
        "3927f2e8f9afa3424bb51ca81f7abac01ffd0005"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Apr 19 16:16:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:34 2007 -0700"
      },
      "message": "[NET]: convert network timestamps to ktime_t\n\nWe currently use a special structure (struct skb_timeval) and plain\n\u0027struct timeval\u0027 to store packet timestamps in sk_buffs and struct\nsock.\n\nThis has some drawbacks :\n- Fixed resolution of micro second.\n- Waste of space on 64bit platforms where sizeof(struct timeval)\u003d16\n\nI suggest using ktime_t that is a nice abstraction of high resolution\ntime services, currently capable of nanosecond resolution.\n\nAs sizeof(ktime_t) is 8 bytes, using ktime_t in \u0027struct sock\u0027 permits\na 8 byte shrink of this structure on 64bit architectures. Some other\nstructures also benefit from this size reduction (struct ipq in\nipv4/ip_fragment.c, struct frag_queue in ipv6/reassembly.c, ...)\n\nOnce this ktime infrastructure adopted, we can more easily provide\nnanosecond resolution on top of it. (ioctl SIOCGSTAMPNS and/or\nSO_TIMESTAMPNS/SCM_TIMESTAMPNS)\n\nNote : this patch includes a bug correction in\ncompat_sock_get_timestamp() where a \"err \u003d 0;\" was missing (so this\nsyscall returned -ENOENT instead of 0)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCC: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCC: John find \u003clinux.kernel@free.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3927f2e8f9afa3424bb51ca81f7abac01ffd0005",
      "tree": "da9e335169572e6c743c084edce6a802f9e667ee",
      "parents": [
        "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 25 19:54:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:33 2007 -0700"
      },
      "message": "[NET]: div64_64 consolidate (rev3)\n\nHere is the current version of the 64 bit divide common code.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5",
      "tree": "69a3ca50c6e266853676a545a113f13f254ae535",
      "parents": [
        "39df232f1a9ba48d41c68ee7d4046756e709cf91"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Mar 04 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:32 2007 -0700"
      },
      "message": "[NET]: Convert xtime.tv_sec to get_seconds()\n\nWhere appropriate, convert references to xtime.tv_sec to the\nget_seconds() helper function.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
      "tree": "8778c69e9b70f55d9c3161674887f3de217a0d6a",
      "parents": [
        "d5f1ce9a5e80fb315c86b036a89b1237fdf11938"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 04 16:11:51 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:31 2007 -0700"
      },
      "message": "[PKTGEN]: fix device name handling\n\nSince devices can change name and other wierdness, don\u0027t hold onto\na copy of device name, instead use pointer to output device.\n\nFix a couple of leaks in error handling path as well.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d5f1ce9a5e80fb315c86b036a89b1237fdf11938",
      "tree": "2b483d400c7372060ad5d18fd02d0e5317bd0620",
      "parents": [
        "5fa6fc76f55c5c42fff52ae1d57a685b9373fcdc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 04 16:08:08 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:30 2007 -0700"
      },
      "message": "[PKTGEN]: don\u0027t use __constant_htonl()\n\nThe existing htonl() macro is smart enough to do the same code as\nusing __constant_htonl() and it looks cleaner.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5fa6fc76f55c5c42fff52ae1d57a685b9373fcdc",
      "tree": "e8933cb78972d499b1e6b469ae38dd02d66f54a2",
      "parents": [
        "25c4e53a4c9bfe45be52821f54ec5ce957519db2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 04 16:07:28 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:29 2007 -0700"
      },
      "message": "[PKTGEN]: use random32\n\nCan use random32() now.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25c4e53a4c9bfe45be52821f54ec5ce957519db2",
      "tree": "6dcb76921197aca57aa6e7b8553c666e407520fe",
      "parents": [
        "fa438ccfdfd3f6db02c13b61b21454eb81cd6a13"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 04 16:06:47 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:28 2007 -0700"
      },
      "message": "[PKTGEN]: use pr_debug\n\nRemove private debug macro and replace with standard version\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: Robert Olsson \u003crobert.olsson@its.uu.se\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fa438ccfdfd3f6db02c13b61b21454eb81cd6a13",
      "tree": "a1759259d7543586185e2fb9db21461147944f18",
      "parents": [
        "e317f6f69cb95527799d308a9421b7dc1252989a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 04 16:05:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:27 2007 -0700"
      },
      "message": "[NET]: Keep sk_backlog near sk_lock\n\nsk_backlog is a critical field of struct sock. (known famous words)\n\nIt is (ab)used in hot paths, in particular in release_sock(), tcp_recvmsg(),\ntcp_v4_rcv(), sk_receive_skb().\n\nIt really makes sense to place it next to sk_lock, because sk_backlog is only\nused after sk_lock locked (and thus memory cache line in L1 cache). This\nshould reduce cache misses and sk_lock acquisition time.\n\n(In theory, we could only move the head pointer near sk_lock, and leaving tail\nfar away, because \u0027tail\u0027 is normally not so hot, but keep it simple :) )\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e317f6f69cb95527799d308a9421b7dc1252989a",
      "tree": "141ff608a450f1d768383f300cc204db5904b20c",
      "parents": [
        "e01f9d7793be82e6c252efbd52c399d3eb65abe4"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Mar 02 13:34:19 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:26 2007 -0700"
      },
      "message": "[TCP]: FRTO undo response falls back to ratehalving one if ECEd\n\nUndoing ssthresh is disabled in fastretrans_alert whenever\nFLAG_ECE is set by clearing prior_ssthresh. The clearing does\nnot protect FRTO because FRTO operates before fastretrans_alert.\nMoving the clearing of prior_ssthresh earlier seems to be a\nsuboptimal solution to the FRTO case because then FLAG_ECE will\ncause a second ssthresh reduction in try_to_open (the first\noccurred when FRTO was entered). So instead, FRTO falls back\nimmediately to the rate halving response, which switches TCP to\nCA_CWR state preventing the latter reduction of ssthresh.\n\nIf the first ECE arrived before the ACK after which FRTO is able\nto decide RTO as spurious, prior_ssthresh is already cleared.\nThus no undoing for ssthresh occurs. Besides, FLAG_ECE should be\nset also in the following ACKs resulting in rate halving response\nthat sees TCP is already in CA_CWR, which again prevents an extra\nssthresh reduction on that round-trip.\n\nIf the first ECE arrived before RTO, ssthresh has already been\nadapted and prior_ssthresh remains cleared on entry because TCP\nis in CA_CWR (the same applies also to a case where FRTO is\nentered more than once and ECE comes in the middle).\n\nHigh_seq must not be touched after tcp_enter_cwr because CWR\nround-trip calculation depends on it.\n\nI believe that after this patch, FRTO should be ECN-safe and\neven able to take advantage of synergy benefits.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e01f9d7793be82e6c252efbd52c399d3eb65abe4",
      "tree": "105614d2762c048d4e30e9456156101650664266",
      "parents": [
        "89808060b7a71376cc2ba8092d43b2010da465b6"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Mar 02 13:27:25 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:25 2007 -0700"
      },
      "message": "[TCP]: Complete icsk-to-local-variable change (in tcp_enter_cwr)\n\nA local variable for icsk was created but this change was\nmissing. Spotted by Jarek Poplawski.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89808060b7a71376cc2ba8092d43b2010da465b6",
      "tree": "01aaf2372cb8675559cd00273645e12416189b6e",
      "parents": [
        "3cfe3baaf07c9e40a75f9a70662de56df1c246a8"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Feb 27 10:10:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:24 2007 -0700"
      },
      "message": "[TCP] Sysctl documentation: tcp_frto_response\n\nIn addition, fixed minor things in tcp_frto sysctl.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3cfe3baaf07c9e40a75f9a70662de56df1c246a8",
      "tree": "989b2aff491b5df3aa0215f611a8c7f1360c67e9",
      "parents": [
        "c5e7af0df5d7234afd8596560d9f570cfc6c18bf"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Tue Feb 27 10:09:49 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:23 2007 -0700"
      },
      "message": "[TCP]: Add two new spurious RTO responses to FRTO\n\nNew sysctl tcp_frto_response is added to select amongst these\nresponses:\n\t- Rate halving based; reuses CA_CWR state (default)\n\t- Very conservative; used to be the only one available (\u003d1)\n\t- Undo cwr; undoes ssthresh and cwnd reductions (\u003d2)\n\nThe response with rate halving requires a new parameter to\ntcp_enter_cwr because FRTO has already reduced ssthresh and\ndoing a second reduction there has to be prevented. In addition,\nto keep things nice on 80 cols screen, a local variable was\nadded.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5e7af0df5d7234afd8596560d9f570cfc6c18bf",
      "tree": "c01b2354803f79b65ab4d919570da156a761593b",
      "parents": [
        "e0ef57cc56c3c96493f9b0d6c77bb9608eeaa173"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Feb 23 16:22:06 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:22 2007 -0700"
      },
      "message": "[TCP]: Correct reordering detection change (no FRTO case)\n\nThe reordering detection must work also when FRTO has not been\nused at all which was the original intention of mine, just the\nexpression of the idea was flawed.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0ef57cc56c3c96493f9b0d6c77bb9608eeaa173",
      "tree": "df6c7b65456507354b35b7b318332a3c8d11f98e",
      "parents": [
        "54287cc178cf85dbae0decec8b4dc190bff757ad"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Feb 22 22:52:59 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:21 2007 -0700"
      },
      "message": "[TCP]: Make snd_cwnd_clamp a u32.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "54287cc178cf85dbae0decec8b4dc190bff757ad",
      "tree": "44dedf7be5ac37fae65718d359ff598902247753",
      "parents": [
        "cf4c6bf83d0fa070f60b1ba8124dfe0e65fbfbcc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Feb 22 03:20:44 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:21 2007 -0700"
      },
      "message": "[TCP]: Keep copied_seq, rcv_wup and rcv_next together.\n\nI noticed in oprofile study a cache miss in tcp_rcv_established() to read\ncopied_seq.\n\nffffffff80400a80 \u003ctcp_rcv_established\u003e: /* tcp_rcv_established total: 4034293  \n2.0400 */\n\n 55493  0.0281 :ffffffff80400bc9:   mov    0x4c8(%r12),%eax copied_seq\n543103  0.2746 :ffffffff80400bd1:   cmp    0x3e0(%r12),%eax   rcv_nxt    \n\nif (tp-\u003ecopied_seq \u003d\u003d tp-\u003ercv_nxt \u0026\u0026\n        len - tcp_header_len \u003c\u003d tp-\u003eucopy.len) {\n\nIn this function, the cache line 0x4c0 -\u003e 0x500 is used only for this\nreading \u0027copied_seq\u0027 field.\n\nrcv_wup and copied_seq should be next to rcv_nxt field, to lower number of\nactive cache lines in hot paths. (tcp_rcv_established(), tcp_poll(), ...)\n\nAs you suggested, I changed tcp_create_openreq_child() so that these fields\nare changed together, to avoid adding a new store buffer stall.\n\nPatch is 64bit friendly (no new hole because of alignment constraints)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf4c6bf83d0fa070f60b1ba8124dfe0e65fbfbcc",
      "tree": "8d598a6de7236439d31939a08d9bfe96224a2768",
      "parents": [
        "886236c1247ab5e2ad9c73f6e9a652e3ae3c8b07"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Thu Feb 22 01:13:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:20 2007 -0700"
      },
      "message": "[TCP]: struct *sock argument renamed: sp -\u003e sk\n\nIn general, TCP code uses \"sk\" for struct sock pointer.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "886236c1247ab5e2ad9c73f6e9a652e3ae3c8b07",
      "tree": "f0ab2d6f6b6c98c6042be100db752c2d492669ae",
      "parents": [
        "5ef814753eb810d900fbd77af7c87f6d04f0e551"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Sun Mar 25 19:21:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:19 2007 -0700"
      },
      "message": "[TCP]: Add RFC3742 Limited Slow-Start, controlled by variable sysctl_tcp_max_ssthresh.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ef814753eb810d900fbd77af7c87f6d04f0e551",
      "tree": "5ef93769f33ea5676588aab48179a0c614e6275c",
      "parents": [
        "127af0c44fc916908abd145914d65b9fe598bcd7"
      ],
      "author": {
        "name": "Angelo P. Castellani",
        "email": "angelo.castellani@gmail.con",
        "time": "Thu Feb 22 00:23:05 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:18 2007 -0700"
      },
      "message": "[TCP] YeAH-TCP: algorithm implementation\n\nYeAH-TCP is a sender-side high-speed enabled TCP congestion control\nalgorithm, which uses a mixed loss/delay approach to compute the\ncongestion window. It\u0027s design goals target high efficiency, internal,\nRTT and Reno fairness, resilience to link loss while keeping network\nelements load as low as possible.\n\nFor further details look here:\n    http://wil.cs.caltech.edu/pfldnet2007/paper/YeAH_TCP.pdf\n\nSigned-off-by: Angelo P. Castellani \u003cangelo.castellani@gmail.con\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "127af0c44fc916908abd145914d65b9fe598bcd7",
      "tree": "d79b59f282431655d03cdd4587ef0d2fbe877c36",
      "parents": [
        "4dc2665e3634d720a62bd27128fc8781fcdad2dc"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:16:38 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:17 2007 -0700"
      },
      "message": "[TCP] FRTO: Sysctl documentation for SACK enhanced version\n\nThe description is overly verbose to avoid ambiguity between\n\"SACK enabled\" and \"SACK enhanced FRTO\"\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4dc2665e3634d720a62bd27128fc8781fcdad2dc",
      "tree": "6829101a6eeadb446e45b4a825f148988332d84b",
      "parents": [
        "288035f915686a9a9e85e0358c5392bb5d7ae58d"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:16:11 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:16 2007 -0700"
      },
      "message": "[TCP]: SACK enhanced FRTO\n\nImplements the SACK-enhanced FRTO given in RFC4138 using the\nvariant given in Appendix B.\n\nRFC4138, Appendix B:\n  \"This means that in order to declare timeout spurious, the TCP\n   sender must receive an acknowledgment for non-retransmitted\n   segment between SND.UNA and RecoveryPoint in algorithm step 3.\n   RecoveryPoint is defined in conservative SACK-recovery\n   algorithm [RFC3517]\"\n\nThe basic version of the FRTO algorithm can still be used also\nwhen SACK is enabled. To enabled SACK-enhanced version, tcp_frto\nsysctl is set to 2.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "288035f915686a9a9e85e0358c5392bb5d7ae58d",
      "tree": "fcf6684a8750e12f5bb9d3a7f70062a574b3ff03",
      "parents": [
        "66e93e45c09affa407750cc06398492e8b897848"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:14:42 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:15 2007 -0700"
      },
      "message": "[TCP]: Prevent reordering adjustments during FRTO\n\nTo be honest, I\u0027m not too sure how the reord stuff works in the\nfirst place but this seems necessary.\n\nWhen FRTO has been active, the one and only retransmission could\nbe unnecessary but the state and sending order might not be what\nthe sacktag code expects it to be (to work correctly).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66e93e45c09affa407750cc06398492e8b897848",
      "tree": "bcf65f7c29a3bd27eb386198560463f3eece7d41",
      "parents": [
        "d1a54c6a0a3f9c2c4ef71982d89b8571bd9eaa51"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:13:47 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:14 2007 -0700"
      },
      "message": "[TCP] FRTO: Fake cwnd for ssthresh callback\n\nTCP without FRTO would be in Loss state with small cwnd. FRTO,\nhowever, leaves cwnd (typically) to a larger value which causes\nssthresh to become too large in case RTO is triggered again\ncompared to what conventional recovery would do. Because\nconsecutive RTOs result in only a single ssthresh reduction,\nRTO+cumulative ACK+RTO pattern is required to trigger this\nevent.\n\nA large comment is included for congestion control module writers\ntrying to figure out what CA_EVENT_FRTO handler should do because\nthere exists a remote possibility of incompatibility between\nFRTO and module defined ssthresh functions.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1a54c6a0a3f9c2c4ef71982d89b8571bd9eaa51",
      "tree": "4edf68266db30b59cccd10194911bbfd5d123e38",
      "parents": [
        "46d0de4ed92650b95f27acae09914996bbe624e7"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:11:57 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:13 2007 -0700"
      },
      "message": "[TCP] FRTO: Reverse RETRANS bit clearing logic\n\nPreviously RETRANS bits were cleared on the entry to FRTO. We\npostpone that into tcp_enter_frto_loss, which is really the\nplace were the clearing should be done anyway. This allows\nsimplification of the logic from a clearing loop to the head skb\nclearing only.\n\nBesides, the other changes made in the previous patches to\ntcp_use_frto made it impossible for the non-SACKed FRTO to be\nentered if other than the head has been rexmitted.\n\nWith SACK-enhanced FRTO (and Appendix B), however, there can be\na number retransmissions in flight when RTO expires (same thing\ncould happen before this patchset also with non-SACK FRTO). To\nnot introduce any jumpiness into the packet counting during FRTO,\ninstead of clearing RETRANS bits from skbs during entry, do it\nlater on.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46d0de4ed92650b95f27acae09914996bbe624e7",
      "tree": "455e6a9772294ef16a88800709685797e1779b75",
      "parents": [
        "7c9a4a5b67926dd186d427bc5b9fce6ccbde154c"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:10:39 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:12 2007 -0700"
      },
      "message": "[TCP] FRTO: Entry is allowed only during (New)Reno like recovery\n\nThis interpretation comes from RFC4138:\n    \"If the sender implements some loss recovery algorithm other\n     than Reno or NewReno [FHG04], the F-RTO algorithm SHOULD\n     NOT be entered when earlier fast recovery is underway.\"\n\nI think the RFC means to say (especially in the light of\nAppendix B) that ...recovery is underway (not just fast recovery)\nor was underway when it was interrupted by an earlier (F-)RTO\nthat hasn\u0027t yet been resolved (snd_una has not advanced enough).\nThus, my interpretation is that whenever TCP has ever\nretransmitted other than head, basic version cannot be used\nbecause then the order assumptions which are used as FRTO basis\ndo not hold.\n\nNewReno has only the head segment retransmitted at a time.\nTherefore, walk up to the segment that has not been SACKed, if\nthat segment is not retransmitted nor anything before it, we know\nfor sure, that nothing after the non-SACKed segment should be\neither. This assumption is valid because TCPCB_EVER_RETRANS does\nnot leave holes but each non-SACKed segment is rexmitted\nin-order.\n\nCheck for retrans_out \u003e 1 avoids more expensive walk through the\nskb list, as we can know the result beforehand: F-RTO will not be\nallowed.\n\nSACKed skb can turn into non-SACked only in the extremely rare\ncase of SACK reneging, in this case we might fail to detect\nretransmissions if there were them for any other than head. To\nget rid of that feature, whole rexmit queue would have to be\nwalked (always) or FRTO should be prevented when SACK reneging\nhappens. Of course RTO should still trigger after reneging which\nmakes this issue even less likely to show up. And as long as the\nresponse is as conservative as it\u0027s now, nothing bad happens even\nthen.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c9a4a5b67926dd186d427bc5b9fce6ccbde154c",
      "tree": "8fe8dd5ab09fda204689dfc98fb03dbf99d58cf3",
      "parents": [
        "94d0ea7786714d78d7cb73144bb850254dd0bb78"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:08:34 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:11 2007 -0700"
      },
      "message": "[TCP]: Prevent unrelated cwnd adjustment while using FRTO\n\nFRTO controls cwnd when it still processes the ACK input or it\nhas just reverted back to conventional RTO recovery; the normal\nrules apply when FRTO has reverted to standard congestion\ncontrol.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94d0ea7786714d78d7cb73144bb850254dd0bb78",
      "tree": "f1164ec64d45fbfd978ec5f3a1f31ba628c6d8fe",
      "parents": [
        "52c63f1e86ebb18ef4b710b5b647e552a041e5ca"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:07:27 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:10 2007 -0700"
      },
      "message": "[TCP] FRTO: frto_counter modulo-op converted to two assignments\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52c63f1e86ebb18ef4b710b5b647e552a041e5ca",
      "tree": "3df85c27c8ba1f5e22d058dd2a0cb1f6850de777",
      "parents": [
        "aa8b6a7ad147dfbaaf10368ff15df9418b670d8b"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:06:52 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:09 2007 -0700"
      },
      "message": "[TCP]: Don\u0027t enter to fast recovery while using FRTO\n\nBecause TCP is not in Loss state during FRTO recovery, fast\nrecovery could be triggered by accident. Non-SACK FRTO is more\nrobust than not yet included SACK-enhanced version (that can\nreceiver high number of duplicate ACKs with SACK blocks during\nFRTO), at least with unidirectional transfers, but under\nextraordinary patterns fast recovery can be incorrectly\ntriggered, e.g., Data loss+ACK losses \u003d\u003e cumulative ACK with\nenough SACK blocks to meet sacked_out \u003e\u003d dupthresh condition).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa8b6a7ad147dfbaaf10368ff15df9418b670d8b",
      "tree": "585faa6ca42629048ec71c0f8d374a845462a0fb",
      "parents": [
        "95c4922bf9330eb2c71b752359dd89c4e166f3c5"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:06:03 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:08 2007 -0700"
      },
      "message": "[TCP] FRTO: Response should reset also snd_cwnd_cnt\n\nSince purpose is to reduce CWND, we prevent immediate growth. This\nis not a major issue nor is \"the correct way\" specified anywhere.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c4922bf9330eb2c71b752359dd89c4e166f3c5",
      "tree": "97587ad7770afeca1196b3ef9d5b08bf4ee4fb95",
      "parents": [
        "6408d206c7484615ecae54bf6474a02c94e9e862"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:05:18 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:07 2007 -0700"
      },
      "message": "[TCP] FRTO: fixes fallback to conventional recovery\n\nThe FRTO detection did not care how ACK pattern affects to cwnd\ncalculation of the conventional recovery. This caused incorrect\nsetting of cwnd when the fallback becames necessary. The\nknowledge tcp_process_frto() has about the incoming ACK is now\npassed on to tcp_enter_frto_loss() in allowed_segments parameter\nthat gives the number of segments that must be added to\npackets-in-flight while calculating the new cwnd.\n\nInstead of snd_una we use FLAG_DATA_ACKED in duplicate ACK\ndetection because RFC4138 states (in Section 2.2):\n  If the first acknowledgment after the RTO retransmission\n  does not acknowledge all of the data that was retransmitted\n  in step 1, the TCP sender reverts to the conventional RTO\n  recovery.  Otherwise, a malicious receiver acknowledging\n  partial segments could cause the sender to declare the\n  timeout spurious in a case where data was lost.\n\nIf the next ACK after RTO is duplicate, we do not retransmit\nanything, which is equal to what conservative conventional\nrecovery does in such case.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6408d206c7484615ecae54bf6474a02c94e9e862",
      "tree": "43dfb94f6da8445484d987aced10dd8d304bdc4e",
      "parents": [
        "7b0eb22b1d3b049306813a4aaa52966650f7491c"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:04:11 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:06 2007 -0700"
      },
      "message": "[TCP] FRTO: Ignore some uninteresting ACKs\n\nHandles RFC4138 shortcoming (in step 2); it should also have case\nc) which ignores ACKs that are not duplicates nor advance window\n(opposite dir data, winupdate).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b0eb22b1d3b049306813a4aaa52966650f7491c",
      "tree": "a5a126032d0c69b9c5977754d42efd301b7ab442",
      "parents": [
        "7487c48c4fd15d1e2542be1183b783562cfe10bc"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:03:35 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:05 2007 -0700"
      },
      "message": "[TCP] FRTO: Use Disorder state during operation instead of Open\n\nRetransmission counter assumptions are to be changed. Forcing\nreason to do this exist: Using sysctl in check would be racy\nas soon as FRTO starts to ignore some ACKs (doing that in the\nfollowing patches). Userspace may disable it at any moment\ngiving nice oops if timing is right. frto_counter would be\ninaccessible from userspace, but with SACK enhanced FRTO\nretrans_out can include other than head, and possibly leaving\nit non-zero after spurious RTO, boom again.\n\nLuckily, solution seems rather simple: never go directly to Open\nstate but use Disorder instead. This does not really change much,\nsince TCP could anyway change its state to Disorder during FRTO\nusing path tcp_fastretrans_alert -\u003e tcp_try_to_open (e.g., when\na SACK block makes ACK dubious). Besides, Disorder seems to be\nthe state where TCP should be if not recovering (in Recovery or\nLoss state) while having some retransmissions in-flight (see\ntcp_try_to_open), which is exactly what happens with FRTO.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7487c48c4fd15d1e2542be1183b783562cfe10bc",
      "tree": "7939c5dfcfcbcc0b0984879a237518e7ff636a7f",
      "parents": [
        "30935cf4f915c3178ce63331d6ff4c82163e26af"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:02:30 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:04 2007 -0700"
      },
      "message": "[TCP] FRTO: Consecutive RTOs keep prior_ssthresh and ssthresh\n\nIn case a latency spike causes more than one RTO, the later should not\ncause the already reduced ssthresh to propagate into the prior_ssthresh\nsince FRTO declares all such RTOs spurious at once or none of them. In\ntreating of ssthresh, we mimic what tcp_enter_loss() does.\n\nThe previous state (in frto_counter) must be available until we have\nchecked it in tcp_enter_frto(), and also ACK information flag in\nprocess_frto().\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "30935cf4f915c3178ce63331d6ff4c82163e26af",
      "tree": "481acea11d681837c87d6da0a9bc848384ce4199",
      "parents": [
        "bdaae17da81db79b9aa4dfbf43305cfeef64f6a8"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 23:01:36 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:03 2007 -0700"
      },
      "message": "[TCP] FRTO: Comment cleanup \u0026 improvement\n\nMoved comments out from the body of process_frto() to the head\n(preferred way; see Documentation/CodingStyle). Bonus: it\u0027s much\neasier to read in this compacted form.\n\nFRTO algorithm and implementation is described in greater detail.\nFor interested reader, more information is available in RFC4138.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bdaae17da81db79b9aa4dfbf43305cfeef64f6a8",
      "tree": "5dce126ae84073646c15417c30bd1b6b13660784",
      "parents": [
        "9ead9a1d385ae2c52a6dcf2828d84ce66be04fc2"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 22:59:58 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:02 2007 -0700"
      },
      "message": "[TCP] FRTO: Moved tcp_use_frto from tcp.h to tcp_input.c\n\nIn addition, removed inline.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ead9a1d385ae2c52a6dcf2828d84ce66be04fc2",
      "tree": "3346cc7d0428f213ac7d07c41d1d0accc4a741f9",
      "parents": [
        "522e7548a9bd40305df41c0beae69448b7620d6b"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Wed Feb 21 22:56:19 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:01 2007 -0700"
      },
      "message": "[TCP] FRTO: Separated response from FRTO detection algorithm\n\nFRTO spurious RTO detection algorithm (RFC4138) does not include response\nto a detected spurious RTO but can use different response algorithms.\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "522e7548a9bd40305df41c0beae69448b7620d6b"
}
