diff options
author | Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> | 2016-06-27 11:16:57 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2016-06-30 00:43:03 +0200 |
commit | 6d7f54ccdb4a497a969c02657adae9664ae88737 (patch) | |
tree | 886aed146293b32c2ec57b3948d6dce143025017 /package/network/utils/iproute2/patches | |
parent | c2bd4695211e78da3a7899f8ee386ff06c3501e8 (diff) | |
download | upstream-6d7f54ccdb4a497a969c02657adae9664ae88737.tar.gz upstream-6d7f54ccdb4a497a969c02657adae9664ae88737.tar.bz2 upstream-6d7f54ccdb4a497a969c02657adae9664ae88737.zip |
iproute2: cake AQM prepare tc for COBALT algorithm
Cake AQM is experimenting with a codel/blue hybrid AQM COBALT instead
of just using codel alone. This patch updates tc to cope with some new
stats produced by COBALT.
Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
Diffstat (limited to 'package/network/utils/iproute2/patches')
-rw-r--r-- | package/network/utils/iproute2/patches/950-add-cake-to-tc.patch | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch b/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch index 29496a462a..cc988a4382 100644 --- a/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch +++ b/package/network/utils/iproute2/patches/950-add-cake-to-tc.patch @@ -1,6 +1,6 @@ --- a/include/linux/pkt_sched.h +++ b/include/linux/pkt_sched.h -@@ -877,4 +877,55 @@ struct tc_pie_xstats { +@@ -877,4 +877,56 @@ struct tc_pie_xstats { __u32 maxq; /* maximum queue size */ __u32 ecn_mark; /* packets marked with ecn*/ }; @@ -29,7 +29,7 @@ + +#define TC_CAKE_MAX_TINS (8) +struct tc_cake_xstats { -+ __u16 version; /* == 3, increments when struct extended */ ++ __u16 version; /* == 4, increments when struct extended */ + __u8 max_tins; /* == TC_CAKE_MAX_TINS */ + __u8 tin_cnt; /* <= TC_CAKE_MAX_TINS */ + @@ -48,7 +48,8 @@ + __u32 base_delay_us [TC_CAKE_MAX_TINS]; /* ~= delay to sparse flows */ + __u16 sparse_flows [TC_CAKE_MAX_TINS]; + __u16 bulk_flows [TC_CAKE_MAX_TINS]; -+ __u32 last_skblen [TC_CAKE_MAX_TINS]; /* skb_headlen */ ++ __u16 unresponse_flows [TC_CAKE_MAX_TINS]; /* v4 - was u32 last_len */ ++ __u16 spare [TC_CAKE_MAX_TINS]; /* v4 - split last_len */ + __u32 max_skblen [TC_CAKE_MAX_TINS]; + __u32 capacity_estimate; /* version 2 */ + __u32 memory_limit; /* version 3 */ @@ -68,7 +69,7 @@ --- /dev/null +++ b/tc/q_cake.c -@@ -0,0 +1,598 @@ +@@ -0,0 +1,600 @@ +/* + * Common Applications Kept Enhanced -- CAKE + * @@ -557,11 +558,11 @@ + + switch(stnc->tin_cnt) { + case 4: -+ fprintf(f, " Bulk Best Effort Video Voice\n"); ++ fprintf(f, " Bulk Best Effort Video Voice\n"); + break; + + case 5: -+ fprintf(f, " Low Loss Best Effort Low Delay Bulk Net Control\n"); ++ fprintf(f, " Low Loss Best Effort Low Delay Bulk Net Control\n"); + break; + + default: @@ -646,10 +647,12 @@ + fprintf(f, "%12u", stnc->bulk_flows[i]); + fprintf(f, "\n"); + -+ fprintf(f, " last_len"); -+ for(i=0; i < stnc->tin_cnt; i++) -+ fprintf(f, "%12u", stnc->last_skblen[i]); -+ fprintf(f, "\n"); ++ if(stnc->version >= 4) { ++ fprintf(f, " un_flows"); ++ for(i=0; i < stnc->tin_cnt; i++) ++ fprintf(f, "%12u", stnc->unresponse_flows[i]); ++ fprintf(f, "\n"); ++ } + + fprintf(f, " max_len "); + for(i=0; i < stnc->tin_cnt; i++) |