1 /* 2 * netlink/route/sch/hfsc.h HFSC Qdisc 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation version 2.1 7 * of the License. 8 * 9 * Copyright (c) 2014 Cong Wang <xiyou.wangcong@gmail.com> 10 */ 11 12 #ifndef NETLINK_HFSC_H_ 13 #define NETLINK_HFSC_H_ 14 15 #include <netlink/netlink.h> 16 #include <netlink/route/tc.h> 17 #include <netlink/route/qdisc.h> 18 #include <netlink/route/class.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 struct tc_service_curve; 25 26 extern uint32_t rtnl_qdisc_hfsc_get_defcls(const struct rtnl_qdisc *); 27 extern int rtnl_qdisc_hfsc_set_defcls(struct rtnl_qdisc *, uint32_t); 28 29 extern int rtnl_class_hfsc_get_rsc(const struct rtnl_class *cls, struct tc_service_curve *tsc); 30 extern int rtnl_class_hfsc_set_rsc(struct rtnl_class *cls, const struct tc_service_curve *tsc); 31 extern int rtnl_class_hfsc_get_fsc(const struct rtnl_class *cls, struct tc_service_curve *tsc); 32 extern int rtnl_class_hfsc_set_fsc(struct rtnl_class *cls, const struct tc_service_curve *tsc); 33 extern int rtnl_class_hfsc_get_usc(const struct rtnl_class *cls, struct tc_service_curve *tsc); 34 extern int rtnl_class_hfsc_set_usc(struct rtnl_class *cls, const struct tc_service_curve *tsc); 35 #ifdef __cplusplus 36 } 37 #endif 38 39 #endif 40