)]}'
{
  "log": [
    {
      "commit": "6da025fa23bb10c82f80de319c837ed2b02306e4",
      "tree": "64992521a7fa74c04eff45fffc88dd56dfb10ba7",
      "parents": [
        "b26ddd813031666293c95e84c997eb8b1f97bd38"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Oct 28 22:33:23 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 03 14:59:04 2012 -0400"
      },
      "message": "ipv4: avoid a test in ip_rt_put()\n\nWe can save a test in ip_rt_put(), considering dst_release() accepts\na NULL parameter, and dst is first element in rtable.\n\nAdd a BUILD_BUG_ON() to catch any change that could break this\nassertion.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nAcked-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "155e8336c373d14d87a7f91e356d85ef4b93b8f9",
      "tree": "5d31e9d9c197129fcf26fd8ae9d54da770503a6c",
      "parents": [
        "f8a17175c63fd3e8b573719f7538816f8c96abf4"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Mon Oct 08 11:41:18 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 08 17:42:36 2012 -0400"
      },
      "message": "ipv4: introduce rt_uses_gateway\n\nAdd new flag to remember when route is via gateway.\nWe will use it to allow rt_gateway to contain address of\ndirectly connected host for the cases when DST_NOCACHE is\nused or when the NH exception caches per-destination route\nwithout DST_NOCACHE flag, i.e. when routes are not used for\nother destinations. By this way we force the neighbour\nresolving to work with the routed destination but we\ncan use different address in the packet, feature needed\nfor IPVS-DR where original packet for virtual IP is routed\nvia route to real IP.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bafa6d9d89072c1a18853afe9ee5de05c491c13a",
      "tree": "d20837ee56043d318a8d9ea4f10085f0c46f81a9",
      "parents": [
        "a1f6d8f771d80ab0beea787aa4f1d02d2eacf22c"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Fri Sep 07 00:45:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 18 15:44:34 2012 -0400"
      },
      "message": "ipv4/route: arg delay is useless in rt_cache_flush()\n\nSince route cache deletion (89aef8921bfbac22f), delay is no\nmore used. Remove it.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "caacf05e5ad1abf0a2864863da4e33024bc68ec6",
      "tree": "9a82e97a072e288f604bd3dbbe07e1796581fad0",
      "parents": [
        "c5038a8327b980a5b279fa193163c468011de009"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "message": "ipv4: Properly purge netdev references on uncached routes.\n\nWhen a device is unregistered, we have to purge all of the\nreferences to it that may exist in the entire system.\n\nIf a route is uncached, we currently have no way of accomplishing\nthis.\n\nSo create a global list that is scanned when a network device goes\ndown.  This mirrors the logic in net/core/dst.c\u0027s dst_ifdown().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6cffba4ffa26a8ffacd0bb9f3144e34f20da7de",
      "tree": "b67532a74343d42bcf8784b8e32d7cf6d69313db",
      "parents": [
        "4487e64de63b8e42efe5a5543871c42c5a5859d9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 26 11:14:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 26 15:50:39 2012 -0700"
      },
      "message": "ipv4: Fix input route performance regression.\n\nWith the routing cache removal we lost the \"noref\" code paths on\ninput, and this can kill some routing workloads.\n\nReinstate the noref path when we hit a cached route in the FIB\nnexthops.\n\nWith help from Eric Dumazet.\n\nReported-by: Alexander Duyck \u003calexander.duyck@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13378cad02afc2adc6c0e07fca03903c7ada0b37",
      "tree": "e12625227f409a7b658c4f39a2dc926cf60bb27e",
      "parents": [
        "b68581778cd0051a3fb9a2b614dee7eccb5127ff"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:57:45 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:36:27 2012 -0700"
      },
      "message": "ipv4: Change rt-\u003ert_iif encoding.\n\nOn input packet processing, rt-\u003ert_iif will be zero if we should\nuse skb-\u003edev-\u003eifindex.\n\nSince we access rt-\u003ert_iif consistently via inet_iif(), that is\nthe only spot whose interpretation have to adjust.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2860583fe840d972573363dfa190b2149a604534",
      "tree": "473a69bdcc3e45dd35bc0452a588cfbbac54c6e6",
      "parents": [
        "9917e1e8762745191eba5a3bf2040278cbddbee1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 17 14:55:59 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:40:07 2012 -0700"
      },
      "message": "ipv4: Kill rt-\u003efi\n\nIt\u0027s not really needed.\n\nWe only grabbed a reference to the fib_info for the sake of fib_info\nlocal metrics.\n\nHowever, fib_info objects are freed using RCU, as are therefore their\nprivate metrics (if any).\n\nWe would have triggered a route cache flush if we eliminated a\nreference to a fib_info object in the routing tables.\n\nTherefore, any existing cached routes will first check and see that\nthey have been invalidated before an errant reference to these\nmetric values would occur.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9917e1e8762745191eba5a3bf2040278cbddbee1",
      "tree": "9c538b6598b005e91b08b37e91dcb6638c26c4a0",
      "parents": [
        "4fd551d7bed93af60af61c5a324b8f5dff37953a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 17 14:44:26 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:40:02 2012 -0700"
      },
      "message": "ipv4: Turn rt-\u003ert_route_iif into rt-\u003ert_is_input.\n\nThat is this value\u0027s only use, as a boolean to indicate whether\na route is an input route or not.\n\nSo implement it that way, using a u16 gap present in the struct\nalready.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fd551d7bed93af60af61c5a324b8f5dff37953a",
      "tree": "2cc151b3dc88793340c50421799627b06b766a43",
      "parents": [
        "93ac53410a82a4f1bf2baf9d65d95cc29f2774ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 17 14:39:44 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:38:34 2012 -0700"
      },
      "message": "ipv4: Kill rt-\u003ert_oif\n\nNever actually used.\n\nIt was being set on output routes to the original OIF specified in the\nflow key used for the lookup.\n\nAdjust the only user, ipmr_rt_fib_lookup(), for greater correctness of\nthe flowi4_oif and flowi4_iif values, thanks to feedback from Julian\nAnastasov.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f8126f1d5136be1ca1a3536d43ad7a710b5620f8",
      "tree": "8a92815052257c4ca29461f5b9ddaaeac288a7ed",
      "parents": [
        "f1ce3062c53809d862d8a04e7a0566c3cc4e0bda"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 13 05:03:45 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:31:20 2012 -0700"
      },
      "message": "ipv4: Adjust semantics of rt-\u003ert_gateway.\n\nIn order to allow prefixed routes, we have to adjust how rt_gateway\nis set and interpreted.\n\nThe new interpretation is:\n\n1) rt_gateway \u003d\u003d 0, destination is on-link, nexthop is iph-\u003edaddr\n\n2) rt_gateway !\u003d 0, destination requires a nexthop gateway\n\nAbstract the fetching of the proper nexthop value using a new\ninline helper, rt_nexthop(), as suggested by Joe Perches.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\n"
    },
    {
      "commit": "f1ce3062c53809d862d8a04e7a0566c3cc4e0bda",
      "tree": "52c81a28b18a69cf0743e1225077745dcb0c1198",
      "parents": [
        "b48698895de86e07b685f8e4b8db0f1cd5a97e9a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 12 10:10:17 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:31:19 2012 -0700"
      },
      "message": "ipv4: Remove \u0027rt_dst\u0027 from \u0027struct rtable\u0027\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b48698895de86e07b685f8e4b8db0f1cd5a97e9a",
      "tree": "5a4a9aa7363077b24289b99fd76da2ed30aae67c",
      "parents": [
        "d6c0a4f609847d6e65658913f9ccbcb1c137cff3"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 01 02:03:01 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:31:18 2012 -0700"
      },
      "message": "ipv4: Remove \u0027rt_mark\u0027 from \u0027struct rtable\u0027\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d6c0a4f609847d6e65658913f9ccbcb1c137cff3",
      "tree": "94a4f12618d5ced2a0d83eb75d4564e92a59d7df",
      "parents": [
        "1a00fee4ffb22312a0ac40045ecd6f222b55eb3d"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 01 02:02:59 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:31:00 2012 -0700"
      },
      "message": "ipv4: Kill \u0027rt_src\u0027 from \u0027struct rtable\u0027\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a00fee4ffb22312a0ac40045ecd6f222b55eb3d",
      "tree": "f1154e606c695a85ee810bb9332ebcd5049f359f",
      "parents": [
        "38a424e4657462fe9f8b76f01a0e879abde99ab4"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 01 02:02:56 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:30:59 2012 -0700"
      },
      "message": "ipv4: Remove rt_key_{src,dst,tos} from struct rtable.\n\nThey are always used in contexts where they can be reconstituted,\nor where the finally resolved rt-\u003ert_{src,dst} is semantically\nequivalent.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38a424e4657462fe9f8b76f01a0e879abde99ab4",
      "tree": "3e5df29e768eb1fff1f9ebbc5cf7538d798a5535",
      "parents": [
        "89aef8921bfbac22f00e04f8450f6e447db13e42"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 01 02:02:53 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:30:59 2012 -0700"
      },
      "message": "ipv4: Kill ip_route_input_noref().\n\nThe \"noref\" argument to ip_route_input_common() is now always ignored\nbecause we do not cache routes, and in that case we must always grab\na reference to the resulting \u0027dst\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89aef8921bfbac22f00e04f8450f6e447db13e42",
      "tree": "4ff3885262d0f05af367c119528780b5d8d172ff",
      "parents": [
        "fa0afcd10951afad2022dda09777d2bf70cdab3d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 17 11:00:09 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 13:30:27 2012 -0700"
      },
      "message": "ipv4: Delete routing cache.\n\nThe ipv4 routing cache is non-deterministic, performance wise, and is\nsubject to reasonably easy to launch denial of service attacks.\n\nThe routing cache works great for well behaved traffic, and the world\nwas a much friendlier place when the tradeoffs that led to the routing\ncache\u0027s design were considered.\n\nWhat it boils down to is that the performance of the routing cache is\na product of the traffic patterns seen by a system rather than being a\nproduct of the contents of the routing tables.  The former of which is\ncontrollable by external entitites.\n\nEven for \"well behaved\" legitimate traffic, high volume sites can see\nhit rates in the routing cache of only ~%10.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1f42539d257af671d56d4bdbcf13aef31abff6ef",
      "tree": "e48de1974ba75f1b31d90f8348ba6a5514dba526",
      "parents": [
        "55be7a9c6074f749d617a7fc1914c9a23505438c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 21:30:08 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 21:30:08 2012 -0700"
      },
      "message": "ipv4: Kill ip_rt_redirect().\n\nNo longer needed, as the protocol handlers now all properly\npropagate the redirect back into the routing code.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b42597e2f36e2043756aa7462faddf630962f061",
      "tree": "67264d31f7bf3cf2f0771260a3c7fc871423231a",
      "parents": [
        "e47a185b31dd2acd424fac7dc0efb96fc5b31a33"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 21:25:45 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 21:25:45 2012 -0700"
      },
      "message": "ipv4: Add ipv4_redirect() and ipv4_sk_redirect() helper functions.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94206125c4aac32e43c25bfe1b827e7ab993b7dc",
      "tree": "6cfbc21c6b69efd90ccec6575a3a3c91e0bd8cad",
      "parents": [
        "d0da720f9f16a5023cc084bed8968702400f6e0f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 20:38:08 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 20:38:08 2012 -0700"
      },
      "message": "ipv4: Rearrange arguments to ip_rt_redirect()\n\nPass in the SKB rather than just the IP addresses, so that policy\nand other aspects can reside in ip_rt_redirect() rather then\nicmp_redirect().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f185071ddf799e194ba015d040d3d49cdbfa7e48",
      "tree": "f8d4221951e6da429f7d252bc167e8d64a83d1f1",
      "parents": [
        "312487313d4f7177cb751830e3d9c218e42ed59e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 07:26:01 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:40:18 2012 -0700"
      },
      "message": "ipv4: Remove inetpeer from routes.\n\nNo longer used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5943634fc5592037db0693b261f7f4bea6bb9457",
      "tree": "4fdaf67e5be0df3c3067ff2a7febd28f118f02be",
      "parents": [
        "87a50699cb6d169591cc776fb82683a2c77cecac"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 06:58:42 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:40:14 2012 -0700"
      },
      "message": "ipv4: Maintain redirect and PMTU info in struct rtable again.\n\nMaintaining this in the inetpeer entries was not the right way to do\nthis at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3e12939a2a67fbb4cbd962c3b9bc398c73319766",
      "tree": "cb3d49ded9da2def0c08e9f5085af870aeadc993",
      "parents": [
        "1d861aa4b3fb08822055345f480850205ffe6170"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 04:01:57 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:40:12 2012 -0700"
      },
      "message": "inet: Kill FLOWI_FLAG_PRECOW_METRICS.\n\nNo longer needed.  TCP writes metrics, but now in it\u0027s own special\ncache that does not dirty the route metrics.  Therefore there is no\nlonger any reason to pre-cow metrics in this way.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41347dcdd81988b8e60853257b2875285cc17a4e",
      "tree": "29ced900bcde5d9afc252d0b10fdfe6d2e18cc66",
      "parents": [
        "35ebf65e851c6d9731abc6362b189858eb59f4d3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 28 04:05:27 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 28 04:05:27 2012 -0700"
      },
      "message": "ipv4: Kill rt-\u003ert_spec_dst, no longer used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c10237e077cef50e925f052e49f3b4fead9d71f9",
      "tree": "5b7418f3a31165ea2e7d119782cad0745cd45792",
      "parents": [
        "e440cf2ca0a1b075c64016240d46c3aa9d877bbf"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 27 17:05:06 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 27 17:05:06 2012 -0700"
      },
      "message": "Revert \"ipv4: tcp: dont cache unconfirmed intput dst\"\n\nThis reverts commit c074da2810c118b3812f32d6754bd9ead2f169e7.\n\nThis change has several unwanted side effects:\n\n1) Sockets will cache the DST_NOCACHE route in sk-\u003esk_rx_dst and we\u0027ll\n   thus never create a real cached route.\n\n2) All TCP traffic will use DST_NOCACHE and never use the routing\n   cache at all.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c074da2810c118b3812f32d6754bd9ead2f169e7",
      "tree": "772c7fbb9da464f9afd6d56e9e610157ed665e8f",
      "parents": [
        "93040ae5cc8dcc893eca4a4366dc8415af278edf"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jun 26 23:14:15 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 27 15:34:24 2012 -0700"
      },
      "message": "ipv4: tcp: dont cache unconfirmed intput dst\n\nDDOS synflood attacks hit badly IP route cache.\n\nOn typical machines, this cache is allowed to hold up to 8 Millions dst\nentries, 256 bytes for each, for a total of 2GB of memory.\n\nrt_garbage_collect() triggers and tries to cleanup things.\n\nEventually route cache is disabled but machine is under fire and might\nOOM and crash.\n\nThis patch exploits the new TCP early demux, to set a nocache\nboolean in case incoming TCP frame is for a not yet ESTABLISHED or\nTIMEWAIT socket.\n\nThis \u0027nocache\u0027 boolean is then used in case dst entry is not found in\nroute cache, to create an unhashed dst entry (DST_NOCACHE)\n\nSYN-cookie-ACK sent use a similar mechanism (ipv4: tcp: dont cache\noutput dst for syncookies), so after this patch, a machine is able to\nabsorb a DDOS synflood attack without polluting its IP route cache.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36393395536064e483b73d173f6afc103eadfbc4",
      "tree": "b45113cce1bdfc4be92a856700690a253f1bb088",
      "parents": [
        "b3908e22ad8bb6074934496ef171fd83605d7d3e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 14 22:21:46 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 14 22:22:07 2012 -0700"
      },
      "message": "ipv4: Handle PMTU in all ICMP error handlers.\n\nWith ip_rt_frag_needed() removed, we have to explicitly update PMTU\ninformation in every ICMP error handler.\n\nCreate two helper functions to facilitate this.\n\n1) ipv4_sk_update_pmtu()\n\n   This updates the PMTU when we have a socket context to\n   work with.\n\n2) ipv4_update_pmtu()\n\n   Raw version, used when no socket context is available.  For this\n   interface, we essentially just pass in explicit arguments for\n   the flow identity information we would have extracted from the\n   socket.\n\n   And you\u0027ll notice that ipv4_sk_update_pmtu() is simply implemented\n   in terms of ipv4_update_pmtu()\n\nNote that __ip_route_output_key() is used, rather than something like\nip_route_output_flow() or ip_route_output_key().  This is because we\nabsolutely do not want to end up with a route that does IPSEC\nencapsulation and the like.  Instead, we only want the route that\nwould get us to the node described by the outermost IP header.\n\nReported-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "43b03f1f6d6832d744918947d185a7aee89d1e0f",
      "tree": "53a8c47d67dfcd23450d4068d08ccf2b7714c5e8",
      "parents": [
        "2da45db2bdd432a9dca825099c791f5c851f92b9",
        "5ee31c6898ea5537fcea160999d60dc63bc0c305"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 12 21:59:18 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 12 21:59:18 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tMAINTAINERS\n\tdrivers/net/wireless/iwlwifi/pcie/trans.c\n\nThe iwlwifi conflict was resolved by keeping the code added\nin \u0027net\u0027 that turns off the buggy chip feature.\n\nThe MAINTAINERS conflict was merely overlapping changes, one\nchange updated all the wireless web site URLs and the other\nchanged some GIT trees to be Johannes\u0027s instead of John\u0027s.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55afabaa0df0dd139c8796a71beb43d1216fbe43",
      "tree": "5f3ad3d76d9101c11d15197b40fb4f86402db3a9",
      "parents": [
        "352e04b9111d608bd89ba7bd8070846d4f97d104"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 15:52:29 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 15:52:29 2012 -0700"
      },
      "message": "inet: Fix BUG triggered by __rt{,6}_get_peer().\n\nIf no peer actually gets attached (either because create is zero or\nthe peer allocation fails) we\u0027ll trigger a BUG because we\nunconditionally do an rt{,6}_peer_ptr() afterwards.\n\nFix this by guarding it with the proper check.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46517008e1168dc926cf2c47d529efc07eca85c0",
      "tree": "98e9cf1917c9b8f1c6c2d8121746fd4f8e414f45",
      "parents": [
        "97bab73f987e2781129cd6f4b6379bf44d808cc6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jun 10 00:04:12 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 02:08:59 2012 -0700"
      },
      "message": "ipv4: Kill ip_rt_frag_needed().\n\nThere is zero point to this function.\n\nIt\u0027s only real substance is to perform an extremely outdated BSD4.2\nICMP check, which we can safely remove.  If you really have a MTU\nlimited link being routed by a BSD4.2 derived system, here\u0027s a nickel\ngo buy yourself a real router.\n\nThe other actions of ip_rt_frag_needed(), checking and conditionally\nupdating the peer, are done by the per-protocol handlers of the ICMP\nevent.\n\nTCP, UDP, et al. have a handler which will receive this event and\ntransmit it back into the associated route via dst_ops-\u003eupdate_pmtu().\n\nThis simplification is important, because it eliminates the one place\nwhere we do not have a proper route context in which to make an\ninetpeer lookup.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97bab73f987e2781129cd6f4b6379bf44d808cc6",
      "tree": "40b10c4c021c8b5524c19f79fcfe4b0799b59952",
      "parents": [
        "c0efc887dcadbdbfe171f028acfab9c7c00e9dde"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 09 22:36:36 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 02:08:47 2012 -0700"
      },
      "message": "inet: Hide route peer accesses behind helpers.\n\nWe encode the pointer(s) into an unsigned long with one state bit.\n\nThe state bit is used so we can store the inetpeer tree root to use\nwhen resolving the peer later.\n\nLater the peer roots will be per-FIB table, and this change works to\nfacilitate that.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5d21c4b2a7765ab0600c8426374b50eb9f4a36f",
      "tree": "378b2516d9cb56352dde1f0d9d2884350b24f0f5",
      "parents": [
        "83a27052c3376793bc879e00e6e6805d6fb7aab9"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Sun Jun 10 20:05:24 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 00:04:47 2012 -0700"
      },
      "message": "net: Reorder initialization in ip_route_output to fix gcc warning\n\nIf I build with W\u003d1, for every file that includes \u003cnet/route.h\u003e, I get the warning\n\n    include/net/route.h: In function \u0027ip_route_output\u0027:\n    include/net/route.h:135:3: warning: initialized field overwritten [-Woverride-init]\n    include/net/route.h:135:3: warning: (near initialization for \u0027fl4\u0027) [-Woverride-init]\n\n(This is with \"gcc (Debian 4.6.3-1) 4.6.3\")\n\nA fix seems pretty trivial: move the initialization of .flowi4_tos\nearlier.  As far as I can tell, this has no effect on code generation.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbfe95a42e90b3dd079cc9019ba7d7700feee0f6",
      "tree": "f5f16e6efcf1411a47df8b836f669fc452489dd4",
      "parents": [
        "7123aaa3a1416529ce461e98108e6b343b294643"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 08 23:24:18 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 08 23:24:18 2012 -0700"
      },
      "message": "inet: Create and use rt{,6}_get_peer_create().\n\nThere\u0027s a lot of places that open-code rt{,6}_get_peer() only because\nthey want to set \u0027create\u0027 to one.  So add an rt{,6}_get_peer_create()\nfor their sake.\n\nThere were also a few spots open-coding plain rt{,6}_get_peer() and\nthose are transformed here as well.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "95c961747284a6b83a5e2d81240e214b0fa3464d",
      "tree": "c7be86a00db3605a48a03109fafcbe31039ca2e0",
      "parents": [
        "5e73ea1a31c3612aa6dfe44f864ca5b7b6a4cff9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Apr 15 05:58:06 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 15 12:44:40 2012 -0400"
      },
      "message": "net: cleanup unsigned to unsigned int\n\nUse of \"unsigned int\" is preferred to bare \"unsigned\" in net tree.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6b45241c57a83197e5de9166b3b0d32ac562609",
      "tree": "8a2e351a564e2cb4be6351c66df4b1a8732bff89",
      "parents": [
        "e2446eaab5585555a38ea0df4e01ff313dbb4ac9"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sat Feb 04 13:04:46 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 04 19:29:48 2012 -0500"
      },
      "message": "ipv4: reset flowi parameters on route connect\n\nEric Dumazet found that commit 813b3b5db83\n(ipv4: Use caller\u0027s on-stack flowi as-is in output\nroute lookups.) that comes in 3.0 added a regression.\nThe problem appears to be that resulting flowi4_oif is\nused incorrectly as input parameter to some routing lookups.\nThe result is that when connecting to local port without\nlistener if the IP address that is used is not on a loopback\ninterface we incorrectly assign RTN_UNICAST to the output\nroute because no route is matched by oif\u003dlo. The RST packet\ncan not be sent immediately by tcp_v4_send_reset because\nit expects RTN_LOCAL.\n\n\tSo, change ip_route_connect and ip_route_newports to\nupdate the flowi4 fields that are input parameters because\nwe do not want unnecessary binding to oif.\n\n\tTo make it clear what are the input parameters that\ncan be modified during lookup and to show which fields of\nfloiw4 are reused add a new function to update the flowi4\nstructure: flowi4_update_output.\n\nThanks to Yurij M. Plotnikov for providing a bug report including a\nprogram to reproduce the problem.\n\nThanks to Eric Dumazet for tracking the problem down to\ntcp_v4_send_reset and providing initial fix.\n\nReported-by: Yurij M. Plotnikov \u003cYurij.Plotnikov@oktetlabs.ru\u003e\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8400f3718a11c9b0ca400705cddf94f3132c1c3",
      "tree": "88bb6045e4ebcb8cfc4b9f85f4818952428d1885",
      "parents": [
        "618f9bc74a039da76fa027ac2600c5b785b964c5"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Nov 23 02:14:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 26 14:29:51 2011 -0500"
      },
      "message": "route: struct rtable can be const in rt_is_input_route and rt_is_output_route\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a48eff128865aa20520fa6e0e0c5fbd2ac50d712",
      "tree": "c60e376c3fca23bb215c977e42661187076dccbf",
      "parents": [
        "ed2361e66eec60645f8e4715fe39a42235ef43ae"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:42:43 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:42:43 2011 -0400"
      },
      "message": "ipv4: Pass explicit destination address to rt_bind_peer().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed2361e66eec60645f8e4715fe39a42235ef43ae",
      "tree": "96c6f4fa75456647d62c245b87b0d3ce97ce462b",
      "parents": [
        "6bd023f3dddfc7c5f660089598c10e1f4167083b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:38:54 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 18 18:38:54 2011 -0400"
      },
      "message": "ipv4: Pass explicit destination address to rt_get_peer().\n\nThis will next trickle down to rt_bind_peer().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e36360ae876995e92d3a7538dda70548e64e685",
      "tree": "d477e086bb35d2de8a6f54b461abeb24be8a4f5b",
      "parents": [
        "22f728f8f311659b068e73ed92833c205651a47f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 17:29:41 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 17:29:41 2011 -0400"
      },
      "message": "ipv4: Remove route key identity dependencies in ip_rt_get_source().\n\nPass in the sk_buff so that we can fetch the necessary keys from\nthe packet header when working with input routes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cbb1e85f9cfd2bd9b7edfd21d167e89a4279faf0",
      "tree": "352ce07ff62b9fc38212d72f3d1b0d124dafea39",
      "parents": [
        "9a1b9496cd2b013f74885218947fa7120d53e74c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:33:34 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 04 12:55:07 2011 -0700"
      },
      "message": "ipv4: Kill rt-\u003ert_{src, dst} usage in IP GRE tunnels.\n\nFirst, make callers pass on-stack flowi4 to ip_route_output_gre()\nso they can get at the fully resolved flow key.\n\nNext, use that in ipgre_tunnel_xmit() to avoid the need to use\nrt-\u003ert_{dst,src}.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31e4543db29fb85496a122b965d6482c8d1a2bfe",
      "tree": "3e49d61a1202e1b3c8c71e422f3fd8e4f2616d01",
      "parents": [
        "f1390160ddcd64a3cfd48b3280d0a616a31b9520"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 20:25:42 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 20:25:42 2011 -0700"
      },
      "message": "ipv4: Make caller provide on-stack flow key to ip_route_output_ports().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "475949d8e86bbde5ea3ffa4d95e022ca69233b14",
      "tree": "5e29156df321b617366921f64532fc353019b238",
      "parents": [
        "417da66fa9d2f14b1a90b04095413b87907d8183"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:45:15 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 19:45:15 2011 -0700"
      },
      "message": "ipv4: Renamt struct rtable\u0027s rt_tos to rt_key_tos.\n\nTo more accurately reflect that it is purely a routing\ncache lookup key and is used in no other context.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6706b6ebab85dfca4e2886e35ec9c3c4ee13e27e",
      "tree": "a4b23e05b18508421a15834e3da773ce1d1b28c3",
      "parents": [
        "813b3b5db831ddbd92b5ce0fdeb74e3368f1323c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 23:13:17 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 23:13:17 2011 -0700"
      },
      "message": "ipv4: Remove now superfluous code in ip_route_connect().\n\nNow that output route lookups update the flow with\nsource address et al. selections, the fl4-\u003e{saddr,daddr}\nassignments here are no longer necessary.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "813b3b5db831ddbd92b5ce0fdeb74e3368f1323c",
      "tree": "636c404ea6f255c0b8793af4e83f9df19d61c94f",
      "parents": [
        "cf91166223772ef4a2ed98b9874958bf6a2470df"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 14:48:42 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 28 22:26:00 2011 -0700"
      },
      "message": "ipv4: Use caller\u0027s on-stack flowi as-is in output route lookups.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b678027cb77b079bc8e5b94172995d173bdb494b",
      "tree": "ff81b67bd3c1bbe95eacd87fd26f39af20a545e9",
      "parents": [
        "2e97e980b5653c23d01c911af6a0ab2d3431d7f1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 26 14:58:35 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 27 13:59:05 2011 -0700"
      },
      "message": "ipv4: Kill RTO_CONN.\n\nIt\u0027s not used by anything in the kernel, and defined in net/route.h so\nnever exported to userspace.\n\nTherefore we can safely remove it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d7192d6cbab20e153c47fa1559ffd41ceef0e79",
      "tree": "aac4c4132f5b4a173ad8f8d0bf24427e039bbc89",
      "parents": [
        "15ecd039b7182d725f4294e01f2fb12c3a88db17"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 26 13:28:44 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 27 13:59:04 2011 -0700"
      },
      "message": "ipv4: Sanitize and simplify ip_route_{connect,newports}()\n\nThese functions are used together as a unit for route resolution\nduring connect().  They address the chicken-and-egg problem that\nexists when ports need to be allocated during connect() processing,\nyet such port allocations require addressing information from the\nrouting code.\n\nIt\u0027s currently more heavy handed than it needs to be, and in\nparticular we allocate and initialize a flow object twice.\n\nLet the callers provide the on-stack flow object.  That way we only\nneed to initialize it once in the ip_route_connect() call.\n\nLater, if ip_route_newports() needs to do anything, it re-uses that\nflow object as-is except for the ports which it updates before the\nroute re-lookup.\n\nAlso, describe why this set of facilities are needed and how it works\nin a big comment.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "2a9e9507011440a57d6356ded630ba0c0f5d4b77",
      "tree": "0c6c99b350f69f82ca9a2f602b075f1126d5b2b2",
      "parents": [
        "b71d1d426d263b0b6cb5760322efebbfc89d4463"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 24 10:54:56 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 24 10:54:56 2011 -0700"
      },
      "message": "net: Remove __KERNEL__ cpp checks from include/net\n\nThese header files are never installed to user consumption, so any\n__KERNEL__ cpp checks are superfluous.\n\nProjects should also not copy these files into their userland utility\nsources and try to use them there.  If they insist on doing so, the\nonus is on them to sanitize the headers as needed.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71d1d426d263b0b6cb5760322efebbfc89d4463",
      "tree": "226ca7390bd6187ec9139d2ccedd26fd94d8e57a",
      "parents": [
        "5f8629c526b4f7e529a6d27bbd802c0dc7fcc357"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Apr 22 04:53:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 22 11:04:14 2011 -0700"
      },
      "message": "inet: constify ip headers and in6_addr\n\nAdd const qualifiers to structs iphdr, ipv6hdr and in6_addr pointers\nwhere possible, to make code intention more obvious.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1e48efc701b79ee4367c9a1a4e8bbc7c3586e02",
      "tree": "91921f7c0884813c72993fcd2ecd37dc5e56d89d",
      "parents": [
        "912d398d28b4359c2fb1f3763f1ce4f86de8350e",
        "1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 14:05:23 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 14:05:23 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/benet/be_main.c\n"
    },
    {
      "commit": "1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c",
      "tree": "e931b86166c2a644470e3754e2d3139f97834951",
      "parents": [
        "9b57e1a79e2142df8412ab223c90ba6f47c6b3a3"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "message": "ipv4: Fix \"Set rt-\u003ert_iif more sanely on output routes.\"\n\nCommit 1018b5c01636c7c6bda31a719bda34fc631db29a (\"Set rt-\u003ert_iif more\nsanely on output routes.\")  breaks rt_is_{output,input}_route.\n\nThis became the cause to return \"IP_PKTINFO\u0027s -\u003eipi_ifindex \u003d\u003d 0\".\n\nTo fix it, this does:\n\n1) Add \"int rt_route_iif;\" to struct rtable\n\n2) For input routes, always set rt_route_iif to same value as rt_iif\n\n3) For output routes, always set rt_route_iif to zero.  Set rt_iif\n   as it is done currently.\n\n4) Change rt_is_{output,input}_route() to test rt_route_iif\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94b92b88344641dbeadd2ef371549b7663a48fb1",
      "tree": "165ec138938f0621929323523438b080c98db52a",
      "parents": [
        "83229aa5e2c242163599266a686483e3b91ec07e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 31 04:52:59 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 31 04:52:59 2011 -0700"
      },
      "message": "ipv4: Use flowi4_init_output() in net/route.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6df59a84eccd4cad7fcefda3e0c5e55239a3b2dd",
      "tree": "7d23038ad450413eb4238f14707e1f0dce29638a",
      "parents": [
        "37e826c513883099c298317bad1b3b677b2905fb"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Fri Mar 25 01:28:45 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 25 01:28:45 2011 -0700"
      },
      "message": "route: Take the right src and dst addresses in ip_route_newports\n\nWhen we set up the flow informations in ip_route_newports(), we take\nthe address informations from the the rt_key_src and rt_key_dst fields\nof the rtable. They appear to be empty. So take the address\ninformations from rt_src and rt_dst instead. This issue was introduced\nby commit 5e2b61f78411be25f0b84f97d5b5d312f184dfd1 (\"ipv4: Remove\nflowi from struct rtable.\")\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6abbaa2725a43cf5d26c4c2a5dc6c0f6029ea19",
      "tree": "65d9d9deb7259322e83fc750b98f4ad9f7a51f56",
      "parents": [
        "74cb3c108bc0f599a4eb40980db8580cfba725c9"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sat Mar 19 12:13:49 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 22 01:06:32 2011 -0700"
      },
      "message": "ipv4: fix route deletion for IPs on many subnets\n\nAlex Sidorenko reported for problems with local\nroutes left after IP addresses are deleted. It happens\nwhen same IPs are used in more than one subnet for the\ndevice.\n\n\tFix fib_del_ifaddr to restrict the checks for duplicate\nlocal and broadcast addresses only to the IFAs that use\nour primary IFA or another primary IFA with same address.\nAnd we expect the prefsrc to be matched when the routes\nare deleted because it is possible they to differ only by\nprefsrc. This patch prevents local and broadcast routes\nto be leaked until their primary IP is deleted finally\nfrom the box.\n\n\tAs the secondary address promotion needs to delete\nthe routes for all secondaries that used the old primary IFA,\nadd option to ignore these secondaries from the checks and\nto assume they are already deleted, so that we can safely\ndelete the route while these IFAs are still on the device list.\n\nReported-by: Alex Sidorenko \u003calexandre.sidorenko@hp.com\u003e\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cce96df5b76691712dba22e83ff5efe900361e1",
      "tree": "eecf99e64c6866af944e1e1644d87737392b2da2",
      "parents": [
        "f42454d632753d71ea1a2df09be7bbda32b6372d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 03:00:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:54 2011 -0800"
      },
      "message": "net: Put fl4_* macros to struct flowi4 and use them again.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d6ec938019c6b16cb9ec96598ebe8f20de435fe",
      "tree": "9b850eb7fd48a6e5ffc15f47afd2e3edc93f5290",
      "parents": [
        "68a5e3dd0a0056d8b349f9eea3756adda53ec17a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 01:12:47 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:48 2011 -0800"
      },
      "message": "ipv4: Use flowi4 in public route lookup interfaces.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6281dcc94a96bd73017b2baa8fa83925405109ef",
      "tree": "8deee4d66d256d10ea25f66520eb96b1fade1545",
      "parents": [
        "08704bcbf022786532b5f188935ab6619906049f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:43:55 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:46 2011 -0800"
      },
      "message": "net: Make flowi ports AF dependent.\n\nCreate two sets of port member accessors, one set prefixed by fl4_*\nand the other prefixed by fl6_*\n\nThis will let us to create AF optimal flow instances.\n\nIt will work because every context in which we access the ports,\nwe have to be fully aware of which AF the flowi is anyways.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d28f42c1bd4bb2363d88df74d0128b4da135b4a",
      "tree": "cb2e652fe79a2bc307e871bc2d3fa51cc8051e45",
      "parents": [
        "ca116922afa8cc5ad46b00c0a637b1cde5ca478a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:29:39 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:44 2011 -0800"
      },
      "message": "net: Put flowi_* prefix on AF independent members of struct flowi\n\nI intend to turn struct flowi into a union of AF specific flowi\nstructs.  There will be a common structure that each variant includes\nfirst, much like struct sock_common.\n\nThis is the first step to move in that direction.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78fbfd8a653ca972afe479517a40661bfff6d8c3",
      "tree": "9dccc5c16bf269d53d8499064ec95a998e84c646",
      "parents": [
        "1561747ddf9d28185548687b11aae7074d6129c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 00:00:52 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 12 15:08:42 2011 -0800"
      },
      "message": "ipv4: Create and use route lookup helpers.\n\nThe idea here is this minimizes the number of places one has to edit\nin order to make changes to how flows are defined and used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e2b61f78411be25f0b84f97d5b5d312f184dfd1",
      "tree": "6a5faa5fb7a2242bebacba4cdb5722b988d3e909",
      "parents": [
        "1018b5c01636c7c6bda31a719bda34fc631db29a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:47:09 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:55:31 2011 -0800"
      },
      "message": "ipv4: Remove flowi from struct rtable.\n\nThe only necessary parts are the src/dst addresses, the\ninterface indexes, the TOS, and the mark.\n\nThe rest is unnecessary bloat, which amounts to nearly\n50 bytes on 64-bit.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4157434c23f8f5126a2ffd3cc7b2c3bd928be075",
      "tree": "6bc9f8533518901a9017935a3fb01152ea6edf38",
      "parents": [
        "3c0afdca44af795dd315c20cc525927a459abe30"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:31:48 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 04 21:31:48 2011 -0800"
      },
      "message": "ipv4: Use passed-in protocol in ip_route_newports().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bfa787fb2c29cce0722500f90df29e049ff07fc",
      "tree": "21e90db4a0d480e9f9e9b931ee71657f2843a629",
      "parents": [
        "b23dd4fe42b455af5c6e20966b7d6959fa8352ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:56:30 2011 -0800"
      },
      "message": "ipv4: ip_route_output_key() is better as an inline.\n\nThis avoid a stack frame at zero cost.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b23dd4fe42b455af5c6e20966b7d6959fa8352ea",
      "tree": "bf97323eae9a8d084170e573ff2c0c40bc72c3cd",
      "parents": [
        "452edd598f60522c11f7f88fdbab27eb36509d1a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 02 14:31:35 2011 -0800"
      },
      "message": "ipv4: Make output route lookup return rtable directly.\n\nInstead of on the stack.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2774c131b1d19920b4587db1cfbd6f0750ad1f15",
      "tree": "3a0482c727cf4dcc046a211214f12459dcba8271",
      "parents": [
        "69ead7afdf6028184f713a77376ee26f8aaafdcd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:59:04 2011 -0800"
      },
      "message": "xfrm: Handle blackhole route creation via afinfo.\n\nThat way we don\u0027t have to potentially do this in every xfrm_lookup()\ncaller.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "273447b352e69c327efdecfd6e1d6fe3edbdcd14",
      "tree": "dae1e0778ca973c25b74fd3dc9728616d6e65b73",
      "parents": [
        "5df65e5567a497a28067019b8ff08f98fb026629"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:27:04 2011 -0800"
      },
      "message": "ipv4: Kill can_sleep arg to ip_route_output_flow()\n\nThis boolean state is now available in the flow flags.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5df65e5567a497a28067019b8ff08f98fb026629",
      "tree": "776a8a2cfa2cf5962ea0d53dea8c6c8360a0c58d",
      "parents": [
        "420d44daa7aa1cc847e9e527f0a27a9ce61768ca"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:22:19 2011 -0800"
      },
      "message": "net: Add FLOWI_FLAG_CAN_SLEEP.\n\nAnd set is in contexts where the route resolution can sleep.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "420d44daa7aa1cc847e9e527f0a27a9ce61768ca",
      "tree": "a5aab8c6b925ba3da1079b7262f7d6c504406eb8",
      "parents": [
        "abdf7e7239da270e68262728f125ea94b9b7d42d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:19:23 2011 -0800"
      },
      "message": "ipv4: Make final arg to ip_route_output_flow to be boolean \"can_sleep\"\n\nSince that is what the current vague \"flags\" argument means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "abdf7e7239da270e68262728f125ea94b9b7d42d",
      "tree": "30c1246fac76ad7a4d2b1f8dcf3698b4d302b4de",
      "parents": [
        "68d0c6d34d586a893292d4fb633a3bf8c547b222"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:15:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 01 14:15:24 2011 -0800"
      },
      "message": "ipv4: Can final ip_route_connect() arg to boolean \"can_sleep\".\n\nSince that\u0027s what the current vague \"flags\" thing means.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dca8b089c95d94afa1d715df257de0286350e99d",
      "tree": "f686fef8ef3d80f81bd9f91072ce8c5f347e3e7c",
      "parents": [
        "33765d06033cc4ba4d9ae6d3d606ef3f28773c1b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 13:38:12 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 24 13:38:12 2011 -0800"
      },
      "message": "ipv4: Rearrange how ip_route_newports() gets port keys.\n\nip_route_newports() is the only place in the entire kernel that\ncares about the port members in the routing cache entry\u0027s lookup\nflow key.\n\nTherefore the only reason we store an entire flow inside of the\nstruct rtentry is for this one special case.\n\nRewrite ip_route_newports() such that:\n\n1) The caller passes in the original port values, so we don\u0027t need\n   to use the rth-\u003efl.fl_ip_{s,d}port values to remember them.\n\n2) The lookup flow is constructed by hand instead of being copied\n   from the routing cache entry\u0027s flow.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6431cbc25fa21635ee04eb0516ba6c51389fbfac",
      "tree": "515deede7292fce41c019e7bd72b58cab34ecb9c",
      "parents": [
        "ddd4aa424b866a08ceba7ddf38e61542c91b93a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 07 20:38:06 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 10 13:33:41 2011 -0800"
      },
      "message": "inet: Create a mechanism for upward inetpeer propagation into routes.\n\nIf we didn\u0027t have a routing cache, we would not be able to properly\npropagate certain kinds of dynamic path attributes, for example\nPMTU information and redirects.\n\nThe reason is that if we didn\u0027t have a routing cache, then there would\nbe no way to lookup all of the active cached routes hanging off of\nsockets, tunnels, IPSEC bundles, etc.\n\nConsider the case where we created a cached route, but no inetpeer\nentry existed and also we were not asked to pre-COW the route metrics\nand therefore did not force the creation a new inetpeer entry.\n\nIf we later get a PMTU message, or a redirect, and store this\ninformation in a new inetpeer entry, there is no way to teach that\ncached route about the newly existing inetpeer entry.\n\nThe facilities implemented here handle this problem.\n\nFirst we create a generation ID.  When we create a cached route of any\nkind, we remember the generation ID at the time of attachment.  Any\ntime we force-create an inetpeer entry in response to new path\ninformation, we bump that generation ID.\n\nThe dst_ops-\u003echeck() callback is where the knowledge of this event\nis propagated.  If the global generation ID does not equal the one\nstored in the cached route, and the cached route has not attached\nto an inetpeer yet, we look it up and attach if one is found.  Now\nthat we\u0027ve updated the cached route\u0027s information, we update the\nroute\u0027s generation ID too.\n\nThis clears the way for implementing PMTU and redirects directly in\nthe inetpeer cache.  There is absolutely no need to consult cached\nroute information in order to maintain this information.\n\nAt this point nothing bumps the inetpeer genids, that comes in the\nlater changes which handle PMTUs and redirects using inetpeers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a4daad6b0923030fbd3b00a01f570e4c3eef446b",
      "tree": "b8e5b9a2110628503e57149f0bb2a4bb1bf3f027",
      "parents": [
        "8571a19c4ac140f1a507f3e7eb716892afa27109"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 22:01:53 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 27 22:01:53 2011 -0800"
      },
      "message": "net: Pre-COW metrics for TCP.\n\nTCP is going to record metrics for the connection,\nso pre-COW the route metrics at route cache entry\ncreation time.\n\nThis avoids several atomic operations that have to\noccur if we COW the metrics after the entry reaches\nglobal visibility.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62fa8a846d7de4b299232e330c74b7783539df76",
      "tree": "e401dbdbf4b11cbd27bdc3a47d9dc8b512173c9f",
      "parents": [
        "b4e69ac670d71b5748dc81e536b2cb103489badd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 20:51:05 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 20:51:05 2011 -0800"
      },
      "message": "net: Implement read-only protection and COW\u0027ing of metrics.\n\nRouting metrics are now copy-on-write.\n\nInitially a route entry points it\u0027s metrics at a read-only location.\nIf a routing table entry exists, it will point there.  Else it will\npoint at the all zero metric place-holder called \u0027dst_default_metrics\u0027.\n\nThe writeability state of the metrics is stored in the low bits of the\nmetrics pointer, we have two bits left to spare if we want to store\nmore states.\n\nFor the initial implementation, COW is implemented simply via kmalloc.\nHowever future enhancements will change this to place the writable\nmetrics somewhere else, in order to increase sharing.  Very likely\nthis \"somewhere else\" will be the inetpeer cache.\n\nNote also that this means that metrics updates may transiently fail\nif we cannot COW the metrics successfully.\n\nBut even by itself, this patch should decrease memory usage and\nincrease cache locality especially for routing workloads.  In those\ncases the read-only metric copies stay in place and never get written\nto.\n\nTCP workloads where metrics get updated, and those rare cases where\nPMTU triggers occur, will take a very slight performance hit.  But\nthat hit will be alleviated when the long-term writable metrics\nmove to a more sharable location.\n\nSince the metrics storage went from a u32 array of RTAX_MAX entries to\nwhat is essentially a pointer, some retooling of the dst_entry layout\nwas necessary.\n\nMost importantly, we need to preserve the alignment of the reference\ncount so that it doesn\u0027t share cache lines with the read-mostly state,\nas per Eric Dumazet\u0027s alignment assertion checks.\n\nThe only non-trivial bit here is the move of the \u0027flags\u0027 member into\nthe writeable cacheline.  This is OK since we are always accessing the\nflags around the same moment when we made a modification to the\nreference count.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6561a3b12d62ed5317e6ac32182d87a03f62c8dc",
      "tree": "2b7318c3532a79dff8912ca4fdcd5d90aa0d8b39",
      "parents": [
        "782615aea84e57dc7f2f922cea823df3de635a78"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 19 21:11:20 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 20 10:37:19 2010 -0800"
      },
      "message": "ipv4: Flush per-ns routing cache more sanely.\n\nFlush the routing cache only of entries that match the\nnetwork namespace in which the purge event occurred.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n"
    },
    {
      "commit": "323e126f0c5995f779d7df7fd035f6e8fed8764d",
      "tree": "402c7267a45ae488363bb1ef8e4c786b65b82572",
      "parents": [
        "a02e4b7dae455151c423e2f69ef222c502a321fd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 21:55:08 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 12 22:08:17 2010 -0800"
      },
      "message": "ipv4: Don\u0027t pre-seed hoplimit metric.\n\nAlways go through a new ip4_dst_hoplimit() helper, just like ipv6.\n\nThis allowed several simplifications:\n\n1) The interim dst_metric_hoplimit() can go as it\u0027s no longer\n   userd.\n\n2) The sysctl_ip_default_ttl entry no longer needs to use\n   ipv4_doint_and_flush, since the sysctl is not cached in\n   routing cache metrics any longer.\n\n3) ipv4_doint_and_flush no longer needs to be exported and\n   therefore can be marked static.\n\nWhen ipv4_doint_and_flush_strategy was removed some time ago,\nthe external declaration in ip.h was mistakenly left around\nso kill that off too.\n\nWe have to move the sysctl_ip_default_ttl declaration into\nipv4\u0027s route cache definition header net/route.h, because\ncurrently net/ip.h (where the declaration lives now) has\na back dependency on net/route.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5811662b15db018c740c57d037523683fd3e6123",
      "tree": "f820610a6024799a26699f22dc9a4ef5dee07978",
      "parents": [
        "dd68ad2235b4625e0dc928b2b4c614d265f976d3"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri Nov 12 18:43:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 17 12:27:45 2010 -0800"
      },
      "message": "net: use the macros defined for the members of flowi\n\nUse the macros defined for the members of flowi to clean the code up.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c753796769e4fb0cd813b6e5801b3c01f4681d4f",
      "tree": "f137ec0b76593a2aa1a6a263bcc1e4cf82bdf7b5",
      "parents": [
        "ed1deb7021b4dfee1d544b91edff4ef92f5c3b54"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 17:07:48 2010 -0800"
      },
      "message": "ipv4: Make rt-\u003efl.iif tests lest obscure.\n\nWhen we test rt-\u003efl.iif against zero, we\u0027re seeing if it\u0027s\nan output or an input route.\n\nMake that explicit with some helper functions.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72cdd1d971c0deb1619c5c339270570c43647a78",
      "tree": "15e3c63cf135818ae1b5cbc9d85ef2c48c03804c",
      "parents": [
        "46b13fc5c0f239f36e84665c73087d5fa86bfd86"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 11 07:14:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 11 10:29:40 2010 -0800"
      },
      "message": "net: get rid of rtable-\u003eidev\n\nIt seems idev field in struct rtable has no special purpose, but adding\nextra atomic ops.\n\nWe hold refcounts on the device itself (using percpu data, so pretty\ncheap in current kernel).\n\ninfiniband case is solved using dst.dev instead of idev-\u003edev\n\nRemoval of this field means routing without route cache is now using\nshared data, percpu data, and only potential contention is a pair of\natomic ops on struct neighbour per forwarded packet.\n\nAbout 5% speedup on routing test.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb0c5f0bc8b69b40549449ee7fc65f3706f12062",
      "tree": "f77a3ed449da953e65f919114c5ea1d4b2c85e88",
      "parents": [
        "7e1b33e5ea392dfc984fc63b76ca75acbf249dcd"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "uweber@astaro.com",
        "time": "Mon Sep 27 03:31:00 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 27 15:03:33 2010 -0700"
      },
      "message": "tproxy: check for transparent flag in ip_route_newports\n\nas done in ip_route_connect()\n\nSigned-off-by: Ulrich Weber \u003cuweber@astaro.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d8d1f30b95a635dbd610dcc5eb641aca8f4768cf",
      "tree": "71424d82a96facd5fcf05cc769ef2ba52b584aeb",
      "parents": [
        "592fcb9dfafaa02dd0edc207bf5d3a0ee7a1f8df"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 10 23:31:35 2010 -0700"
      },
      "message": "net-next: remove useless union keyword\n\nremove useless union keyword in rtable, rt6_info and dn_route.\n\nSince there is only one member in a union, the union keyword isn\u0027t useful.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "407eadd996dc62a827db85f1d0c286a98fd5d336",
      "tree": "199b695cd045650b939aab61cbb55c31d9165b4e",
      "parents": [
        "7fee226ad2397b635e2fd565a59ca3ae08a164cd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon May 10 11:32:55 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 17 17:18:51 2010 -0700"
      },
      "message": "net: implements ip_route_input_noref()\n\nip_route_input() is the version returning a refcounted dst, while\nip_route_input_noref() returns a non refcounted one.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d720c3e4f0c4fc152a6bf17e24244a3c85412d2",
      "tree": "36e037187ce79acb211702bea22e99c625787757",
      "parents": [
        "2bb4646fce8d09916b351d1a62f98db7cec6fc41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 16 15:20:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 23:05:38 2010 -0800"
      },
      "message": "percpu: add __percpu sparse annotations to net\n\nAdd __percpu sparse annotations to net.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nThe macro and type tricks around snmp stats make things a bit\ninteresting.  DEFINE/DECLARE_SNMP_STAT() macros mark the target field\nas __percpu and SNMP_UPD_PO_STATS() macro is updated accordingly.  All\nsnmp_mib_*() users which used to cast the argument to (void **) are\nupdated to cast it to (void __percpu **).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: netdev@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a5ee155136b4a8f4ab0e4c9c064b661da475e298",
      "tree": "10c113756ff0dcc860735d96ed141701bffa3476",
      "parents": [
        "5a5b6f6f62ac684a5856121d8cffd3c3253dc890"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 15:45:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:15:50 2009 -0800"
      },
      "message": "net: NETDEV_UNREGISTER_PERNET -\u003e NETDEV_UNREGISTER_BATCH\n\nThe motivation for an additional notifier in batched netdevice\nnotification (rt_do_flush) only needs to be called once per batch not\nonce per namespace.\n\nFor further batching improvements I need a guarantee that the\nnetdevices are unregistered in order allowing me to unregister an all\nof the network devices in a network namespace at the same time with\nthe guarantee that the loopback device is really and truly\nunregistered last.\n\nAdditionally it appears that we moved the route cache flush after\nthe final synchronize_net, which seems wrong and there was no\nexplanation.  So I have restored the original location of the final\nsynchronize_net.\n\nCc: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2c3ef761fbc5e6c27fa7d40b30cda06bfcd7d8",
      "tree": "25922196160e9d5be8aa2a473ce981756926390f",
      "parents": [
        "4b7673a04a16f1d8faf1e367ae28a6ee1671843d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 03 03:26:03 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 05:06:25 2009 -0800"
      },
      "message": "net: cleanup include/net\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "511c3f92ad5b6d9f8f6464be1b4f85f0422be91a",
      "tree": "3e368d9a78f87eb9dd7ff9e57f4aab3f4a96e3b1",
      "parents": [
        "dfbf97f3ac980b69dfbc41c83a208211a38443e8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 02 05:14:27 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 03 02:51:02 2009 -0700"
      },
      "message": "net: skb-\u003ertable accessor\n\nDefine skb_rtable(const struct sk_buff *skb) accessor to get rtable from skb\n\nDelete skb-\u003ertable field\n\nSetting rtable is not allowed, just set dst instead as rtable is an alias.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "79876874ce20d37ecdc7f481ebf142466999152f",
      "tree": "39c23290ceff007d587d4e3b238290570fa4510e",
      "parents": [
        "1668e010cbe1a7567c81d4c02d31dde9859e9da1"
      ],
      "author": {
        "name": "KOVACS Krisztian",
        "email": "hidden@sch.bme.hu",
        "time": "Wed Oct 01 07:35:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 07:35:39 2008 -0700"
      },
      "message": "ipv4: Conditionally enable transparent flow flag when connecting\n\nSet FLOWI_FLAG_ANYSRC in flowi-\u003eflags if the socket has the\ntransparent socket option set. This way we selectively enable certain\nconnections with non-local source addresses to be routed.\n\nSigned-off-by: KOVACS Krisztian \u003chidden@sch.bme.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1668e010cbe1a7567c81d4c02d31dde9859e9da1",
      "tree": "f3505d22a93ed9a4b6140a7f98a9d4cc2c1f66e9",
      "parents": [
        "b9fb15067ce93497bef852c05e406d7a96212a9a"
      ],
      "author": {
        "name": "KOVACS Krisztian",
        "email": "hidden@sch.bme.hu",
        "time": "Wed Oct 01 07:33:10 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 01 07:33:10 2008 -0700"
      },
      "message": "ipv4: Make inet_sock.h independent of route.h\n\ninet_iif() in inet_sock.h requires route.h. Since users of inet_iif()\nusually require other route.h functionality anyway this patch moves\ninet_iif() to route.h.\n\nSigned-off-by: KOVACS Krisztian \u003chidden@sch.bme.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eeb61f719c00c626115852bbc91189dc3011a844",
      "tree": "b52cddf222ee55082c0aeee5627049aa0d12afa4",
      "parents": [
        "bfbcf034798b2ca45338cee5049b5694b7ddc865"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun Jul 27 08:59:33 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:45:34 2008 -0700"
      },
      "message": "missing bits of net-namespace / sysctl\n\nPiss-poor sysctl registration API strikes again, film at 11...\n\nWhat we really need is _pathname_ required to be present in already\nregistered table, so that kernel could warn about bad order.  That\u0027s the\nnext target for sysctl stuff (and generally saner and more explicit\norder of initialization of ipv[46] internals wouldn\u0027t hurt either).\n\nFor the time being, here are full fixups required by ..._rotable()\nstuff; we make per-net sysctl sets descendents of \"ro\" one and make sure\nthat sufficient skeleton is there before we start registering per-net\nsysctls.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76e6ebfb40a2455c18234dcb0f9df37533215461",
      "tree": "f3b435e8b27a297f330fc7d497a0ef44022e7239",
      "parents": [
        "f43798c27684ab925adde7d8acc34c78c6e50df8"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Sat Jul 05 19:00:44 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 05 19:00:44 2008 -0700"
      },
      "message": "netns: add namespace parameter to rt_cache_flush\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0010e46577a27c1d915034637f6c2fa57a9a091c",
      "tree": "dc13ec8dbbf980b53c8d1049dbf8944806cca0d2",
      "parents": [
        "980c478ddbb720948967b028ddbb4179a025bc2c"
      ],
      "author": {
        "name": "Timo Teras",
        "email": "timo.teras@iki.fi",
        "time": "Tue Apr 29 03:32:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 29 03:32:25 2008 -0700"
      },
      "message": "ipv4: Update MTU to all related cache entries in ip_rt_frag_needed()\n\nAdd struct net_device parameter to ip_rt_frag_needed() and update MTU to\ncache entries where ifindex is specified. This is similar to what is\nalready done in ip_rt_redirect().\n\nSigned-off-by: Timo Teras \u003ctimo.teras@iki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b1e0a655f8eba44ab1ee2a1068d169ccfb853b9",
      "tree": "09edb35f32ebcfb1b4dad904425128a110ef16ee",
      "parents": [
        "c346dca10840a874240c78efe3f39acf4312a1f2"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 02:26:21 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:55 2008 +0900"
      },
      "message": "[NET] NETNS: Omit sock-\u003esk_net without CONFIG_NET_NS.\n\nIntroduce per-sock inlines: sock_net(), sock_net_set()\nand per-inet_timewait_sock inlines: twsk_net(), twsk_net_set().\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists.\nLet\u0027s explicitly define them to help compiler optimizations.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "7d164be8aa4392fe55474f4608547f2097e07c41",
      "tree": "ffdad523556b764d514afbf83e6ccaeff14a4a4e",
      "parents": [
        "061964fb988ca51087948975da66ff523b3a5852"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Mar 23 22:03:56 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 23 22:03:56 2008 -0700"
      },
      "message": "[NET]: include/net/route.h - remove duplicate include\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "29e75252da20f3ab9e132c68c9aed156b87beae6",
      "tree": "affd152c959eede937b50f6054a303a388a88545",
      "parents": [
        "174ce0483198b9dffd712fdd7d53635954fddffe"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Jan 31 17:05:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:27 2008 -0800"
      },
      "message": "[IPV4] route cache: Introduce rt_genid for smooth cache invalidation\n\nCurrent ip route cache implementation is not suited to large caches.\n\nWe can consume a lot of CPU when cache must be invalidated, since we\ncurrently need to evict all cache entries, and this eviction is\nsometimes asynchronous. min_delay \u0026 max_delay can somewhat control this\nasynchronism behavior, but whole thing is a kludge, regularly triggering\ninfamous soft lockup messages. When entries are still in use, this also\nconsumes a lot of ram, filling dst_garbage.list.\n\nA better scheme is to use a generation identifier on each entry,\nso that cache invalidation can be performed by changing the table\nidentifier, without having to scan all entries.\nNo more delayed flushing, no more stalling when secret_interval expires.\n\nInvalidated entries will then be freed at GC time (controled by\nip_rt_gc_timeout or stress), or when an invalidated entry is found\nin a chain when an insert is done.\nThus we keep a normal equilibrium.\n\nThis patch :\n- renames rt_hash_rnd to rt_genid (and makes it an atomic_t)\n- Adds a new rt_genid field to \u0027struct rtable\u0027 (filling a hole on 64bit)\n- Checks entry-\u003ert_genid at appropriate places :\n"
    },
    {
      "commit": "4a19ec5800fc3bb64e2d87c4d9fdd9e636086fe0",
      "tree": "610bd4e7dbcbdae25ba3806f4256745e98617825",
      "parents": [
        "036c2e27bc3a6498afb35de017d810194032d765"
      ],
      "author": {
        "name": "Laszlo Attila Toth",
        "email": "panther@balabit.hu",
        "time": "Wed Jan 30 19:08:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:27:19 2008 -0800"
      },
      "message": "[NET]: Introducing socket mark socket option.\n\nA userspace program may wish to set the mark for each packets its send\nwithout using the netfilter MARK target. Changing the mark can be used\nfor mark based routing without netfilter or for packet filtering.\n\nIt requires CAP_NET_ADMIN capability.\n\nSigned-off-by: Laszlo Attila Toth \u003cpanther@balabit.hu\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5921910a1de4ba82add59154976c3dc7352c8c2",
      "tree": "c1de2c3734219548c2883777597247caa5450dc5",
      "parents": [
        "eee80592c3c1f7381c04913d9d3eb6e3c3c87628"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 23:50:25 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:13 2008 -0800"
      },
      "message": "[NETNS]: Routing cache virtualization.\n\nBasically, this piece looks relatively easy. Namespace is already\navailable on the dst entry via device and the device is safe to\ndereferrence. Compare it with one of a searcher and skip entry if\nappropriate.\n\nThe only exception is ip_rt_frag_needed. So, add namespace parameter to it.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eee80592c3c1f7381c04913d9d3eb6e3c3c87628",
      "tree": "e8c7bd98745450abbb290d35ef531c7c9673ba4c",
      "parents": [
        "7ba699c604ab811972eee2e041fd6b07659a2e6e"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 23:49:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:12 2008 -0800"
      },
      "message": "[NETNS]: Correct namespace for connect-time routing.\n\nip_route_connect and ip_route_newports are a part of routing API\npresented to the socket layer. The namespace is available inside them\nthrough a socket.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f206351a50ea86250fabea96b9af8d8f8fc02603",
      "tree": "014148d8b45db1995d98374ec3b30e635f243197",
      "parents": [
        "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:34 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:07 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_key.\n\nNeeded to propagate it down to the ip_route_output_flow.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1b050bf7a88910f9f00c9c8989c1bf5a67dd140",
      "tree": "37e8dce4268cb657a75e5074a38db48264f1e42f",
      "parents": [
        "611c183ebcb5af384df3a4ddb391034a1b6ac255"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:07:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:06 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to ip_route_output_flow.\n\nNeeded to propagate it down to the __ip_route_output_key.\n\nSigned_off_by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "611c183ebcb5af384df3a4ddb391034a1b6ac255",
      "tree": "368ec261285af31fcf5a4f61651f01017e6d2692",
      "parents": [
        "b40afd0e5c568aba79a4ae2a963cd2af1f09490d"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Jan 22 22:06:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:05 2008 -0800"
      },
      "message": "[NETNS]: Add namespace parameter to __ip_route_output_key.\n\nThis is only required to propagate it down to the\nip_route_output_slow.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1bad118a330d494b23663fce94d4e9d9d5065fa7",
      "tree": "148ffe9ee7d6ab6319164c9889bcc1d76ec78db6",
      "parents": [
        "4b5d47d4d372287b48a5fac8c497cba5e0618a36"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jan 10 03:29:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:34 2008 -0800"
      },
      "message": "[NETNS]: Pass namespace through ip_rt_ioctl.\n\n... up to rtentry_to_fib_config\n\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nAcked-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b175b26c1048d331508940ad3516ead1998084f",
      "tree": "810b0a18cee4d87c573274fdfd4a59fc624cfed2",
      "parents": [
        "8ad4942cd5bdad4143f7aa1d1bd4f7b2526c19c5"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jan 10 03:25:28 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:27 2008 -0800"
      },
      "message": "[NETNS]: Add netns parameter to inet_(dev_)add_type.\n\nThe patch extends the inet_addr_type and inet_dev_addr_type with the\nnetwork namespace pointer. That allows to access the different tables\nrelatively to the network namespace.\n\nThe modification of the signature function is reported in all the\ncallers of the inet_addr_type using the pointer to the well known\ninit_net.\n\nAcked-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nAcked-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0553811612a6178365f3b062c30234913b218a96",
      "tree": "81e4fa4f6d0a8beeb7ace09e7e4cb2375c9bfea1",
      "parents": [
        "0265ab44bacc1a1e0e3f5873d8ca2d5a29e33db2"
      ],
      "author": {
        "name": "Laszlo Attila Toth",
        "email": "panther@balabit.hu",
        "time": "Tue Dec 04 23:28:46 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:56 2008 -0800"
      },
      "message": "[IPV4]: Add inet_dev_addr_type()\n\nAddress type search can be limited to an interface by\ninet_dev_addr_type function.\n\nSigned-off-by: Laszlo Attila Toth \u003cpanther@balabit.hu\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56c99d0415e8b778c200f115b198c126243ec351",
      "tree": "0e8c15e26681fbcaf5127c8238950c2c5c58a6ac",
      "parents": [
        "7f53878dc2618bf7c01e2135bd271ac01bd85dc9"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Dec 06 02:19:07 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Dec 07 01:07:38 2007 -0800"
      },
      "message": "[IPV4]: Remove prototype of ip_rt_advice\n\nip_rt_advice has been gone, so no need to keep prototype and debug message.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "4839c52b01ca91be1c62761e08fb3deb3881e857"
}
