-diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
-index 8d2530d..028b83c 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -850,4 +850,59 @@ struct tc_pie_xstats {
+};
+
#endif
-diff --git a/tc/Makefile b/tc/Makefile
-index 56acbaa..d421b8e 100644
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -63,6 +63,7 @@ TCMODULES += q_codel.o
TCMODULES += q_hhf.o
TCMODULES += e_bpf.o
-diff --git a/tc/q_cake.c b/tc/q_cake.c
-new file mode 100644
-index 0000000..14e5aab
--- /dev/null
+++ b/tc/q_cake.c
-@@ -0,0 +1,654 @@
+@@ -0,0 +1,663 @@
+/*
+ * Common Applications Kept Enhanced -- CAKE
+ *
+{
+ fprintf(stderr, "Usage: ... cake [ bandwidth RATE | unlimited* | autorate_ingress ]\n"
+ " [ rtt TIME | datacentre | lan | metro | regional | internet* | oceanic | satellite | interplanetary ]\n"
-+ " [ besteffort | precedence | diffserv8 | diffserv4* ]\n"
-+ " [ flowblind | srchost | dsthost | hosts | flows* | dual-srchost | dual-dsthost | triple-isolate ] [ nat | nonat* ]\n"
++ " [ besteffort | precedence | diffserv8 | diffserv4 | diffserv-llt | diffserv3* ]\n"
++ " [ flowblind | srchost | dsthost | hosts | flows | dual-srchost | dual-dsthost | triple-isolate* ] [ nat | nonat* ]\n"
+ " [ ptm | atm | noatm* ] [ overhead N | conservative | raw* ]\n"
+ " [ wash | nowash* ]\n"
+ " [ memlimit LIMIT ]\n"
+ diffserv = 4;
+ } else if (strcmp(*argv, "diffserv-llt") == 0) {
+ diffserv = 5;
++ } else if (strcmp(*argv, "diffserv3") == 0) {
++ diffserv = 6;
+
+ } else if (strcmp(*argv, "nowash") == 0) {
+ wash = 0;
+ case 5:
+ fprintf(f, "diffserv-llt ");
+ break;
++ case 6:
++ fprintf(f, "diffserv3 ");
++ break;
+ default:
+ fprintf(f, "(?diffserv?) ");
+ break;
+ fprintf(f, " capacity estimate: %s\n", sprint_rate(stnc->capacity_estimate, b1));
+
+ switch(stnc->tin_cnt) {
++ case 3:
++ fprintf(f, " Bulk Best Effort Voice\n");
++ break;
++
+ case 4:
+ fprintf(f, " Bulk Best Effort Video Voice\n");
+ break;