)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "2bb8b26c3ea8bde1943dc5cd4dda2dc9f48fb281",
      "tree": "dacd8256827d6539ff79162cbf8fad2873835126",
      "parents": [
        "5c0a66f5f3c9c59e2c341400048e2cff768e67a9"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:18 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:38 2009 -0800"
      },
      "message": "netns: ipmr: dynamically allocate mfc_cache_array\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nDynamically allocate IPv4 multicast forwarding cache, mfc_cache_array,\nand move it to struct netns_ipv4.\n\nAt the moment, mfc_cache_array 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": "cf958ae377ee2545ae70cf48d38e7eb4308c27ea",
      "tree": "f304ea66b789f4287968fcaa57831cd4fa8e2576",
      "parents": [
        "70a269e6c9c9b38b1a37dce068c59e9a912f8578"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:34 2009 -0800"
      },
      "message": "netns: ipmr: dynamically allocate vif_table\n\nPreliminary work to make IPv6 multicast routing netns-aware.\n\nDynamically allocate interface table vif_table and move it to\nstruct netns_ipv4, and update MIF_EXISTS() macro.\n\nAt the moment, vif_table 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": "70a269e6c9c9b38b1a37dce068c59e9a912f8578",
      "tree": "f39e0615f1a2e6588f620969a1f0a05b616f0b0e",
      "parents": [
        "e35fac80ed0bb878f652cc0f70ca268656d275f7"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Thu Jan 22 04:56:15 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 22 13:57:34 2009 -0800"
      },
      "message": "netns: ipmr: allocate mroute_socket per-namespace.\n\nPreliminary work to make IPv4 multicast routing netns-aware.\n\nMake IPv4 multicast routing mroute_socket per-namespace,\nmoves it into struct netns_ipv4.\n\nAt the moment, mroute_socket 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": "950d5704e5daa1f90bcd75b99163491e7b249169",
      "tree": "c46302160f4364dfc6e66c73c0c9910a9329810a",
      "parents": [
        "a21f3f997c73ced682129aedd372bb6b53041510"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:29:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:29:24 2008 -0800"
      },
      "message": "netns: ip6mr: declare reg_vif_num per-namespace\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nDeclare variable \u0027reg_vif_num\u0027 per-namespace, moves into struct netns_ipv6.\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": "a21f3f997c73ced682129aedd372bb6b53041510",
      "tree": "f236a2ef74036df4929f99350316096c6603a3ae",
      "parents": [
        "4045e57c19bee150370390545ee8a933b3f7a18d"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:28:44 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:28:44 2008 -0800"
      },
      "message": "netns: ip6mr: declare mroute_do_assert and mroute_do_pim per-namespace\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nDeclare IPv6 multicast forwarding variables \u0027mroute_do_assert\u0027 and\n\u0027mroute_do_pim\u0027 per-namespace in struct netns_ipv6.\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": "4045e57c19bee150370390545ee8a933b3f7a18d",
      "tree": "a4744efeed6819eff5acd9c13ca0fafe71df144d",
      "parents": [
        "4a6258a0e33d042e4c84d9dec25d45ddb40a70b3"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:27:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:27:21 2008 -0800"
      },
      "message": "netns: ip6mr: declare counter cache_resolve_queue_len per-namespace\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nDeclare variable cache_resolve_queue_len per-namespace: moves it into\nstruct netns_ipv6.\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 \nip6mr_cache_unresolved).\nEntries belonging to different namespaces in mfc_unres_queue will be\nidentified by matching the mfc_net member introduced previously in \nstruct mfc6_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"
    },
    {
      "commit": "4a6258a0e33d042e4c84d9dec25d45ddb40a70b3",
      "tree": "5cc24a8d367593b039c32a0d1fa4a64730673542",
      "parents": [
        "58701ad41105638baa0b38ffe9ac5b10469c1fd3"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:24:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:24:07 2008 -0800"
      },
      "message": "netns: ip6mr: dynamically allocate mfc6_cache_array\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nDynamically allocates IPv6 multicast forwarding cache, mfc6_cache_array,\nand moves it to struct netns_ipv6. \n\nAt the moment, mfc6_cache_array is only referenced in init_net.\n\nReplace \u0027ARRAY_SIZE(mfc6_cache_array)\u0027 with mfc6_cache_array size: MFC6_LINES.\n\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e16880cb4225bfa68878ad5b2a9ded53657d054",
      "tree": "6a8c15e47fe33edede4c4bd79c05dabc5ca2f79c",
      "parents": [
        "bd91b8bf372911c1e4d66d6bb44fe409349a6791"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:15:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:15:08 2008 -0800"
      },
      "message": "netns: ip6mr: dynamically allocates vif6_table\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nDynamically allocates interface table vif6_table and moves it to \nstruct netns_ipv6, and updates MIF_EXISTS() macro. \n\nAt the moment, vif6_table 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": "bd91b8bf372911c1e4d66d6bb44fe409349a6791",
      "tree": "18a79fc3c86ad833523562d7b73a9a557207b51b",
      "parents": [
        "5eaa65b240c5eb7bf2235eb9dd177c83e6e3832c"
      ],
      "author": {
        "name": "Benjamin Thery",
        "email": "benjamin.thery@bull.net",
        "time": "Wed Dec 10 16:07:08 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 16:07:08 2008 -0800"
      },
      "message": "netns: ip6mr: allocate mroute6_socket per-namespace.\n\nPreliminary work to make IPv6 multicast forwarding netns-aware.\n\nMake IPv6 multicast forwarding mroute6_socket per-namespace,\nmoves it into struct netns_ipv6.\n\nAt the moment, mroute6_socket 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": "ed77a89c30fa03dcb234a84ddea710b3fb7b62da",
      "tree": "69f3e2c2bbf2fdd4f742e891441f01307d1d1f49",
      "parents": [
        "475ad8e2172d7f8b73af5532a8dad265b51339c2",
        "d6e8cc6cc7ac77b0f9118f78c453a2e834e62709"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 28 02:19:15 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n\nConflicts:\n\n\tnet/netfilter/nf_conntrack_netlink.c\n"
    },
    {
      "commit": "b27aeadb5948d400df83db4d29590fb9862ba49d",
      "tree": "f76cc43150164facbb890e4d5c619a99fe6ce303",
      "parents": [
        "c68cd1a01ba56995d85a4a62b195b2b3f6415c64"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 18:00:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 18:00:48 2008 -0800"
      },
      "message": "netns xfrm: per-netns sysctls\n\nMake\n\tnet.core.xfrm_aevent_etime\n\tnet.core.xfrm_acq_expires\n\tnet.core.xfrm_aevent_rseqth\n\tnet.core.xfrm_larval_drop\n\nsysctls per-netns.\n\nFor that make net_core_path[] global, register it to prevent two\n/proc/net/core antries and change initcall position -- xfrm_init() is called\nfrom fs_initcall, so this one should be fs_initcall at least.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "59c9940ed0ef026673cac52f2eaed77af7d486da",
      "tree": "d7d4e38e693178f16000eaa5ae03f415f3197f7a",
      "parents": [
        "4fb236bac9fc7d51e2267866de6d4c30e549d2f8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:59:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:59:52 2008 -0800"
      },
      "message": "netns xfrm: per-netns MIBs\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6483b790f8efcd8db190c1c0ff93f9d9efe919a",
      "tree": "e05ba1d3e7014409a69d878bf9f24c5eb93365e4",
      "parents": [
        "bd235e3cfff617ff91677da553714051866ba55f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:38:20 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:38:20 2008 -0800"
      },
      "message": "netns xfrm: per-netns NETLINK_XFRM socket\n\nStub senders to init_net\u0027s one temporarily.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66caf628c3b634c57b14a1a104dcd57e4fab2e3b",
      "tree": "d5a967f7c22e55208bc536c540efb85f26b9b483",
      "parents": [
        "dc2caba7b321289e7d02e63d7216961ccecfa103"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:28:57 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:28:57 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy hash resizing work\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dc2caba7b321289e7d02e63d7216961ccecfa103",
      "tree": "639c3da4e2a2b35af3b4dfe980994ce7f9a27c0e",
      "parents": [
        "a35f6c5de32664d82c072a7e2c7d5c5234de4158"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:24:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:24:15 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy counts\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a35f6c5de32664d82c072a7e2c7d5c5234de4158",
      "tree": "4eae7591e4bacb4ce4700eae2399c5622f4f4ffa",
      "parents": [
        "8b18f8eaf9207d53ba3e69f2b98d7290f4dec227"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:23:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:23:48 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_bydst hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b18f8eaf9207d53ba3e69f2b98d7290f4dec227",
      "tree": "b4f323ac9aa6f1956c3ad4398a2230fc7a01d3e4",
      "parents": [
        "8100bea7d619e8496ad8e545d1b41f536e076cd5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:23:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:23:26 2008 -0800"
      },
      "message": "netns xfrm: per-netns inexact policies\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8100bea7d619e8496ad8e545d1b41f536e076cd5",
      "tree": "f0f6163bcfec148cb32941bea908737486896bc0",
      "parents": [
        "93b851c1c93c7d5cd8d94cd3f3a268b2d5460e9e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:58 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_byidx hashmask\n\nPer-netns hashes are independently resizeable.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93b851c1c93c7d5cd8d94cd3f3a268b2d5460e9e",
      "tree": "b641247bb4ca596de9c19ef6a785256902fc17b3",
      "parents": [
        "adfcf0b27e87d16a6a8c364daa724653d4d8930b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:35 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_policy_byidx hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "adfcf0b27e87d16a6a8c364daa724653d4d8930b",
      "tree": "568da73362373cf293e94eceddbfc4bebe43d2bb",
      "parents": [
        "0331b1f383e1fa4049f8e75cafeea8f006171c64"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:22:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:22:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns policy list\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50a30657fd7ee77a94a6bf0ad86eba7c37c3032e",
      "tree": "7eb9165881b9082588eb2c373e9ed2ebc013321e",
      "parents": [
        "c78371441c0d957f54c9f8a35b3ee5a378d14808"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:21:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:21:01 2008 -0800"
      },
      "message": "netns xfrm: per-netns km_waitq\n\nDisallow spurious wakeups in __xfrm_lookup().\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c78371441c0d957f54c9f8a35b3ee5a378d14808",
      "tree": "660b55bc3d85aa04a72bbff6c7d357f82dc5494d",
      "parents": [
        "b8a0ae20b0eecd4b86a113d2abe2fa5a582b30a6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:20:36 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:20:36 2008 -0800"
      },
      "message": "netns xfrm: per-netns state GC work\n\nState GC is per-netns, and this is part of it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b8a0ae20b0eecd4b86a113d2abe2fa5a582b30a6",
      "tree": "7425a504250c79c86c69293772a4a4271ed74237",
      "parents": [
        "630827338585022b851ec0a6335df8e436c900e4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:20:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:20:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns state GC list\n\nkm_waitq is going to be made per-netns to disallow spurious wakeups\nin __xfrm_lookup().\n\nTo not wakeup after every garbage-collected xfrm_state (which potentially\ncan be from different netns) make state GC list per-netns.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "630827338585022b851ec0a6335df8e436c900e4",
      "tree": "d40fcd9a94157171f14b481e7571ae255c6aab8f",
      "parents": [
        "0bf7c5b019518d3fe9cb96b9c97bf44d251472c3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:19:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:19:07 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_hash_work\n\nAll of this is implicit passing which netns\u0027s hashes should be resized.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bf7c5b019518d3fe9cb96b9c97bf44d251472c3",
      "tree": "9deba01a0f6a5e3bbe88f568be2d984e08254af3",
      "parents": [
        "529983ecabeae3d8e61c9e27079154b1b8544dcd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:18:39 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:18:39 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state counts\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "529983ecabeae3d8e61c9e27079154b1b8544dcd",
      "tree": "eb440806ba098ed3abf629bcb57c53e5a61e7b17",
      "parents": [
        "b754a4fd8f58d245c9b5e92914cce09c4309cb67"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:18:12 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:18:12 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_hmask\n\nSince hashtables are per-netns, they can be independently resized.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b754a4fd8f58d245c9b5e92914cce09c4309cb67",
      "tree": "b4b98f60c8be664723106a6ef91cdab669c29657",
      "parents": [
        "d320bbb306f2085892bc958781e8fcaf5d491589"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:17:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:17:47 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_byspi hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d320bbb306f2085892bc958781e8fcaf5d491589",
      "tree": "b86290122569b7201be6df4632eeca4fd4483ef9",
      "parents": [
        "73d189dce486cd6693fa29169b1aac0872efbcea"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:17:24 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:17:24 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_bysrc hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73d189dce486cd6693fa29169b1aac0872efbcea",
      "tree": "1c82e87feef2d99d3644f98b66bc90006259d86e",
      "parents": [
        "9d4139c76905833afcb77fe8ccc17f302a0eb9ab"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:16:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:16:58 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_bydst hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d4139c76905833afcb77fe8ccc17f302a0eb9ab",
      "tree": "40cb6b05eeffd0478f6d767effaa5d346aa3df82",
      "parents": [
        "673c09be457bb23aa0eaaa79804cbb342210d195"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:16:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:16:11 2008 -0800"
      },
      "message": "netns xfrm: per-netns xfrm_state_all list\n\nThis is done to get\na) simple \"something leaked\" check\nb) cover possible DoSes when other netns puts many, many xfrm_states\n   onto a list.\nc) not miss \"alien xfrm_state\" check in some of list iterators in future.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d62ddc21b674b5ac1466091ff3fbf7baa53bc92c",
      "tree": "13e57abe023b5258b168e7f9108015a78493e481",
      "parents": [
        "c95839693d2a6612af7f75ad877012eba2f69757"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 25 17:14:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 17:14:31 2008 -0800"
      },
      "message": "netns xfrm: add netns boilerplate\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71b30a626fd0e43c825a05036e7a2c3f377a563",
      "tree": "0e2f28638300c5ccb94e736461c77065815d069e",
      "parents": [
        "4aad10938d4e4e8364b664cd5420c3bfeb9b679b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 04 14:30:46 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 04 14:30:46 2008 +0100"
      },
      "message": "netfilter: netns ebtables: ebtable_nat in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "4aad10938d4e4e8364b664cd5420c3bfeb9b679b",
      "tree": "1d0f8908c738ee385aa1c12de86876af54ca3e56",
      "parents": [
        "8157e6d16af86e4a8d31a035db7be02a8a171c26"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 04 14:29:58 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 04 14:29:58 2008 +0100"
      },
      "message": "netfilter: netns ebtables: ebtable_filter in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "8157e6d16af86e4a8d31a035db7be02a8a171c26",
      "tree": "0970115fc55f94c9d1da3a65be9986b0a816770a",
      "parents": [
        "dbcdf85a2e3d2aa584dafd10b5a1f42764e673e7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Nov 04 14:29:03 2008 +0100"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Nov 04 14:29:03 2008 +0100"
      },
      "message": "netfilter: netns ebtables: ebtable_broute in netns\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "1080d709fb9d8cd4392f93476ee46a9d6ea05a5b",
      "tree": "b87a162b10d98f7d44657d7c9a98bbc7385159fd",
      "parents": [
        "1d63e726408dfdb3e10ed8f00c383b30ebb333d3"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Oct 27 12:28:25 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 27 17:06:14 2008 -0700"
      },
      "message": "net: implement emergency route cache rebulds when gc_elasticity is exceeded\n\nThis is a patch to provide on demand route cache rebuilding.  Currently, our\nroute cache is rebulid periodically regardless of need.  This introduced\nunneeded periodic latency.  This patch offers a better approach.  Using code\nprovided by Eric Dumazet, we compute the standard deviation of the average hash\nbucket chain length while running rt_check_expire.  Should any given chain\nlength grow to larger that average plus 4 standard deviations, we trigger an\nemergency hash table rebuild for that net namespace.  This allows for the common\ncase in which chains are well behaved and do not grow unevenly to not incur any\nlatency at all, while those systems (which may be being maliciously attacked),\nonly rebuild when the attack is detected.  This patch take 2 other factors into\naccount:\n1) chains with multiple entries that differ by attributes that do not affect the\nhash value are only counted once, so as not to unduly bias system to rebuilding\nif features like QOS are heavily used\n2) if rebuilding crosses a certain threshold (which is adjustable via the added\nsysctl in this patch), route caching is disabled entirely for that net\nnamespace, since constant rebuilding is less efficient that no caching at all\n\nTested successfully by me.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10a03a42d140a029bcba531df2897839f3569871",
      "tree": "c404d9e491379e21e9930375c3197746ee5bf1de",
      "parents": [
        "041fb574c75a570a0796acd3ed83e4ce0ea920f4"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Oct 20 03:31:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 20 03:31:54 2008 -0700"
      },
      "message": "netfilter: netns: use NFPROTO_NUMPROTO instead of NUMPROTO for tables array\n\nThe netfilter families have been decoupled from regular protocol families.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9261e53701121f83eb9482347d68833e95315362",
      "tree": "9e3ba61bb72233eb544bc22ebd29a0dafa90a89e",
      "parents": [
        "087fe24033c4280a15b03cce41eaec844c92f8e5"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Oct 08 10:36:03 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 08 11:16:45 2008 -0700"
      },
      "message": "ipv6: making ip and icmp statistics per/namespace\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c4c9288ada0e6642d511ef872f10a4781a896ff",
      "tree": "ee0e22ad78f9a7454e4d8eca09f38414afa643ee",
      "parents": [
        "e099a173573ce1ba171092aee7bb3c72ea686e59"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:11 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:11 2008 +0200"
      },
      "message": "netfilter: netns nat: per-netns bysource hash\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "e099a173573ce1ba171092aee7bb3c72ea686e59",
      "tree": "e2ad85c122d022f400d2f6260a7e90c2481bd671",
      "parents": [
        "b8b8063e0d0835fb44c88d9fded2be31c9a1757e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:10 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:10 2008 +0200"
      },
      "message": "netfilter: netns nat: per-netns NAT table\n\nSame story as with iptable_filter, iptables_raw tables.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "d716a4dfbbdf0d4731d596a96e5f4b0d892ac168",
      "tree": "6131d86efdcebf7da50ded77e437223df9f41f7c",
      "parents": [
        "c2a2c7e0cc39e7f9336cd67e8307a110bdba82f3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:09 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:09 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns conntrack accounting\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c2a2c7e0cc39e7f9336cd67e8307a110bdba82f3",
      "tree": "7f9636ad72ab8f2309b2d5b3ca74f8c074ac807a",
      "parents": [
        "c04d05529a6e0bf97183a2caf76a0c7f07f5b78c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "c04d05529a6e0bf97183a2caf76a0c7f07f5b78c",
      "tree": "9d4df449b3a294b150d1c77ac4a4767e27e4a5df",
      "parents": [
        "802507071b72ed5025747126099cbc6d1542f596"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_checksum sysctl\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "802507071b72ed5025747126099cbc6d1542f596",
      "tree": "4c572d665eb8da556cc9c42b363ee44450a1edaf",
      "parents": [
        "8e9df80180b73d4107bf8fbf28b1633c541d2770"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:08 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_count sysctl\n\nNote, sysctl table is always duplicated, this is simpler and less\nspecial-cased.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "0d55af8791bfb42e04cc456b348910582f230343",
      "tree": "619c5a6a46691ca90237d6ad239a4fb4391e61b9",
      "parents": [
        "6058fa6bb96a5b6145cba10c5171f09c2783ca69"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:07 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:07 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns statistics\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "6058fa6bb96a5b6145cba10c5171f09c2783ca69",
      "tree": "634c499aa2ce0a76133d5543eaebcdc73a58f4da",
      "parents": [
        "a71996fccce4b2086a26036aa3c915365ca36926"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:07 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:07 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns event cache\n\nHeh, last minute proof-reading of this patch made me think,\nthat this is actually unneeded, simply because \"ct\" pointers will be\ndifferent for different conntracks in different netns, just like they\nare different in one netns.\n\nNot so sure anymore.\n\n[Patrick: pointers will be different, flushing can only be done while\n inactive though and thus it needs to be per netns]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "63c9a26264be108b52de087724673f8664570e34",
      "tree": "c18fe6b396ce660f982e441c5a305d40d2d3b3d4",
      "parents": [
        "9b03f38d0487f3908696242286d934c9b38f9d2a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:04 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:04 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns unconfirmed list\n\nWhat is confirmed connection in one netns can very well be unconfirmed\nin another one.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "9b03f38d0487f3908696242286d934c9b38f9d2a",
      "tree": "8f45ef997e2badfe7c534b6991f3a4816905e4d3",
      "parents": [
        "b21f89019399ff75d9c239010e38b840eb6e01e7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns expectations\n\nMake per-netns a) expectation hash and b) expectations count.\n\nExpectations always belongs to netns to which it\u0027s master conntrack belong.\nThis is natural and doesn\u0027t bloat expectation.\n\nProc files and leaf users are stubbed to init_net, this is temporary.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "400dad39d1c33fe797e47326d87a3f54d0ac5181",
      "tree": "f3bb7c9f75bd24161c2dd745f1b475f5a6165cae",
      "parents": [
        "49ac8713b6d064adf7474080fdccebd7cce76be0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns conntrack hash\n\n* make per-netns conntrack hash\n\n  Other solution is to add -\u003ect_net pointer to tuplehashes and still has one\n  hash, I tried that it\u0027s ugly and requires more code deep down in protocol\n  modules et al.\n\n* propagate netns pointer to where needed, e. g. to conntrack iterators.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "49ac8713b6d064adf7474080fdccebd7cce76be0",
      "tree": "d74b70b92fbf7741b715a7a1608a1ba5c20df386",
      "parents": [
        "5a1fb391d881905e89623d78858d05b248cbc86a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "committer": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 08 11:35:03 2008 +0200"
      },
      "message": "netfilter: netns nf_conntrack: per-netns conntrack count\n\nSysctls and proc files are stubbed to init_net\u0027s one. This is temporary.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    }
  ],
  "next": "dfdb8d791877052bbb527d9688d94a064721d8f7"
}
