diff --git a/pkt_sched.h b/pkt_sched.h index 193cf01..bdbf07d 100644 --- a/pkt_sched.h +++ b/pkt_sched.h @@ -867,6 +867,7 @@ enum { TCA_CAKE_ETHERNET, TCA_CAKE_WASH, TCA_CAKE_MPU, + TCA_CAKE_INGRESS, __TCA_CAKE_MAX }; #define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) diff --git a/sch_cake.c b/sch_cake.c index 89cacf1..e61d891 100644 --- a/sch_cake.c +++ b/sch_cake.c @@ -1771,6 +1771,13 @@ static int cake_change(struct Qdisc *sch, struct nlattr *opt) q->rate_flags &= ~CAKE_FLAG_AUTORATE_INGRESS; } + if (tb[TCA_CAKE_INGRESS]) { + if (!!nla_get_u32(tb[TCA_CAKE_INGRESS])) + q->rate_flags |= CAKE_FLAG_INGRESS; + else + q->rate_flags &= ~CAKE_FLAG_INGRESS; + } + if (tb[TCA_CAKE_MEMORY]) q->buffer_config_limit = nla_get_s32(tb[TCA_CAKE_MEMORY]);