diff --git a/include/netlink/route/sch/htb.h b/include/netlink/route/sch/htb.h index c15923e..9061b9b 100644 --- a/include/netlink/route/sch/htb.h +++ b/include/netlink/route/sch/htb.h @@ -26,6 +26,7 @@ extern void rtnl_htb_set_defcls(struct rtnl_qdisc *, uint32_t); extern void rtnl_htb_set_prio(struct rtnl_class *, uint32_t); extern void rtnl_htb_set_rate(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_rate(struct rtnl_class *); extern void rtnl_htb_set_ceil(struct rtnl_class *, uint32_t); extern void rtnl_htb_set_rbuffer(struct rtnl_class *, uint32_t); extern void rtnl_htb_set_cbuffer(struct rtnl_class *, uint32_t); diff --git a/lib/route/sch/htb.c b/lib/route/sch/htb.c index 4af8a04..79a58be 100644 --- a/lib/route/sch/htb.c +++ b/lib/route/sch/htb.c @@ -361,6 +361,15 @@ void rtnl_htb_set_rate(struct rtnl_class *class, uint32_t rate) d->ch_mask |= SCH_HTB_HAS_RATE; } +uint32_t rtnl_htb_get_rate(struct rtnl_class *class) +{ + struct rtnl_htb_class *d = htb_class(class); + if (d == NULL) + return 0; + + return d->ch_rate.rs_rate; +} + /** * Set ceil of HTB class. * @arg class HTB class to be modified.