)]}'
{
  "log": [
    {
      "commit": "8d068875caca3b507ffa8a57d521483fd4eebcc7",
      "tree": "2c12e956ab40e55abbb803f4cf710f09e5d72b70",
      "parents": [
        "1f53c808502f1472bfc5829e6dd80317c7198a4a"
      ],
      "author": {
        "name": "Michal Kubecek",
        "email": "mkubecek@suse.cz",
        "time": "Wed Feb 06 10:46:33 2013 +0100"
      },
      "committer": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Wed Feb 06 11:36:29 2013 +0100"
      },
      "message": "xfrm: make gc_thresh configurable in all namespaces\n\nThe xfrm gc threshold can be configured via xfrm{4,6}_gc_thresh\nsysctl but currently only in init_net, other namespaces always\nuse the default value. This can substantially limit the number\nof IPsec tunnels that can be effectively used.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\n"
    },
    {
      "commit": "c539f01717c239cfa0921dd43927afc976f1eedc",
      "tree": "e0e4881913acb233f6ea83d93eb69da446084101",
      "parents": [
        "7266507d89991fa1e989283e4e032c6d9357fe26"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Fri Jan 11 06:30:44 2013 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Fri Jan 18 00:28:15 2013 +0100"
      },
      "message": "netfilter: add connlabel conntrack extension\n\nsimilar to connmarks, except labels are bit-based; i.e.\nall labels may be attached to a flow at the same time.\n\nUp to 128 labels are supported.  Supporting more labels\nis possible, but requires increasing the ct offset delta\nfrom u8 to u16 type due to increased extension sizes.\n\nMapping of bit-identifier to label name is done in userspace.\n\nThe extension is enabled at run-time once \"-m connlabel\" netfilter\nrules are added.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "4b87f922598acf91eee18f71688a33f54f57bcde",
      "tree": "9cdfe30c6b96c47093da5392ed82d147290cd64c",
      "parents": [
        "55eb555d9674e2ebe9d4de0146602f96ff18e7d6",
        "daf3ec688e057f6060fb9bb0819feac7a8bbf45c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 15 15:05:59 2013 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 15 15:05:59 2013 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tDocumentation/networking/ip-sysctl.txt\n\tdrivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\n\nBoth conflicts were simply overlapping context.\n\nA build fix for qlcnic is in here too, simply removing the added\ndevinit annotations which no longer exist.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d134f1c1f36166e8a738de92c4d2f4c262ff91b",
      "tree": "6d1504359c7f1ade1c79da0e468a2a409af5c56c",
      "parents": [
        "71bcdba06db91ceaaffe019b6c958b5faf06012a"
      ],
      "author": {
        "name": "Hannes Frederic Sowa",
        "email": "hannes@stressinduktion.org",
        "time": "Sat Jan 05 16:10:48 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 06 21:09:56 2013 -0800"
      },
      "message": "tcp: make sysctl_tcp_ecn namespace aware\n\nAs per suggestion from Eric Dumazet this patch makes tcp_ecn sysctl\nnamespace aware.  The reason behind this patch is to ease the testing\nof ecn problems on the internet and allows applications to tune their\nown use of ecn.\n\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10db9069eb5c60195170a4119bdbcbce69a4945f",
      "tree": "4ba585b7e16c265365751c57eeb17015351e77db",
      "parents": [
        "e035edd16ee83498cccc9beedfc215e15cab3a07"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Dec 20 01:54:51 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Dec 24 12:55:09 2012 +0100"
      },
      "message": "netfilter: xt_CT: recover NOTRACK target support\n\nFlorian Westphal reported that the removal of the NOTRACK target\n(9655050 netfilter: remove xt_NOTRACK) is breaking some existing\nsetups.\n\nThat removal was scheduled for removal since long time ago as\ndescribed in Documentation/feature-removal-schedule.txt\n\nWhat:  xt_NOTRACK\nFiles: net/netfilter/xt_NOTRACK.c\nWhen:  April 2011\nWhy:   Superseded by xt_CT\n\nStill, people may have not notice / may have decided to stick to an\nold iptables version. I agree with him in that some more conservative\napproach by spotting some printk to warn users for some time is less\nagressive.\n\nCurrent iptables 1.4.16.3 already contains the aliasing support\nthat makes it point to the CT target, so upgrading would fix it.\nStill, the policy so far has been to avoid pushing our users to\nupgrade.\n\nAs a solution, this patch recovers the NOTRACK target inside the CT\ntarget and it now spots a warning.\n\nReported-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "252b3e8c1bc0c2b20348ae87d67efcd0a8209f72",
      "tree": "369400efc56df50e5fa1467ffd84fbe43f264f40",
      "parents": [
        "0c36b48b36dc84d4215dc9d1cde1bda829214ba6"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Dec 11 04:07:42 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sun Dec 16 23:44:12 2012 +0100"
      },
      "message": "netfilter: xt_CT: fix crash while destroy ct templates\n\nIn (d871bef netfilter: ctnetlink: dump entries from the dying and\nunconfirmed lists), we assume that all conntrack objects are\ninserted in any of the existing lists. However, template conntrack\nobjects were not. This results in hitting BUG_ON in the\ndestroy_conntrack path while removing a rule that uses the CT target.\n\nThis patch fixes the situation by adding the template lists, which\nis where template conntrack objects reside now.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "3c68198e75111a905ac2412be12bf7b29099729b",
      "tree": "109b39430631746fd4266d5fdbf8351c6c2e20d1",
      "parents": [
        "342567ccf088a6c4777ef352f559fe46aaeb047e"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed Oct 24 09:20:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 02:22:18 2012 -0400"
      },
      "message": "sctp: Make hmac algorithm selection for cookie generation dynamic\n\nCurrently sctp allows for the optional use of md5 of sha1 hmac algorithms to\ngenerate cookie values when establishing new connections via two build time\nconfig options.  Theres no real reason to make this a static selection.  We can\nadd a sysctl that allows for the dynamic selection of these algorithms at run\ntime, with the default value determined by the corresponding crypto library\navailability.\nThis comes in handy when, for example running a system in FIPS mode, where use\nof md5 is disallowed, but SHA1 is permitted.\n\nNote: This new sysctl has no corresponding socket option to select the cookie\nhmac algorithm.  I chose not to implement that intentionally, as RFC 6458\ncontains no option for this value, and I opted not to pollute the socket option\nnamespace.\n\nChange notes:\nv2)\n\t* Updated subject to have the proper sctp prefix as per Dave M.\n\t* Replaced deafult selection options with new options that allow\n\t  developers to explicitly select available hmac algs at build time\n\t  as per suggestion by Vlad Y.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nCC: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCC: netdev@vger.kernel.org\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a06e5e1bb217be077e1f8ee2745b4c5b1aa02db",
      "tree": "8faea23112a11f52524eb413f71b7b02712d8b53",
      "parents": [
        "d9f72f359e00a45a6cd7cc2d5121b04b9dc927e1",
        "6672d90fe779dc0dfffe027c3ede12609df091c2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/team/team.c\n\tdrivers/net/usb/qmi_wwan.c\n\tnet/batman-adv/bat_iv_ogm.c\n\tnet/ipv4/fib_frontend.c\n\tnet/ipv4/route.c\n\tnet/l2tp/l2tp_netlink.c\n\nThe team, fib_frontend, route, and l2tp_netlink conflicts were simply\noverlapping changes.\n\nqmi_wwan and bat_iv_ogm were of the \"use HEAD\" variety.\n\nWith help from Antonio Quartulli.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c038a767cd697238b09f7a4ea5a504b4891774e9",
      "tree": "c6cbe9f5b641a7f5cc4e1fb520724b77682e9810",
      "parents": [
        "8c4c49df5cfeb8d56e5b85a430c8cbcb86c2ac37"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Sep 18 16:50:08 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 19 17:23:28 2012 -0400"
      },
      "message": "ipv6: add a new namespace for nf_conntrack_reasm\n\nAs pointed by Michal, it is necessary to add a new\nnamespace for nf_conntrack_reasm code, this prepares\nfor the second patch.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Michal Kubeček \u003cmkubecek@suse.cz\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nCc: netfilter-devel@vger.kernel.org\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b42664f898c976247f7f609b8bb9c94d7475ca10",
      "tree": "b98e4d5d57b21d0a9dc8882bdc29e7cc7c6beccf",
      "parents": [
        "2885da72966fcb89f48d554339d347fb02b5ea78"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Mon Sep 10 22:09:44 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 18 15:57:03 2012 -0400"
      },
      "message": "netns: move net-\u003eipv4.rt_genid to net-\u003ert_genid\n\nThis commit prepares the use of rt_genid by both IPv4 and IPv6.\nInitialization is left in IPv4 part.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ace1fe1231bdfffd60b5e703aa5b7283fbf98dbd",
      "tree": "06c7492a8f3cc65f916768616ca24c6bc7171761",
      "parents": [
        "ce9f3f31efb88841e4df98794b13dbac8c4901da",
        "a2dc375e12334b3d8f787a48b2fb6172ccfb80ae"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Sep 03 15:28:30 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Sep 03 15:34:51 2012 +0200"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nThis merges (3f509c6 netfilter: nf_nat_sip: fix incorrect handling\nof EBUSY for RTCP expectation) to Patrick McHardy\u0027s IPv6 NAT changes.\n"
    },
    {
      "commit": "58a317f1061c894d2344c0b6a18ab4a64b69b815",
      "tree": "0e8c4dd2a74cff86cedca36de278e3eb42f939bd",
      "parents": [
        "2cf545e835aae92173ef0b1f4af385e9c40f21e8"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Aug 26 19:14:12 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Aug 30 03:00:17 2012 +0200"
      },
      "message": "netfilter: ipv6: add IPv6 NAT support\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c7232c9979cba684c50b64c513c4a83c9aa70563",
      "tree": "dbe0fdac62191d85935f5a3dfe815c1b1add60f9",
      "parents": [
        "051966c0c644a1c96092d4206e00704ade813c9a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Aug 26 19:14:06 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Aug 30 03:00:14 2012 +0200"
      },
      "message": "netfilter: add protocol independent NAT core\n\nConvert the IPv4 NAT implementation to a protocol independent core and\naddress family specific modules.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "e6acb384807406c1a6ad3ddc91191f7658e63b7a",
      "tree": "7906d1bb402ac30e4efaa1bc6451b1c7a4b6e768",
      "parents": [
        "255e87657a84e21986e5d9070f3dee4aa8d1d531",
        "898132ae76d1aeb52301f10e8795c34fbb54e853"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 24 18:54:37 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 24 18:54:37 2012 -0400"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nThis is an initial merge in of Eric Biederman\u0027s work to start adding\nuser namespace support to the networking.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f63c45e0e63fd1bccb6d021fe4de20f82114a024",
      "tree": "cf77ba24a9ddac69f962f9f18ba2fff4c9fae5a2",
      "parents": [
        "748e2d9396a18c3fd3d07d47c1b41320acf1fbf4"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "rosenr@marvell.com",
        "time": "Thu Aug 23 02:55:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 23 09:29:45 2012 -0700"
      },
      "message": "packet: fix broken build.\n\nThis patch fixes a broken build due to a missing header:\n...\n  CC      net/ipv4/proc.o\nIn file included from include/net/net_namespace.h:15,\n                 from net/ipv4/proc.c:35:\ninclude/net/netns/packet.h:11: error: field \u0027sklist_lock\u0027 has incomplete type\n...\n\nThe lock of netns_packet has been replaced by a recent patch to be a mutex instead of a spinlock,\nbut we need to replace the header file to be linux/mutex.h instead of linux/spinlock.h as well.\n\nSee commit 0fa7fa98dbcc2789409ed24e885485e645803d7f:\npacket: Protect packet sk list with mutex (v2) patch,\n\nSigned-off-by: Rami Rosen \u003crosenr@marvell.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fa7fa98dbcc2789409ed24e885485e645803d7f",
      "tree": "30a9b851fdee3b01a64f5ee07940224d089d31de",
      "parents": [
        "b32607dd47d456b99f0a16f1c37bc8a0975ffb19"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Aug 21 01:06:47 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 22 22:58:27 2012 -0700"
      },
      "message": "packet: Protect packet sk list with mutex (v2)\n\nChange since v1:\n\n* Fixed inuse counters access spotted by Eric\n\nIn patch eea68e2f (packet: Report socket mclist info via diag module) I\u0027ve\nintroduced a \"scheduling in atomic\" problem in packet diag module -- the\nsocket list is traversed under rcu_read_lock() while performed under it sk\nmclist access requires rtnl lock (i.e. -- mutex) to be taken.\n\n[152363.820563] BUG: scheduling while atomic: crtools/12517/0x10000002\n[152363.820573] 4 locks held by crtools/12517:\n[152363.820581]  #0:  (sock_diag_mutex){+.+.+.}, at: [\u003cffffffff81a2dcb5\u003e] sock_diag_rcv+0x1f/0x3e\n[152363.820613]  #1:  (sock_diag_table_mutex){+.+.+.}, at: [\u003cffffffff81a2de70\u003e] sock_diag_rcv_msg+0xdb/0x11a\n[152363.820644]  #2:  (nlk-\u003ecb_mutex){+.+.+.}, at: [\u003cffffffff81a67d01\u003e] netlink_dump+0x23/0x1ab\n[152363.820693]  #3:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff81b6a049\u003e] packet_diag_dump+0x0/0x1af\n\nSimilar thing was then re-introduced by further packet diag patches (fanount\nmutex and pgvec mutex for rings) :(\n\nApart from being terribly sorry for the above, I propose to change the packet\nsk list protection from spinlock to mutex. This lock currently protects two\nmodifications:\n\n* sklist\n* prot inuse counters\n\nThe sklist modifications can be just reprotected with mutex since they already\noccur in a sleeping context. The inuse counters modifications are trickier -- the\n__this_cpu_-s are used inside, thus requiring the caller to handle the potential\nissues with contexts himself. Since packet sockets\u0027 counters are modified in two\nplaces only (packet_create and packet_release) we only need to protect the context\nfrom being preempted. BH disabling is not required in this case.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1fc3b14f9a90d9591016749289f2c3d7b35fbf4",
      "tree": "709a6cfe1ac2d7164c9661a8c393a91d83ee6c85",
      "parents": [
        "f53b5b097e58361668b785eff9f7bcd12b4255ec"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 07 07:29:57 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:32:16 2012 -0700"
      },
      "message": "sctp: Make sysctl tunables per net\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebb7e95d9351f77a8ec1fca20eb645051401b7b2",
      "tree": "9edfe4abbdac8c05f3fe19ef3eb5d7e32500b69b",
      "parents": [
        "b01a24078fa3fc4f0f447d1306ce5adc495ead86"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 07 07:23:59 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:30:37 2012 -0700"
      },
      "message": "sctp: Add infrastructure for per net sysctls\n\nStart with an empty sctp_net_table that will be populated as the various\ntunable sysctls are made per net.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b01a24078fa3fc4f0f447d1306ce5adc495ead86",
      "tree": "6949f590c81e2c1ce193b1bdaec68a60e9842879",
      "parents": [
        "bb2db45b5495455ec7580315029184550709f4a2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Aug 06 08:47:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:30:36 2012 -0700"
      },
      "message": "sctp: Make the mib per network namespace\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13d782f6b4fbbaf9d0380a9947deb45a9de46ae7",
      "tree": "a9b17830724d4470af1a37abec88902bd1a09aca",
      "parents": [
        "632c928a6a77fe96cda34a9978e1f6019ffc38f4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Aug 06 08:45:15 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:29:53 2012 -0700"
      },
      "message": "sctp: Make the proc files per network namespace.\n\n- Convert all of the files under /proc/net/sctp to be per\n  network namespace.\n\n- Don\u0027t print anything for /proc/net/sctp/snmp except in\n  the initial network namespaces as the snmp counters still\n  have to be converted to be per network namespace.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2ce955035081112cf1590c961da8d94324142b5e",
      "tree": "1c9c9afdcac42e283a7383fa67842470753a0bb4",
      "parents": [
        "4db67e808640e3934d82ce61ee8e2e89fd877ba8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Aug 06 08:43:06 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:17:26 2012 -0700"
      },
      "message": "sctp: Make the ctl_sock per network namespace\n\n- Kill sctp_get_ctl_sock, it is useless now.\n- Pass struct net where needed so net-\u003esctp.ctl_sock is accessible.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4db67e808640e3934d82ce61ee8e2e89fd877ba8",
      "tree": "ff02e330187c41970c75f6d8a6275e1cc25165f0",
      "parents": [
        "4110cc255ddec59c79fba4d71cdd948d0a382140"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Aug 06 08:42:04 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 23:12:17 2012 -0700"
      },
      "message": "sctp: Make the address lists per network namespace\n\n- Move the address lists into struct net\n- Add per network namespace initialization and cleanup\n- Pass around struct net so it is everywhere I need it.\n- Rename all of the global variable references into references\n  to the variables moved into struct net\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7064d16e162adf8199f0288b694e6af823ed5431",
      "tree": "02563996ee28d686b1cb9a16ba389b382aa6bb4f",
      "parents": [
        "a7cb5a49bf64ba64864ae16a6be028f8b0d3cc06"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 24 10:34:21 2012 -0600"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 14 21:49:10 2012 -0700"
      },
      "message": "userns: Use kgids for sysctl_ping_group_range\n\n- Store sysctl_ping_group_range as a paire of kgid_t values\n  instead of a pair of gid_t values.\n- Move the kgid conversion work from ping_init_sock into ipv4_ping_group_range\n- For invalid cases reset to the default disabled state.\n\nWith the kgid_t conversion made part of the original value sanitation\nfrom userspace understand how the code will react becomes clearer\nand it becomes possible to set the sysctl ping group range from\nsomething other than the initial user namespace.\n\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0c7462a2351b4cc502f326aad7fedd04909928be",
      "tree": "0f60f604b836d310d7a587b701232870d00f3446",
      "parents": [
        "404e0a8b6a55d5e1cd138c6deb1bca9abdf75d8c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jul 30 07:14:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 30 14:53:22 2012 -0700"
      },
      "message": "ipv4: remove rt_cache_rebuild_count\n\nAfter IP route cache removal, rt_cache_rebuild_count is no longer\nused.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5815d5e7aae3cc9c5e85af83094d4d6498c3f4fc",
      "tree": "68c36b030d6479cdee319db32cdb2ee4d81ee938",
      "parents": [
        "67b95bd78f0de85793bf30835913f6ef784a39b6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Jul 19 23:02:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 20 10:59:41 2012 -0700"
      },
      "message": "tcp: use hash_32() in tcp_metrics\n\nFix a missing roundup_pow_of_two(), since tcpmhash_entries is not\nguaranteed to be a power of two.\n\nUses hash_32() instead of custom hash.\n\ntcpmhash_entries should be an unsigned int.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be9f4a44e7d41cee50ddb5f038fc2391cbbb4046",
      "tree": "184e45a62fa0b4d15961427c0e8d5a496f0617a5",
      "parents": [
        "aee06da6726d4981c51928c2d6d1e2cabeec7a10"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Jul 19 07:34:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 19 10:35:30 2012 -0700"
      },
      "message": "ipv4: tcp: remove per net tcp_sock\n\ntcp_v4_send_reset() and tcp_v4_send_ack() use a single socket\nper network namespace.\n\nThis leads to bad behavior on multiqueue NICS, because many cpus\ncontend for the socket lock and once socket lock is acquired, extra\nfalse sharing on various socket fields slow down the operations.\n\nTo better resist to attacks, we use a percpu socket. Each cpu can\nrun without contention, using appropriate memory (local node)\n\nAdditional features :\n\n1) We also mirror the queue_mapping of the incoming skb, so that\nanswers use the same queue if possible.\n\n2) Setting SOCK_USE_WRITE_QUEUE socket flag speedup sock_wfree()\n\n3) We now limit the number of in-flight RST/ACK [1] packets\nper cpu, instead of per namespace, and we honor the sysctl_wmem_default\nlimit dynamically. (Prior to this patch, sysctl_wmem_default value was\ncopied at boot time, so any further change would not affect tcp_sock\nlimit)\n\n[1] These packets are only generated when no socket was matched for\nthe incoming packet.\n\nReported-by: Bill Sommerfeld \u003cwsommerfeld@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "51c5d0c4b169bf762f09e0d5b283a7f0b2a45739",
      "tree": "9dd99b27be4dc469954a2d67515593c9f71cbcd0",
      "parents": [
        "ab92bb2f679d66c7e12a6b1c0cdd76fe308f6546"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 00:49:14 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 10 22:39:57 2012 -0700"
      },
      "message": "tcp: Maintain dynamic metrics in local cache.\n\nMaintain a local hash table of TCP dynamic metrics blobs.\n\nComputed TCP metrics are no longer maintained in the route metrics.\n\nThe table uses RCU and an extremely simple hash so that it has low\nlatency and low overhead.  A simple hash is legitimate because we only\nmake metrics blobs for fully established connections.\n\nSome tweaking of the default hash table sizes, metric timeouts, and\nthe hash chain length limit certainly could use some tweaking.  But\nthe basic design seems sound.\n\nWith help from Eric Dumazet and Joe Perches.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f4530fa574df4d833506c53697ed1daa0d390bf4",
      "tree": "2a19ff4c8410d5aee18a78cddaeb765ed9aa95d6",
      "parents": [
        "700db99d0140e9da2a31e08ebd3e1b121691aa26"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 05 22:13:13 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 05 22:13:13 2012 -0700"
      },
      "message": "ipv4: Avoid overhead when no custom FIB rules are installed.\n\nIf the user hasn\u0027t actually installed any custom rules, or fiddled\nwith the default ones, don\u0027t go through the whole FIB rules layer.\n\nIt\u0027s just pure overhead.\n\nInstead do what we do with CONFIG_IP_MULTIPLE_TABLES disabled, check\nthe individual tables by hand, one by one.\n\nAlso, move fib_num_tclassid_users into the ipv4 network namespace.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "67da25521066b38911701efa133aaad2238b5530",
      "tree": "776ad4942ce8294f0ba0013baf9527a1d39b424f",
      "parents": [
        "7b34ca2ac7063f4ebf07f85fd75253ed84d5c648",
        "2597a8344ce051d0afe331706bcb4660bbdb9861"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 12:56:14 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 11 12:56:14 2012 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://1984.lsi.us.es/net-next\n"
    },
    {
      "commit": "c8a627ed06d6d49bf65015a2185c519335c4c83f",
      "tree": "2a67acd810661f3655162868bef0306e7ec51b86",
      "parents": [
        "1578e7778fa04eb7e32da561effee6cd38139b0f"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Fri Jun 08 01:20:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jun 08 14:27:23 2012 -0700"
      },
      "message": "inetpeer: add namespace support for inetpeer\n\nnow inetpeer doesn\u0027t support namespace,the information will\nbe leaking across namespace.\n\nthis patch move the global vars v4_peers and v6_peers to\nnetns_ipv4 and netns_ipv6 as a field peers.\n\nadd struct pernet_operations inetpeer_ops to initial pernet\ninetpeer data.\n\nand change family_to_base and inet_getpeer to support namespace.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7080ba0955438ecd2885c1b73fbd9760b1594a41",
      "tree": "dcb91bea5da6c1cb70bc52acfd3a17db3da259c7",
      "parents": [
        "4b626b9c5d35b4f99b073dc5d6457abddcbcf429"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:15 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:40 2012 +0200"
      },
      "message": "netfilter: nf_ct_icmp: add namespace support\n\nThis patch adds namespace support for ICMPv6 protocol tracker.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "4b626b9c5d35b4f99b073dc5d6457abddcbcf429",
      "tree": "774457d18f064a5a1ca8ee54724ab5ff3b5e0487",
      "parents": [
        "0ce490ad4387a67ee8ca5253476272d508fc0b6f"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:14 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:40 2012 +0200"
      },
      "message": "netfilter: nf_ct_icmp: add namespace support\n\nThis patch adds namespace support for ICMP protocol tracker.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "0ce490ad4387a67ee8ca5253476272d508fc0b6f",
      "tree": "7ad5d0742f1eaa82494af89dd5ac35801c3e12fa",
      "parents": [
        "d2ba1fde42af44fbce361202e9af13daff9e4381"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:13 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:40 2012 +0200"
      },
      "message": "netfilter: nf_ct_udp: add namespace support\n\nThis patch adds namespace support for UDP protocol tracker.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "d2ba1fde42af44fbce361202e9af13daff9e4381",
      "tree": "ff268b9e00824abbcbf2bd2234cd338c34045180",
      "parents": [
        "15f585bd76b6bd2974b23c9e69ff038a0826a0be"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:12 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:39 2012 +0200"
      },
      "message": "netfilter: nf_ct_tcp: add namespace support\n\nThis patch adds namespace support for TCP protocol tracker.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "15f585bd76b6bd2974b23c9e69ff038a0826a0be",
      "tree": "6719807ab454cd1121b32f7eb9421890b661ce4f",
      "parents": [
        "524a53e5ad5f34f64ed34281e8b0eca19437db5b"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:11 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:39 2012 +0200"
      },
      "message": "netfilter: nf_ct_generic: add namespace support\n\nThis patch adds namespace support for the generic layer 4 protocol\ntracker.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "524a53e5ad5f34f64ed34281e8b0eca19437db5b",
      "tree": "e6ad5ef71a1fe4b95c3ab5690d5e728513765e5d",
      "parents": [
        "2c352f444ccfa966a1aa4fd8e9ee29381c467448"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon May 28 21:04:10 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:39 2012 +0200"
      },
      "message": "netfilter: nf_conntrack: prepare namespace support for l3 protocol trackers\n\nThis patch prepares the namespace support for layer 3 protocol trackers.\nBasically, this modifies the following interfaces:\n\n* nf_ct_l3proto_[un]register_sysctl.\n* nf_conntrack_l3proto_[un]register.\n\nWe add a new nf_ct_l3proto_net is used to get the pernet data of l3proto.\n\nThis adds rhe new struct nf_ip_net that is used to store the sysctl header\nand l3proto_ipv4,l4proto_tcp(6),l4proto_udp(6),l4proto_icmp(v6) because the\nprotos such tcp and tcp6 use the same data,so making nf_ip_net as a field\nof netns_ct is the easiest way to manager it.\n\nThis patch also adds init_net to struct nf_conntrack_l3proto to initial\nthe layer 3 protocol pernet data.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "2c352f444ccfa966a1aa4fd8e9ee29381c467448",
      "tree": "befcba86ddf2cdbd73d15e1e2620439158c8e2f4",
      "parents": [
        "fdb694a01f1fcd30fd16d8aa290c34699fe98a17"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitus.com",
        "time": "Mon May 28 21:04:09 2012 +0000"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jun 07 14:58:39 2012 +0200"
      },
      "message": "netfilter: nf_conntrack: prepare namespace support for l4 protocol trackers\n\nThis patch prepares the namespace support for layer 4 protocol trackers.\nBasically, this modifies the following interfaces:\n\n* nf_ct_[un]register_sysctl\n* nf_conntrack_l4proto_[un]register\n\nto include the namespace parameter. We still use init_net in this patch\nto prepare the ground for follow-up patches for each layer 4 protocol\ntracker.\n\nWe add a new net_id field to struct nf_conntrack_l4proto that is used\nto store the pernet_operations id for each layer 4 protocol tracker.\n\nNote that AF_INET6\u0027s protocols do not need to do sysctl compat. Thus,\nwe only register compat sysctl when l4proto.l3proto !\u003d AF_INET6.\n\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "a9006892643a8f4e885b692de0708bcb35a7d530",
      "tree": "de5ba86bb36d05cd859bffb2370a9a3b462722d9",
      "parents": [
        "031d7709f21c778bcb1eed96d790e82b3bee96b5"
      ],
      "author": {
        "name": "Eric Leblond",
        "email": "eric@regit.org",
        "time": "Wed Apr 18 11:20:41 2012 +0200"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue May 08 19:35:18 2012 +0200"
      },
      "message": "netfilter: nf_ct_helper: allow to disable automatic helper assignment\n\nThis patch allows you to disable automatic conntrack helper\nlookup based on TCP/UDP ports, eg.\n\necho 0 \u003e /proc/sys/net/netfilter/nf_conntrack_helper\n\n[ Note: flows that already got a helper will keep using it even\n  if automatic helper assignment has been disabled ]\n\nOnce this behaviour has been disabled, you have to explicitly\nuse the iptables CT target to attach helper to flows.\n\nThere are good reasons to stop supporting automatic helper\nassignment, for further information, please read:\n\nhttp://www.netfilter.org/news.html#2012-04-03\n\nThis patch also adds one message to inform that automatic helper\nassignment is deprecated and it will be removed soon (this is\nspotted only once, with the first flow that gets a helper attached\nto make it as less annoying as possible).\n\nSigned-off-by: Eric Leblond \u003ceric@regit.org\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "6dceb03687124b6ee392eb1d9921bd463eab3190",
      "tree": "f7a5de779c5cc5cc1d660fabe0678de9c606b83e",
      "parents": [
        "64fb3010400f6051261be9c5c74f29de416dad8f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Apr 19 13:37:09 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Apr 20 21:22:29 2012 -0400"
      },
      "message": "net ipv6: Don\u0027t use sysctl tables with .child entries.\n\nThe sysctl core no longer natively understands sysctl tables\nwith .child entries.\n\nSplit the ipv6_table to remove the .child entries.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\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": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "5ee4433efe99b9f39f6eff5052a177bbcfe72cea",
      "tree": "0be8ae9b59828b3fee0fdf5cac9432604a317230",
      "parents": [
        "cc0d7b91db000aef1cc12f1d3d4d7f80af9bd419"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jan 26 14:02:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 27 21:06:02 2012 -0500"
      },
      "message": "netns: Fail conspicously if someone uses net_generic at an inappropriate time.\n\nBy definition net_generic should never be called when it can return\nNULL.  Fail conspicously with a BUG_ON to make it clear when people mess\nup that a NULL return should never happen.\n\nRecently there was a bug in the CAIF subsystem where it was registered\nwith register_pernet_device instead of register_pernet_subsys.  It was\nerroneously concluded that net_generic could validly return NULL and\nthat net_assign_generic was buggy (when it was just inefficient).\nHopefully this BUG_ON will prevent people to coming to similar erroneous\nconclusions in the futrue.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nTested-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dc43e3e4d0b52197d3205214fe8f162f9e0c334",
      "tree": "1770affeb483a6b4f06cde9f2a2f1289b41496d6",
      "parents": [
        "d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Dec 11 21:47:05 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 12 19:04:11 2011 -0500"
      },
      "message": "per-netns ipv4 sysctl_tcp_mem\n\nThis patch allows each namespace to independently set up\nits levels for tcp memory pressure thresholds. This patch\nalone does not buy much: we need to make this values\nper group of process somehow. This is achieved in the\npatches that follows in this patchset.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dfd56b8b38fff3586f36232db58e1e9f7885a605",
      "tree": "64c7142ebf4625939f68bd3603f1d37bacb20a73",
      "parents": [
        "1ded132d4c3442aa3a619c94c245d7b5e0eb9731"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Dec 10 09:48:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 11 18:25:16 2011 -0500"
      },
      "message": "net: use IS_ENABLED(CONFIG_IPV6)\n\nInstead of testing defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b3613118eb30a589d971e4eccbbb2a1314f5dfd4",
      "tree": "868c1ee59e1b5c19a4f2e43716400d0001a994e5",
      "parents": [
        "7505afe28c16a8d386624930a018d0052c75d687",
        "5983fe2b29df5885880d7fa3b91aca306c7564ef"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "70e9942f17a6193e9172a804e6569a8806633d6b",
      "tree": "5cb0fe0a38a99aa51b70c01f7a7e729480ec5c73",
      "parents": [
        "5e2afba4ecd7931ea06e6fa116ab28e6943dbd42"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Nov 22 00:16:51 2011 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Nov 22 00:34:47 2011 +0100"
      },
      "message": "netfilter: nf_conntrack: make event callback registration per-netns\n\nThis patch fixes an oops that can be triggered following this recipe:\n\n0) make sure nf_conntrack_netlink and nf_conntrack_ipv4 are loaded.\n1) container is started.\n2) connect to it via lxc-console.\n3) generate some traffic with the container to create some conntrack\n   entries in its table.\n4) stop the container: you hit one oops because the conntrack table\n   cleanup tries to report the destroy event to user-space but the\n   per-netns nfnetlink socket has already gone (as the nfnetlink\n   socket is per-netns but event callback registration is global).\n\nTo fix this situation, we make the ctnl_notifier per-netns so the\ncallback is registered/unregistered if the container is\ncreated/destroyed.\n\nAlex Bligh and Alexey Dobriyan originally proposed one small patch to\ncheck if the nfnetlink socket is gone in nfnetlink_has_listeners,\nbut this is a very visited path for events, thus, it may reduce\nperformance and it looks a bit hackish to check for the nfnetlink\nsocket only to workaround this situation. As a result, I decided\nto follow the bigger path choice, which seems to look nicer to me.\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReported-by: Alex Bligh \u003calex@alex.org.uk\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "2a24444f8f2bea694003e3eac5c2f8d9a386bdc5",
      "tree": "ef283db22c931c518ac6c0b8bca2e23dd62a7736",
      "parents": [
        "3d249d4ca7d0ed6629a135ea1ea21c72286c0d80"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sun Nov 13 01:24:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 14 00:12:26 2011 -0500"
      },
      "message": "ipv6: reduce percpu needs for icmpv6msg mibs\n\nReading /proc/net/snmp6 on a machine with a lot of cpus is very\nexpensive (can be ~88000 us).\n\nThis is because ICMPV6MSG MIB uses 4096 bytes per cpu, and folding\nvalues for all possible cpus can read 16 Mbytes of memory (32MBytes on\nnon x86 arches)\n\nICMP messages are not considered as fast path on a typical server, and\neventually few cpus handle them anyway. We can afford an atomic\noperation instead of using percpu data.\n\nThis saves 4096 bytes per cpu and per network namespace.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acb32ba3dee66d58704caeeb8c6ff95f60efdc66",
      "tree": "b5c1d6d5575a7b75c7c816e0809690f58401715c",
      "parents": [
        "e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 08 13:04:43 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 09 16:04:20 2011 -0500"
      },
      "message": "ipv4: reduce percpu needs for icmpmsg mibs\n\nReading /proc/net/snmp on a machine with a lot of cpus is very expensive\n(can be ~88000 us).\n\nThis is because ICMPMSG MIB uses 4096 bytes per cpu, and folding values\nfor all possible cpus can read 16 Mbytes of memory.\n\nICMP messages are not considered as fast path on a typical server, and\neventually few cpus handle them anyway. We can afford an atomic\noperation instead of using percpu data.\n\nThis saves 4096 bytes per cpu and per network namespace.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c319b4d76b9e583a5d88d6bf190e079c4e43213d",
      "tree": "22fcc6f1c671908d640145c1f82e5290cd40f715",
      "parents": [
        "f20190302e3e697a166cc28ebef43058749dedda"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri May 13 10:01:00 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 13 16:08:13 2011 -0400"
      },
      "message": "net: ipv4: add IPPROTO_ICMP socket kind\n\nThis patch adds IPPROTO_ICMP socket kind.  It makes it possible to send\nICMP_ECHO messages and receive the corresponding ICMP_ECHOREPLY messages\nwithout any special privileges.  In other words, the patch makes it\npossible to implement setuid-less and CAP_NET_RAW-less /bin/ping.  In\norder not to increase the kernel\u0027s attack surface, the new functionality\nis disabled by default, but is enabled at bootup by supporting Linux\ndistributions, optionally with restriction to a group or a group range\n(see below).\n\nSimilar functionality is implemented in Mac OS X:\nhttp://www.manpagez.com/man/4/icmp/\n\nA new ping socket is created with\n\n    socket(PF_INET, SOCK_DGRAM, PROT_ICMP)\n\nMessage identifiers (octets 4-5 of ICMP header) are interpreted as local\nports. Addresses are stored in struct sockaddr_in. No port numbers are\nreserved for privileged processes, port 0 is reserved for API (\"let the\nkernel pick a free number\"). There is no notion of remote ports, remote\nport numbers provided by the user (e.g. in connect()) are ignored.\n\nData sent and received include ICMP headers. This is deliberate to:\n1) Avoid the need to transport headers values like sequence numbers by\nother means.\n2) Make it easier to port existing programs using raw sockets.\n\nICMP headers given to send() are checked and sanitized. The type must be\nICMP_ECHO and the code must be zero (future extensions might relax this,\nsee below). The id is set to the number (local port) of the socket, the\nchecksum is always recomputed.\n\nICMP reply packets received from the network are demultiplexed according\nto their id\u0027s, and are returned by recv() without any modifications.\nIP header information and ICMP errors of those packets may be obtained\nvia ancillary data (IP_RECVTTL, IP_RETOPTS, and IP_RECVERR). ICMP source\nquenches and redirects are reported as fake errors via the error queue\n(IP_RECVERR); the next hop address for redirects is saved to ee_info (in\nnetwork order).\n\nsocket(2) is restricted to the group range specified in\n\"/proc/sys/net/ipv4/ping_group_range\".  It is \"1 0\" by default, meaning\nthat nobody (not even root) may create ping sockets.  Setting it to \"100\n100\" would grant permissions to the single group (to either make\n/sbin/ping g+s and owned by this group or to grant permissions to the\n\"netadmins\" group), \"0 4294967295\" would enable it for the world, \"100\n4294967295\" would enable it for the users, but not daemons.\n\nThe existing code might be (in the unlikely case anyone needs it)\nextended rather easily to handle other similar pairs of ICMP messages\n(Timestamp/Reply, Information Request/Reply, Address Mask Request/Reply\netc.).\n\nUserspace ping util \u0026 patch for it:\nhttp://openwall.info/wiki/people/segoon/ping\n\nFor Openwall GNU/*/Linux it was the last step on the road to the\nsetuid-less distro.  A revision of this patch (for RHEL5/OpenVZ kernels)\nis in use in Owl-current, such as in the 2011/03/12 LiveCD ISOs:\nhttp://mirrors.kernel.org/openwall/Owl/current/iso/\n\nInitially this functionality was written by Pavel Kankovsky for\nLinux 2.4.32, but unfortunately it was never made public.\n\nAll ping options (-b, -p, -Q, -R, -s, -t, -T, -M, -I), are tested with\nthe patch.\n\nPATCH v3:\n    - switched to flowi4.\n    - minor changes to be consistent with raw sockets code.\n\nPATCH v2:\n    - changed ping_debug() to pr_debug().\n    - removed CONFIG_IP_PING.\n    - removed ping_seq_fops.owner field (unused for procfs).\n    - switched to proc_net_fops_create().\n    - switched to %pK in seq_printf().\n\nPATCH v1:\n    - fixed checksumming bug.\n    - CAP_NET_RAW may not create icmp sockets anymore.\n\nRFC v2:\n    - minor cleanups.\n    - introduced sysctl\u0027able group range to restrict socket(2).\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "436c3b66ec9824a633724ae42de1c416af4f2063",
      "tree": "8da6452386b6e900c4226c9b67694d1ea21e847e",
      "parents": [
        "f7594d42944c0dfca90318f50978a4bdf8504086"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 24 17:42:21 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 24 17:42:21 2011 -0700"
      },
      "message": "ipv4: Invalidate nexthop cache nh_saddr more correctly.\n\nAny operation that:\n\n1) Brings up an interface\n2) Adds an IP address to an interface\n3) Deletes an IP address from an interface\n\ncan potentially invalidate the nh_saddr value, requiring\nit to be recomputed.\n\nPerform the recomputation lazily using a generation ID.\n\nReported-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2553d064ff4bf999f369c8c3dfacaa797dbef1d9",
      "tree": "2c83d5dd203f252d5e00d2b0ff643478c465f3dc",
      "parents": [
        "06b69390a652bfe4fa7e18e27c938e75ffe86ba0"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Fri Mar 04 12:18:07 2011 +0200"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Tue Mar 15 09:36:50 2011 +0900"
      },
      "message": "ipvs: move struct netns_ipvs\n\n \tRemove include/net/netns/ip_vs.h because it depends on\nstructures from include/net/ip_vs.h. As ipvs is pointer in\nstruct net it is better to move struct netns_ipvs into\ninclude/net/ip_vs.h, so that we can easily use other structures\nin struct netns_ipvs.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "a992ca2a0498edd22a88ac8c41570f536de29c9e",
      "tree": "4574d4da3f44c7dd3879cb4f209a8bd3a37c0ca9",
      "parents": [
        "93557f53e1fbd9e2b6574ab0a9b5852628fde9e3"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Wed Jan 19 16:00:07 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 19 16:00:07 2011 +0100"
      },
      "message": "netfilter: nf_conntrack_tstamp: add flow-based timestamp extension\n\nThis patch adds flow-based timestamping for conntracks. This\nconntrack extension is disabled by default. Basically, we use\ntwo 64-bits variables to store the creation timestamp once the\nconntrack has been confirmed and the other to store the deletion\ntime. This extension is disabled by default, to enable it, you\nhave to:\n\necho 1 \u003e /proc/sys/net/netfilter/nf_conntrack_timestamp\n\nThis patch allows to save memory for user-space flow-based\nloogers such as ulogd2. In short, ulogd2 does not need to\nkeep a hashtable with the conntrack in user-space to know\nwhen they were created and destroyed, instead we use the\nkernel timestamp. If we want to have a sane IPFIX implementation\nin user-space, this nanosecs resolution timestamps are also\nuseful. Other custom user-space applications can benefit from\nthis via libnetfilter_conntrack.\n\nThis patch modifies the /proc output to display the delta time\nin seconds since the flow start. You can also obtain the\nflow-start date by means of the conntrack-tools.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d862a6622e9db508d4b28cc7c5bc28bd548cc24e",
      "tree": "d0d65ef88e8f158a33c370a0f1a6f98b41191d6c",
      "parents": [
        "0134e89c7bcc9fde1da962c82a120691e185619f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 15:45:56 2011 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Jan 14 15:45:56 2011 +0100"
      },
      "message": "netfilter: nf_conntrack: use is_vmalloc_addr()\n\nUse is_vmalloc_addr() in nf_ct_free_hashtable() and get rid of\nthe vmalloc flags to indicate that a hash table has been allocated\nusing vmalloc().\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "763f8d0ed4f1ce38b35cc0e05482b7799b82789b",
      "tree": "bc9938998b6af45a44bb35dba078851ccb21d95e",
      "parents": [
        "f2431e6e9255461eb1476340a89ad32ad4b38b03"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:45:01 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, svc counters moved in ip_vs_ctl,c\n\nLast two global vars to be moved,\nip_vs_ftpsvc_counter and ip_vs_nullsvc_counter.\n\n[horms@verge.net.au: removed whitespace-change-only hunk]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f2431e6e9255461eb1476340a89ad32ad4b38b03",
      "tree": "934974c80d2c01b44768369ca9b188f64c6ab979",
      "parents": [
        "f6340ee0c6b9498ec918a7bb2f44e20abb8b2833"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:45:00 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, trash handling\n\ntrash list per namspace,\nand reordering of some params in dst struct.\n\n[ horms@verge.net.au: Use cancel_delayed_work_sync() instead of\n\t              cancel_rearming_delayed_work(). Found during\n\t\t      merge conflict resoliution ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f6340ee0c6b9498ec918a7bb2f44e20abb8b2833",
      "tree": "46e0f99416479f31bbd8093e18c360171e86fd59",
      "parents": [
        "a0840e2e165a370ca24a59545e564e9881a55891"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:59 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, defense work timer.\n\nThis patch makes defense work timer per name-space,\nA net ptr had to be added to the ipvs struct,\nsince it\u0027s needed by defense_work_handler.\n\n[ horms@verge.net.au: Use cancel_delayed_work_sync() instead of\n\t              cancel_rearming_delayed_work(). Found during\n\t\t      merge conflict resoliution ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "a0840e2e165a370ca24a59545e564e9881a55891",
      "tree": "deb10e3931be9410aebbb55e5fccbd42a5edd633",
      "parents": [
        "6e67e586e7289c144d5a189d6e0fa7141d025746"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:58 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, ip_vs_ctl local vars moved to ipvs struct.\n\nMoving global vars to ipvs struct, except for svc table lock.\nNext patch for ctl will be drop-rate handling.\n\n*v3\n__ip_vs_mutex remains global\n ip_vs_conntrack_enabled(struct netns_ipvs *ipvs)\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "6e67e586e7289c144d5a189d6e0fa7141d025746",
      "tree": "33a064ac5fa2e2ac4270c6361d5566bc99c671e6",
      "parents": [
        "b17fc9963f837ef1acfe36e193108fb16ed58647"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:57 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, connection hash got net as param.\n\nConnection hash table is now name space aware.\ni.e. net ptr \u003e\u003e 8 is xor:ed to the hash,\nand this is the first param to be compared.\nThe net struct is 0xa40 in size ( a little bit smaller for 32 bit arch:s)\nand cache-line aligned, so a ptr \u003e\u003e 5 might be a more clever solution ?\n\nAll lookups where net is compared uses net_eq() which returns 1 when netns\nis disabled, and the compiler seems to do something clever in that case.\n\nip_vs_conn_fill_param() have *net as first param now.\n\nThree new inlines added to keep conn struct smaller\nwhen names space is disabled.\n- ip_vs_conn_net()\n- ip_vs_conn_net_set()\n- ip_vs_conn_net_eq()\n\n*v3\n  moved net compare to the end in \"fast path\"\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "b17fc9963f837ef1acfe36e193108fb16ed58647",
      "tree": "8c41814df22f7b788bc2103c39ab8fd4882a0091",
      "parents": [
        "f131315fa272d337dfca7dad2f033ff5296dad65"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:56 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, ip_vs_stats and its procfs\n\nThe statistic counter locks for every packet are now removed,\nand that statistic is now per CPU, i.e. no locks needed.\nHowever summing is made in ip_vs_est into ip_vs_stats struct\nwhich is moved to ipvs struc.\n\nprocfs, ip_vs_stats now have a \"per cpu\" count and a grand total.\nA new function seq_file_single_net() in ip_vs.h created for handling of\nsingle_open_net() since it does not place net ptr in a struct, like others.\n\n/var/lib/lxc # cat /proc/net/ip_vs_stats_percpu\n       Total Incoming Outgoing         Incoming         Outgoing\nCPU    Conns  Packets  Packets            Bytes            Bytes\n  0        0        3        1               9D               34\n  1        0        1        2               49               70\n  2        0        1        2               34               76\n  3        1        2        2               70               74\n  ~        1        7        7              18A              18E\n\n     Conns/s   Pkts/s   Pkts/s          Bytes/s          Bytes/s\n           0        0        0                0                0\n\n*v3\nip_vs_stats reamains as before, instead ip_vs_stats_percpu is added.\nu64 seq lock added\n\n*v4\nBug correction inbytes and outbytes as own vars..\nper_cpu counter for all stats now as suggested by Julian.\n\n[horms@verge.net.au: removed whitespace-change-only hunk]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f131315fa272d337dfca7dad2f033ff5296dad65",
      "tree": "4abe0b8cd421229e27be614e23e3bbc800dff98b",
      "parents": [
        "29c2026fd4980c144d9c746dc1565060f08e5796"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:55 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_sync\n\nAll global variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\nin sync_buf create  + 4 replaced by sizeof(struct..)\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "29c2026fd4980c144d9c746dc1565060f08e5796",
      "tree": "37373a66fac997e01c83e774c21e00dca713598a",
      "parents": [
        "ab8a5e8408c3df2d654611bffc3aaf04f418b266"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:54 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_est\n\nAll variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\n\n*v3\n timer per ns instead of a common timer in estimator.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "ab8a5e8408c3df2d654611bffc3aaf04f418b266",
      "tree": "665454a0426b9209a53018ee71103914b29d95a7",
      "parents": [
        "9bbac6a904d0816dae58b454692c54d6773cc20d"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:53 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_app\n\nAll variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\n\nin ip_vs_protocol param struct net *net added to:\n - register_app()\n - unregister_app()\nThis affected almost all proto_xxx.c files\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "9d934878e7870fbbbd8eaed2e467552536877def",
      "tree": "82be8a59a2a68a7f8511c9d2b5a1a457b21fce58",
      "parents": [
        "78b16bde104cc74bedbf462b0ebed2990f35ff6b"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:49 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_sctp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use ip_vs_proto_data\n\n*v3\n Removed unuset function set_state_timeout()\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "78b16bde104cc74bedbf462b0ebed2990f35ff6b",
      "tree": "1cf3bfb3fd5005be421e7b7bbeb0374e1cc1128a",
      "parents": [
        "4a85b96c08ef84076f84e87280223a4301988ed9"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:48 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_udp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use ip_vs_proto_data\n\n*v3\nRemoved unused function set_state_timeout()\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "4a85b96c08ef84076f84e87280223a4301988ed9",
      "tree": "14ec2ae8cd5c159dc4400c5a97a13231de1c9efb",
      "parents": [
        "252c64103237f1841088f0f29b4f084b1c774546"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:47 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_tcp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use all\nip_vs_proto_data\n\n*v3\nRemoved unused function as sugested by Simon\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "252c64103237f1841088f0f29b4f084b1c774546",
      "tree": "81de130280300698260ca35fe4dde8a92fdebac5",
      "parents": [
        "b6e885ddb903e681b7cbb4e68ad775154660e1f4"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:46 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns, prepare protocol\n\nAdd support for protocol data per name-space.\nin struct ip_vs_protocol, appcnt will be removed when all protos\nare modified for network name-space.\n\nThis patch causes warnings of unused functions, they will be used\nwhen next patch will be applied.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "b6e885ddb903e681b7cbb4e68ad775154660e1f4",
      "tree": "d638b728989f152806d26702b7a5cba4cadb495f",
      "parents": [
        "d0a1eef9c38218af20c809b2220a960b7ed81a36"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:45 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns awarness to lblc sheduler\n\nvar sysctl_ip_vs_lblc_expiration moved to ipvs struct as\n    sysctl_lblc_expiration\n\nprocfs updated to handle this.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "d0a1eef9c38218af20c809b2220a960b7ed81a36",
      "tree": "a2ba65169f823bfc06fa2ca4ae0bf4da3c6ffbf0",
      "parents": [
        "fc723250c9cb046cc19833a2b1c4309bbf59ac36"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:44 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns awarness to lblcr sheduler\n\nvar sysctl_ip_vs_lblcr_expiration moved to ipvs struct as\n    sysctl_lblcr_expiration\n\nprocfs updated to handle this.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "fc723250c9cb046cc19833a2b1c4309bbf59ac36",
      "tree": "fa8cd33ad9e020549dd8c6389f311d25e495ca7d",
      "parents": [
        "61b1ab4583e275af216c8454b9256de680499b19"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:43 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:26 2011 +0900"
      },
      "message": "IPVS: netns to services part 1\n\nServices hash tables got netns ptr a hash arg,\nWhile Real Servers (rs) has been moved to ipvs struct.\nTwo new inline functions added to get net ptr from skb.\n\nSince ip_vs is called from different contexts there is two\nplaces to dig for the net ptr skb-\u003edev or skb-\u003esk\nthis is handled in skb_net() and skb_sknet()\n\nGlobal functions, ip_vs_service_get() ip_vs_lookup_real_service()\netc have got  struct net *net as first param.\nIf possible get net ptr skb etc,\n - if not \u0026init_net is used at this early stage of patching.\n\nip_vs_ctl.c  procfs not ready for netns yet.\n\n*v3\n Comments by Julian\n- __ip_vs_service_find and __ip_vs_svc_fwm_find are fast path,\n  net_eq(svc-\u003enet, net) so the check is at the end now.\n- net \u003d skb_net(skb) in ip_vs_out moved after check for skb_dst.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "61b1ab4583e275af216c8454b9256de680499b19",
      "tree": "43e7cd6c71030c4d94c4e02dd34de77e57943a2d",
      "parents": [
        "fee1cc0895fd7bde875a86bbc3a1e82089e540b8"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:42 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:26 2011 +0900"
      },
      "message": "IPVS: netns, add basic init per netns.\n\nPreparation for network name-space init, in this stage\nsome empty functions exists.\n\nIn most files there is a check if it is root ns i.e. init_net\nif (!net_eq(net, \u0026init_net))\n        return ...\nthis will be removed by the last patch, when enabling name-space.\n\n*v3\n ip_vs_conn.c merge error corrected.\n net_ipvs #ifdef removed as sugested by Jan Engelhardt\n\n[ horms@verge.net.au: Removed whitespace-change-only hunks ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "20a95a2169d1cd3da50cf65ba882d0e27a4a2d4f",
      "tree": "1d8200ebe2a538d1f4ccacc2b63624400aa5ce16",
      "parents": [
        "bbce5a59e4e0e6e1dbc85492caaf310ff6611309"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Sat Nov 20 18:07:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 21 10:05:10 2010 -0800"
      },
      "message": "netns: let net_generic take pointer-to-const args\n\nThis commit is same in nature as v2.6.37-rc1-755-g3654654; the network\nnamespace itself is not modified when calling net_generic, so the\nparameter can be const.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e602ce2980fd6941dc0d3dda12e5095e8206f34",
      "tree": "1a0ea79a6db1b01660cc034c822d02c95e356388",
      "parents": [
        "c60ce4e265404ca42ba860401f4b0f1e97332a67"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Oct 14 05:56:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 17 13:49:14 2010 -0700"
      },
      "message": "netns: reorder fields in struct net\n\nIn a network bench, I noticed an unfortunate false sharing between\n\u0027loopback_dev\u0027 and \u0027count\u0027 fields in \"struct net\".\n\n\u0027count\u0027 is written each time a socket is created or destroyed, while\nloopback_dev might be often read in routing code.\n\nMove loopback_dev in a read mostly section of \"struct net\"\n\nNote: struct netns_xfrm is cache line aligned on SMP.\n(It contains a \"struct dst_ops\")\nMove it at the end to avoid holes, and reduce sizeof(struct net) by 128\nbytes on ia32.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1db275dd3f6e4182c4c4b4a1ac6287925d60569",
      "tree": "b8edf6661661ff84785495e2e053ce908417a9ff",
      "parents": [
        "6bd521433942d85e80f7a731a88cc91a327f38e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:55 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:55 2010 +0200"
      },
      "message": "ipv6: ip6mr: support multiple tables\n\nThis patch adds support for multiple independant multicast routing instances,\nnamed \"tables\".\n\nUserspace multicast routing daemons can bind to a specific table instance by\nissuing a setsockopt call using a new option MRT6_TABLE. The table number is\nstored in the raw socket data and affects all following ip6mr setsockopt(),\ngetsockopt() and ioctl() calls. By default, a single table (RT6_TABLE_DFLT)\nis created with a default routing rule pointing to it. Newly created pim6reg\ndevices have the table number appended (\"pim6regX\"), with the exception of\ndevices created in the default table, which are named just \"pim6reg\" for\ncompatibility reasons.\n\nPackets are directed to a specific table instance using routing rules,\nsimilar to how regular routing rules work. Currently iif, oif and mark\nare supported as keys, source and destination addresses could be supported\nadditionally.\n\nExample usage:\n\n- bind pimd/xorp/... to a specific table:\n\nuint32_t table \u003d 123;\nsetsockopt(fd, SOL_IPV6, MRT6_TABLE, \u0026table, sizeof(table));\n\n- create routing rules directing packets to the new table:\n\n# ip -6 mrule add iif eth0 lookup 123\n# ip -6 mrule add oif eth0 lookup 123\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n\n"
    },
    {
      "commit": "6bd521433942d85e80f7a731a88cc91a327f38e0",
      "tree": "e263e39fc6096ef77e2a1c22d5972447785b2aa5",
      "parents": [
        "f30a77842129b5656360cc1f5db48a3fcfb64528"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:53 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:53 2010 +0200"
      },
      "message": "ipv6: ip6mr: move mroute data into seperate structure\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "f30a77842129b5656360cc1f5db48a3fcfb64528",
      "tree": "3a01eac73fd0e86d3c7a976ab6bccca9878cd35c",
      "parents": [
        "b5aa30b19121de49021fba57aa1f6e4c787fcf67"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:51 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:51 2010 +0200"
      },
      "message": "ipv6: ip6mr: convert struct mfc_cache to struct list_head\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c476efbcde5ba58b81ac752f4a894d6db8e17d94",
      "tree": "69aea7351adf2ae537e4d6ec76e1cc0799a16593",
      "parents": [
        "d250fe91ae129bff0968e685cc9c466d3a5e3482"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:48 2010 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue May 11 14:40:48 2010 +0200"
      },
      "message": "ipv6: ip6mr: move unres_queue and timer to per-namespace data\n\nThe unres_queue is currently shared between all namespaces. Following patches\nwill additionally allow to create multiple multicast routing tables in each\nnamespace. Having a single shared queue for all these users seems to excessive,\nmove the queue and the cleanup timer to the per-namespace data to unshare it.\n\nAs a side-effect, this fixes a bug in the seq file iteration functions: the\nfirst entry returned is always from the current namespace, entries returned\nafter that may belong to any namespace.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "3ee943728fff536edaf8f59faa58aaa1aa7366e3",
      "tree": "98ab529c1be1e4cb4b291c9d4c9fc9dba678967e",
      "parents": [
        "e0e33280fedcfa9dd70a54085c4d44d9d53b788f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Sat May 08 01:57:52 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 08 01:57:52 2010 -0700"
      },
      "message": "ipv4: remove ip_rt_secret timer (v4)\n\nA while back there was a discussion regarding the rt_secret_interval timer.\nGiven that we\u0027ve had the ability to do emergency route cache rebuilds for awhile\nnow, based on a statistical analysis of the various hash chain lengths in the\ncache, the use of the flush timer is somewhat redundant.  This patch removes the\nrt_secret_interval sysctl, allowing us to rely solely on the statistical\nanalysis mechanism to determine the need for route cache flushes.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "05fceb4ad7e8bf809a2a97061d6273d27d1a8449",
      "tree": "a66511ff88417f12fd7a43c6f9a7c0a34662d6e5",
      "parents": [
        "47d54d65826c4a498070a5e0e1d74ce665402b4d"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri Apr 23 01:40:47 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 27 15:49:02 2010 -0700"
      },
      "message": "net: disallow to use net_assign_generic externally\n\nNow there\u0027s no need to use this fuction directly because it\u0027s handled by\nregister_pernet_device. So to make this simple and easy to understand,\nmake this static to do not tempt potentional users.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0ad0860d01e47a3ffd220564c5c653b3afbe962",
      "tree": "91b69423f472b934daa2c18ae3b7ba065b7c7898",
      "parents": [
        "0c12295a741d3186987f96f518cfbdaf01abb087"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:23 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:34 2010 -0700"
      },
      "message": "ipv4: ipmr: support multiple tables\n\nThis patch adds support for multiple independant multicast routing instances,\nnamed \"tables\".\n\nUserspace multicast routing daemons can bind to a specific table instance by\nissuing a setsockopt call using a new option MRT_TABLE. The table number is\nstored in the raw socket data and affects all following ipmr setsockopt(),\ngetsockopt() and ioctl() calls. By default, a single table (RT_TABLE_DEFAULT)\nis created with a default routing rule pointing to it. Newly created pimreg\ndevices have the table number appended (\"pimregX\"), with the exception of\ndevices created in the default table, which are named just \"pimreg\" for\ncompatibility reasons.\n\nPackets are directed to a specific table instance using routing rules,\nsimilar to how regular routing rules work. Currently iif, oif and mark\nare supported as keys, source and destination addresses could be supported\nadditionally.\n\nExample usage:\n\n- bind pimd/xorp/... to a specific table:\n\nuint32_t table \u003d 123;\nsetsockopt(fd, IPPROTO_IP, MRT_TABLE, \u0026table, sizeof(table));\n\n- create routing rules directing packets to the new table:\n\n# ip mrule add iif eth0 lookup 123\n# ip mrule add oif eth0 lookup 123\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c12295a741d3186987f96f518cfbdaf01abb087",
      "tree": "e71d0f5e5193870318e86cd519edf728b1e2a079",
      "parents": [
        "862465f2e7e90975e7bf0ecfbb171dd3adedd950"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:34 2010 -0700"
      },
      "message": "ipv4: ipmr: move mroute data into seperate structure\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "862465f2e7e90975e7bf0ecfbb171dd3adedd950",
      "tree": "281c43f90130cc23eb581c702afaf4ab226dbff5",
      "parents": [
        "d658f8a0e63b6476148162aa7a3ffffc58dcad52"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:33 2010 -0700"
      },
      "message": "ipv4: ipmr: convert struct mfc_cache to struct list_head\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e258beb22f4d3ea3dc88586ffc9c990d0eb03380",
      "tree": "7bd4dc984757894cbfb355189e9172a4a566596c",
      "parents": [
        "f74e49b5613206fb18468bdc9509a1db746aa01b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Apr 13 05:03:19 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 13 14:49:32 2010 -0700"
      },
      "message": "ipv4: ipmr: move unres_queue and timer to per-namespace data\n\nThe unres_queue is currently shared between all namespaces. Following patches\nwill additionally allow to create multiple multicast routing tables in each\nnamespace. Having a single shared queue for all these users seems to excessive,\nmove the queue and the cleanup timer to the per-namespace data to unshare it.\n\nAs a side-effect, this fixes a bug in the seq file iteration functions: the\nfirst entry returned is always from the current namespace, entries returned\nafter that may belong to any namespace.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "808f5114a9206fee855117d416440e1071ab375c",
      "tree": "cec3f04220909b77c0880029b63862553ad5161c",
      "parents": [
        "1cc523271ef0b6305c565a143e3d48f6fff826dd"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Feb 22 07:57:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 22 15:45:56 2010 -0800"
      },
      "message": "packet: convert socket list to RCU (v3)\n\nConvert AF_PACKET to use RCU, eliminating one more reader/writer lock.\n\nThere is no need for a real sk_del_node_init_rcu(), because sk_del_node_init\nis doing the equivalent thing to hlst_del_init_rcu already; but added\nsome comments to try and make that obvious.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.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": "9ab99d5a43e9f283738fd9fd365539306d13eaac",
      "tree": "0214a63e3f4f7f4f187f0139e4a5d8abe453902b",
      "parents": [
        "76780373190d7e8ddfb6fed06aef068e2445c743",
        "b1109bf085c8dd69537b7876ea83f914dd1fe46a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Feb 10 14:17:10 2010 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Feb 10 14:17:10 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of /repos/git/net-next-2.6\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d696c7bdaa55e2208e56c6f98e6bc1599f34286d",
      "tree": "628782197c21b1e8611a41914865cdba586a1c65",
      "parents": [
        "14c7dbe043d01a83a30633ab6b109ba2ac61d9f7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Feb 08 11:18:07 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 08 11:18:07 2010 -0800"
      },
      "message": "netfilter: nf_conntrack: fix hash resizing with namespaces\n\nAs noticed by Jon Masters \u003cjonathan@jonmasters.org\u003e, the conntrack hash\nsize is global and not per namespace, but modifiable at runtime through\n/sys/module/nf_conntrack/hashsize. Changing the hash size will only\nresize the hash in the current namespace however, so other namespaces\nwill use an invalid hash size. This can cause crashes when enlarging\nthe hashsize, or false negative lookups when shrinking it.\n\nMove the hash size into the per-namespace data and only use the global\nhash size to initialize the per-namespace value when instanciating a\nnew namespace. Additionally restrict hash resizing to init_net for\nnow as other namespaces are not handled currently.\n\nCc: stable@kernel.org\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b3501faa8741d50617ce4191c20061c6ef36cb3",
      "tree": "fd3ac41baea9db5d795144da48cef46aca3e01f6",
      "parents": [
        "9edd7ca0a3e3999c260642c92fa008892d82ca6e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Feb 08 11:16:56 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 08 11:16:56 2010 -0800"
      },
      "message": "netfilter: nf_conntrack: per netns nf_conntrack_cachep\n\nnf_conntrack_cachep is currently shared by all netns instances, but\nbecause of SLAB_DESTROY_BY_RCU special semantics, this is wrong.\n\nIf we use a shared slab cache, one object can instantly flight between\none hash table (netns ONE) to another one (netns TWO), and concurrent\nreader (doing a lookup in netns ONE, \u0027finding\u0027 an object of netns TWO)\ncan be fooled without notice, because no RCU grace period has to be\nobserved between object freeing and its reuse.\n\nWe dont have this problem with UDP/TCP slab caches because TCP/UDP\nhashtables are global to the machine (and each object has a pointer to\nits netns).\n\nIf we use per netns conntrack hash tables, we also *must* use per netns\nconntrack slab caches, to guarantee an object can not escape from one\nnamespace to another one.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\n[Patrick: added unique slab name allocation]\nCc: stable@kernel.org\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d7c7544c3d5f59033d1bf3236bc7b289f5f26b75",
      "tree": "1a3c9e7b6c0c9158ddb73faa05b07697c3493cf1",
      "parents": [
        "a40ccc6868943e74ec12f26a266ce1d0373b2b32"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jan 24 22:47:53 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 24 22:47:53 2010 -0800"
      },
      "message": "netns xfrm: deal with dst entries in netns\n\nGC is non-existent in netns, so after you hit GC threshold, no new\ndst entries will be created until someone triggers cleanup in init_net.\n\nMake xfrm4_dst_ops and xfrm6_dst_ops per-netns.\nThis is not done in a generic way, because it woule waste\n(AF_MAX - 2) * sizeof(struct dst_ops) bytes per-netns.\n\nReorder GC threshold initialization so it\u0027d be done before registering\nXFRM policies.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9d3897cc2205eec8b7afcc022e4730914b4f48c",
      "tree": "8b2ae261ee9c1e85d07c84d7d5012ef8299b967d",
      "parents": [
        "83fc81024bd8572f31db784f8c0079e999a4fa44"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 18 08:08:37 2010 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 18 08:08:37 2010 +0100"
      },
      "message": "netfilter: netns: #ifdef -\u003eiptable_security, -\u003eip6table_security\n\n\u0027security\u0027 tables depend on SECURITY, so ifdef them.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d79d792ef9f99cca463b6619a93e860d1c833a6e",
      "tree": "06d8a085701546be48ac104fd4f2413a6371180c",
      "parents": [
        "04dc7f6be3a7b308f8545bb45772c9fb75f71aca"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 03 02:29:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 03 12:22:03 2009 -0800"
      },
      "message": "net: Allow xfrm_user_net_exit to batch efficiently.\n\nxfrm.nlsk is provided by the xfrm_user module and is access via rcu from\nother parts of the xfrm code.  Add xfrm.nlsk_stash a copy of xfrm.nlsk that\nwill never be set to NULL.  This allows the synchronize_net and\nnetlink_kernel_release to be deferred until a whole batch of xfrm.nlsk sockets\nhave been set to NULL.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65c0cfafce9575319fb6f70080fbe226e5617e3b",
      "tree": "e1e0a276860f74ee0fe6747c8455a8ec0e7c2d03",
      "parents": [
        "671011720baa222b6de667cd688aed4dc8908924"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Nov 29 15:46:17 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 01 16:16:00 2009 -0800"
      },
      "message": "net: remove [un]register_pernet_gen_... and update the docs.\n\nNo that all of the callers have been updated to set fields in\nstruct pernet_operations, and simplified to let the network\nnamespace core handle the allocation and freeing of the storage\nfor them, remove the surpurpflous methods and update the docs\nto the new style.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "86393e52c3f1e2f6be18383f6ecdbcdc5727d545",
      "tree": "f5c688c0cb5292143478249f807c4b2372f69dfd",
      "parents": [
        "885a136c52a8871175477baf3903e1c38751b35a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Aug 29 01:34:49 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 17:40:31 2009 -0700"
      },
      "message": "netns: embed ip6_dst_ops directly\n\nstruct net::ipv6.ip6_dst_ops is separatedly dynamically allocated,\nbut there is no fundamental reason for it. Embed it directly into\nstruct netns_ipv6.\n\nFor that:\n* move struct dst_ops into separate header to fix circular dependencies\n\tI honestly tried not to, it\u0027s pretty impossible to do other way\n* drop dynamical allocation, allocate together with netns\n\nFor a change, remove struct dst_ops::dst_net, it\u0027s deducible\nby using container_of() given dst_ops pointer.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e04af024b2e74249990587e76ec98220028c01c3",
      "tree": "bef924e031c9253bbc132487a743207831e9279f",
      "parents": [
        "1490fd89474dab9c560d3cca1a4aefbdb89be247"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Fri Jul 03 20:11:58 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:18 2009 -0700"
      },
      "message": "net, netns_xt: shrink netns_xt members\n\nIn case if kernel was compiled without ebtables support\nthere is no need to keep ebt_table pointers in netns_xt\nstructure.\n\nMake it config dependent.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd7669a92c6066b2b31bae7e04cd787092920883",
      "tree": "d06a9e18aec99c5a34a191cb3391e74ba8a8ec59",
      "parents": [
        "d219dce76c64f2c883dad0537fa09a56d5ff0a10"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Jun 13 12:30:52 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jun 13 12:30:52 2009 +0200"
      },
      "message": "netfilter: conntrack: optional reliable conntrack event delivery\n\nThis patch improves ctnetlink event reliability if one broadcast\nlistener has set the NETLINK_BROADCAST_ERROR socket option.\n\nThe logic is the following: if an event delivery fails, we keep\nthe undelivered events in the missed event cache. Once the next\npacket arrives, we add the new events (if any) to the missed\nevents in the cache and we try a new delivery, and so on. Thus,\nif ctnetlink fails to deliver an event, we try to deliver them\nonce we see a new packet. Therefore, we may lose state\ntransitions but the userspace process gets in sync at some point.\n\nAt worst case, if no events were delivered to userspace, we make\nsure that destroy events are successfully delivered. Basically,\nif ctnetlink fails to deliver the destroy event, we remove the\nconntrack entry from the hashes and we insert them in the dying\nlist, which contains inactive entries. Then, the conntrack timer\nis added with an extra grace timeout of random32() % 15 seconds\nto trigger the event again (this grace timeout is tunable via\n/proc). The use of a limited random timeout value allows\ndistributing the \"destroy\" resends, thus, avoiding accumulating\nlots \"destroy\" events at the same time. Event delivery may\nre-order but we can identify them by means of the tuple plus\nthe conntrack ID.\n\nThe maximum number of conntrack entries (active or inactive) is\nstill handled by nf_conntrack_max. Thus, we may start dropping\npackets at some point if we accumulate a lot of inactive conntrack\nentries that did not successfully report the destroy event to\nuserspace.\n\nDuring my stress tests consisting of setting a very small buffer\nof 2048 bytes for conntrackd and the NETLINK_BROADCAST_ERROR socket\nflag, and generating lots of very small connections, I noticed\nvery few destroy entries on the fly waiting to be resend.\n\nA simple way to test this patch consist of creating a lot of\nentries, set a very small Netlink buffer in conntrackd (+ a patch\nwhich is not in the git tree to set the BROADCAST_ERROR flag)\nand invoke `conntrack -F\u0027.\n\nFor expectations, no changes are introduced in this patch.\nCurrently, event delivery is only done for new expectations (no\nevents from expectation expiration, removal and confirmation).\nIn that case, they need a per-expectation event cache to implement\nthe same idea that is exposed in this patch.\n\nThis patch can be useful to provide reliable flow-accouting. We\nstill have to add a new conntrack extension to store the creation\nand destroy time.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "a0891aa6a635f658f29bb061a00d6d3486941519",
      "tree": "40df3898f9f2e0892683c482d81deec4fd5a9257",
      "parents": [
        "65cb9fda32be613216f601a330b311c3bd7a8436"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Jun 13 12:26:29 2009 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sat Jun 13 12:26:29 2009 +0200"
      },
      "message": "netfilter: conntrack: move event caching to conntrack extension infrastructure\n\nThis patch reworks the per-cpu event caching to use the conntrack\nextension infrastructure.\n\nThe main drawback is that we consume more memory per conntrack\nif event delivery is enabled. This patch is required by the\nreliable event delivery that follows to this patch.\n\nBTW, this patch allows you to enable/disable event delivery via\n/proc/sys/net/netfilter/nf_conntrack_events in runtime, although\nyou can still disable event caching as compilation option.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "ea781f197d6a835cbb93a0bf88ee1696296ed8aa",
      "tree": "820fe7df1199d8bb6c793e664e480ea56ecf612e",
      "parents": [
        "1f9352ae2253a97b07b34dcf16ffa3b4ca12c558"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Mar 25 21:05:46 2009 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Mar 25 21:05:46 2009 +0100"
      },
      "message": "netfilter: nf_conntrack: use SLAB_DESTROY_BY_RCU and get rid of call_rcu()\n\nUse \"hlist_nulls\" infrastructure we added in 2.6.29 for RCUification of UDP \u0026 TCP.\n\nThis permits an easy conversion from call_rcu() based hash lists to a\nSLAB_DESTROY_BY_RCU one.\n\nAvoiding call_rcu() delay at nf_conn freeing time has numerous gains.\n\nFirst, it doesnt fill RCU queues (up to 10000 elements per cpu).\nThis reduces OOM possibility, if queued elements are not taken into account\nThis reduces latency problems when RCU queue size hits hilimit and triggers\nemergency mode.\n\n- It allows fast reuse of just freed elements, permitting better use of\nCPU cache.\n\n- We delete rcu_head from \"struct nf_conn\", shrinking size of this structure\nby 8 or 16 bytes.\n\nThis patch only takes care of \"struct nf_conn\".\ncall_rcu() is still used for less critical conntrack parts, that may\nbe converted later if necessary.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "6c5143dbcfe50ac722965dc7d096abbeeec8bb33",
      "tree": "b9a78f7a700ec6a82ed05cd46e65f7c9ba2cbf60",
      "parents": [
        "6f9374a9342e896c68df7cf7c0b039ab5cca994c"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:21 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:40 2009 -0800"
      },
      "message": "netns: ipmr: declare reg_vif_num per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare variable \u0027reg_vif_num\u0027 per-namespace, move into struct netns_ipv4.\n\nAt the moment, this variable is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f9374a9342e896c68df7cf7c0b039ab5cca994c",
      "tree": "ba03b8e9e70b0ae5f581444afb9a9ae43e579091",
      "parents": [
        "1e8fb3b6a4ac6c5e486298d88289038456957545"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:20 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:40 2009 -0800"
      },
      "message": "netns: ipmr: declare mroute_do_assert and mroute_do_pim per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare IPv multicast routing variables \u0027mroute_do_assert\u0027 and\n\u0027mroute_do_pim\u0027 per-namespace in struct netns_ipv4.\n\nAt the moment, these variables are only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e8fb3b6a4ac6c5e486298d88289038456957545",
      "tree": "ff2c02ed95edcf510e553c15c8abd476cdc6d669",
      "parents": [
        "2bb8b26c3ea8bde1943dc5cd4dda2dc9f48fb281"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:39 2009 -0800"
      },
      "message": "netns: ipmr: declare counter cache_resolve_queue_len per-namespace\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDeclare variable cache_resolve_queue_len per-namespace: move it into\nstruct netns_ipv4.\n\nThis variable counts the number of unresolved cache entries queued in the\nlist mfc_unres_queue. This list is kept global to all netns as the number\nof entries per namespace is limited to 10 (hardcoded in routine\nipmr_cache_unresolved).\nEntries belonging to different namespaces in mfc_unres_queue will be\nidentified by matching the mfc_net member introduced previously in\nstruct mfc_cache.\n\nKeeping this list global to all netns, also allows us to keep a single\ntimer (ipmr_expire_timer) to handle their expiration.\nIn some places cache_resolve_queue_len value was tested for arming\nor deleting the timer. These tests were equivalent to testing\nmfc_unres_queue value instead and are replaced in this patch.\n\nAt the moment, cache_resolve_queue_len is only referenced in init_net.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "2bb8b26c3ea8bde1943dc5cd4dda2dc9f48fb281"
}
