)]}'
{
  "log": [
    {
      "commit": "4362aaf6054b9760652c7047cdf6fa852acb6cf7",
      "tree": "e4346f7ecc24d63bd657348fba1b73724214f896",
      "parents": [
        "244b65dbfede788f2fa3fe2463c44d0809e97c6b"
      ],
      "author": {
        "name": "David Ward",
        "email": "david.ward@ll.mit.edu",
        "time": "Mon Apr 16 03:17:22 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 16 23:53:11 2012 -0400"
      },
      "message": "net_sched: red: Make minor corrections to comments\n\nSigned-off-by: David Ward \u003cdavid.ward@ll.mit.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "ddecf0f4db44ef94847a62d6ecf74456b4dcc66f",
      "tree": "48c49b70f83d713c7e3f594e067ee726bb70777e",
      "parents": [
        "72092cc45378176ba700034c91b7af2db524df26"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jan 06 06:31:44 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 12 20:05:28 2012 -0800"
      },
      "message": "net_sched: sfq: add optional RED on top of SFQ\n\nAdds an optional Random Early Detection on each SFQ flow queue.\n\nTraditional SFQ limits count of packets, while RED permits to also\ncontrol number of bytes per flow, and adds ECN capability as well.\n\n1) We dont handle the idle time management in this RED implementation,\nsince each \u0027new flow\u0027 begins with a null qavg. We really want to address\nbacklogged flows.\n\n2) if headdrop is selected, we try to ecn mark first packet instead of\ncurrently enqueued packet. This gives faster feedback for tcp flows\ncompared to traditional RED [ marking the last packet in queue ]\n\nExample of use :\n\ntc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 4sec sfq \\\n\tlimit 3000 headdrop flows 512 divisor 16384 \\\n\tredflowlimit 100000 min 8000 max 60000 probability 0.20 ecn\n\nqdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop\nflows 512/16384 divisor 16384\n ewma 6 min 8000b max 60000b probability 0.2 ecn\n prob_mark 0 prob_mark_head 4876 prob_drop 6131\n forced_mark 0 forced_mark_head 0 forced_drop 0\n Sent 1175211782 bytes 777537 pkt (dropped 6131, overlimits 11007\nrequeues 0)\n rate 99483Kbit 8219pps backlog 689392b 456p requeues 0\n\nIn this test, with 64 netperf TCP_STREAM sessions, 50% using ECN enabled\nflows, we can see number of packets CE marked is smaller than number of\ndrops (for non ECN flows)\n\nIf same test is run, without RED, we can check backlog is much bigger.\n\nqdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop\nflows 512/16384 divisor 16384\n Sent 1148683617 bytes 795006 pkt (dropped 0, overlimits 0 requeues 0)\n rate 98429Kbit 8521pps backlog 1221290b 841p requeues 0\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Dave Taht \u003cdave.taht@gmail.com\u003e\nTested-by: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eeca6688d6599c28bc449a45facb67d7f203be74",
      "tree": "5cabbf24a3c1ee2d7757c873ba6449296a8ef7b7",
      "parents": [
        "18cb809850fb499ad9bf288696a95f4071f73931"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jan 05 02:25:16 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 05 14:01:21 2012 -0500"
      },
      "message": "net_sched: red: split red_parms into parms and vars\n\nThis patch splits the red_parms structure into two components.\n\nOne holding the RED \u0027constant\u0027 parameters, and one containing the\nvariables.\n\nThis permits a size reduction of GRED qdisc, and is a preliminary step\nto add an optional RED unit to SFQ.\n\nSFQRED will have a single red_parms structure shared by all flows, and a\nprivate red_vars per flow.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Dave Taht \u003cdave.taht@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a73ed26bbae7327370c5bd298f07de78df9e3466",
      "tree": "3c7a04e638261cdd16c324ecd07e303e72fac3b9",
      "parents": [
        "0221cd51543972782af558c527e4ac58b32049fa"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Dec 09 02:46:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 09 13:46:15 2011 -0500"
      },
      "message": "sch_red: generalize accurate MAX_P support to RED/GRED/CHOKE\n\nNow RED uses a Q0.32 number to store max_p (max probability), allow\nRED/GRED/CHOKE to use/report full resolution at config/dump time.\n\nOld tc binaries are non aware of new attributes, and still set/get Plog.\n\nNew tc binary set/get both Plog and max_p for backward compatibility,\nthey display \"probability value\" if they get max_p from new kernels.\n\n# tc -d  qdisc show dev ...\n...\nqdisc red 10: parent 1:1 limit 360Kb min 30Kb max 90Kb ecn ewma 5\nprobability 0.09 Scell_log 15\n\nMake sure we avoid potential divides by 0 in reciprocal_value(), if\n(max_th - min_th) is big.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8af2a218de38f51ea4b4fa48cac1273319ae260c",
      "tree": "07a4557322b79878096172355fb02ab2bae3f432",
      "parents": [
        "57459185a19b0246866479522b77cbb9732201d1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Dec 08 06:06:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 08 19:52:43 2011 -0500"
      },
      "message": "sch_red: Adaptative RED AQM\n\nAdaptative RED AQM for linux, based on paper from Sally FLoyd,\nRamakrishna Gummadi, and Scott Shenker, August 2001 :\n\nhttp://icir.org/floyd/papers/adaptiveRed.pdf\n\nGoal of Adaptative RED is to make max_p a dynamic value between 1% and\n50% to reach the target average queue : (max_th - min_th) / 2\n\nEvery 500 ms:\n if (avg \u003e target and max_p \u003c\u003d 0.5)\n  increase max_p : max_p +\u003d alpha;\n else if (avg \u003c target and max_p \u003e\u003d 0.01)\n  decrease max_p : max_p *\u003d beta;\n\ntarget :[min_th + 0.4*(min_th - max_th),\n          min_th + 0.6*(min_th - max_th)].\nalpha : min(0.01, max_p / 4)\nbeta : 0.9\nmax_P is a Q0.32 fixed point number (unsigned, with 32 bits mantissa)\n\nChanges against our RED implementation are :\n\nmax_p is no longer a negative power of two (1/(2^Plog)), but a Q0.32\nfixed point number, to allow full range described in Adatative paper.\n\nTo deliver a random number, we now use a reciprocal divide (thats really\na multiply), but this operation is done once per marked/droped packet\nwhen in RED_BETWEEN_TRESH window, so added cost (compared to previous\nAND operation) is near zero.\n\ndump operation gives current max_p value in a new TCA_RED_MAX_P\nattribute.\n\nExample on a 10Mbit link :\n\ntc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 8sec red \\\n   limit 400000 min 30000 max 90000 avpkt 1000 \\\n   burst 55 ecn adaptative bandwidth 10Mbit\n\n# tc -s -d qdisc show dev eth3\n...\nqdisc red 10: parent 1:1 limit 400000b min 30000b max 90000b ecn\nadaptative ewma 5 max_p\u003d0.113335 Scell_log 15\n Sent 50414282 bytes 34504 pkt (dropped 35, overlimits 1392 requeues 0)\n rate 9749Kbit 831pps backlog 72056b 16p requeues 0\n  marked 1357 early 35 pdrop 0 other 0\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ea6a5d3b97b768561db6358f15e4c84ced0f4f7e",
      "tree": "9f9e41800756d04c0edbfdeb8d8e35fb2273b6fd",
      "parents": [
        "917fbdb32f37e9a93b00bb12ee83532982982df3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Nov 30 12:10:53 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 30 23:27:22 2011 -0500"
      },
      "message": "sch_red: fix red_calc_qavg_from_idle_time\n\nSince commit a4a710c4a7490587 (pkt_sched: Change PSCHED_SHIFT from 10 to\n6) it seems RED/GRED are broken.\n\nred_calc_qavg_from_idle_time() computes a delay in us units, but this\ndelay is now 16 times bigger than real delay, so the final qavg result\nsmaller than expected.\n\nUse standard kernel time services since there is no need to obfuscate\nthem.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "838b4dc6d8a6bd83a93077ebc6873712c65bf85e",
      "tree": "bda502af1bd185298390da2aaf511397105bc798",
      "parents": [
        "35ab7b798a2dc4a9b19bd85833f83a19736bcfd8"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Jan 12 15:42:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 12 19:00:39 2011 -0800"
      },
      "message": "sched: remove unused backlog in RED stats\n\nThe RED statistics structure includes backlog field which is not\nset or used by any code.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2c3ef761fbc5e6c27fa7d40b30cda06bfcd7d8",
      "tree": "25922196160e9d5be8aa2a473ce981756926390f",
      "parents": [
        "4b7673a04a16f1d8faf1e367ae28a6ee1671843d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 03 03:26:03 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 05:06:25 2009 -0800"
      },
      "message": "net: cleanup include/net\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3bebcda28077375470dd60545b71bba2f83335fd",
      "tree": "a0d610788ccfe8d3b50d6ebf3df014e98f6387bc",
      "parents": [
        "03cc45c0a5b9b7f74768feb43b9a2525d203bbdb"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:29:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:55 2007 -0700"
      },
      "message": "[NET_SCHED]: turn PSCHED_GET_TIME into inline function\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "03cc45c0a5b9b7f74768feb43b9a2525d203bbdb",
      "tree": "acb5b1d692c9fdf526863f641547744b0a2d38a0",
      "parents": [
        "8edc0c31d6b7849b0fb50db86824830769241939"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:29:11 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:54 2007 -0700"
      },
      "message": "[NET_SCHED]: turn PSCHED_TDIFF_SAFE into inline function\n\nAlso rename to psched_tdiff_bounded.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a084980dcbf56c896e4b6c19aff2b082d5db7006",
      "tree": "2bdecde658ff928eff6e0f12ccba63217692d8de",
      "parents": [
        "104e0878984bb467e3f54d61105d8903babb4ec1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Mar 23 11:28:30 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:27:51 2007 -0700"
      },
      "message": "[NET_SCHED]: kill PSCHED_SET_PASTPERFECT/PSCHED_IS_PASTPERFECT\n\nUse direct assignment and comparison instead.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4c0ce5c57ef0ca47a4428a14de6b5c8cdf8de8a",
      "tree": "762530925f75495b9d2b8bb35702060e7e2fa9ae",
      "parents": [
        "30a584d944fbd599d4a8f470f75bf7af1a15b466"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Aug 04 16:36:18 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Aug 04 22:59:51 2006 -0700"
      },
      "message": "[PKT_SCHED] RED: Fix overflow in calculation of queue average\n\nOverflow can occur very easily with 32 bits, e.g., with 1 second\nus_idle is approx. 2^20, which leaves only 11-Wlog bits for queue\nlength. Since the EWMA exponent is typically around 9, queue\nlengths larger than 2^2 cause overflow. Whether the affected\nbranch is taken when us_idle is as high as 1 second, depends on\nScell_log, but with rather reasonable configuration Scell_log is\nlarge enough to cause p-\u003eStab to have zero index, which always\nresults zero shift (typically also few other small indices result\nin zero shift).\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "a783474591f2eed0348e08b15934fa9a25e23b3e",
      "tree": "3cc009ea63287648dd3d8dc7c304e60b6162c3d7",
      "parents": [
        "1758ee0ea26561943813c5f5a7b27272f2cbc4cf"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Sat Nov 05 21:14:03 2005 +0100"
      },
      "committer": {
        "name": "Thomas Graf",
        "email": "tgr@axs.localdomain",
        "time": "Sat Nov 05 22:02:24 2005 +0100"
      },
      "message": "[PKT_SCHED]: Generic RED layer\n\nExtracts the RED algorithm from sch_red.c and puts it into include/net/red.h\nfor use by other RED based modules. The statistics are extended to be more\nfine grained in order to differ between probability/forced marks/drops.\nWe now reset the average queue length when setting new parameters, leaving\nit might result in an unreasonable qavg for a while depending on the value of W.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    }
  ]
}
